@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/fraunces-vietnamese-opsz-normal.cd51ab2b.woff2) format("woff2-variations");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/fraunces-latin-ext-opsz-normal.520bc597.woff2) format("woff2-variations");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/fraunces-latin-opsz-normal.ee130f78.woff2) format("woff2-variations");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_next/static/media/fraunces-vietnamese-opsz-italic.214b3df9.woff2) format("woff2-variations");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_next/static/media/fraunces-latin-ext-opsz-italic.c6aa751c.woff2) format("woff2-variations");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_next/static/media/fraunces-latin-opsz-italic.2f694256.woff2) format("woff2-variations");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/_next/static/media/instrument-sans-latin-ext-wght-normal.7db92424.woff2) format("woff2-variations");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/_next/static/media/instrument-sans-latin-wght-normal.ae05c57c.woff2) format("woff2-variations");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_next/static/media/jetbrains-mono-cyrillic-ext-wght-normal.0d2c2f66.woff2) format("woff2-variations");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_next/static/media/jetbrains-mono-cyrillic-wght-normal.23645aad.woff2) format("woff2-variations");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_next/static/media/jetbrains-mono-greek-wght-normal.c6c31cb1.woff2) format("woff2-variations");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_next/static/media/jetbrains-mono-vietnamese-wght-normal.93fc40a8.woff2) format("woff2-variations");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_next/static/media/jetbrains-mono-latin-ext-wght-normal.9c9751ca.woff2) format("woff2-variations");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_next/static/media/jetbrains-mono-latin-wght-normal.a865edea.woff2) format("woff2-variations");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}:root{--paper:#f5f0e6;--paper-2:#ece5d6;--card:#fffdf8;--ink:#1c1a16;--ink-2:#4a4539;--ink-3:#8a8373;--rule:#d9d0bd;--keep:#1f6b47;--keep-bg:#e3efe5;--wait:#a8660a;--wait-bg:#f6ead2;--drop:#b93a14;--drop-bg:#f7e1d6;--live:#1f6b47;--demo:#6d28d9;--radius:18px;--shadow:0 1px 0 rgba(28,26,22,0.06),0 8px 24px -12px rgba(28,26,22,0.18);--display:"Fraunces Variable","Iowan Old Style",Georgia,serif;--sans:"Instrument Sans Variable",system-ui,-apple-system,"Segoe UI",sans-serif;--mono:"JetBrains Mono Variable",ui-monospace,Menlo,monospace}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased;background-image:radial-gradient(rgba(28,26,22,.035) 1px,transparent 0);background-size:18px 18px}a{color:inherit}button{font:inherit}img{max-width:100%;display:block}.shell{max-width:480px;margin:0 auto;min-height:100dvh;padding:0 18px calc(96px + env(safe-area-inset-bottom));position:relative}.topbar{display:flex;align-items:center;justify-content:space-between;padding:18px 0 10px;position:-webkit-sticky;position:sticky;top:0;z-index:20;background:linear-gradient(var(--paper) 70%,rgba(245,240,230,0))}.wordmark{font-family:var(--display);font-weight:600;font-size:22px;letter-spacing:-.02em;text-decoration:none;display:flex;align-items:baseline;gap:2px}.wordmark em{font-style:italic;font-weight:400}.wordmark .q{color:var(--drop)}.mode{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:5px 9px;border-radius:999px;border:1.5px solid;text-decoration:none;display:inline-flex;gap:6px;align-items:center}.mode.demo{color:var(--demo)}.mode.live{color:var(--live)}.mode .dot{width:7px;height:7px;border-radius:50%;background:currentColor}.tabs{position:fixed;bottom:0;left:0;right:0;z-index:30;padding:8px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(255,253,248,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--rule)}.tabs-inner{max-width:480px;margin:0 auto;display:grid;grid-template-columns:repeat(5,1fr);align-items:end}.tab{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11px;color:var(--ink-3);text-decoration:none;padding:4px 0;font-weight:500}.tab svg{width:22px;height:22px}.tab.active{color:var(--ink)}.tab-cta{justify-self:center;width:54px;height:54px;border-radius:50%;background:var(--ink);color:var(--paper);display:grid;place-items:center;margin-top:-26px;box-shadow:0 8px 20px -6px rgba(28,26,22,.5);text-decoration:none}.tab-cta svg{width:26px;height:26px}.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}h1,h2,h3{font-family:var(--display);font-weight:500;letter-spacing:-.02em;margin:0}h1{font-size:36px;line-height:1.02}h1 em,h2 em{font-style:italic}h2{font-size:24px;line-height:1.1}h3{font-size:19px;line-height:1.15}.lede{color:var(--ink-2);font-size:15px;margin:8px 0 0}.muted{color:var(--ink-3)}.small{font-size:13px}.mono,.num{font-family:var(--mono)}.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.section{margin-top:28px}.section-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px}.section-head a{font-size:13px;color:var(--ink-2)}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;border:1px solid rgba(217,208,189,.6)}.card+.card{margin-top:12px}.card-link{text-decoration:none;display:block;transition:transform .15s ease}.card-link:active{transform:scale(.985)}.stamp{display:inline-flex;align-items:center;font-family:var(--mono);font-weight:700;font-size:12px;letter-spacing:.1em;padding:5px 9px 4px;border:2px solid;border-radius:6px;transform:rotate(-2.5deg);text-transform:uppercase;position:relative;white-space:nowrap}.stamp:after{content:"";position:absolute;inset:2px;border:1px solid;border-radius:3px;opacity:.45}.stamp.KEEP{color:var(--keep);background:var(--keep-bg)}.stamp.WAIT{color:var(--wait);background:var(--wait-bg)}.stamp.DROP{color:var(--drop);background:var(--drop-bg)}.stamp.big{font-size:20px;padding:10px 16px 8px;border-width:3px;transform:rotate(-4deg)}.vcard{display:grid;grid-template-columns:1fr auto;grid-gap:6px 12px;gap:6px 12px}.vcard .brand{font-size:12px;color:var(--ink-3)}.vcard .name{font-family:var(--display);font-size:19px;line-height:1.15}.vcard .why{grid-column:1/-1;color:var(--ink-2);font-size:14px;margin-top:4px}.vcard .meta{grid-column:1/-1;display:flex;gap:14px;align-items:center;margin-top:8px;font-size:12px;color:var(--ink-3)}.edge-KEEP{border-left:5px solid var(--keep)}.edge-WAIT{border-left:5px solid var(--wait)}.edge-DROP{border-left:5px solid var(--drop)}.conf{display:inline-flex;align-items:center;gap:6px}.conf-bar{width:54px;height:5px;border-radius:3px;background:var(--paper-2);overflow:hidden}.conf-bar span{display:block;height:100%;background:var(--ink);border-radius:3px}.hero{padding:6px 0 4px}.due{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--ink);color:var(--paper);border-radius:var(--radius);padding:16px 18px;text-decoration:none;margin-top:18px}.due .big{font-family:var(--display);font-size:20px}.due .sub{font-size:13px;opacity:.7}.due .go{width:40px;height:40px;border-radius:50%;background:var(--paper);color:var(--ink);display:grid;place-items:center;flex:none}.tally{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px;margin-top:14px}.tally div{background:var(--card);border-radius:14px;padding:12px;border:1px solid rgba(217,208,189,.6)}.tally b{display:block;font-family:var(--display);font-size:26px;font-weight:500;line-height:1}.tally span{font-size:12px;color:var(--ink-3)}.saving{margin-top:12px;background:var(--drop-bg);color:#6b2410;border-radius:14px;padding:12px 14px;font-size:14px;display:flex;gap:10px}.btn,.saving{align-items:center}.btn{display:inline-flex;justify-content:center;gap:8px;border:0;border-radius:999px;padding:14px 20px;font-weight:600;font-size:15px;cursor:pointer;text-decoration:none;background:var(--ink);color:var(--paper)}.btn.block{width:100%}.btn.ghost{background:transparent;color:var(--ink);border:1.5px solid var(--ink)}.btn.soft{background:var(--paper-2);color:var(--ink)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-row{display:flex;gap:10px}.btn-row>*{flex:1 1}.chips{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chip{flex:none;border:1.5px solid var(--rule);background:var(--card);border-radius:999px;padding:7px 12px;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;color:var(--ink-2)}.chip.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}.chip .sw{width:9px;height:9px;border-radius:50%}.chart{width:100%;height:auto;overflow:visible}.chart text{font-family:var(--mono);font-size:10px;fill:var(--ink-3)}.legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--ink-2);margin-top:8px}.legend i{display:inline-block;width:14px;height:0;border-top:2px dashed;vertical-align:middle;margin-right:6px}.stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--rule);margin-top:14px}.stats div{padding:12px 0 0}.stats b{display:block;font-family:var(--mono);font-size:18px;font-weight:600}.stats span{font-size:11px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em}.reasons{list-style:none;padding:0;margin:14px 0 0}.reasons li{padding:10px 0 10px 26px;border-top:1px dashed var(--rule);position:relative;font-size:14px;color:var(--ink-2)}.reasons li:before{content:"→";position:absolute;left:2px;color:var(--ink-3);font-family:var(--mono)}.compare{position:relative;border-radius:var(--radius);overflow:hidden;aspect-ratio:580/780;background:#ddd;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;box-shadow:var(--shadow)}.compare img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}.compare .after{-webkit-clip-path:inset(0 0 0 var(--x));clip-path:inset(0 0 0 var(--x))}.compare .divider{top:0;bottom:0;width:2px;transform:translateX(-1px)}.compare .divider,.compare .knob{position:absolute;left:var(--x);background:#fff}.compare .knob{top:50%;width:42px;height:42px;border-radius:50%;transform:translate(-50%,-50%);display:grid;place-items:center;box-shadow:0 4px 12px rgba(0,0,0,.25);font-family:var(--mono);font-size:14px}.compare .tag{position:absolute;top:12px;font-family:var(--mono);font-size:11px;background:rgba(28,26,22,.75);color:#fff;padding:4px 8px;border-radius:6px;letter-spacing:.05em}.compare .tag.l{left:12px}.compare .tag.r{right:12px}.cam{position:relative;border-radius:28px;overflow:hidden;aspect-ratio:3/4;background:#111}.cam img.preview,.cam video{width:100%;height:100%;object-fit:cover}.cam video.mirror{transform:scaleX(-1)}.cam .guide{position:absolute;inset:0;pointer-events:none}.cam .hint{position:absolute;left:12px;right:12px;bottom:12px;color:#fff;background:rgba(0,0,0,.55);border-radius:12px;padding:10px 12px;font-size:13px;text-align:center}.tips{display:grid;grid-gap:10px;gap:10px;margin-top:14px}.tip{display:flex;gap:12px;align-items:flex-start;font-size:14px;color:var(--ink-2)}.tip .n{flex:none;width:26px;height:26px;border-radius:50%;background:var(--ink);color:var(--paper);display:grid;place-items:center;font-family:var(--mono);font-size:12px}.field{display:block;margin-top:14px}.field>span{display:block;font-size:13px;font-weight:600;margin-bottom:6px}.input,select.input{width:100%;padding:13px 14px;border-radius:12px;border:1.5px solid var(--rule);background:var(--card);font:inherit;color:var(--ink)}.input:focus{outline:2px solid var(--ink);outline-offset:1px}.grid2{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.scores{display:grid;grid-gap:8px;gap:8px;margin-top:12px}.score-row{display:grid;grid-template-columns:88px 1fr 34px;align-items:center;grid-gap:10px;gap:10px;font-size:14px}.score-row .bar{height:8px;background:var(--paper-2);border-radius:4px;overflow:hidden}.score-row .bar span{display:block;height:100%;border-radius:4px}.swatches{display:grid;grid-template-columns:repeat(6,1fr);grid-gap:26px 8px;gap:26px 8px;margin-top:12px}.swatch{aspect-ratio:1;border-radius:50%;border:3px solid transparent;cursor:pointer;position:relative}.swatch.on{border-color:var(--ink);box-shadow:0 0 0 3px var(--paper) inset}.swatch small{position:absolute;bottom:-18px;left:50%;transform:translateX(-50%);font-family:var(--mono);font-size:9px;color:var(--ink-3)}.match{gap:14px;align-items:center}.match,.match .pair{display:flex}.match .pair span{width:44px;height:44px;border-radius:50%;border:3px solid var(--card)}.match .pair span+span{margin-left:-14px}.banner{border-radius:14px;padding:10px 12px;font-size:13px;display:flex;gap:8px;align-items:flex-start;margin-top:12px}.banner.demo{background:#efe7fb;color:#4c1d95}.banner.warn{background:var(--wait-bg);color:#6b4106}.banner.err{background:var(--drop-bg);color:#6b2410}.spinner{width:46px;height:46px;border-radius:50%;border:3px solid var(--paper-2);border-top-color:var(--ink);animation:spin .9s linear infinite;margin:0 auto}@keyframes spin{to{transform:rotate(1turn)}}.scan{position:absolute;left:0;right:0;height:30%;background:linear-gradient(transparent,rgba(255,255,255,.35),transparent);animation:scan 1.8s ease-in-out infinite}@keyframes scan{0%{top:-30%}to{top:100%}}.fade-in{animation:fade .4s ease both}@keyframes fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.back{display:inline-flex;align-items:center;gap:6px;font-size:14px;color:var(--ink-2);text-decoration:none;margin-bottom:10px}hr.rule{border:0;border-top:1px solid var(--rule);margin:22px 0}.foot{margin-top:36px;font-size:12px;color:var(--ink-3);text-align:center}@media (min-width:720px){body{font-size:16.5px}.shell{padding-top:12px}}