html{cursor:none}
@media (hover:none){html{cursor:auto}}

body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:9000;background:repeating-linear-gradient(0deg,rgba(26,26,26,.018) 0 1px,transparent 1px 3px);mix-blend-mode:multiply}

.fx-boot{position:fixed;inset:0;z-index:9999;background:#f6f4ef;color:#1a1a1a;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:60px 80px;gap:6px;font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.05em;transition:opacity .5s,transform .5s}
.fx-boot.gone{opacity:0;pointer-events:none;transform:translateY(-12px)}
.fx-boot .stamp{position:absolute;top:24px;right:24px;font-size:10px;color:#3a3a36;letter-spacing:.2em;text-transform:uppercase}
.fx-boot .b{display:block;opacity:0;transform:translateX(-6px);transition:opacity .25s,transform .25s}
.fx-boot .b.on{opacity:1;transform:none}
.fx-boot .b .k{color:#1d3f72}
.fx-boot .b .ok{color:#3a6f3e}
.fx-boot .seal{position:absolute;left:80px;bottom:60px;font-family:'Instrument Serif',serif;font-size:120px;font-style:italic;line-height:.85;color:#1d3f72;letter-spacing:-.04em}
.fx-boot .seal small{display:block;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.25em;color:#3a3a36;text-transform:uppercase;margin-top:8px;font-style:normal}

.fx-cur{position:fixed;left:0;top:0;width:36px;height:36px;pointer-events:none;z-index:10000;transform:translate(-50%,-50%);mix-blend-mode:difference}
.fx-cur .h,.fx-cur .v{position:absolute;background:#1a1a1a;left:50%;top:50%}
.fx-cur .h{width:36px;height:1px;transform:translate(-50%,-50%)}
.fx-cur .v{width:1px;height:36px;transform:translate(-50%,-50%)}
.fx-cur .dot{position:absolute;left:50%;top:50%;width:6px;height:6px;border:1px solid #1a1a1a;transform:translate(-50%,-50%);background:transparent;transition:all .2s}
.fx-cur.hot .dot{background:#1d3f72;border-color:#1d3f72;width:10px;height:10px}
.fx-cur .coord{position:absolute;left:22px;top:22px;font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.1em;color:#1a1a1a;background:#f6f4ef;padding:2px 4px;white-space:nowrap;text-transform:uppercase}

.fx-rv{opacity:0;transform:translateY(20px);filter:blur(3px);transition:opacity .8s cubic-bezier(.2,.8,.2,1),transform .8s cubic-bezier(.2,.8,.2,1),filter .6s}
.fx-rv.in{opacity:1;transform:none;filter:none}

.hero h1 em{position:relative;display:inline-block}

.fx-rotor{display:inline-block;position:relative;overflow:hidden;vertical-align:bottom;color:#1d3f72;font-style:italic;text-align:left}
.fx-rotor .r-list{display:flex;flex-direction:column;transition:transform .55s cubic-bezier(.5,1.3,.5,.98)}
.fx-rotor .r-list span{display:block;white-space:nowrap}

.ticker-cell .v,.ticker-cell .d{font-variant-numeric:tabular-nums}
.ticker-cell .v.flick{animation:fx-flick .25s 1}
@keyframes fx-flick{0%,100%{opacity:1}50%{opacity:.5}}

.uni-table tbody tr{position:relative}
.uni-table tbody tr td:first-child::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#1d3f72;transform:scaleY(0);transform-origin:center;transition:transform .25s cubic-bezier(.4,.7,.3,1)}
.uni-table tbody tr:hover td:first-child::before{transform:scaleY(1)}
.uni-table tbody tr.fx-spark::after{content:"";position:absolute;right:14px;top:50%;width:50px;height:18px;transform:translateY(-50%);background:url('') no-repeat center;pointer-events:none}

.nav a{position:relative;overflow:hidden;transition:color .2s,background .2s,border-color .2s}
.nav a::before{content:"";position:absolute;inset:0;background:#1a1a1a;transform:translateY(101%);transition:transform .3s cubic-bezier(.6,0,.3,1);z-index:0}
.nav a:hover::before{transform:translateY(0)}
.nav a > *{position:relative;z-index:1}

.qf{transition:background .2s,color .2s,border-color .2s,transform .2s}
.qf:active{transform:scale(.94)}

.fx-num{font-variant-numeric:tabular-nums}

.sec-title{display:inline-block;position:relative}
.sec-title::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:1px;background:#1d3f72;transform:scaleX(0);transform-origin:left;transition:transform .9s cubic-bezier(.4,.7,.3,1)}
.sec-title.in::after,.sec.in .sec-title::after{transform:scaleX(.25)}

.calc-cell:focus-within{background:rgba(29,63,114,.04)}

.guide{position:relative;overflow:hidden;transition:background .2s}
.guide::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:#1d3f72;transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.6,0,.3,1)}
.guide:hover::after{transform:scaleX(1)}
.guide .guide-flag{transition:transform .35s cubic-bezier(.3,1.4,.3,1)}
.guide:hover .guide-flag{transform:scale(1.12) rotate(-3deg)}

.odds-bar div{transition:width 1s cubic-bezier(.3,.7,.3,1)}

.modal{animation:fx-modal-rise .5s cubic-bezier(.25,.85,.3,1.02) backwards}
@keyframes fx-modal-rise{from{opacity:0;transform:translateY(40px)}}

#fx-tape{display:inline-block;font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.05em;color:#7fd06a;margin-left:14px;font-variant-numeric:tabular-nums}

.fx-diag{position:fixed;right:18px;bottom:18px;background:#1a1a1a;color:#f6f4ef;font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.1em;padding:8px 12px;border:1px solid #1a1a1a;text-transform:uppercase;z-index:50;display:flex;flex-direction:column;gap:2px;pointer-events:none;opacity:0;transform:translateY(8px);transition:opacity .6s,transform .6s}
.fx-diag.on{opacity:.95;transform:none}
.fx-diag .k{color:#7fd06a}
.fx-diag .r{color:#a8c4f0}

.compare-bar{transition:transform .35s cubic-bezier(.4,1.1,.4,1)}
.compare-bar:not(.on){transform:translateY(100%)}
.compare-bar.on{transform:translateY(0)}

.check{transition:all .2s cubic-bezier(.4,1.4,.4,1)}
.check.added{animation:fx-check 0.5s 1}
@keyframes fx-check{0%{transform:scale(1)}40%{transform:scale(1.15)}100%{transform:scale(1)}}

@media (max-width:980px){
  html{cursor:auto}
  .fx-cur,.fx-diag{display:none}
}
