:root{color-scheme:light dark;--bg:#F3F0E8;--surface:#FBFAF6;--sunk:#EAE6DB;--line:#D9D4C7;--ink:#1B1A17;--ink2:#55524B;--ink3:#6E6A62;--accent:#0E5A55;--accent-soft:#DDEBE7;--on-accent:#FFFFFF;--ok:#3D6B22;--ok-bg:#E7EEDC;--warn:#8A5A00;--warn-bg:#FBEFD5;--err:#A3341F;--err-bg:#F8E3DC;--font-sans:"Pretendard",-apple-system,"Apple SD Gothic Neo","Noto Sans KR",sans-serif;--font-mono:"JetBrains Mono",ui-monospace,"SFMono-Regular","Menlo",monospace;--text-display:700 32px/40px var(--font-sans);--tracking-display:-0.03em;--text-title:700 24px/32px var(--font-sans);--tracking-title:-0.02em;--text-heading:600 18px/26px var(--font-sans);--tracking-heading:-0.015em;--text-body:400 16px/26px var(--font-sans);--tracking-body:-0.01em;--text-body-sm:400 14px/22px var(--font-sans);--tracking-body-sm:-0.005em;--text-label:600 14px/20px var(--font-sans);--tracking-label:-0.005em;--text-caption:500 12px/18px var(--font-sans);--tracking-caption:0em;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--s8:32px;--s10:40px;--s12:48px;--s16:64px;--r-sm:2px;--r-md:2px;--r-lg:4px;--r-xl:4px;--r-pill:999px;--touch:44px;--icon:24px;--icon-sm:16px;--shadow-sm:0 1px 2px rgba(0,0,0,.06);--shadow-md:0 1px 2px rgba(0,0,0,.05),0 10px 30px -12px rgba(0,0,0,.25);--dur-fast:120ms;--dur-base:200ms;--dur-slow:320ms;--ease:cubic-bezier(0.2,0,0,1)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#16150F;--surface:#1F1E18;--sunk:#2A2921;--line:#3A382F;--ink:#EEEBE2;--ink2:#B9B4A8;--ink3:#8D887C;--accent:#6CC3BA;--accent-soft:#1D3431;--on-accent:#0B1F1D;--ok:#A3CF83;--ok-bg:#232E19;--warn:#F2B544;--warn-bg:#3A2E12;--err:#F29380;--err-bg:#3A1E18}}:root[data-theme=dark]{color-scheme:dark;--bg:#16150F;--surface:#1F1E18;--sunk:#2A2921;--line:#3A382F;--ink:#EEEBE2;--ink2:#B9B4A8;--ink3:#8D887C;--accent:#6CC3BA;--accent-soft:#1D3431;--on-accent:#0B1F1D;--ok:#A3CF83;--ok-bg:#232E19;--warn:#F2B544;--warn-bg:#3A2E12;--err:#F29380;--err-bg:#3A1E18}:root[data-theme=light]{color-scheme:light}@media (prefers-reduced-motion:reduce){:root{--dur-fast:0ms;--dur-base:0ms;--dur-slow:0ms}}.t-display{font:var(--text-display);letter-spacing:var(--tracking-display)}.t-title{font:var(--text-title);letter-spacing:var(--tracking-title)}.t-heading{font:var(--text-heading);letter-spacing:var(--tracking-heading)}.t-body{font:var(--text-body);letter-spacing:var(--tracking-body)}.t-body-sm{font:var(--text-body-sm);letter-spacing:var(--tracking-body-sm)}.t-label{font:var(--text-label);letter-spacing:var(--tracking-label)}.t-caption{font:var(--text-caption);letter-spacing:var(--tracking-caption)}html{text-size-adjust:100%}body{word-break:keep-all;overflow-wrap:anywhere;line-break:strict}figure,h1,h2,h3,h4,p{margin:0}h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}img,svg,video{display:block;max-width:100%}button,input,select,textarea{font:inherit;letter-spacing:inherit;color:inherit}:where(time,td,.num,[data-num]){font-feature-settings:"tnum";font-variant-numeric:tabular-nums}code,kbd,pre{font-family:var(--font-mono);font-size:.92em}a{color:var(--accent);text-underline-offset:.2em}:focus-visible{outline-offset:3px}::selection{background:var(--accent-soft);color:var(--ink)}:where(button,[role=button],input[type=checkbox],input[type=radio],select){min-height:var(--touch)}:where(input[type=checkbox],input[type=radio]){min-height:auto;width:20px;height:20px;accent-color:var(--accent)}.ellipsis{text-overflow:ellipsis;min-width:0}.ellipsis,.visually-hidden{overflow:hidden;white-space:nowrap}.visually-hidden{position:absolute!important;width:1px;height:1px;clip:rect(0 0 0 0)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}:root{--font-serif:"Noto Serif KR","Nanum Myeongjo",serif;--wrap:1120px;--gut:48px;--hero:700 48px/1.12 var(--font-serif);--hero-track:-.03em;--h2:700 32px/1.25 var(--font-serif);--h2-track:-.02em;--dev-ms:600ms;--dev-ease:cubic-bezier(.2,0,0,1);--mark:16px}@media (max-width:640px){:root{--gut:16px;--hero:700 34px/1.2 var(--font-serif);--h2:700 24px/1.3 var(--font-serif)}}@media (prefers-reduced-motion:reduce){:root{--dev-ms:0ms}}body,html{background:var(--bg)}body{margin:0;color:var(--ink);font:var(--text-body);letter-spacing:var(--tracking-body);font-family:var(--font-sans);-webkit-font-smoothing:antialiased}*,:after,:before{box-sizing:border-box}figure,h1,h2,h3,h4,ol,p,ul{margin:0;padding:0}ol,ul{list-style:none}a{text-underline-offset:3px;text-decoration-thickness:1px}a,button{color:inherit}button{font:inherit;background:none;border:0;cursor:pointer;padding:0}.mono,.num{font-family:var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:0}.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}.muted{color:var(--ink2)}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:2px}.bar{border-bottom:1px solid var(--line)}.bar .wrap{display:flex;gap:24px;min-height:56px}.bar .wrap,.logo{align-items:center}.logo{font:700 17px/1 var(--font-serif);letter-spacing:-.02em;text-decoration:none;gap:8px;min-height:44px}.logo,.logo i{display:inline-flex}.logo i{gap:3px}.logo i b{width:6px;height:6px;border-radius:1px;background:var(--ink)}.logo i b:nth-child(2){background:linear-gradient(to top,var(--ink) 50%,transparent 50%);outline:1px solid var(--ink);outline-offset:-1px}.logo i b:nth-child(3){background:none;border:1px dashed var(--ink3)}.bar .sp{flex:1 1}.bar .tools{display:flex;align-items:center;gap:4px}.ibtn{display:inline-grid;place-items:center;min-width:44px;min-height:44px;border-radius:2px;color:var(--ink2)}.ibtn:hover{color:var(--ink);background:var(--sunk)}.ibtn svg{width:20px;height:20px}.who{font:var(--text-body-sm);color:var(--ink2)}.subnav{border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}.subnav::-webkit-scrollbar{display:none}.subnav ul{display:flex;gap:4px;max-width:var(--wrap);margin:0 auto;padding:0 calc(var(--gut) - 12px)}.subnav a{display:flex;align-items:center;min-height:44px;padding:0 12px;font:var(--text-body-sm);color:var(--ink2);text-decoration:none;white-space:nowrap;border-bottom:2px solid transparent;margin-bottom:-1px}.subnav a:hover{color:var(--ink)}.subnav a[aria-current=page]{color:var(--ink);border-bottom-color:var(--ink);font-weight:600}.head{padding:48px 0 32px}.kicker{font:var(--text-body-sm);color:var(--ink2);display:flex;flex-wrap:wrap;gap:4px 16px}.kicker b{color:var(--ink);font-weight:600}.hero{font:var(--hero);letter-spacing:var(--hero-track);margin:16px 0 12px;word-break:keep-all}.h2,.hero{text-wrap:balance}.h2{font:var(--h2);letter-spacing:var(--h2-track)}.lede{font-size:18px;line-height:1.6;color:var(--ink2);max-width:36em}.lede b{color:var(--ink);font-weight:600}.meta{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:20px;font:var(--text-body-sm);color:var(--ink2)}.meta b{color:var(--ink);font-weight:600}.sample{font:var(--text-caption);color:var(--ink2);border:1px dashed var(--ink3);padding:0 6px;border-radius:2px;margin-left:6px;vertical-align:2px}@media (max-width:640px){.head{padding:24px 0}.lede{font-size:16px}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 20px;border-radius:2px;font:var(--text-label);border:1px solid var(--ink);color:var(--ink);background:transparent;text-decoration:none;transition:background var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}.btn:hover{background:var(--sunk)}.btn:active{transform:translateY(1px)}.btn.main{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn.main:hover{filter:brightness(1.08)}.btn.quiet{border-color:var(--line)}.btn[aria-disabled=true],.btn[disabled]{border-style:dashed;border-color:var(--ink3);color:var(--ink2);cursor:not-allowed;background:transparent;filter:none}.btn svg{width:18px;height:18px}.chip-soreen{display:inline-flex;align-items:center;gap:6px;font:600 13px/20px var(--font-sans);padding:2px 10px;border-radius:999px;background:var(--warn-bg);color:var(--warn);white-space:nowrap}.chip-soreen:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.mk{flex:none;display:inline-block;width:var(--mark);height:var(--mark);border-radius:2px;position:relative;vertical-align:-2px}.mk.done{background:var(--ink)}.mk.now{outline:1.5px solid var(--ink);outline-offset:-1.5px;background:linear-gradient(to top,var(--ink) var(--fill,50%),transparent var(--fill,50%))}.mk.latent{border:1.5px dashed var(--ink3)}.mk.skip{border:1.5px dashed var(--line)}.mk.skip:after{content:"";position:absolute;left:2px;right:2px;top:50%;height:1.5px;background:var(--ink3);transform:rotate(-45deg)}.mk.sm{--mark:10px;border-width:1px}.strip{display:inline-flex;gap:3px;align-items:center}.map{border-top:2px solid var(--ink);margin-bottom:24px}.row{display:grid;grid-template-columns:64px 1fr 168px 88px;grid-gap:16px;gap:16px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line);min-height:72px}.row .d{font:var(--text-body-sm);font-family:var(--font-mono);color:var(--ink2)}.row .t{display:flex;gap:12px;align-items:baseline}.row .t .mk{transform:translateY(1px)}.row .nm{font:600 20px/28px var(--font-sans);letter-spacing:-.01em}.row .ln{display:block;font:var(--text-body-sm);color:var(--ink2);margin-top:2px}.row .sc{font:400 20px/1 var(--font-mono);text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.row .sc small{font-size:12px;color:var(--ink2)}.row a.go{text-decoration:none;min-height:44px;align-items:center}.row a.go:hover .nm{text-decoration:underline;text-underline-offset:4px}.row.latent .nm,.row.skip .nm{font-weight:500;color:var(--ink2)}.th{border:1px solid var(--line);background:var(--surface);position:relative;overflow:hidden;border-radius:2px}.th,.th-none{width:168px;height:96px}.row.now{grid-template-columns:64px 1fr 88px;background:var(--surface);margin:0 -24px;padding:28px 24px 28px 20px;border-left:4px solid var(--accent);border-bottom:1px solid var(--line);align-items:start}.row.now .nm{font:var(--h2);letter-spacing:var(--h2-track)}.row.now .t .mk{--mark:20px;transform:translateY(-2px)}.row.now .d{padding-top:12px}.row.now .sc{padding-top:10px}.slots{grid-column:2/4;display:grid;grid-template-columns:repeat(auto-fill,minmax(176px,1fr));grid-gap:12px;gap:12px;margin-top:20px}.slot{border:1px solid var(--ink);background:var(--bg);padding:12px 14px;font:var(--text-body-sm);min-height:80px}.slot b{display:block;font:500 13px/18px var(--font-sans);color:var(--ink2);margin-bottom:4px}.slot.no{border-style:dashed;border-color:var(--ink3)}.gate{grid-column:2/4;margin-top:20px;font-size:16px;line-height:1.6;max-width:40em}.gate b{font-weight:700}.row.now .acts{grid-column:2/4;display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.latent-fold{display:contents}@media (min-width:1024px){.latent-fold{display:grid;grid-template-columns:1fr 1fr;grid-column-gap:32px;column-gap:32px}.latent-fold .row{grid-template-columns:48px 1fr auto;min-height:56px;padding:12px 0}.latent-fold .row .nm{font-size:17px;line-height:24px}.latent-fold .th-none{display:none}}.map-foot{font:var(--text-body-sm);color:var(--ink2);margin:16px 0 64px}@media (max-width:640px){.row{grid-template-columns:36px 1fr 72px;gap:8px;padding:14px 0}.row .sc{display:none}.row .nm{font-size:17px;line-height:24px}.row .t{gap:10px}.th{width:72px;height:48px}.th-none{width:72px;height:0}.row.now{grid-template-columns:36px 1fr;margin:0 calc(-1 * var(--gut));padding:20px var(--gut) 24px calc(var(--gut) - 4px)}.row.now .sc{display:block;grid-column:2;text-align:left;padding:8px 0 0;font-size:18px}.row.now .d{padding-top:6px}.gate,.row.now .acts,.slots{grid-column:1/3}.slots{grid-template-columns:1fr 1fr}}.row.developing .mk{border:0;background:var(--ink);animation:dev-mk var(--dev-ms) var(--dev-ease) both}.row.developing .th{animation:dev-th var(--dev-ms) var(--dev-ease) both}.row.developing .th:after{content:"";position:absolute;inset:0;background:var(--bg);transform-origin:top;animation:dev-veil var(--dev-ms) var(--dev-ease) both}@keyframes dev-mk{0%{-webkit-clip-path:inset(100% 0 0 0);clip-path:inset(100% 0 0 0);outline:1.5px dashed var(--ink3)}to{-webkit-clip-path:inset(0 0 0 0);clip-path:inset(0 0 0 0)}}@keyframes dev-th{0%{filter:blur(6px) grayscale(1);opacity:.4}to{filter:none;opacity:1}}@keyframes dev-veil{0%{transform:scaleY(1)}to{transform:scaleY(0)}}.tp{position:absolute;inset:8px;display:flex;gap:4px}.tp.palette i{flex:1 1;border-radius:1px}.tp.lines{flex-direction:column;gap:7px;padding-top:6px}.tp.lines i{height:4px;background:var(--line);border-radius:1px}.tp.lines i:first-child{width:90%;background:var(--ink2)}.tp.lines i:nth-child(2){width:60%}.tp.lines i:nth-child(3){width:80%}.tp.lines i:nth-child(4){width:45%}.tp.wire{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1.3fr 1fr;grid-gap:4px;gap:4px}.tp.wire i{background:var(--sunk);border:1px solid var(--line)}.tp.wire i:first-child{grid-column:1/3}.tp.quote{font:700 13px/1.35 var(--font-serif);letter-spacing:-.02em;white-space:pre-line;align-items:center;padding-left:6px}.tp.variants i{flex:1 1;border:1px solid var(--line);background:var(--sunk)}.tp.variants i:nth-child(2){background:repeating-linear-gradient(0deg,var(--line) 0 1px,transparent 1px 6px)}.tp.variants i:nth-child(3){background:var(--ink)}.tp.pick{align-items:center;justify-content:center;font:600 12px/1.3 var(--font-sans);color:var(--ink2);text-align:center}.tp.tokens{flex-wrap:wrap;align-content:flex-start}.tp.tokens i{width:22px;height:22px;border-radius:1px}.tp.tokens span{width:100%;font:700 22px/1 var(--font-serif)}.tp.screens i{flex:1 1;border:1px solid var(--line);background:var(--sunk)}.tp.screens i:first-child{flex:.45 1}.tp.people{align-items:flex-end;justify-content:center;gap:8px}.tp.people i{width:14px;height:14px;border-radius:50%;background:var(--ink2)}.tp.doc{flex-direction:column;gap:5px}.tp.doc i{height:3px;background:var(--line)}.tp.doc i:first-child{height:8px;width:55%;background:var(--ink)}.tp.beforeafter i{flex:1 1;background:var(--sunk)}.tp.beforeafter i:last-child{background:var(--surface);border-left:2px solid var(--ink)}.tp.check{flex-direction:column;gap:6px}.tp.check i{height:6px;display:flex;gap:6px;align-items:center}.tp.check i:before{content:"";width:6px;height:6px;background:var(--ink)}.tp.check i:after{content:"";flex:1 1;height:3px;background:var(--line)}@media (max-width:640px){.tp{inset:5px;gap:3px}.tp.quote{font-size:9px}.tp.tokens span{font-size:13px}.tp.tokens i{width:12px;height:12px}.tp.lines{gap:5px}}.reqs{border-top:2px solid var(--ink)}.req{display:grid;grid-template-columns:1fr 200px 120px;grid-gap:24px;gap:24px;align-items:center;padding:24px 0;border-bottom:1px solid var(--line);text-decoration:none}.req:hover .rn{text-decoration:underline;text-underline-offset:5px}.req .rn{font:600 20px/28px var(--font-sans);letter-spacing:-.01em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.req .rl{font:var(--text-body-sm);color:var(--ink2);margin-top:4px}.req .rl b{color:var(--ink);font-weight:600}.req .why{font:var(--text-body-sm);margin-top:8px}.req .sc{font:400 20px/1 var(--font-mono);text-align:right}.req .sc small{display:block;font:var(--text-caption);color:var(--ink2);margin-top:6px;font-family:var(--font-sans)}.req .strip{gap:4px}@media (max-width:640px){.req{grid-template-columns:1fr auto;gap:12px 16px;padding:20px 0}.req .strip-cell{grid-column:1/3;order:3}.req .rn{font-size:17px;line-height:24px}}.listhead{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}.empty{padding:64px 0;max-width:32em}.empty .h2{margin:16px 0 12px}.empty p{color:var(--ink2);margin-bottom:24px}.skel{background:linear-gradient(90deg,var(--sunk) 0,var(--line) 40%,var(--sunk) 80%);background-size:300% 100%;animation:sk 1.4s linear infinite;border-radius:2px}@keyframes sk{to{background-position:-300% 0}}@media (prefers-reduced-motion:reduce){.skel{animation:none}}.note{border-left:2px solid var(--ink);padding:4px 0 4px 16px;margin:24px 0;max-width:40em}.note.err{border-left-color:var(--err)}.note.err b{color:var(--err)}.note p+p{margin-top:8px}.form{max-width:720px;padding-bottom:80px}.fld{margin-bottom:32px}.fld label,.fld legend{display:block;font:var(--text-label);margin-bottom:8px}.fld .hint{font:var(--text-body-sm);color:var(--ink2);margin-top:6px}.input{width:100%;min-height:48px;padding:12px 14px;font:var(--text-body);font-family:var(--font-sans);color:var(--ink);background:var(--surface);border:1px solid var(--ink3);border-radius:2px}.input::placeholder{color:var(--ink2)}.input[aria-invalid=true]{border-color:var(--err);border-width:2px}.fld .errmsg{font:var(--text-body-sm);color:var(--err);margin-top:6px}fieldset{border:0;margin:0;padding:0}.levels{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:12px;gap:12px}.lvl{position:relative;display:block;border:1px solid var(--line);padding:16px;cursor:pointer;min-height:100%;background:var(--surface)}.lvl input{position:absolute;opacity:0}.lvl:has(input:checked){border:2px solid var(--ink);padding:15px}.lvl:has(input:focus-visible){outline:3px solid var(--accent);outline-offset:2px}.lvl .ln{font:700 20px/1.2 var(--font-serif);display:flex;justify-content:space-between;gap:8px}.lvl .ln small{font:var(--text-caption);font-family:var(--font-sans);color:var(--ink2);align-self:center}.lvl p{color:var(--ink2);margin-top:8px}.lvl dl,.lvl p{font:var(--text-body-sm)}.lvl dl{margin:12px 0 0}.lvl dt{color:var(--ink2);font-size:12px;margin-top:8px}.lvl dd{margin:0}.lvl .strip{margin-top:12px}@media (max-width:640px){.levels{grid-template-columns:1fr}}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none;margin-bottom:32px}.tabs button{min-height:44px;padding:0 14px;font:var(--text-body-sm);color:var(--ink2);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}.tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--ink);font-weight:600}.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}.filters button{min-height:36px;padding:0 14px;border:1px solid var(--line);border-radius:999px;font:var(--text-body-sm);color:var(--ink2)}.filters button[aria-pressed=true]{border-color:var(--ink);color:var(--ink);font-weight:600}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));grid-gap:24px 20px;gap:24px 20px}.card{display:flex;flex-direction:column}.card .pick{display:block;text-align:left;width:100%;border:1px solid var(--line);background:var(--surface);border-radius:2px;position:relative;transition:border-color var(--dur-fast) var(--ease)}.card .pick:hover{border-color:var(--ink3)}.card .pick[aria-pressed=true]{border:2px solid var(--ink)}.card .pick[aria-pressed=true] .fig:after{content:"";position:absolute;inset:10px 12px;border:2.5px solid var(--ink);border-radius:50% 46% 52% 44%/48% 52% 46% 54%;pointer-events:none;transform:rotate(-3deg);box-shadow:0 0 0 2px #F6F4EE}.card .pick[aria-pressed=true] .fig{--ink:#1B1A17}.card .pick .fig{height:150px;border-bottom:1px solid var(--line);position:relative;overflow:hidden;background:#F6F4EE}.card .pick .txt{padding:12px 14px 14px}.card .id{font:var(--text-caption);font-family:var(--font-mono);color:var(--ink2)}.card .easy{font:600 16px/24px var(--font-sans);margin-top:2px}.card .pro{font:var(--text-body-sm);color:var(--ink2);margin-top:2px}.card details{font:var(--text-body-sm);margin-top:8px}.card summary{cursor:pointer;color:var(--ink2);min-height:32px;display:flex;align-items:center}.card dl{margin:4px 0 0}.card dt{font-size:12px;color:var(--ink2);margin-top:6px}.card dd{margin:0}@media (max-width:640px){.cards{grid-template-columns:1fr 1fr;gap:16px 12px}.card .pick .fig{height:104px}.card .easy{font-size:14px;line-height:20px}.card .pro{display:none}.card .pick .txt{padding:10px}}.tray{position:-webkit-sticky;position:sticky;bottom:0;background:var(--surface);border-top:1px solid var(--ink);margin-top:40px;z-index:5}.tray .wrap{display:flex;align-items:center;gap:16px;min-height:72px;flex-wrap:wrap;padding-top:12px;padding-bottom:12px}.tray .sum{flex:1 1;min-width:200px;font:var(--text-body-sm)}.tray .sum b{font-weight:600}.vs{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px;max-width:880px}.vs button{border:1px solid var(--line);background:var(--surface);text-align:left;border-radius:2px;transition:border-color var(--dur-fast) var(--ease)}.vs button:hover{border-color:var(--ink3)}.vs button[aria-pressed=true]{border:2px solid var(--ink)}.vs .fig{height:240px;position:relative;overflow:hidden;border-bottom:1px solid var(--line);background:#F6F4EE}.vs .cap{padding:14px 16px;font:600 18px/1.3 var(--font-sans)}.vsprog{display:flex;gap:6px;margin:0 0 20px}@media (max-width:640px){.vs .fig{height:160px}}.taste{font:var(--h2);letter-spacing:var(--h2-track);margin:24px 0 8px}.urlrow{display:flex;gap:8px;max-width:720px}.urlrow .input{flex:1 1}.shots4{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:12px;gap:12px;margin-top:24px}.shots4 figure{border:1px solid var(--line);background:var(--surface)}.shots4 .sh{aspect-ratio:3/4;position:relative;overflow:hidden;cursor:crosshair}.shots4 .sh.pc{aspect-ratio:4/3}.shots4 figcaption{font:var(--text-caption);color:var(--ink2);padding:6px 8px;border-top:1px solid var(--line)}.circle{position:absolute;width:64px;height:48px;border:2px solid var(--ink);border-radius:50% 46% 52% 44%/48% 52% 46% 54%;transform:translate(-50%,-50%) rotate(-4deg);pointer-events:none}.circle span{position:absolute;top:100%;left:50%;transform:translateX(-50%);font:600 12px/1.4 var(--font-sans);background:var(--ink);color:var(--bg);padding:1px 6px;white-space:nowrap;margin-top:4px}@media (max-width:640px){.shots4{grid-template-columns:1fr 1fr}.urlrow{flex-direction:column}}.said{margin-top:32px;display:grid;grid-template-columns:repeat(4,1fr);grid-gap:0;gap:0;border-top:1px solid var(--line)}.said div{padding:16px 16px 16px 0;border-bottom:1px solid var(--line)}.said dt{font:var(--text-caption);color:var(--ink2)}.said dd{margin:4px 0 0;font:var(--text-body-sm)}.sw{display:inline-block;width:14px;height:14px;border:1px solid var(--line);vertical-align:-2px;margin-right:2px}@media (max-width:640px){.said{grid-template-columns:1fr 1fr}}.drop{border:1.5px dashed var(--ink3);padding:40px 24px;text-align:center;max-width:720px;background:var(--surface)}.drop p{color:var(--ink2);font:var(--text-body-sm);margin-top:8px}.files{max-width:720px;margin-top:16px}.files li{display:grid;grid-template-columns:48px 1fr auto;grid-gap:12px;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);font:var(--text-body-sm)}.files .fx{width:48px;height:48px;background:var(--sunk);border:1px solid var(--line)}.trend{border-top:1px solid var(--line);padding:20px 0;display:grid;grid-template-columns:1fr 1fr;grid-gap:24px;gap:24px;max-width:880px}.trend h3{font:600 18px/26px var(--font-sans)}.trend p{font:var(--text-body-sm);color:var(--ink2);margin-top:4px}@media (max-width:640px){.trend{grid-template-columns:1fr;gap:8px}}.tbl{width:100%;border-collapse:collapse;font:var(--text-body-sm);margin-top:16px}.tbl th{text-align:left;font-weight:500;color:var(--ink2);font-size:12px;padding:8px 12px 8px 0;border-bottom:1px solid var(--ink)}.tbl td{padding:12px 12px 12px 0;border-bottom:1px solid var(--line);vertical-align:top}.tbl td.mono{white-space:nowrap}.tblwrap{overflow-x:auto}.bench{display:grid;grid-template-columns:260px 1fr 300px;grid-gap:40px;gap:40px;padding-bottom:80px;align-items:start}.bench h2{font:var(--text-label);color:var(--ink2);margin-bottom:12px}.bench section+section{margin-top:32px}.todo li{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);font:var(--text-body-sm)}.todo li:before{content:counter(t);counter-increment:t;font-family:var(--font-mono);color:var(--ink2);width:16px;flex:none}.todo{counter-reset:t}.tip{font:var(--text-body-sm);line-height:1.7;border-left:2px solid var(--line);padding-left:12px}.tip b{display:block;font-weight:600;margin-bottom:4px}.bslots li{display:grid;grid-template-columns:20px 1fr auto;grid-gap:12px;gap:12px;align-items:start;padding:16px 0;border-bottom:1px solid var(--line)}.bslots .mk{margin-top:3px}.bslots .sn{font:600 16px/24px var(--font-sans)}.bslots .sv{font:var(--text-body-sm);color:var(--ink2);margin-top:2px;overflow-wrap:anywhere}.bslots .sv code{font-family:var(--font-mono);font-size:13px;color:var(--ink)}.bslots .ac{font:var(--text-body-sm)}.scorebox .tot{display:flex;align-items:baseline;gap:8px;margin-bottom:12px}.scorebox .tot b{font:600 40px/1 var(--font-mono)}.scorebox .tot span{color:var(--ink2);font:var(--text-body-sm)}.bars li{display:grid;grid-template-columns:56px 1fr 36px;grid-gap:10px;gap:10px;align-items:center;padding:6px 0;font:var(--text-body-sm)}.bars .tr{height:4px;background:var(--line);position:relative}.bars .tr i{position:absolute;left:0;top:0;bottom:0;background:var(--ink)}.bars .tr:after{content:"";position:absolute;top:-4px;bottom:-4px;width:1.5px;background:var(--ink2);left:var(--pass,70%)}.bars .v{font-family:var(--font-mono);text-align:right}.refuse{margin-top:16px;font:var(--text-body-sm)}.refuse li{padding:8px 0 8px 18px;position:relative;border-bottom:1px solid var(--line)}.refuse li:before{content:"";position:absolute;left:0;top:14px;width:8px;height:8px;border:1.5px dashed var(--ink3)}.refuse li.ok:before{border:0;background:var(--ink)}.ro{font:var(--text-body-sm);color:var(--ink2);margin-top:12px}@media (max-width:1023px){.bench{grid-template-columns:1fr 280px}.bench .left{grid-column:1/3;order:3}}@media (max-width:640px){.bench{grid-template-columns:1fr;gap:32px}.bench .left{grid-column:auto}}.cmpbar{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-bottom:24px}.seg{display:inline-flex;border:1px solid var(--line);border-radius:2px}.seg button{min-height:40px;padding:0 14px;font:var(--text-body-sm);color:var(--ink2)}.seg button[aria-pressed=true]{background:var(--ink);color:var(--bg);font-weight:600}.vars{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:24px;gap:24px;padding-bottom:80px}.var .frame{border:1px solid var(--line);background:#fff;height:420px;overflow:hidden;position:relative;display:flex;justify-content:center}.var .frame.dark{background:#111}.var .frame .pv{width:100%;height:100%;position:relative}.var .frame.m .pv{width:44%;border-left:1px solid var(--line);border-right:1px solid var(--line)}.var h3{display:flex;justify-content:space-between;align-items:baseline;margin-top:16px;font:600 20px/28px var(--font-sans)}.var h3 .num{font-size:20px;font-weight:400}.var .why{font:var(--text-body-sm);color:var(--ink2);margin-top:6px}.var .refs{font:var(--text-caption);font-family:var(--font-mono);color:var(--ink2);margin-top:8px}.var .pickit{margin-top:16px;width:100%}.var .rec{font:var(--text-caption);color:var(--ink2);margin-left:6px}.ondeck{font:var(--text-body-sm);color:var(--ink2);margin-top:6px}@media (max-width:900px){.vars{grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:86%;overflow-x:auto;scroll-snap-type:x mandatory;gap:16px;margin:0 calc(-1 * var(--gut));padding:0 var(--gut) 64px}.var{scroll-snap-align:center}.var .frame{height:360px}}.pa{position:absolute;inset:0;background:#1F2B27;color:#ECE9E1;display:flex}.pa i{flex:1 1;border-right:2px solid #ece9e1}.pa i:last-child{border:0}.pa b{left:10%;bottom:12%;font:700 22px/1.2 var(--font-serif);width:80%}.pa b,.pb{position:absolute}.pb{inset:0;background:#F4F0E4;background-image:repeating-linear-gradient(0deg,#D8D0BC 0 1px,transparent 1px 14px),repeating-linear-gradient(90deg,#E4DDCB 0 1px,transparent 1px 14px);color:#2A2722}.pb b{left:10%;top:14%;font:600 20px/1.3 var(--font-sans);width:80%}.pb b,.pb em{position:absolute}.pb em{right:10%;bottom:14%;font:italic 500 14px/1.3 var(--font-serif);transform:rotate(-3deg)}.pc{position:absolute;inset:0;background:#111;color:#F2F2F0;display:grid;place-items:center;text-align:center}.pc b{font:600 72px/1 var(--font-mono)}.pc span{display:block;font:400 13px/1.4 var(--font-sans);opacity:.8;margin-top:8px}.frame.dark .pb{filter:invert(.92) hue-rotate(180deg)}.frame.m .pc b{font-size:40px}.frame.m .pa b,.frame.m .pb b{font-size:15px}.crit{border-top:2px solid var(--ink);padding:24px 0 40px;display:grid;grid-template-columns:1fr 320px;grid-gap:48px;gap:48px}.crit h3{font:var(--text-label);color:var(--ink2);margin:20px 0 8px}.crit h3:first-child{margin-top:0}.crit .better li,.crit .drops li,.crit .keep li{padding:8px 0 8px 20px;position:relative;border-bottom:1px solid var(--line);font:var(--text-body-sm)}.crit .better li:before,.crit .drops li:before,.crit .keep li:before{position:absolute;left:0;font-family:var(--font-mono);color:var(--ink2)}.crit .keep li:before{content:"="}.crit .better li:before{content:"↑"}.crit .drops li:before{content:"−"}.crit .line{font:500 20px/1.5 var(--font-serif);letter-spacing:-.01em;margin-top:8px}.crit .who{display:flex;gap:12px;flex-wrap:wrap;font:var(--text-body-sm);color:var(--ink2);margin-bottom:16px}.crit .basis{font:var(--text-caption);color:var(--ink2);display:block}.crit .basis.zero{color:var(--ink);font-weight:600}.crit .basis.zero:before{content:"";display:inline-block;width:8px;height:8px;border:1.5px dashed var(--ink3);margin-right:6px;vertical-align:-1px}.rules li{display:flex;gap:10px;padding:8px 0;font:var(--text-body-sm);border-bottom:1px solid var(--line)}@media (max-width:900px){.crit{grid-template-columns:1fr;gap:24px}}.doc{display:grid;grid-template-columns:200px 1fr;grid-gap:64px;gap:64px;padding-bottom:96px}.toc{position:-webkit-sticky;position:sticky;top:24px;align-self:start;font:var(--text-body-sm)}.toc a{display:flex;gap:8px;min-height:36px;align-items:center;text-decoration:none;color:var(--ink2)}.toc a:hover{color:var(--ink)}.toc .num{font-size:12px;width:20px}.doc section{padding:40px 0;border-top:1px solid var(--line);max-width:44em}.doc section:first-child{border-top:2px solid var(--ink);padding-top:32px}.doc h2{font:var(--h2);letter-spacing:var(--h2-track);margin-bottom:16px}.doc p{margin-bottom:12px}.doc .big{font:700 64px/1 var(--font-mono);letter-spacing:-.02em}.doc .why{font:500 22px/1.5 var(--font-serif);letter-spacing:-.01em;margin:16px 0}.doc figure{border:1px solid var(--line);background:var(--surface);height:240px;position:relative;margin:16px 0}.doc figcaption{font:var(--text-caption);color:var(--ink2);position:absolute;left:12px}@media (max-width:900px){.doc{grid-template-columns:1fr;gap:0}.toc{position:static;display:flex;overflow-x:auto;gap:8px;border-bottom:1px solid var(--line);margin-bottom:16px}.toc a{white-space:nowrap}.doc .big{font-size:48px}}.assets{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:32px 24px;gap:32px 24px;padding-bottom:80px}.asset .ap{height:180px;border:1px solid var(--line);background:var(--surface);display:grid;place-items:center;position:relative;overflow:hidden}.asset.miss .ap{border-style:dashed;border-color:var(--ink3);background:transparent}.asset h3{font:600 16px/24px var(--font-sans);margin-top:12px}.asset dl{display:grid;grid-template-columns:72px 1fr;grid-gap:4px 8px;gap:4px 8px;margin:8px 0 0;font:var(--text-body-sm)}.asset dt{color:var(--ink2)}.asset dd{margin:0}.asset .dl{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.asset .dl a{font:var(--text-caption);font-family:var(--font-mono);border:1px solid var(--line);padding:6px 10px;min-height:32px;display:inline-flex;align-items:center;text-decoration:none}.asset .miss-why{font:var(--text-body-sm);margin-top:8px}.iconset{display:grid;grid-template-columns:repeat(7,28px);grid-gap:14px;gap:14px}.iconset svg{width:24px;height:24px;color:var(--ink)}.polish{display:grid;grid-template-columns:1fr 1fr;grid-gap:48px;gap:48px;padding-bottom:80px}.checks h3{font:var(--text-label);color:var(--ink2);margin:24px 0 4px}.checks h3:first-child{margin-top:0}.checks label{display:flex;gap:12px;align-items:center;min-height:44px;border-bottom:1px solid var(--line);font:var(--text-body-sm);cursor:pointer}.checks input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border:1.5px dashed var(--ink3);border-radius:2px;flex:none;margin:0}.checks input:checked{border:0;background:var(--ink)}.checks input:checked+span{color:var(--ink2)}.ba{position:relative;height:360px;border:1px solid var(--line);overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ba .side{position:absolute;inset:0;padding:24px}.ba .after,.ba .before{background:var(--surface)}.ba .after{-webkit-clip-path:inset(0 0 0 var(--cut,50%));clip-path:inset(0 0 0 var(--cut,50%))}.ba .handle{top:0;bottom:0;left:var(--cut,50%);width:2px}.ba .handle,.ba .lab{position:absolute;background:var(--ink)}.ba .lab{top:8px;font:var(--text-caption);color:var(--bg);padding:2px 6px}.ba input[type=range]{position:absolute;inset:auto 0 0 0;width:100%;opacity:0;height:100%;cursor:ew-resize;margin:0}.ba .mock{display:flex;flex-direction:column;gap:12px}.ba .mock .r{display:flex;gap:10px;align-items:center;font:var(--text-body-sm)}@media (max-width:900px){.polish{grid-template-columns:1fr}.ba{height:280px}}.wire{--accent:#555;--on-accent:#fff;--warn:#333;--warn-bg:#ddd;--ok:#333;--err:#333;--bg:#fff;--surface:#fff;--sunk:#eee;--line:#ccc;--ink:#222;--ink2:#555;--ink3:#777;--font-serif:var(--font-sans)}.wire .asset .ap,.wire .card .fig,.wire .doc figure,.wire .shots4 .sh,.wire .th,.wire .var .frame,.wire .vs .fig{background:#e6e6e6!important}.wire .asset .ap>*,.wire .card .fig>*,.wire .doc figure>*,.wire .shots4 .sh>*,.wire .th>*,.wire .var .frame>*,.wire .vs .fig>*{display:none}.wire .asset .ap:before,.wire .card .fig:before,.wire .th:before,.wire .var .frame:before{content:"";position:absolute;inset:0;background:linear-gradient(to top right,transparent calc(50% - .5px),#bbb 50%,transparent calc(50% + .5px)),linear-gradient(to bottom right,transparent calc(50% - .5px),#bbb 50%,transparent calc(50% + .5px))}.wire .doc h2,.wire .h2,.wire .hero,.wire .row.now .nm,.wire .taste{font-family:var(--font-sans)}.wire .wiretag{display:block}.wiretag{display:none;position:fixed;right:12px;bottom:12px;z-index:9;background:#222;color:#fff;padding:4px 8px}.demo,.wiretag{font:var(--text-caption)}.demo{border-top:1px dashed var(--line);margin-top:48px;padding:16px 0 32px;color:var(--ink2)}.demo a{display:inline-flex;align-items:center;min-height:44px;min-width:44px;padding:0 8px;justify-content:center}.logo,.who{white-space:nowrap}@media (max-width:640px){.who{display:none}.row{align-items:start}.row .d{padding-top:4px}.row .th{margin-top:2px}}.done-fold{display:contents}@media (min-width:1024px){.head{padding:40px 0 24px}.hero{margin:12px 0 8px}.done-fold{display:grid;grid-template-columns:1fr 1fr;grid-column-gap:32px;column-gap:32px}.done-fold .row{grid-template-columns:44px 1fr 112px;min-height:0;padding:12px 0;gap:12px}.done-fold .row .sc{display:none}.done-fold .row .nm{font-size:17px;line-height:24px}.done-fold .th{width:112px;height:64px}.done-fold .tp{inset:6px;gap:3px}.done-fold .tp.quote{font-size:10px}.row.now{padding:24px 24px 24px 20px}.gate,.row.now .acts,.slots{margin-top:16px}}.gate,.lede,.row .ln{text-wrap:pretty}@media (min-width:1024px){.head{padding:32px 0 16px}.lede{max-width:48em}.meta{margin-top:12px}.slot{min-height:64px;padding:10px 12px}.latent-fold .row{padding:8px 0;min-height:52px}.gate,.row.now .acts{margin-top:12px}.map-foot{margin:12px 0 48px}}.kicker a{display:inline-flex;align-items:center;gap:4px;min-height:44px;text-decoration:none}.kicker a svg{width:16px;height:16px}.fld>label[for]{display:flex;align-items:flex-end;min-height:44px;margin-bottom:4px}.fld>label:not([for]){display:flex;align-items:center;min-height:44px}.card summary,.filters button,.seg button{min-height:44px}.bench p a,.bslots .ac a{display:inline-flex;align-items:center;min-height:44px;min-width:44px}.asset .dl a,.toc a{min-height:44px}.doc figcaption{background:var(--surface);color:var(--ink2)!important;padding:2px 6px;left:8px;bottom:8px}.asset .dl a,.filters button,.kicker a{min-width:48px;justify-content:center}.asset .dl a{gap:4px;white-space:nowrap}.asset .dl a svg{width:14px;height:14px;flex:none}.vars>li.var{display:flex;flex-direction:column}.var .pickit{margin-top:auto}.var .refs{font-family:var(--font-sans);margin-bottom:16px}.done-fold .row,.latent-fold .row{align-items:start}.done-fold .row .d,.latent-fold .row .d{padding-top:4px}.latent-fold .row .sc{padding-top:6px}.doc figure:has(img){height:auto;overflow:hidden}.doc figure img{max-height:420px;object-fit:cover;object-position:top}.doc figure:has(img) figcaption{position:static;display:block;padding:8px 12px;border-top:1px solid var(--line);background:var(--surface)}.checks>div+div{margin-top:24px}.checks>div>h3:first-child{margin-top:0}.asset .ap>img{height:min(120px,66%)!important;width:auto!important;max-width:70%!important;max-height:none!important;object-fit:contain}.hero.is-long{font-size:clamp(26px,6.4vw,40px);line-height:1.25}.row .th>img{width:200%;height:auto;max-width:none;inset:0 auto auto 0;object-fit:fill}@media (max-width:640px){.tp.pick,.tp.quote{font-size:0;justify-content:center;align-items:center;padding:0}.tp.quote:before{content:"«»";font:700 18px/1 var(--font-serif);color:var(--ink)}.tp.pick:before{content:"◯";font:600 18px/1 var(--font-sans);color:var(--ink2)}}.bench h2 .num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:0;color:var(--ink);margin-left:4px;word-spacing:-.15em}.map:not(:has(.latent-fold))+.map-foot{display:none}.th img{object-fit:cover;object-position:top;display:block}.frame iframe,.th img{position:absolute;inset:0;width:100%;height:100%}.frame iframe{border:0;background:#fff}.frame.dark iframe{background:#111}.shots4 .sh img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top}.login{max-width:360px;padding:96px 0}.login .hero{margin-bottom:24px}.md{max-width:44em}.md h1,.md h2,.md h3{font:var(--text-label);margin:24px 0 8px}.md li,.md p{font:var(--text-body-sm);color:var(--ink);margin:6px 0}.md ul{list-style:disc}.md ol,.md ul{padding-left:20px}.md ol{list-style:decimal}.md table{border-collapse:collapse;font:var(--text-body-sm);margin:12px 0;display:block;overflow-x:auto}.md td,.md th{border-bottom:1px solid var(--line);padding:6px 10px;text-align:left;vertical-align:top}.md code{font-family:var(--font-mono);font-size:.92em}.md blockquote{border-left:2px solid var(--line);padding-left:12px;color:var(--ink2);margin:8px 0}.src{font:var(--text-caption);color:var(--ink2);margin-top:8px}.src a{color:inherit}.evlog{margin-top:48px;border-top:1px solid var(--line);padding-top:16px}.evlog li{display:flex;gap:12px;font:var(--text-caption);color:var(--ink2);padding:4px 0}.evlog li .mono{flex:none}.card dd a,.doc .refuse a,.src a{display:inline-flex;align-items:center;min-height:44px;min-width:44px;overflow-wrap:anywhere}.bench-steps{display:flex;flex-wrap:wrap;gap:4px;margin:0 0 24px}.bench-steps a{display:inline-flex;align-items:center;gap:6px;min-height:44px;min-width:44px;padding:0 8px;text-decoration:none;color:var(--ink2)}.bench-steps a[aria-current=page]{color:var(--ink);text-decoration:underline;text-underline-offset:6px}.th .th-d{display:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .th .th-l{display:none}:root:not([data-theme=light]) .th .th-d{display:block}}:root[data-theme=dark] .th .th-l{display:none}:root[data-theme=dark] .th .th-d{display:block}