:root{--paper:#fdfdfd;--ink:#241e22;--muted:#756a70;--line:#e5e0e3;--card:#fff;--accent:#4a6272;--on-accent:#fff;--danger:#b03030}:root[data-theme=dark]{--paper:#121212;--ink:#cbcbcb;--muted:#787878;--line:#2b2b2b;--card:#1b1b1b;--accent:#7e9aac;--on-accent:#12181c;--danger:#d97070}:root[data-theme=dark] button[aria-checked=true]{box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 32%, transparent), 0 0 14px -2px color-mix(in srgb, var(--accent) 30%, transparent)}:root[data-theme=dark] button.primary{box-shadow:0 0 16px -2px color-mix(in srgb, var(--accent) 38%, transparent)}:root[data-theme=dark] .hint,:root[data-theme=dark] .viewport canvas{border-color:#0000}:root[data-theme=dark] .credit{color:color-mix(in srgb, var(--ink) 62%, var(--muted));text-shadow:0 0 16px color-mix(in srgb, var(--accent) 26%, transparent)}:root[data-theme=dark] .credit a{color:var(--accent);-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 55%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 55%, transparent);text-shadow:0 0 14px color-mix(in srgb, var(--accent) 60%, transparent)}:root[data-theme=dark] .credit span{filter:drop-shadow(0 0 7px #ff6074e6)}*{box-sizing:border-box}[data-dusk] *{transition:background-color var(--dusk-ms,0s) var(--dusk-ease), border-color var(--dusk-ms,0s) var(--dusk-ease), color var(--dusk-ms,0s) var(--dusk-ease)}:root{--dusk-ease:cubic-bezier(.65, 0, .35, 1)}html,body,#root{height:100%;margin:0;overflow:hidden}body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;font:15px/1.5 ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}.app{flex-direction:column;gap:10px;max-width:680px;height:100dvh;margin:0 auto;padding:14px 18px 10px;display:flex;position:relative}.bar{flex:none;align-items:center;gap:10px;margin-bottom:auto;display:flex}.tools{gap:6px;margin-left:auto;display:flex}.brand{letter-spacing:-.01em;align-items:center;gap:8px;min-width:0;font-weight:650;display:flex}.brand svg{flex:none}:root{--edge:#c4b49c}:root[data-theme=dark]{--edge:#6b5a45}@media (width<=400px){.brand small{display:none}}.brand .name{letter-spacing:-.015em;text-shadow:1px 1px 0 var(--edge), 2px 2px 0 var(--edge), 3px 3px 0 var(--edge);font-size:17px;font-weight:800}.brand small{letter-spacing:.005em;color:var(--muted);letter-spacing:0;white-space:nowrap;text-overflow:ellipsis;align-self:baseline;font-weight:400;overflow:hidden}.credit{text-align:center;color:var(--muted);flex:none;margin:0;font-size:12px}.credit a{color:inherit;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line)}.credit a:hover{color:var(--ink)}.unsupported{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:28px;display:flex;position:fixed;inset:0}.unsupported h2{margin:0}.unsupported p{color:var(--muted);margin:0}:root{--chrome:172px}.app.shared{--chrome:208px}.stage{inset:var(--chrome) 18px;place-items:center;min-height:0;display:grid;position:absolute}.frame{place-items:center;width:100%;min-width:0;height:100%;min-height:0;display:grid;container-type:size}.viewport{cursor:pointer;background:0 0;border:0;border-radius:14px;width:min(100cqw,100cqh);height:min(100cqw,100cqh);padding:0;position:relative}.viewport:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.viewport canvas{border-radius:14px;width:100%;height:100%;display:block}.viewport img.qr{object-fit:contain;border-radius:0;width:100%;height:100%;position:absolute;inset:0}.hint{text-align:center;border:1px solid var(--line);background:var(--card);max-width:100%;color:color-mix(in srgb, var(--ink) 58%, var(--muted));border-radius:999px;align-self:center;padding:7px 16px;font-size:13px}.controls{flex-direction:column;flex:none;gap:8px;display:flex;position:relative}.drawer{z-index:5;width:max-content;min-width:100%;max-width:calc(100vw - 64px);transition:grid-template-rows .2s var(--dusk-ease), opacity .16s var(--dusk-ease);opacity:0;pointer-events:none;grid-template-rows:0fr;display:grid;position:absolute;bottom:calc(100% + 8px);left:auto;right:0}.drawer[data-open]{opacity:1;pointer-events:auto;grid-template-rows:1fr}.drawer-in{flex-direction:column;gap:8px;min-height:0;display:flex;overflow:hidden}.drawer[data-open] .drawer-in{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:10px;box-shadow:0 10px 30px -10px #00000073}button[aria-expanded=true]{border-color:color-mix(in srgb, var(--accent) 45%, var(--line))}@media (prefers-reduced-motion:reduce){.drawer{transition:none}}.row{gap:8px;display:flex}input[type=url]{min-width:0;font:inherit;color:inherit;border:1px solid var(--line);background:var(--card);border-radius:12px;flex:1;padding:13px 15px}input[type=url]:focus-visible{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}button{font:inherit;color:inherit;border:1px solid var(--line);background:var(--card);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:7px;min-height:44px;padding:12px 14px;display:inline-flex}button:hover{border-color:color-mix(in srgb, var(--line) 60%, var(--ink))}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button[aria-checked=true]{background:color-mix(in srgb, var(--accent) 18%, var(--card));border-color:color-mix(in srgb, var(--accent) 45%, var(--line));font-weight:600}button.icon{flex:none;min-width:48px;padding:12px}button.icon svg{display:block}button.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);min-width:52px;font-weight:600}.controls{container-type:inline-size}.actions .btn,.actions button{padding:12px 10px;font-size:14px}@container (width<=346px){.actions .btn svg,.actions button:not(.icon) svg,.visit small .lead{display:none}}@container (width<=300px){.actions .grow .lead{display:none}}.btn{font:inherit;color:inherit;border:1px solid var(--line);background:var(--card);border-radius:12px;flex:1;justify-content:center;align-items:center;gap:7px;min-width:0;min-height:44px;padding:12px 14px;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{border-color:color-mix(in srgb, var(--line) 60%, var(--ink))}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.grow{flex:1.4;min-width:0}.actions{align-items:flex-start}.visit{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.visit .btn{flex:none;width:100%}.visit small{color:var(--muted);text-align:center;overflow-wrap:anywhere;font-size:12px;line-height:1.3}.menu{z-index:6;background:var(--paper);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:2px;min-width:210px;max-width:calc(100vw - 36px);max-height:min(60vh,420px);padding:6px;display:flex;position:absolute;bottom:calc(100% + 8px);right:0;overflow-y:auto;box-shadow:0 10px 30px -10px #00000073}.menu button,.menu a{font:inherit;color:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:10px;justify-content:flex-start;align-items:center;gap:10px;min-height:0;padding:10px 12px;font-size:14px;font-weight:500;text-decoration:none;display:flex}.menu button:hover,.menu a:hover{background:color-mix(in srgb, var(--accent) 12%, transparent);border-color:#0000}@container (width<=460px){.menu{left:0;right:0}.menu button,.menu a{padding:13px 14px;font-size:15px}}.menu svg{color:var(--muted);flex:none}.menu hr{border:0;border-top:1px solid var(--line);margin:4px 8px}.seasons{flex:1;gap:8px;display:flex}.seasons button{text-transform:capitalize;flex:1}.note{color:var(--muted);text-align:center;margin:0;font-size:12px}.note:empty{display:none}.note.error{color:var(--danger)}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}@media (width>=1200px) and (aspect-ratio>=5/4){:root{--rail:224px;--gutter:calc(32px + var(--rail) + 16px)}.app{max-width:none;padding:24px 32px 14px;display:block}.bar{position:absolute;inset:24px 32px auto}.stage{inset:84px var(--gutter) 84px;position:absolute}.controls{width:var(--rail);z-index:2;position:absolute;top:50%;right:32px;transform:translateY(-50%)}.credit{position:absolute;bottom:14px;left:0;right:0}.actions{flex-wrap:wrap;align-items:stretch}.actions .visit{flex:1 0 100%}.actions .grow{flex:1}.compose{flex-wrap:wrap}.compose input[type=url]{flex:1 0 100%}.compose .icon.primary{flex:1}.menu{max-height:calc(100vh - 48px);inset:50% calc(100% + 10px) auto auto;transform:translateY(-50%)}}
