:root{--bg:#fff;--surface:#fff;--ink:#121417;--muted:#5b6270;--line:#d8dce3;--chip-bg:#f2f3f6;--accent:#f5a400;--focus:#2f4bd8;--cost-composite:#1f8a4c;--cost-paint:#b7791f;--cost-layout:#c2410c;--stage-bg:#f7f8fa;--stage-dot:#e1e4ea;--hint-bg:#121417c7;--code-bg:#111318;--code-ink:#e6e8ec;--code-line:#262a31;--font-body:"Pretendard Variable", "Pretendard", system-ui, -apple-system, "Apple SD Gothic Neo", sans-serif;--font-display:var(--font-body);--font-mono:"SF Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg:#0e1013;--surface:#16191e;--ink:#eceef2;--muted:#9aa1ad;--line:#2a2f37;--chip-bg:#1f232a;--cost-composite:#5cc98a;--cost-paint:#e0b35a;--cost-layout:#f08a5d;--stage-bg:#e9ebef;--stage-dot:#d3d7de;--code-bg:#0a0c0f;--code-line:#20242b}}:root[data-theme=dark]{color-scheme:dark;--bg:#0e1013;--surface:#16191e;--ink:#eceef2;--muted:#9aa1ad;--line:#2a2f37;--chip-bg:#1f232a;--cost-composite:#5cc98a;--cost-paint:#e0b35a;--cost-layout:#f08a5d;--stage-bg:#e9ebef;--stage-dot:#d3d7de;--code-bg:#0a0c0f;--code-line:#20242b}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:15px;line-height:1.6}.page{max-width:1240px;margin:0 auto;padding-block:40px 64px;padding-inline:20px}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.masthead{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:end;gap:32px;margin-bottom:28px;padding-bottom:28px;display:grid}.eyebrow{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 8px;font-size:12px}.eyebrow b{color:var(--ink);font-weight:500}h1{font-family:var(--font-display);letter-spacing:-.04em;text-wrap:balance;margin:0 0 12px;font-size:clamp(40px,6vw,64px);font-weight:800;line-height:1}h1 .playhead{background:var(--accent);vertical-align:-.04em;width:.12em;height:.82em;margin-left:.08em;display:inline-block}.intro{max-width:60ch;color:var(--muted);margin:0}.motion-note{border-left:3px solid var(--accent);background:var(--surface);max-width:60ch;margin:12px 0 0;padding:8px 12px;font-size:14px}.legend{gap:10px;margin:0;font-size:13px;display:grid}.legend div{grid-template-columns:96px 1fr;align-items:baseline;gap:12px;display:grid}.legend dt{margin:0}.legend dd{color:var(--muted);margin:0}.legend-source{color:var(--muted);margin:4px 0 0;font-size:12px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{background:var(--chip-bg);white-space:nowrap;border-radius:6px;align-items:center;gap:6px;padding:2px 8px;font-size:12px;line-height:20px;display:inline-flex}.chip:before{content:"";background:var(--dot,transparent);border-radius:2px;width:7px;height:7px}.chip-tag{font-family:var(--font-mono);letter-spacing:.04em;box-shadow:inset 0 0 0 1px var(--line);background:0 0;font-size:11px;font-weight:500}.chip-tag:before{display:none}.chip-tag.is-js{background:var(--ink);color:var(--bg);box-shadow:none}.cost-composite{--dot:var(--cost-composite)}.cost-paint{--dot:var(--cost-paint)}.cost-layout{--dot:var(--cost-layout)}.grid{grid-template-columns:1fr;gap:16px;margin:0;padding:0;list-style:none;display:grid}@media (width>=540px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1040px){.grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;flex-direction:column;height:100%;display:flex}.card-body{flex-direction:column;flex:1;gap:6px;padding:14px 16px 16px;display:flex;position:relative}.card-title{margin:0;font-size:16px;font-weight:600;line-height:1.35}.card-open{text-align:left;cursor:pointer;font-weight:inherit;color:inherit;background:0 0;border:0;padding:0;text-decoration:none}.card-open:after{content:"";position:absolute;inset:0}.card-open:focus-visible{outline:none}.card-open:focus-visible:after{outline:2px solid var(--focus);outline-offset:-4px;border-radius:10px}.card-body:hover .card-title{text-underline-offset:3px;text-decoration:underline}.card-summary{color:var(--muted);margin:0 0 6px;font-size:13px;line-height:1.55}.card .chips{margin-top:auto}.stage-wrap{position:relative}.stage{aspect-ratio:4/3;contain:layout paint;background-color:var(--stage-bg);background-image:radial-gradient(var(--stage-dot) 1px, transparent 1px);color:#15171b;max-width:100%;font-family:var(--font-body);background-size:16px 16px;font-size:13px;line-height:1.5;position:relative;overflow:hidden}.card .stage{border-bottom:1px solid var(--line);border-radius:13px 13px 0 0}.stage:not(.is-playing):is([data-kind=once],[data-kind=loop]) *,.stage:not(.is-playing):is([data-kind=once],[data-kind=loop]) :before,.stage:not(.is-playing):is([data-kind=once],[data-kind=loop]) :after,.stage:not(.is-playing) .morph-blob{animation:none!important}.stage-hint{background:var(--hint-bg);color:#fff;font-family:var(--font-mono);pointer-events:none;border-radius:999px;align-items:center;gap:6px;padding:2px 8px;font-size:11px;line-height:18px;display:inline-flex;position:absolute;bottom:8px;left:8px}.stage-hint:before{content:"";background:#9aa1ad;border-radius:50%;width:6px;height:6px}.stage.is-playing+.stage-hint:before{background:var(--accent)}.stage-note{color:#5a3d00;pointer-events:none;background:#fff4d6;border-radius:8px;padding:6px 10px;font-size:12px;line-height:1.45;position:absolute;inset:auto 8px 34px}.demo-center{box-sizing:border-box;place-items:center;height:100%;padding:16px;display:grid}.demo-scroll{box-sizing:border-box;overscroll-behavior:contain;height:100%;overflow-y:auto;container-type:size}.demo-stack{justify-items:center;gap:12px;padding:0 16px 20px;display:grid}.demo-scroll-intro{box-sizing:border-box;color:#6b7280;place-items:center;min-height:100cqh;margin:0;font-size:12px;display:grid}.demo-card{box-sizing:border-box;background:#fff;border:1px solid #e3e5ea;border-radius:12px;width:min(220px,100%);padding:12px 14px;box-shadow:0 1px 2px #0000000f}.demo-card strong{margin-bottom:2px;font-size:14px;display:block}.demo-card p{color:#5b6270;margin:0}.demo-list{gap:8px;width:min(220px,100%);margin:0;padding:0;list-style:none;display:grid}.demo-list li{background:#fff;border:1px solid #e3e5ea;border-radius:10px;align-items:center;gap:10px;padding:8px 10px;display:flex}.demo-avatar{background:#c9d3ff;border-radius:50%;flex:none;width:24px;height:24px}.demo-btn{color:#15171b;font:inherit;cursor:pointer;background:#fff;border:1px solid #cfd4dc;border-radius:8px;padding:8px 14px;font-weight:600}.demo-btn:focus-visible{outline-offset:2px;outline:2px solid #2f4bd8}.demo-caption{text-align:center;margin:0;font-weight:600}.demo-article{padding:4px 16px 20px}.demo-article h3{margin:12px 0 4px;font-size:15px}.demo-article p{color:#4b5563;margin:0 0 10px}.demo-stats{gap:28px;display:flex}.demo-stats>div{justify-items:center;display:grid}.demo-stats .count-up{font-size:30px;font-weight:700;line-height:1.1}.demo-stats small{color:#5b6270;font-size:12px}.demo-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:20px;display:flex}.demo-photo{background:radial-gradient(circle at 30% 35%,#ffd89b 0 14px,#0000 15px),linear-gradient(160deg,#7aa7ff 0%,#9b8cff 45%,#ff9f7a 100%);border-radius:10px;width:140px;height:92px}.demo-pill{color:#fff;background:#15171b;border-radius:999px;padding:8px 16px;font-weight:700}.demo-ball{background:#2f4bd8;border-radius:50%;width:36px;height:36px}.demo-headline{letter-spacing:-.02em;margin:0;font-size:22px;font-weight:800;line-height:1.25}.demo-sub{color:#4b5563;margin:6px 0 0}.demo-link{color:#15171b}.demo-tiles{grid-template-columns:repeat(3,44px);gap:8px;margin:0;padding:0;list-style:none;display:grid}.demo-tiles li{color:#fff;border-radius:10px;place-items:center;height:44px;font-weight:700;display:grid}.demo-tiles li:nth-child(6n+1){background:#2f4bd8}.demo-tiles li:nth-child(6n+2){background:#16a34a}.demo-tiles li:nth-child(6n+3){background:#f59e0b}.demo-tiles li:nth-child(6n+4){background:#db2777}.demo-tiles li:nth-child(6n+5){background:#0891b2}.demo-tiles li:nth-child(6n+6){background:#7c3aed}.demo-scroll-intro.is-short{min-height:45cqh}.demo-path-guide{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.demo-path-guide path{fill:none;stroke:#c5cad3;stroke-width:2px;stroke-dasharray:4 5}.demo-dot{background:#ef4444;border-radius:50%;width:14px;height:14px}.demo-arrow{color:#2f4bd8;font-size:18px;line-height:1}.demo-terminal{color:#e6e8ec;background:#111318;border-radius:10px;justify-items:start;gap:8px;min-width:180px;padding:14px 16px;font-size:14px;display:grid}.demo-snap{box-sizing:border-box;scrollbar-width:none;width:100%;margin:0;padding-block:8px;list-style:none}.demo-snap li{color:#fff;border-radius:12px;place-items:center;height:96px;font-weight:700;display:grid}.demo-snap li:first-child{background:#16a34a}.demo-snap li:nth-child(2){background:#f59e0b}.demo-snap li:nth-child(3){background:#db2777}.demo-snap li:nth-child(4){background:#2f4bd8}.demo-snap li:nth-child(5){background:#0891b2}.demo-ring-wrap{place-items:center;display:grid;position:relative}.demo-ring-wrap span{font-weight:700;position:absolute}.demo-scroll-outro{text-align:center;color:#6b7280;padding:24px 16px 40px;font-size:12px}.toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:28px;display:flex}.search{flex:260px;max-width:420px}.search input{box-sizing:border-box;border:1px solid var(--line);background:var(--surface);width:100%;color:var(--ink);font:inherit;border-radius:10px;padding:10px 14px;font-size:14px}.filter{background:var(--chip-bg);border-radius:10px;gap:4px;padding:4px;display:flex}.filter button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:7px;padding:6px 12px;font-size:13px;font-weight:600}.filter button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #00000014}.empty{text-align:center;color:var(--muted);margin:0;padding:48px 0}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.shelf+.shelf{margin-top:48px}.shelf-head{flex-wrap:wrap;align-items:baseline;gap:4px 14px;margin-bottom:16px;display:flex}.shelf-head h2{letter-spacing:-.02em;margin:0;font-size:24px;font-weight:800}.shelf-head p{color:var(--muted);margin:0;font-size:14px}.shelf-count{font-family:var(--font-mono);color:var(--muted);font-size:13px}.detail{box-sizing:border-box;border:1px solid var(--line);background:var(--surface);width:min(1080px,100% - 32px);max-height:calc(100% - 48px);color:var(--ink);opacity:0;transition:opacity .22s ease-out, translate .22s ease-out, overlay .22s allow-discrete, display .22s allow-discrete;border-radius:16px;padding:0;overflow:auto;translate:0 12px}.detail[open]{opacity:1;translate:0}@starting-style{.detail[open]{opacity:0;translate:0 12px}}:root{scrollbar-gutter:stable}:root:has(.detail[open]){overflow:hidden}.detail{overscroll-behavior:contain}.detail-page{opacity:1;width:auto;max-height:none;display:block;overflow:visible;translate:0}a.detail-close{color:inherit;text-decoration:none}.detail::backdrop{background:#080a0e8c}@media (prefers-reduced-motion:reduce){.detail{transition:none}}.detail-head{justify-content:space-between;align-items:flex-start;gap:16px;padding:20px 24px 0;display:flex}.detail-head h2{text-wrap:balance;margin:0 0 8px;font-size:22px;line-height:1.3}.detail-close{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:8px;flex:none;padding:6px 12px;font-size:13px}.detail-grid{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:24px;padding:20px 24px;display:grid}.detail-stage{align-content:start;gap:10px;display:grid}.detail-stage .stage{aspect-ratio:16/11;border:1px solid var(--line);border-radius:12px}.playback{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.reduce-toggle{color:var(--muted);cursor:pointer;align-items:center;gap:6px;font-size:13px;display:inline-flex}.reduce-toggle input{accent-color:var(--ink);margin:0}.reduce-toggle:has(input:disabled){cursor:default}.detail-replay{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:8px;justify-self:start;padding:6px 12px;font-size:13px}.detail-info p{max-width:60ch;margin:0 0 16px}.detail-info p code{background:var(--chip-bg);font-family:var(--font-mono);overflow-wrap:anywhere;border-radius:5px;padding:1px 5px;font-size:.88em}.spec{border-top:1px solid var(--line);gap:0;margin:0;display:grid}.spec div{border-bottom:1px solid var(--line);grid-template-columns:112px minmax(0,1fr);gap:12px;padding:8px 0;font-size:13px;display:grid}.spec dt{color:var(--muted)}.spec dd{font-family:var(--font-mono);overflow-wrap:anywhere;margin:0;font-size:12px;line-height:1.6}.spec dd .chip{font-family:var(--font-body)}.code-block{padding:0 24px 24px}.code-actions{gap:6px;display:flex}.code-bar{background:var(--code-bg);border-bottom:1px solid var(--code-line);border-radius:12px 12px 0 0;justify-content:space-between;align-items:center;gap:12px;padding:6px 6px 6px 8px;display:flex}.tabs{gap:2px;display:flex}.tab{color:#9aa1ad;font-family:var(--font-mono);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:6px 12px;font-size:12px}.tab[aria-selected=true]{color:#fff;box-shadow:inset 0 -2px 0 var(--accent);border-radius:6px 6px 0 0}.copy-btn{color:#e6e8ec;cursor:pointer;background:0 0;border:1px solid #3a3f48;border-radius:6px;padding:6px 12px;font-size:12px}.code-panel{background:var(--code-bg);max-height:420px;color:var(--code-ink);font-family:var(--font-mono);tab-size:2;border-radius:0 0 12px 12px;margin:0;padding:16px 18px;font-size:12.5px;line-height:1.65;overflow:auto}.code-panel code{font-family:inherit}.code-caption{color:var(--muted);margin:8px 0 0;font-size:12px}.code-caption code{font-family:var(--font-mono)}.tuner{margin-bottom:20px}.tuner-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.tuner-head h3{margin:0;font-size:14px}.tuner-reset{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:6px;padding:4px 10px;font-size:12px}.tuner-fields{gap:10px;display:grid}.field{grid-template-columns:128px minmax(0,1fr) 64px;align-items:center;gap:10px;font-size:13px;display:grid}.field label{color:var(--muted)}.field output{font-family:var(--font-mono);text-align:right;font-variant-numeric:tabular-nums;font-size:12px}.field input[type=range]{width:100%;accent-color:var(--ink);margin:0}.field-easing{grid-template-columns:128px minmax(0,1fr);align-items:start}.field-easing label{padding-top:6px}.easing-controls{gap:6px;display:grid}.easing-graph{width:100%;height:64px;overflow:visible}.easing-graph line{stroke:var(--line);stroke-dasharray:3 3}.easing-graph path{fill:none;stroke:var(--ink);stroke-width:1.5px}.field select,.field input[type=text]{box-sizing:border-box;border:1px solid var(--line);background:var(--surface);width:100%;color:var(--ink);font-family:var(--font-mono);border-radius:6px;padding:6px 8px;font-size:12px}.field input[aria-invalid=true]{border-color:#dc2626}.detail-info .tuner-note{color:var(--muted);margin:10px 0 0;font-size:12px}.support-list{align-items:center;gap:2px;margin-left:4px;display:inline-flex}.support{border-radius:6px;place-items:center;width:24px;height:24px;display:inline-grid;position:relative}.support img{width:16px;height:16px;display:block}.support.is-missing img{filter:grayscale();opacity:.4}.support:after{content:attr(data-tip);z-index:2;background:var(--ink);color:var(--bg);white-space:nowrap;pointer-events:none;opacity:0;border-radius:6px;padding:4px 8px;font-size:12px;line-height:1.4;transition:opacity .12s ease-out,translate .12s ease-out;position:absolute;top:calc(100% + 4px);left:50%;translate:-50% 4px}.support:hover:after,.support:focus-visible:after{opacity:1;translate:-50%}.card .support-list{z-index:1;position:relative}.card .support:after{top:auto;bottom:calc(100% + 4px);translate:-50% -4px}.card .support:hover:after{translate:-50%}@media (prefers-reduced-motion:reduce){.support:after{transition:none}}.token.comment{color:#7b8494;font-style:italic}.token.selector,.token.tag{color:#7cc4ff}.token.property,.token.attr-name{color:#f5c26b}.token.string,.token.attr-value,.token.url{color:#a5e3a0}.token.atrule,.token.keyword,.token.important{color:#ff9db0}.token.number,.token.unit,.token.boolean{color:#f5c26b}.token.function{color:#c7b5ff}.token.punctuation,.token.operator{color:#8b93a1}@media (width<=820px){.masthead{grid-template-columns:1fr;gap:20px}.detail-grid{grid-template-columns:1fr}}@media (width<=520px){.page{padding-block:28px 48px;padding-inline:16px}.detail-head,.detail-grid{padding-inline:16px}.code-block{padding:0 16px 16px}.legend div{grid-template-columns:84px 1fr}.field{grid-template-columns:104px minmax(0,1fr) 56px}.field-easing{grid-template-columns:104px minmax(0,1fr)}}
