html:has(#gl),html:has(#gl) body{height:100%;overflow:hidden}body:has(#gl){background:radial-gradient(120% 90% at 50% 45%,#fff 0%,#fafafa 55%,#efefef 100%)}#gl{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}.headline{z-index:3;pointer-events:none;padding:0 var(--gutter);left:0;right:0;top:calc(env(safe-area-inset-top) + 104px);max-width:calc(20ch + 2 * var(--gutter));text-align:center;letter-spacing:-.04em;--d:.45s;margin:0 auto;font-size:clamp(28px,3.1vw,60px);font-weight:400;line-height:1.12;transition:opacity .4s;position:fixed}@media (width<=720px){.headline{top:calc(env(safe-area-inset-top) + 118px)}}.caption{z-index:3;pointer-events:none;left:var(--gutter);right:var(--gutter);bottom:calc(env(safe-area-inset-bottom) + 24px);text-align:center;opacity:0;transition:opacity .5s;position:fixed}body.ready .caption{opacity:1}.cap-index{font-family:var(--sans);color:var(--muted);font-variant-numeric:tabular-nums;letter-spacing:.04em;margin-bottom:8px;font-size:12px}.cap-title{letter-spacing:-.03em;max-width:900px;height:1.18em;margin:0 auto;font-size:clamp(22px,2.2vw,36px);font-weight:400;position:relative;overflow:hidden}.cap-title .line{white-space:nowrap;text-overflow:ellipsis;opacity:0;filter:blur(6px);transition:opacity .7s var(--ease-out), transform .7s var(--ease-out), filter .7s var(--ease-out);position:absolute;inset:0;overflow:hidden;transform:translateY(.35em)}.cap-title .line.cur{opacity:1;filter:none;transform:none}.cap-title .line.out{opacity:0;filter:blur(6px);transform:translateY(-.35em)}.cap-meta{letter-spacing:-.02em;color:var(--text-3);margin-top:6px;font-size:16px;transition:opacity .35s}.cap-meta.swap{opacity:0}.cap-hint{font-family:var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);opacity:.7;margin-top:14px;font-size:11px}.hint-touch{display:none}@media (hover:none){.hint-mouse{display:none}.hint-touch{display:inline}}.loader{z-index:10;pointer-events:none;place-items:center;transition:opacity .6s;display:grid;position:fixed;inset:0}.loader img{object-fit:cover;width:110px;height:40px;margin:0 auto}.loader em{text-align:center;font-style:normal;font-family:var(--sans);color:var(--muted);font-variant-numeric:tabular-nums;margin-top:6px;font-size:12px;display:block}body.ready .loader{opacity:0}.tune-btn{z-index:9;bottom:calc(env(safe-area-inset-bottom) + 20px);right:var(--gutter);font-family:var(--sans);border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);background:#ffffffb3;border-radius:999px;padding:7px 12px;font-size:12px;transition:opacity .4s;position:fixed}.tune-btn[hidden]{display:none}.tune{z-index:11;right:var(--gutter);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);width:300px;max-height:calc(100dvh - 150px);font-family:var(--sans);background:#ffffffe6;border-radius:14px;padding:16px;font-size:12px;display:none;position:fixed;top:70px;overflow:auto}.tune.show{display:block}.tune h3{justify-content:space-between;margin-bottom:4px;font-size:13px;font-weight:600;display:flex}.tune .fps{color:var(--muted);font-variant-numeric:tabular-nums;font-weight:400}.tune p{color:var(--muted);margin-bottom:12px;line-height:1.45}.tune .row{grid-template-columns:1fr auto;gap:2px 8px;margin-bottom:10px;display:grid}.tune .row input{width:100%;accent-color:var(--ink);grid-column:1/-1}.tune .row select{width:100%;font:inherit;border:1px solid var(--line);background:#fff;border-radius:8px;grid-column:1/-1;padding:6px 8px}.tune hr{border:0;border-top:1px solid var(--line);margin:4px 0 12px}.tune .val{font-variant-numeric:tabular-nums;color:var(--muted)}.tune .btns{gap:8px;margin-top:6px;display:flex}.tune .btns button{font:inherit;border:1px solid var(--line);background:#fff;border-radius:8px;flex:1;padding:8px}.tune pre{white-space:pre-wrap;word-break:break-all;color:var(--muted);margin-top:10px;font-size:11px}@media (width<=640px){.tune{width:auto;max-height:52dvh;inset:auto 12px 12px}}.nogl{text-align:center;color:var(--muted);place-items:center;padding:24px;display:none;position:fixed;inset:0}.nogl a{text-decoration:underline}body.no-gl .nogl{display:grid}
