/* Taxgrid landing */
:root{
  --paper:#f4f2ec;--surface:#ffffff;--ink:#10162a;--muted:#646b7d;--line:#e4e0d5;
  --cobalt:#2b4bff;--cobalt-ink:#1a2fc2;--lime:#d4f25a;--green:#0f9d6b;--red:#e5484d;--amber:#f0a020;
  --hard:#10162a;--dot:rgba(16,22,42,.11);--link:#1a2fc2;--grain:.05;
  --g:clamp(16px,4vw,40px);--nav-h:68px;
  --fh:"Bricolage Grotesque","Instrument Sans",system-ui,sans-serif;
  --fb:"Instrument Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --fm:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --ease:cubic-bezier(.2,.8,.2,1);
  color-scheme:light dark;
}
@media (prefers-color-scheme:dark){:root{
  --paper:#0c1020;--surface:#151b30;--ink:#eef0f7;--muted:#9aa2ba;--line:#262d47;
  --hard:#2b4bff;--dot:rgba(238,240,247,.09);--link:#8fa0ff;--grain:.07;
}}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:80px;-webkit-text-size-adjust:100%}
body{font-family:var(--fb);font-size:1.0625rem;line-height:1.55;color:var(--ink);background:var(--paper);overflow-x:clip;-webkit-font-smoothing:antialiased}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:200;opacity:var(--grain);
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .5 0 0 0 0 .5 0 0 0 0 .5 0 0 0 1 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
.mono{font-family:var(--fm);font-feature-settings:"tnum"}
.wrap{width:min(1240px,100% - 2*var(--g));margin-inline:auto}
.ic{width:1.15em;height:1.15em;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;flex:none}
:focus-visible{outline:2.5px solid var(--cobalt);outline-offset:3px;border-radius:6px}
.free :focus-visible,.final :focus-visible{outline-color:var(--lime)}
.skip{position:fixed;left:12px;top:-60px;z-index:300;background:var(--ink);color:var(--paper);padding:.6rem 1rem;border-radius:8px}
.skip:focus{top:12px}

/* type */
.h2{font-family:var(--fh);font-weight:800;font-size:clamp(2.1rem,5.2vw,4.1rem);line-height:1.02;letter-spacing:-.04em;max-width:18ch;text-wrap:balance}
.soft{color:var(--muted)}
.lead{font-size:clamp(1.05rem,1.5vw,1.25rem);color:var(--muted);max-width:46ch;line-height:1.55}
.lead.narrow{max-width:58ch;margin-top:1.4rem}
.eyebrow{display:flex;align-items:center;gap:.8rem;font:500 .76rem var(--fm);text-transform:uppercase;letter-spacing:.14em;color:var(--muted);margin-bottom:1.4rem}
.eyebrow b{color:var(--link);font-weight:600;padding-right:.8rem;border-right:1px solid var(--line)}
.eyebrow::after{content:"";height:1px;width:clamp(40px,12vw,160px);background:var(--line)}
.on-ink{color:#a6adc4}.on-ink b{color:var(--lime);border-color:#2c3552}.on-ink::after{background:#2c3552}
mark.hl,.hl2{position:relative;background:none;color:#10162a;padding:0 .14em;z-index:0;white-space:nowrap}
mark.hl::before,.hl2::before{content:"";position:absolute;inset:.1em 0 .02em;background:var(--lime);border-radius:.1em;z-index:-1;transform-origin:left}
mark.hl::before{animation:hlIn .8s .95s var(--ease) both}
.js .rv .hl2::before{transform:scaleX(0);transition:transform .8s .35s var(--ease)}
.js .rv.in .hl2::before{transform:none}
.sec{padding-block:clamp(64px,9vw,120px);position:relative}
.sec-head{margin-bottom:clamp(36px,6vw,72px)}

/* links + buttons */
.ul{background:linear-gradient(currentColor,currentColor) 0 100%/0 1.5px no-repeat;transition:background-size .35s var(--ease);padding-bottom:2px}
.ul:hover{background-size:100% 1.5px}
.btn{--fill:var(--ink);position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.65rem;padding:.8rem 1.3rem;border-radius:12px;font-weight:600;line-height:1.2;overflow:hidden;isolation:isolate;border:1.5px solid var(--ink);transition:color .3s,box-shadow .25s,border-color .3s;transform:translate(var(--mx,0),var(--my,0));will-change:transform}
.btn::before{content:"";position:absolute;inset:-1px;z-index:-1;background:var(--fill);transform:translateY(102%);transition:transform .4s var(--ease)}
.btn:hover::before,.btn:focus-visible::before{transform:none}
.btn .ic{transition:transform .3s var(--ease)}
.btn:hover .ic{transform:translateX(4px)}
.btn-sm{padding:.55rem 1rem;font-size:.95rem;border-radius:10px}
.btn-lg{padding:1rem 1.6rem;font-size:1.05rem}
.btn-p{background:var(--cobalt);color:#fff;border-color:var(--ink)}
.btn-p:hover{color:var(--paper)}
.btn-g{background:transparent;color:var(--ink)}
.btn-g:hover{color:var(--paper)}
.btn-l{background:var(--lime);color:#10162a;border-color:#10162a;--fill:#fff;box-shadow:5px 5px 0 #10162a}
.hard{box-shadow:5px 5px 0 var(--hard)}
.hard:hover{box-shadow:2px 2px 0 var(--hard)}
.btn-l:hover{box-shadow:2px 2px 0 #10162a}

/* progress + nav */
.progress{position:fixed;left:0;right:0;top:var(--nav-h);height:3px;z-index:61;transition:top .3s var(--ease);pointer-events:none}
.progress i{display:block;height:100%;background:var(--cobalt);transform-origin:left;transform:scaleX(0)}
.nav{position:fixed;top:0;left:0;right:0;z-index:60;height:var(--nav-h);display:flex;align-items:center;transition:height .3s var(--ease),background .3s,backdrop-filter .3s,border-color .3s;border-bottom:1px solid transparent}
.is-compact{--nav-h:56px}
.is-compact .nav{background:color-mix(in srgb,var(--paper) 78%,transparent);-webkit-backdrop-filter:blur(14px) saturate(1.3);backdrop-filter:blur(14px) saturate(1.3);border-color:var(--line)}
.nav-in{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.logo{display:inline-flex;align-items:center;gap:.6rem;font:800 1.35rem var(--fh);letter-spacing:-.03em}
.logo-mk{width:28px;height:28px}
.nav-links{display:none;gap:2rem;font-weight:500;font-size:.97rem}
.nav-cta{display:flex;align-items:center;gap:1.3rem;font-weight:600;font-size:.95rem}
.nav-login{display:none}
@media (min-width:900px){.nav-links{display:flex}}
@media (min-width:480px){.nav-login{display:inline}}

/* hero */
.hero{position:relative;padding:calc(var(--nav-h) + clamp(36px,7vw,90px)) 0 clamp(56px,8vw,110px);overflow:hidden}
.hero-bg{position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(var(--dot) 1.2px,transparent 1.3px);background-size:24px 24px;
  -webkit-mask-image:linear-gradient(#000 40%,transparent);mask-image:linear-gradient(#000 40%,transparent)}
.glow{position:absolute;left:0;top:0;width:640px;height:640px;margin:-320px 0 0 -320px;border-radius:50%;
  background:radial-gradient(closest-side,rgba(43,75,255,.2),transparent);transform:translate3d(var(--gx,62vw),var(--gy,30vh),0);will-change:transform}
.hero-grid{position:relative;display:grid;gap:clamp(40px,6vw,64px);grid-template-columns:minmax(0,1fr);align-items:center}
@media (min-width:980px){.hero-grid{grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr)}}
.badge{display:inline-flex;align-items:center;gap:.6rem;font:500 .8rem var(--fm);letter-spacing:.04em;padding:.4rem .8rem;border:1px solid var(--line);background:var(--surface);border-radius:99px;margin-bottom:1.6rem}
.badge .dot{width:8px;height:8px;border-radius:50%;background:var(--green);position:relative}
.badge .dot::after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--green);animation:ring 2s infinite}
.hero-h{font-family:var(--fh);font-weight:800;font-size:clamp(2.9rem,7.4vw,5.5rem);line-height:.98;letter-spacing:-.05em;margin-bottom:1.6rem}
.ln{display:block;overflow:hidden;padding:.06em 0 .1em;margin-bottom:-.06em}
.ln>span{display:inline-block}
.js .ln>span{animation:up 1s var(--ease) both}
.js .ln:nth-child(1)>span{animation-delay:.1s}.js .ln:nth-child(2)>span{animation-delay:.22s}.js .ln:nth-child(3)>span{animation-delay:.34s}
.cta-row{display:flex;flex-wrap:wrap;gap:14px;margin:2rem 0 1.6rem}
.trust{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .9rem;font:500 .82rem var(--fm);color:var(--muted);letter-spacing:.02em}
.trust i{width:4px;height:4px;border-radius:50%;background:var(--muted)}
.js .hero-copy>.badge,.js .hero-copy>.lead,.js .hero-copy>.cta-row,.js .hero-copy>.trust{animation:fadeUp .9s var(--ease) both}
.js .hero-copy>.badge{animation-delay:.05s}.js .hero-copy>.lead{animation-delay:.5s}.js .hero-copy>.cta-row{animation-delay:.65s}.js .hero-copy>.trust{animation-delay:.8s}

.hero-stage{position:relative;max-width:500px;width:100%;margin-inline:auto;padding:66px 0 64px;perspective:1200px}
.tilt{transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .25s ease-out;transform-style:preserve-3d;will-change:transform}
.doc{--dk:#10162a;position:relative;background:#fff;color:var(--dk);border:1.5px solid var(--dk);border-radius:12px;padding:20px 20px 16px;box-shadow:10px 10px 0 var(--hard);font-size:13px;transition:opacity .5s,transform .5s var(--ease)}
.doc.out{opacity:0;transform:translateY(10px)}
.doc small{display:block;font-size:10.5px;color:#646b7d;margin-top:2px}
.doc-h{display:flex;justify-content:space-between;gap:12px;padding-bottom:14px;border-bottom:1.5px solid var(--dk)}
.doc-brand{display:flex;gap:10px;align-items:center}
.doc-brand b{font:700 15px var(--fh);letter-spacing:-.02em;display:block}
.doc-mk{width:30px;height:30px;border-radius:8px;background:var(--cobalt);position:relative;flex:none}
.doc-mk::after{content:"";position:absolute;right:6px;bottom:6px;width:9px;height:9px;border-radius:2px;background:var(--lime)}
.doc-t{text-align:right}.doc-t b{font:800 15px var(--fh);letter-spacing:.06em}
.doc-bill{display:flex;flex-direction:column;padding:10px 0;font-size:12px;border-bottom:1px solid #e4e0d5}
.doc-bill span{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:#646b7d}
.doc-tbl{width:100%;border-collapse:collapse;margin-top:6px}
.doc-tbl th{font:500 10px var(--fm);text-transform:uppercase;letter-spacing:.08em;color:#646b7d;text-align:left;padding:8px 0;border-bottom:1px solid #e4e0d5}
.doc-tbl td{padding:9px 0;border-bottom:1px dashed #e4e0d5;font-size:12px}
.doc-tbl .r{text-align:right}.doc-tbl td.mono{font-size:11.5px}
.nm{display:inline-block;min-height:1.3em;font-weight:600}
.nm.typing::after{content:"";display:inline-block;width:1.5px;height:1em;background:var(--cobalt);margin-left:1px;vertical-align:-2px;animation:blink .7s steps(1) infinite}
.js .row{opacity:0;transform:translateX(-14px);transition:opacity .45s,transform .5s var(--ease)}
.js .row.on{opacity:1;transform:none}
.doc-tax{padding-top:10px;font-size:11.5px;display:grid;gap:5px;margin-left:auto;width:min(230px,70%)}
.tx{display:flex;justify-content:space-between;color:#3f4659}
.js .tx{opacity:0;transform:translateY(6px);transition:opacity .4s,transform .45s var(--ease)}
.js .tx.on{opacity:1;transform:none}
.doc-total{display:flex;justify-content:space-between;align-items:baseline;margin-top:12px;padding:12px 14px;background:var(--dk);color:#fff;border-radius:8px}
.doc-total span{font-size:11px;text-transform:uppercase;letter-spacing:.12em}
.doc-total b{font-size:22px;font-weight:600}
.js .doc-total{opacity:0;transform:translateY(8px);transition:opacity .4s,transform .45s var(--ease)}
.js .doc-total.on{opacity:1;transform:none}
.stamp{position:absolute;left:22px;bottom:92px;font:800 30px var(--fh);letter-spacing:.14em;color:var(--lime);background:#10162a;padding:.15em .55em;border:3px solid var(--lime);outline:3px solid #10162a;border-radius:8px;transform:rotate(-11deg);opacity:0;pointer-events:none}
.stamp.slam{opacity:1;animation:slam .5s cubic-bezier(.2,1.5,.4,1) both}
.shake.go{animation:shake .45s linear}
.wa{position:absolute;left:-26px;bottom:0;width:min(270px,78%);background:#e3f6d9;color:#10162a;border:1.5px solid #10162a;border-radius:14px 14px 14px 3px;padding:10px 12px 8px;font-size:12px;box-shadow:5px 5px 0 var(--hard);opacity:0;transform:translateY(24px) scale(.96);transition:opacity .5s,transform .6s var(--ease)}
.wa.on{opacity:1;transform:none}
.wa-h{display:flex;align-items:center;gap:6px;font:600 10.5px var(--fm);color:#0b7a53;margin-bottom:4px}
.wa u{text-decoration:none;color:#1a2fc2;word-break:break-all;font-size:11px}
.wa-t{display:block;text-align:right;font-size:9.5px;color:#5a6a5a;margin-top:2px}
.toast{position:absolute;right:-14px;top:0;display:flex;gap:10px;align-items:center;background:#fff;color:#10162a;border:1.5px solid #10162a;border-radius:12px;padding:10px 14px 10px 10px;font-size:12.5px;box-shadow:5px 5px 0 var(--hard);opacity:0;transform:translateX(30px);transition:opacity .5s,transform .6s var(--ease);z-index:3}
.toast.on{opacity:1;transform:none}
.toast b{display:block;font:700 13px var(--fh)}.toast span.mono{font-size:11.5px;color:#0f9d6b}
.toast-i{width:30px;height:30px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center}
@media (max-width:979px){.wa{left:-6px}.toast{right:-6px}}
@media (max-width:520px){.doc{padding:16px 14px 14px;font-size:12px;box-shadow:7px 7px 0 var(--hard)}.c-rate{display:none}.stamp{font-size:20px;left:10px;bottom:98px}.doc-tax{width:60%}.wa{width:84%}}

/* marquees */
.mq-wrap{position:relative;z-index:1}
.mq{overflow:hidden;white-space:nowrap;border-block:1px solid var(--line)}
.mq-track{display:flex;align-items:center;width:max-content;animation:mq 46s linear infinite}
.mq:hover .mq-track{animation-play-state:paused}
.mq span{font:800 clamp(1.5rem,3.4vw,2.6rem) var(--fh);letter-spacing:-.03em;padding:.7rem 1.4rem}
.mq i{width:11px;height:11px;flex:none;background:var(--lime);border:1.5px solid #10162a;transform:rotate(45deg)}
.mq-a{background:#10162a;color:#eef0f7;border-color:#10162a}
.mq-b{border-top:0}
.mq-b .mq-track{animation-direction:reverse;animation-duration:58s}
.mq-b span{font-size:clamp(1.1rem,2.2vw,1.6rem);font-family:var(--fm);font-weight:500;letter-spacing:.02em;text-transform:uppercase;color:var(--muted)}
.mq-b i{background:var(--cobalt);border-color:var(--cobalt);width:8px;height:8px;border-radius:50%;transform:none}

/* reveal */
.js .rv{opacity:0;transform:translateY(30px);transition:opacity .8s var(--ease),transform .9s var(--ease);transition-delay:calc(var(--i,0)*90ms)}
.js .rv.in{opacity:1;transform:none}
.js .rv[data-stagger]{opacity:1;transform:none}
.js .rv[data-stagger]>*{opacity:0;transform:translateY(22px);transition:opacity .7s var(--ease),transform .8s var(--ease);transition-delay:calc(var(--i,0)*80ms)}
.js .rv[data-stagger].in>*{opacity:1;transform:none}

/* feature explorer */
.fx-grid{display:block}
.fx-list{display:none}
.fx-stage{width:100%}
.fx-frame{width:100%}
.fx-bar{display:none}
.fx-panels{display:grid;gap:28px}
.fxp{background:var(--surface);border:1.5px solid var(--ink);border-radius:14px;padding:18px;box-shadow:6px 6px 0 var(--hard)}
.fxp-cap{font:800 1.5rem var(--fh);letter-spacing:-.03em;margin-bottom:14px}
@media (min-width:960px){
  .fx-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6.4fr);gap:clamp(32px,6vw,90px);align-items:start}
  .fx-list{display:block}
  .fx-item{min-height:44vh;display:flex;flex-direction:column;justify-content:center;opacity:.32;transition:opacity .4s;padding-right:1rem}
  .fx-item:first-child{min-height:54vh;justify-content:flex-start;padding-top:3vh}
  .fx-item:last-child{min-height:60vh}
  .fx-item.is-on{opacity:1}
  .fx-btn{display:flex;align-items:center;gap:1rem;text-align:left;font:800 clamp(1.7rem,2.9vw,2.5rem) var(--fh);letter-spacing:-.04em;line-height:1.05}
  .fx-n{font-size:.78rem;font-weight:500;color:var(--link);letter-spacing:.1em;letter-spacing:.1em;flex:none;transform:translateY(-.5em)}
  .fx-ti{display:flex;align-items:center;gap:.7rem}
  .fx-ti .ic{width:.8em;height:.8em;color:var(--link)}
  .fx-item p{color:var(--muted);max-width:40ch;margin:1rem 0 0 2.4rem;font-size:1.05rem}
  .fx-stage{position:sticky;top:90px}
  .fx-frame{background:var(--surface);border:1.5px solid var(--ink);border-radius:16px;box-shadow:9px 9px 0 var(--hard);overflow:hidden}
  .fx-bar{display:flex;justify-content:space-between;align-items:center;padding:.8rem 1.2rem;border-bottom:1px solid var(--line);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase}
  .fx-bar #fxLabel{font-weight:600}.fx-sample{color:var(--muted)}
  .fx-panels{position:relative;display:block;height:408px}
  .fxp{position:absolute;inset:0;border:0;border-radius:0;box-shadow:none;padding:1.4rem 1.4rem;opacity:0;visibility:hidden;transition:opacity .45s,visibility .45s,transform .6s var(--ease);transform:translateY(14px) scale(.985)}
  .fxp.on{opacity:1;visibility:visible;transform:none}
  .fxp-cap{display:none}
}
.p-inv{display:flex;flex-direction:column;gap:14px}
.p-row-h{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.p-row-h b{font:700 1.15rem var(--fh);letter-spacing:-.02em;display:block}
.p-row-h small{font-size:.72rem;color:var(--muted)}
.chip{display:inline-flex;align-items:center;gap:.4rem;font:500 .72rem var(--fm);padding:.28rem .65rem;border-radius:99px;border:1px solid var(--line);background:var(--paper);color:var(--ink);white-space:nowrap;position:relative}
.chip-l{background:var(--lime);border-color:#10162a;color:#10162a}
.chip-g{background:color-mix(in srgb,var(--green) 16%,transparent);border-color:color-mix(in srgb,var(--green) 45%,transparent);color:var(--green)}
.chip-r{background:color-mix(in srgb,var(--red) 14%,transparent);border-color:color-mix(in srgb,var(--red) 55%,transparent);color:var(--red)}
.pulse::after{content:"";position:absolute;inset:-2px;border-radius:inherit;border:1.5px solid var(--red);animation:ring 1.6s ease-out infinite}
.p-lines{display:flex;flex-direction:column;font-size:.85rem}
.pl{display:flex;justify-content:space-between;gap:1rem;padding:.62rem 0;border-bottom:1px dashed var(--line)}
.pl em{font-style:normal;color:var(--muted);font-size:.72rem;margin-left:.5rem}
.pl.mut{color:var(--muted);border-bottom-style:solid}
.pl.tx1{color:var(--link)}
.pl.tot{font-weight:600;font-size:1.05rem;border-bottom:0;border-top:1.5px solid var(--ink);margin-top:.3rem;padding-top:.8rem}
.p-foot,.p-tags{display:flex;flex-wrap:wrap;gap:8px}
.p-stock{display:flex;flex-direction:column;font-size:.85rem}
.sr{display:grid;grid-template-columns:minmax(0,1.2fr) 1fr auto;gap:1rem;align-items:center;padding:.72rem 0;border-bottom:1px dashed var(--line)}
.sr>span:last-child{text-align:right;display:flex;justify-content:flex-end;align-items:center;gap:.5rem;min-width:5.5rem}
.bar{height:8px;background:var(--line);border-radius:4px;overflow:hidden}
.bar i{display:block;height:100%;background:var(--green);border-radius:4px;transform:scaleX(var(--w));transform-origin:left}
.sr.low .bar i{background:var(--red)}
.p-led{display:flex;flex-direction:column;font-size:.82rem}
.lh,.lr{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:.6rem;padding:.7rem 0;border-bottom:1px dashed var(--line)}
.lh{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);border-bottom-style:solid}
.lh span:not(:first-child),.lr span:not(:first-child){text-align:right}
.lr .hi{font-weight:600;color:var(--red)}
.chart{width:100%;height:auto;overflow:visible}
.chart .grid path{stroke:var(--line);stroke-width:1;stroke-dasharray:3 4;fill:none}
.chart .ln1{fill:none;stroke:var(--cobalt);stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1}
.chart .area{fill:var(--cobalt);opacity:.1}
.chart .pt{fill:var(--lime);stroke:#10162a;stroke-width:2}
.p-pos{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:18px}
.cart{display:flex;flex-direction:column;font-size:.82rem}
.cr{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:.8rem;padding:.7rem 0;border-bottom:1px dashed var(--line)}
.cr span:last-child{min-width:2.6rem;text-align:right;font-weight:600}.cr span:nth-child(2){color:var(--muted)}
.pay{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:14px;justify-content:space-between}
.pay-t span{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.pay-t b{font-size:2rem;font-weight:600;letter-spacing:-.03em}
.pay-b{display:flex;gap:8px;flex-wrap:wrap}
.pay-go{background:var(--ink);color:var(--paper);text-align:center;padding:.65rem;border-radius:9px;font-weight:600;font-size:.9rem}
.p-rem{display:grid;gap:16px}
.od{display:flex;justify-content:space-between;padding:.62rem 0;border-bottom:1px dashed var(--line);font-size:.9rem}
.od .mono{color:var(--red)}
.chat{display:flex;flex-direction:column;gap:10px;background:color-mix(in srgb,var(--green) 8%,var(--paper));border:1px solid var(--line);border-radius:12px;padding:14px}
.bub{max-width:88%;background:#e3f6d9;color:#10162a;border-radius:12px 12px 12px 3px;padding:.65rem .8rem;font-size:.82rem;line-height:1.45}
.bub u{text-decoration:none;color:#1a2fc2;word-break:break-all;font-size:.75rem}
.bub.me{align-self:flex-end;background:#fff;border-radius:12px 12px 3px 12px}
.fxp.on :is(.a1,.a2,.a3,.a4,.a5,.a6,.a7){animation:pin .6s var(--ease) both;animation-delay:calc(.1s + var(--n,0)*.1s)}
.a1{--n:1}.a2{--n:2}.a3{--n:3}.a4{--n:4}.a5{--n:5}.a6{--n:6}.a7{--n:7}
.fxp.on .bar i{animation:grow .9s var(--ease) both;animation-delay:calc(.15s + var(--n,0)*.1s)}
.sr .bar i{--n:2}
.fxp.on .ln1{animation:draw 1.8s .15s cubic-bezier(.4,.1,.2,1) both}
.fxp.on .area{animation:fade 1.2s 1.1s both}
.fxp.on .pt{animation:pop .5s 1.8s var(--ease) both;transform-origin:390px 24px}
@media (max-width:540px){.p-pos{grid-template-columns:1fr}.sr{grid-template-columns:minmax(0,1fr) 60px auto;gap:.6rem}.fxp{padding:14px}.p-row-h{flex-direction:column}}

/* gst */
.gst{background:var(--surface);border-block:1px solid var(--line)}
.gst-grid{display:grid;gap:clamp(36px,6vw,80px);grid-template-columns:minmax(0,1fr);align-items:center}
@media (min-width:960px){.gst-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr)}}
.gst-copy .h2{max-width:11ch;margin-bottom:1.4rem}
.pts{margin-top:2rem;display:grid;gap:0;max-width:52ch}
.pts li{padding:1rem 0 1rem 2rem;border-top:1px solid var(--line);position:relative;color:var(--muted)}
.pts li:last-child{border-bottom:1px solid var(--line)}
.pts li::before{content:"";position:absolute;left:0;top:1.45rem;width:11px;height:11px;background:var(--lime);border:1.5px solid var(--ink);transform:rotate(45deg)}
.pts b{color:var(--ink);font-weight:600}
.gst-viz{background:var(--paper);border:1.5px solid var(--ink);border-radius:16px;padding:clamp(16px,3vw,28px);box-shadow:9px 9px 0 var(--hard)}
.seg{display:inline-flex;padding:4px;border:1px solid var(--line);background:var(--surface);border-radius:12px;margin-bottom:1.2rem;position:relative;max-width:100%}
.seg button{padding:.5rem 1rem;border-radius:9px;font-weight:600;font-size:.9rem;color:var(--muted);transition:color .3s,background .3s}
.seg button.on{background:var(--ink);color:var(--paper)}
.viz-svg{width:100%;height:auto;overflow:visible}
.nd rect{fill:var(--surface);stroke:var(--ink);stroke-width:1.5}
.viz-svg .t1{font:600 10.5px var(--fb);fill:var(--muted);text-anchor:middle;text-transform:uppercase;letter-spacing:.1em}
.viz-svg .t2{font:800 15px var(--fh);fill:var(--ink);text-anchor:middle;letter-spacing:-.02em}
.viz-svg .t3{font:600 14px var(--fm);fill:#10162a;text-anchor:middle}
.viz-svg .t4{font:600 14px var(--fm);fill:var(--muted);text-anchor:middle}
.wire{fill:none;stroke:var(--ink);stroke-width:2;stroke-linecap:round;stroke-dasharray:1}
.hub{fill:var(--lime);stroke:var(--ink);stroke-width:2}
.tag rect{fill:var(--lime);stroke:#10162a;stroke-width:1.5}
.w0{animation:draw .8s var(--ease) both}
.gst-viz .w3,.gst-viz .g3,.gst-viz .ve{display:none}
.gst-viz[data-mode=inter] .w1,.gst-viz[data-mode=inter] .w2,.gst-viz[data-mode=inter] .g1,.gst-viz[data-mode=inter] .g2,.gst-viz[data-mode=inter] .vi{display:none}
.gst-viz[data-mode=inter] .w3,.gst-viz[data-mode=inter] .g3{display:block}
.gst-viz[data-mode=inter] .ve{display:flex}
.gst-viz .w1,.gst-viz .w2,.gst-viz .w3{animation:draw .9s .15s var(--ease) both}
.gst-viz .tag{animation:pop .5s .9s var(--ease) both;transform-box:fill-box;transform-origin:center}
.viz-res{display:grid;gap:0;margin-top:.6rem;font-size:.92rem}
.viz-res>div{display:flex;justify-content:space-between;padding:.6rem 0;border-top:1px dashed var(--line)}
.viz-res dt{color:var(--muted)}.viz-res dd{font-weight:600}
.viz-res .vi,.viz-res .ve{animation:pin .5s .4s var(--ease) both}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0;margin-top:clamp(48px,7vw,90px);border-top:1.5px solid var(--ink)}
.fact{padding:1.4rem 1rem 0 0;display:flex;flex-direction:column;gap:.2rem}
.fact b{font-size:clamp(2.6rem,5vw,4rem);font-weight:500;letter-spacing:-.05em;line-height:1}
.fact span{color:var(--muted);font-size:.92rem;max-width:20ch}

/* themes */
.th-grid{display:grid;gap:clamp(40px,6vw,80px);grid-template-columns:minmax(0,1fr);align-items:center}
@media (min-width:960px){.th-grid{grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr)}}
.deck{position:relative;height:clamp(320px,52vw,400px);--sx:34px;--sy:0px;--rot:4deg;--w:min(230px,56vw);margin-bottom:2.6rem;cursor:pointer}
.deck:hover{--sx:70px;--rot:6deg}
@media (max-width:640px){.deck{--sx:22px}.deck:hover{--sx:40px}}
.th{position:absolute;left:0;top:10px;width:var(--w);aspect-ratio:210/297;background:#fff;color:#10162a;border:1px solid #cfcabb;border-radius:8px;
  transform-origin:0 100%;transform:translate3d(calc(var(--o,0)*var(--sx)),calc(var(--o,0)*var(--sy)),0) rotate(calc(var(--o,0)*var(--rot))) scale(calc(1 - var(--o,0)*.035));
  z-index:calc(10 - var(--o,0));transition:transform .7s var(--ease),box-shadow .4s;box-shadow:0 8px 24px rgba(16,22,42,.14)}
.th.front{box-shadow:8px 8px 0 var(--hard)}
.th::after{content:attr(data-name);position:absolute;right:8px;bottom:-1.7rem;font:500 .72rem var(--fm);color:var(--muted);opacity:0;transition:opacity .3s}
.th.front::after{opacity:1}
.ti{display:flex;flex-direction:column;gap:9px;height:100%;padding:14px;font-size:9px;overflow:hidden;border-radius:inherit}
.ti-h{display:flex;justify-content:space-between;align-items:center}
.ti-h b{font:800 12px var(--fh);letter-spacing:.06em}
.ti-lg{width:18px;height:18px;border-radius:5px;background:#10162a}
.ti-m{display:flex;justify-content:space-between;color:#646b7d;padding-bottom:8px;border-bottom:1px solid #e4e0d5}
.ti-r{display:flex;align-items:center;gap:10px}.ti-r i{flex:1;height:7px;border-radius:4px;background:#e7e3d8}.ti-r em{font-style:normal;font-size:9px}
.ti-tt{margin-top:auto;display:flex;justify-content:space-between;align-items:baseline;font-size:9px;padding-top:8px;border-top:1px solid #10162a}
.ti-tt b{font-size:13px;font-weight:600}
.t-classic .ti-h{padding-bottom:8px;border-bottom:3px double #10162a}
.t-modern .ti-h{margin:-14px -14px 4px;padding:14px;background:var(--cobalt);color:#fff;border-radius:7px 7px 0 0}
.t-modern .ti-lg{background:var(--lime)}
.t-modern .ti-tt{border-color:var(--cobalt);color:var(--cobalt)}
.t-minimal .ti{gap:12px}.t-minimal .ti-h b{font-weight:600;letter-spacing:0;font-size:13px;color:#646b7d}
.t-minimal .ti-lg{background:#e4e0d5;border-radius:50%}.t-minimal .ti-r i{height:3px;background:#d9d5c8}.t-minimal .ti-tt{border-color:#d9d5c8}
.t-bold .ti-h{margin:-14px -14px 4px;padding:16px 14px;background:#10162a;color:#d4f25a;border-radius:7px 7px 0 0}
.t-bold .ti-h b{font-size:15px}.t-bold .ti-lg{background:#d4f25a}.t-bold .ti-r i{height:9px;background:#10162a}
.t-bold .ti-tt{background:#d4f25a;margin:auto -14px -14px;padding:12px 14px;border:0}
.t-elegant .ti{text-align:center}
.t-elegant .ti-h{flex-direction:column;gap:6px;padding:10px 0;border-block:1px solid #b8892e}
.t-elegant .ti-h b{font-weight:600;letter-spacing:.3em;font-size:11px;color:#b8892e;text-transform:uppercase}
.t-elegant .ti-lg{background:none;border:1px solid #b8892e;border-radius:50%}
.t-elegant .ti-tt{border-color:#b8892e;color:#8a6420}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips button{padding:.5rem 1rem;border:1.5px solid var(--ink);border-radius:99px;font-weight:600;font-size:.9rem;transition:background .3s,color .3s,transform .3s var(--ease)}
.chips button:hover{transform:translateY(-2px)}
.chips button.on{background:var(--ink);color:var(--paper)}
.th-right{display:flex;flex-direction:column;align-items:center;gap:1.4rem}
.sheet-box{height:360px;width:100%;display:flex;align-items:center;justify-content:center;border:1px dashed var(--line);border-radius:14px;background:var(--surface)}
.sheet{--acc:#10162a;width:238px;height:336px;background:#fff;border:1.5px solid #10162a;border-radius:4px;box-shadow:7px 7px 0 var(--hard);padding:14px;transition:width .7s var(--ease),height .7s var(--ease),border-radius .5s}
.sheet[data-size=a5]{width:168px;height:238px}
.sheet[data-size=thermal]{width:104px;height:336px;border-radius:2px 2px 0 0;border-bottom:2px dashed #10162a}
.sheet-in{display:flex;flex-direction:column;gap:10px;height:100%}
.sheet-in i{height:7px;border-radius:4px;background:#e7e3d8;transition:height .5s}
.sheet-in .s-h{height:22px;background:var(--acc);border-radius:4px;transition:background .5s}
.sheet-in .s-t{margin-top:auto;height:26px;background:var(--acc);opacity:.9;border-radius:4px}
.sheet[data-size=a5] .sheet-in{gap:7px}.sheet[data-size=thermal] .sheet-in .s-h{height:14px}
.sheet-meta{display:flex;flex-direction:column;align-items:center;gap:.8rem;text-align:center}
.sheet-meta p{font-size:.8rem;color:var(--muted)}

/* built for */
.bf-grid{display:grid;gap:22px;grid-template-columns:minmax(0,1fr)}
@media (min-width:760px){.bf-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:24px}
  .bf-1{grid-column:1/8}.bf-2{grid-column:8/13;margin-top:64px}.bf-3{grid-column:1/6}.bf-4{grid-column:6/13;margin-top:-40px}}
.bf-c{position:relative;background:var(--surface);border:1.5px solid var(--ink);border-radius:14px;padding:clamp(20px,3vw,34px);display:flex;flex-direction:column;gap:.8rem;overflow:hidden;transition:transform .4s var(--ease),box-shadow .4s}
.bf-c:hover{transform:translate(-3px,-3px)!important;box-shadow:8px 8px 0 var(--hard)}
.bf-c h3{font:800 clamp(1.6rem,2.6vw,2.2rem) var(--fh);letter-spacing:-.04em;line-height:1.05}
.bf-c p{color:var(--muted);max-width:44ch}
.bf-ill{width:min(230px,70%);height:auto;fill:none;stroke:var(--ink);stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;margin-bottom:1rem}
.bf-ill *{vector-effect:none}
.bf-1{background:var(--lime);color:#10162a;--ink:#10162a}.bf-1 p{color:#39421a}.bf-1{border-color:#10162a}
.bf-1 .bf-ill{stroke:#10162a}
.bf-3 .bf-ill{stroke:var(--link)}
.bf-c:hover .bf-ill{animation:bob 1.2s ease-in-out infinite}

/* how */
.how{overflow:hidden}
.hw-track{scroll-padding-inline:var(--g);overflow-x:auto;scroll-snap-type:x proximity;padding:20px var(--g) 40px;cursor:grab;scrollbar-width:thin;scrollbar-color:var(--line) transparent;-webkit-overflow-scrolling:touch}
.hw-track.drag{cursor:grabbing;scroll-snap-type:none;user-select:none}
.hw-inner{position:relative;display:flex;gap:20px;width:max-content;padding-top:38px;margin-inline:auto;padding-right:var(--g)}
.hw-hint{margin-top:1.2rem;font-size:.78rem;color:var(--muted);letter-spacing:.06em}
.hw-rail{position:absolute;left:0;right:0;top:12px;height:2px;background:var(--line)}
.hw-rail i{position:absolute;inset:0;background:var(--cobalt);transform-origin:left;transform:scaleX(var(--p,0))}
.hw-step{position:relative;width:clamp(240px,72vw,288px);flex:none;scroll-snap-align:start;background:var(--surface);border:1.5px solid var(--ink);border-radius:14px;padding:22px 22px 26px;min-height:230px;transition:transform .5s var(--ease),box-shadow .5s}
.hw-step.on{box-shadow:6px 6px 0 var(--hard);transform:translate(-2px,-2px)}
.hw-dot{position:absolute;left:22px;top:-33px;width:16px;height:16px;border-radius:50%;background:var(--paper);border:2px solid var(--line);transition:background .4s,border-color .4s,transform .4s var(--ease)}
.hw-step.on .hw-dot{background:var(--lime);border-color:var(--cobalt);transform:scale(1.25)}
.hw-num{display:block;font-size:3rem;font-weight:500;letter-spacing:-.06em;line-height:1;color:var(--link);margin-bottom:1.2rem}
.hw-step h3{font:800 1.45rem var(--fh);letter-spacing:-.035em;line-height:1.1;margin-bottom:.6rem}
.hw-step p{color:var(--muted);font-size:.98rem}

/* free */
.free{background:#10162a;color:#eef0f7;--ink:#eef0f7;--muted:#a6adc4;--line:#2c3552;--hard:#2b4bff}
.free-grid{display:grid;gap:clamp(36px,6vw,80px);grid-template-columns:minmax(0,1fr);align-items:center}
@media (min-width:900px){.free-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.zero{font-size:clamp(6rem,17vw,12.5rem);line-height:.85;font-weight:600;letter-spacing:-.08em;color:var(--lime);margin-bottom:1.6rem}
.free .h2{margin-bottom:1.2rem}.free .lead{margin-bottom:2rem;color:#a6adc4}
.free-list li{display:flex;align-items:center;gap:1rem;padding:.95rem 0;border-top:1px solid #2c3552;font-size:1.05rem}
.free-list li:last-child{border-bottom:1px solid #2c3552}
.free-list .ic{width:26px;height:26px;padding:4px;background:var(--lime);color:#10162a;border-radius:50%;stroke-width:2.4}

/* faq */
.faq-grid{display:grid;gap:clamp(32px,6vw,80px);grid-template-columns:minmax(0,1fr)}
@media (min-width:960px){.faq-grid{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}.faq-h{position:sticky;top:110px;align-self:start}}
.faq-h .h2{margin-bottom:1.2rem}
.faq-l details{border-top:1px solid var(--ink)}
.faq-l details:last-child{border-bottom:1px solid var(--ink)}
.faq-l summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1.5rem;padding:1.35rem 0;cursor:pointer;font:700 clamp(1.1rem,1.9vw,1.4rem) var(--fh);letter-spacing:-.025em;line-height:1.2}
.faq-l summary::-webkit-details-marker{display:none}
.faq-l .pl{width:30px;height:30px;padding:6px;border:1.5px solid var(--ink);border-radius:50%;transition:transform .4s var(--ease),background .3s,color .3s}
.faq-l details[open] .pl{transform:rotate(45deg);background:var(--lime);color:#10162a;border-color:#10162a}
.faq-l summary:hover .pl{background:var(--ink);color:var(--paper)}
.faq-l details[open] summary:hover .pl{background:var(--lime);color:#10162a}
.faq-l .ans{overflow:hidden}
.faq-l .ans p{color:var(--muted);padding:0 3rem 1.5rem 0;max-width:60ch}

/* final */
.final{position:relative;background:var(--cobalt);color:#fff;overflow:hidden;padding:clamp(80px,12vw,160px) 0}
.final-bg{position:absolute;inset:0;display:flex;align-items:center;transform:translate3d(0,var(--py,0px),0);pointer-events:none}
.final-mq{display:flex;width:max-content;animation:mq 70s linear infinite}
.final-mq span{font:800 clamp(14rem,34vw,30rem) var(--fh);letter-spacing:-.07em;line-height:1;padding-right:.25em;color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,.22)}
.final-in{position:relative;display:grid;gap:2rem;grid-template-columns:minmax(0,1fr);align-items:end}
@media (min-width:900px){.final-in{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}}
.final-h{font-family:var(--fh);font-weight:800;line-height:.82;letter-spacing:-.07em}
.fk{display:block;font-size:clamp(1.6rem,4vw,3rem);letter-spacing:-.04em;margin-bottom:.5rem;line-height:1}
.fb{display:block;font-size:clamp(6rem,19vw,14.5rem);color:var(--lime);margin-left:-.04em}
.final-r{display:flex;flex-direction:column;gap:1.5rem;align-items:flex-start;padding-bottom:1rem}
.final-r p{font-size:1.25rem;max-width:30ch;color:#e4e9ff}

/* footer */
.foot{padding:clamp(48px,7vw,80px) 0 28px}
.foot-in{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2rem}
.foot-b p{color:var(--muted);margin-top:.7rem;max-width:32ch}
.foot-n{display:grid;grid-template-columns:repeat(2,auto);gap:.7rem 2.5rem;align-content:start;font-weight:500}
.foot-s{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 2rem;margin-top:3rem;padding-top:1.4rem;border-top:1px solid var(--line);font-size:.85rem;color:var(--muted)}

/* keyframes */
@keyframes up{from{transform:translateY(112%)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(22px)}}
@keyframes hlIn{from{transform:scaleX(0)}}
@keyframes blink{50%{opacity:0}}
@keyframes ring{0%{transform:scale(1);opacity:.8}100%{transform:scale(1.5);opacity:0}}
@keyframes mq{to{transform:translateX(-50%)}}
@keyframes slam{0%{opacity:0;transform:rotate(-2deg) scale(2.8)}55%{opacity:1;transform:rotate(-13deg) scale(.92)}100%{opacity:1;transform:rotate(-11deg) scale(1)}}
@keyframes shake{0%,100%{transform:none}15%{transform:translate(-5px,3px)}30%{transform:translate(5px,-3px)}45%{transform:translate(-3px,-2px)}60%{transform:translate(3px,2px)}80%{transform:translate(-1px,1px)}}
@keyframes pin{from{opacity:0;transform:translateY(12px)}}
@keyframes grow{from{transform:scaleX(0)}}
@keyframes draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes fade{from{opacity:0}}
@keyframes pop{from{opacity:0;transform:scale(.4)}}
@keyframes bob{50%{transform:translateY(-6px)}}

/* reduced motion: no motion, final states */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js .row,.js .tx,.js .doc-total,.js .rv,.js .rv[data-stagger]>*{opacity:1!important;transform:none!important}
  .js .rv .hl2::before{transform:none!important}
  .wa,.toast{opacity:1!important;transform:none!important}
  .stamp{opacity:1}
  .mq{overflow:visible;white-space:normal}.mq-track{width:auto;flex-wrap:wrap;justify-content:center}.mq-track [aria-hidden]{display:none}
  .final-mq{width:auto}.final-mq span:nth-child(n+2){display:none}
  .tilt{transform:none!important}
}
