@font-face{font-family:'Unbounded';src:url(fonts/unbounded-800.woff2) format('woff2');font-weight:800;font-display:swap}
:root{--aq:#00d1c1;--deep:#003d3a;--acc:#00a99c;--sky:#e6fbff;--w:#fff;--ink:#062b29;--mut:#4a6f6c;--disp:'Unbounded',system-ui,sans-serif;--sans:system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--sky);color:var(--ink);font:17px/1.6 var(--sans);overflow-x:hidden}
a{color:var(--deep);text-decoration-thickness:2px;text-underline-offset:3px}a:hover{color:var(--acc)}
:focus-visible{outline:3px solid var(--deep);outline-offset:2px}
.kick{font:800 11px/1.4 var(--disp);letter-spacing:.14em;text-transform:uppercase;margin:0 0 12px;color:var(--deep)}
.kick a{color:inherit}
/* header */
.top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 20px;padding:12px 16px;background:var(--w);border-bottom:2px solid var(--deep);position:relative;z-index:2}
.brand{display:flex;align-items:center;gap:8px;font:800 14px/1 var(--disp);letter-spacing:-.02em;text-decoration:none;color:var(--deep)}
.glint{width:16px;height:16px;background:var(--acc);clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);animation:tw 2.4s ease-in-out infinite}
.top nav{display:flex;flex-wrap:wrap;gap:2px 16px;font:700 14px/1 var(--sans)}
.top nav a{text-decoration:none;color:var(--ink);padding:8px 0;border-bottom:3px solid transparent}
.top nav a:hover,.top nav a[aria-current]{border-color:var(--aq)}
/* hero with squeegee wipe */
.hero{position:relative;overflow:hidden;background:var(--aq);color:var(--deep);padding:44px 16px 52px;isolation:isolate}
.hero .dirty{position:absolute;inset:0;z-index:-2;background:radial-gradient(30% 25% at 20% 30%,rgba(0,80,75,.35),transparent),radial-gradient(25% 30% at 80% 60%,rgba(0,80,75,.3),transparent),radial-gradient(20% 18% at 55% 85%,rgba(0,80,75,.25),transparent),var(--aq)}
.hero .clean{position:absolute;inset:0;z-index:-1;background:radial-gradient(60% 50% at 20% 10%,#fff,transparent 70%),radial-gradient(60% 60% at 90% 90%,#bff7ff,transparent 70%),var(--sky);clip-path:polygon(0 0,64% 0,40% 100%,0 100%);transition:clip-path 1.3s cubic-bezier(.7,0,.2,1)}
.hero .clean::after{content:'';position:absolute;inset:0;background:linear-gradient(104deg,transparent calc(52% - 3px),var(--deep) calc(52% - 3px),var(--deep) calc(52% + 3px),transparent calc(52% + 3px));opacity:0}
.js .hero:not(.wiped) .clean{clip-path:polygon(0 0,0 0,-24% 100%,0 100%)}
.hero.small .clean{clip-path:polygon(0 0,78% 0,58% 100%,0 100%)}
.gl{position:absolute;width:34px;fill:var(--acc);animation:tw 2.4s ease-in-out infinite;z-index:-1}
.gl.g1{left:8%;top:18%}.gl.g2{left:30%;top:62%;width:20px;animation-delay:1.1s}
@keyframes tw{0%,100%{transform:scale(.3) rotate(0);opacity:.25}50%{transform:scale(1) rotate(45deg);opacity:1}}
.hero-in{max-width:1080px;margin:0 auto}
.hero h1{font:800 clamp(2.1rem,9.5vw,5.4rem)/1.02 var(--disp);letter-spacing:-.045em;margin:0 0 18px;color:var(--deep)}
.hero.small{padding:34px 16px 38px}.hero.small h1{font-size:clamp(1.8rem,7.4vw,3.6rem)}
.lede{font-size:clamp(1.05rem,2.6vw,1.3rem);max-width:40rem;margin:0}
/* tools */
.tools{display:grid;gap:12px;max-width:1080px;margin:-26px auto 0;padding:0 16px;position:relative;z-index:1}
.tool{display:block;text-decoration:none;color:var(--ink);background:var(--w);border:2px solid var(--deep);border-radius:18px;padding:20px;box-shadow:0 6px 0 var(--deep);transition:transform .15s,box-shadow .15s;position:relative;overflow:hidden}
.tool::after{content:'';position:absolute;top:0;bottom:0;width:40%;left:-60%;background:linear-gradient(104deg,transparent,rgba(0,209,193,.25),transparent);transform:skewX(-14deg);transition:left .6s}
.tool:hover{transform:translateY(-3px);box-shadow:0 9px 0 var(--deep);color:var(--ink)}.tool:hover::after{left:120%}
.no{display:inline-block;font:800 11px var(--disp);letter-spacing:.1em;background:var(--aq);color:var(--deep);border-radius:999px;padding:5px 10px}
.tool h2{font:800 1.35rem/1.15 var(--disp);letter-spacing:-.03em;margin:12px 0 6px}
.tool p{margin:0 0 14px;color:var(--mut)}
.go{font-weight:800;color:var(--deep);border-bottom:3px solid var(--aq)}
/* method */
.method{background:var(--deep);color:var(--sky);margin:40px 0 0;padding:36px 16px}
.m-in{max-width:1080px;margin:0 auto}
.method h2,.guides h2,.h2,.prose h2,.capture h2,.kitband h2{font:800 clamp(1.35rem,4.6vw,2rem)/1.12 var(--disp);letter-spacing:-.035em;margin:0 0 16px}
.steps{list-style:none;margin:0 0 16px;padding:0;display:grid;gap:10px;counter-reset:s}
.steps li{counter-increment:s;border:2px solid rgba(230,251,255,.25);border-radius:14px;padding:14px 14px 14px 56px;position:relative}
.steps li::before{content:counter(s);position:absolute;left:14px;top:12px;width:30px;height:30px;border-radius:50%;background:var(--aq);color:var(--deep);font:800 14px/30px var(--disp);text-align:center}
.method a{color:var(--aq);font-weight:700}
/* capture */
.capture{max-width:1080px;margin:36px auto;padding:22px 18px;background:var(--w);border:2px solid var(--deep);border-radius:22px;display:grid;gap:16px;position:relative;overflow:hidden;width:calc(100% - 32px)}
.capture::before{content:'';position:absolute;right:-40px;top:-40px;width:140px;height:140px;background:var(--aq);clip-path:polygon(50% 0,58% 42%,100% 50%,58% 58%,50% 100%,42% 58%,0 50%,42% 42%);opacity:.35}
.capture p{margin:0}
.su-form label{display:block;font:800 11px var(--disp);letter-spacing:.1em;text-transform:uppercase;margin-bottom:6px}
.su-row{display:flex;flex-direction:column;gap:8px}
.su-row input{font:16px var(--sans);padding:14px 16px;border:2px solid var(--deep);border-radius:12px;background:var(--sky);min-width:0}
.su-row button,.btn{display:inline-block;font:800 14px/1 var(--disp);letter-spacing:-.01em;background:var(--aq);color:var(--deep);border:2px solid var(--deep);border-radius:12px;padding:16px 20px;cursor:pointer;text-decoration:none;box-shadow:0 4px 0 var(--deep)}
.su-row button:hover,.btn:hover{background:var(--deep);color:var(--aq)}
.btn.dark{background:var(--deep);color:var(--aq)}.btn.dark:hover{background:var(--aq);color:var(--deep)}
.su-note{font-size:.88rem;color:var(--mut);margin-top:8px!important}
.su-ok{margin-top:6px}.su-err{color:#a00;margin-top:8px!important}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.files{list-style:none;padding:0;margin:10px 0 0;display:grid;gap:6px}
.files a{font-weight:800}.files small{color:var(--mut);font-weight:600}
.files.big li{background:var(--w);border:2px solid var(--deep);border-radius:14px;padding:14px 16px}
/* guides */
.guides{max-width:1080px;margin:0 auto;padding:10px 16px 20px}
.glist{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.glist a{display:grid;gap:4px;text-decoration:none;color:var(--ink);background:var(--w);border-left:8px solid var(--aq);border-radius:10px;padding:14px 16px}
.glist a:hover{border-color:var(--deep)}.glist b{font-size:1.08rem}.glist span{color:var(--mut);font-size:.95rem}
.kitband{max-width:1080px;margin:20px auto 30px;padding:24px 18px;background:var(--aq);border-radius:22px;display:grid;gap:16px;align-items:center;width:calc(100% - 32px)}
.kitband p{margin:0}
/* layout */
.wrap{max-width:1080px;margin:0 auto;padding:28px 16px}
.prose{max-width:46rem}
.prose h2{font-size:clamp(1.2rem,4vw,1.6rem);margin:30px 0 10px}
.prose p{margin:0 0 14px}
.ex{font-size:.92rem;color:var(--mut)}
.cta{margin-top:24px}
.links{list-style:none;padding:0;margin:0;display:grid;gap:6px}.links a{font-weight:700}
/* calculator */
.calc{background:var(--w);border:2px solid var(--deep);border-radius:22px;overflow:hidden}
.tabs{display:flex;overflow-x:auto;border-bottom:2px solid var(--deep);background:var(--sky)}
.tabs button{flex:1 1 0;min-width:0;font:800 13px var(--disp);letter-spacing:-.01em;background:none;border:0;border-right:2px solid var(--deep);padding:15px 14px;cursor:pointer;color:var(--ink)}
.tabs button:last-child{border-right:0}
.tabs button[aria-selected=true]{background:var(--aq)}
.panel{display:grid;gap:0}
.panel[hidden]{display:none}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:18px}
.f{display:flex;flex-direction:column;gap:4px;font-weight:700;font-size:.92rem;min-width:0}
.f small{font-weight:500;color:var(--mut);font-size:.78rem;line-height:1.35}
.in{display:flex;align-items:center;border:2px solid var(--deep);border-radius:10px;background:var(--sky);overflow:hidden}
.in input,.in select{flex:1;min-width:0;width:100%;font:600 16px var(--sans);border:0;background:transparent;padding:11px 10px;color:var(--ink)}
.in i.pre{padding:0 0 0 10px;font-size:.95rem;font-weight:700;color:var(--ink)}
.in i{font-style:normal;font-size:.75rem;color:var(--mut);padding:0 10px 0 0;white-space:nowrap}
.readout{background:var(--deep);color:var(--sky);padding:20px 18px 22px}
.big small{display:block;font:800 11px var(--disp);letter-spacing:.12em;text-transform:uppercase;color:var(--aq)}
.big b{display:block;font:800 clamp(2.8rem,14vw,4.6rem)/1.05 var(--disp);letter-spacing:-.05em;color:#fff}
.readout dl{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}
.readout dl div{border-top:1px solid rgba(230,251,255,.25);padding-top:8px}
.readout dt{font-size:.78rem;color:#9fd9d4}.readout dd{margin:0;font:800 1.1rem var(--disp)}
.copy{font:800 13px var(--disp);background:var(--aq);color:var(--deep);border:0;border-radius:10px;padding:13px 16px;cursor:pointer}
.copied{color:var(--aq);margin:8px 0 0;font-weight:700}
.check{font-weight:700;margin:0 0 12px;padding:8px 12px;border-radius:8px}.check.ok{background:rgba(0,209,193,.2)}.check.warn{background:#ffd34d;color:#3a2a00}
.use{display:flex;gap:8px;align-items:center;font-weight:600}
.calc>.ex{padding:12px 18px;margin:0;border-top:2px solid var(--deep)}
/* checklists */
.clcards{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.clcards a{display:grid;gap:6px;text-decoration:none;color:var(--ink);background:var(--w);border:2px solid var(--deep);border-radius:18px;padding:18px;box-shadow:0 5px 0 var(--deep)}
.clcards a:hover{transform:translateY(-2px)}.clcards b{font:800 1.3rem var(--disp);letter-spacing:-.03em}.clcards small{color:var(--mut);font-weight:700}
.clcards .no{justify-self:start}
.cl-bar{position:sticky;top:0;z-index:3;display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:var(--deep);color:var(--sky);border-radius:14px;padding:10px 12px;margin-bottom:16px}
.prog{font:800 14px var(--disp);margin-right:auto}.prog b{color:var(--aq)}
.cl-bar button{font:700 14px var(--sans);background:transparent;color:var(--sky);border:2px solid rgba(230,251,255,.4);border-radius:10px;padding:8px 12px;cursor:pointer}
.clwrap.all .cl-bar{background:var(--acc)}
.cl-meta{display:none}
.cl-sec h2{font:800 1.05rem var(--disp);letter-spacing:-.02em;margin:22px 0 8px}
.cl{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.cl label{display:flex;gap:12px;align-items:flex-start;background:var(--w);border:2px solid #b8e6e2;border-radius:12px;padding:12px 14px;cursor:pointer;font-weight:600}
.cl input{appearance:none;-webkit-appearance:none;flex:none;width:24px;height:24px;margin:0;border:2px solid var(--deep);border-radius:6px;background:var(--w);display:grid;place-content:center;cursor:pointer}
.cl input::before{content:'';width:12px;height:12px;clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0,43% 62%);background:var(--deep);transform:scale(0);transition:transform .12s}
.cl input:checked::before{transform:scale(1)}
.cl input:checked{background:var(--aq)}
.cl input:checked+span{text-decoration:line-through;text-decoration-thickness:2px;color:var(--mut)}
.tipline{background:var(--w);border-left:8px solid var(--aq);border-radius:10px;padding:14px 16px;font-weight:600;margin:22px 0 10px}
/* pack + kit */
.packgrid{display:grid;gap:12px}
.pk{background:var(--w);border:2px solid var(--deep);border-radius:18px;padding:18px}
.pk h2{font:800 1.15rem var(--disp);letter-spacing:-.02em;margin:10px 0 6px}.pk p{margin:0;color:var(--mut)}
.inside{list-style:none;margin:0 0 20px;padding:0;display:grid;gap:8px;counter-reset:k}
.inside li{counter-increment:k;display:grid;gap:2px;background:var(--w);border-radius:12px;padding:14px 16px 14px 58px;position:relative;border:2px solid #b8e6e2}
.inside li::before{content:counter(k,decimal-leading-zero);position:absolute;left:14px;top:14px;font:800 15px var(--disp);color:var(--acc)}
.inside b{font:800 1rem var(--disp)}
.buy{background:var(--aq);border:2px solid var(--deep);border-radius:22px;padding:22px 18px}
.buy p{margin:0 0 14px}.buy b{font:800 1.6rem var(--disp)}
/* footer */
.foot{background:var(--deep);color:#bfe9e5;margin-top:30px}
.foot-in{max-width:1080px;margin:0 auto;padding:30px 16px 38px;display:grid;gap:20px;font-size:.93rem}
.foot-b{font:800 1rem var(--disp);color:#fff;margin:0 0 6px}.foot-h{font:800 11px var(--disp);letter-spacing:.12em;text-transform:uppercase;color:var(--aq);margin:0 0 8px}
.foot p{margin:0}.foot ul{list-style:none;padding:0;margin:0;display:grid;gap:6px}.foot a{color:#e6fbff}
.foot-s{font-size:.82rem;color:#8fcfc9}
@media (min-width:720px){
 .top,.hero,.method,.wrap,.guides,.foot-in{padding-left:32px;padding-right:32px}
 .tools{grid-template-columns:repeat(3,1fr);padding:0 32px}
 .hero{padding-top:70px;padding-bottom:84px}.hero.small{padding-top:46px;padding-bottom:52px}
 .steps{grid-template-columns:1fr 1fr}
 .capture{grid-template-columns:1.1fr 1fr;align-items:center;padding:30px}
 .su-row{flex-direction:row}.su-row input{flex:1}
 .glist{grid-template-columns:1fr 1fr}
 .kitband{grid-template-columns:1fr auto;padding:30px}
 .fields{grid-template-columns:repeat(3,1fr)}
 .clcards,.packgrid{grid-template-columns:1fr 1fr}
 .foot-in{grid-template-columns:1.2fr 1fr 1fr}.foot-s{grid-column:1/-1}
}
@media (min-width:1000px){
 .panel{grid-template-columns:1.6fr 1fr}
 .readout{position:sticky;top:0;align-self:stretch}
 .steps{grid-template-columns:repeat(4,1fr)}
 .clcards{grid-template-columns:repeat(4,1fr)}
 .packgrid{grid-template-columns:repeat(3,1fr)}
 .cl-cols{columns:2;column-gap:28px}.cl-sec{break-inside:avoid}.cl-sec h2{margin-top:0;padding-top:18px}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.js .hero:not(.wiped) .clean{clip-path:polygon(0 0,64% 0,40% 100%,0 100%)}}
@media print{
 .top,.foot,.capture,.cl-bar,.hero .clean,.hero .dirty,.gl,.wrap:not(.clwrap),.tipline,.ex{display:none!important}
 body{background:#fff;font-size:12pt}.hero{background:none;padding:0 0 8pt}.hero h1{font-size:20pt}.hero .lede{display:none}
 .cl-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:8pt;margin:0 0 10pt}.cl-meta span{border-bottom:1px solid #000;padding-top:14pt;font-size:9pt}
 .cl label{border:0;padding:3pt 0;background:none}.cl input{width:14px;height:14px}.cl-sec h2{margin:10pt 0 4pt}.cl{gap:0}
 .cl-sec{break-inside:avoid}
}
