:root{--ink:#3e3552;--ink-soft:#3e35528c;--bg:#ece4f3;--footer-bottom:clamp(12px, 2vw, 24px);--footer-row:42px;--footer-h:calc(var(--footer-bottom) + var(--footer-row) + 10px)}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Inter Tight,system-ui,-apple-system,sans-serif;overflow:hidden}#stage,#stage canvas{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}#hud{pointer-events:none;transition:opacity .6s;position:fixed;inset:0}#hud.is-hidden{opacity:0}.is-out{opacity:0;filter:blur(3px);transform:translateY(4px)}.transition{color:#fffffff5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;background:#1c172880;border:1px solid #ffffff1a;border-radius:14px;gap:5px;width:266px;padding:12px 15px 11px;transition:opacity .8s;display:grid;position:absolute;top:clamp(16px,3vw,36px);left:clamp(16px,3.2vw,44px)}.transition.is-visible{opacity:1}.tr-label{letter-spacing:.22em;text-transform:uppercase;color:#ffffffb8;align-items:center;gap:7px;font-size:10px;font-weight:500;display:flex}.tr-label:before{content:"";background:#ffffff59;flex:none;width:6px;height:6px}.transition.is-now .tr-label:before{background:#e58db3;animation:1.2s ease-in-out infinite pulse}.tr-name{letter-spacing:.01em;font-size:clamp(20px,1.8vw,26px);font-weight:500;line-height:1.1}.tr-route{color:#ffffffc7;font-size:12px;font-style:italic}.tr-row{align-items:center;gap:10px;display:flex}.tr-next{color:#fff;cursor:pointer;opacity:0;pointer-events:none;background:#ffffff1f;border:1px solid #ffffff3d;border-radius:50%;flex:none;place-items:center;width:22px;height:22px;padding:0;transition:background-color .2s,border-color .2s,transform .2s,opacity .35s;display:grid}.tr-row.is-ready .tr-next{opacity:1;pointer-events:auto}.tr-next svg{fill:none;stroke:currentColor;stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round;width:10px;height:10px}.tr-next:hover{background-color:#ffffff42;border-color:#ffffff73;transform:translate(1px)}.tr-next:focus-visible{outline-offset:2px;outline:2px solid #ffffff8c}.tour:focus-visible{outline-offset:2px;outline:2px solid #3e355259}.transition.is-now .tr-next,.transition:not(.is-visible) .tr-next,#hud.is-hidden .tr-next{opacity:0;pointer-events:none}.tr-bar{background:#ffffff24;height:2px;margin-top:5px;overflow:hidden}.tr-bar span{transform-origin:0;background:linear-gradient(90deg,#e58db3,#9d86ea);height:100%;display:block;transform:scaleX(0)}.transition:not(.is-now) .tr-bar{opacity:.5}.tr-label,.tr-name,.tr-route{transition:opacity .45s,transform .45s,filter .45s}@media (max-width:720px){.hint{display:none}}.flowers{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#1c172880;border:1px solid #ffffff1a;border-radius:14px;grid-template-columns:repeat(2,38px);gap:6px;padding:10px;display:grid;position:absolute;top:50%;right:clamp(16px,3.2vw,44px);transform:translateY(-50%)}.flowers-label{letter-spacing:.12em;white-space:nowrap;text-transform:uppercase;color:#ffffffb8;grid-column:1/-1;margin-bottom:2px;font-size:10px;font-weight:500}.flower{background:linear-gradient(var(--studio-high), var(--studio-low));cursor:pointer;pointer-events:auto;border:1px solid #ffffff24;border-radius:9px;width:38px;height:38px;padding:0;transition:transform .2s,border-color .2s,box-shadow .2s,opacity .3s;overflow:hidden}.flower img{width:100%;height:100%;display:block}.flower:hover{border-color:#ffffff80;transform:scale(1.08)}.flower:focus-visible{outline-offset:2px;outline:2px solid #ffffffb3}.flower.is-current{opacity:.4;cursor:default}.flower.is-next{border-color:#fff;box-shadow:0 0 0 2px #ffffffd9}#hud.is-hidden .flower{pointer-events:none}#hud.is-debug .flowers{left:clamp(16px,3.2vw,44px);right:auto}#hud.is-debug .hint{display:none}@media (max-width:720px){.flowers{display:none}}.hint{letter-spacing:.06em;color:#fffffff0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);text-align:right;background:#1c172880;border:1px solid #ffffff1a;border-radius:12px;max-width:min(560px,100vw - 32px);padding:7px 12px;font-size:11px;line-height:1.6;transition:opacity 1.2s;position:absolute;top:calc(clamp(16px,3vw,36px) + 48px);right:clamp(16px,3.2vw,44px)}.hint.is-faded{opacity:0;visibility:hidden;transition:opacity 1.2s,visibility 0s linear 1.2s}.help{width:34px;height:34px;font:inherit;color:var(--ink-soft);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;background:#ffffff6b;border:1px solid #3e355229;border-radius:50%;padding:0;font-size:14px;font-weight:500;line-height:1;transition:background .25s,color .25s,border-color .25s}.help:hover{border-color:#3e35524d}.help[aria-expanded=true]{color:#fff;background:linear-gradient(90deg,#e58db3,#9d86ea);border-color:#0000}.help:focus-visible{outline-offset:2px;outline:2px solid #3e355259}#hud.is-debug .help{display:none}@media (max-width:720px){.help{display:none}}.controls{right:clamp(16px,3.2vw,44px);bottom:var(--footer-bottom);height:var(--footer-row);pointer-events:auto;align-items:center;gap:16px;display:flex;position:absolute}#hud.is-hidden .controls{pointer-events:none}.tour{font:inherit;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;background:#ffffff6b;border:1px solid #3e355229;border-radius:999px;padding:7px 12px;font-size:10px;font-weight:500;transition:background .25s,color .25s,border-color .25s}.tour:hover{border-color:#3e35524d}.tour[aria-pressed=true]{color:#fff;background:linear-gradient(90deg,#e58db3,#9d86ea);border-color:#0000}.sound-hint{text-align:center;letter-spacing:.24em;text-transform:uppercase;color:#fff;text-shadow:0 1px 3px #1c17288c,0 0 18px #1c172873;pointer-events:none;opacity:0;visibility:hidden;font-size:clamp(14px,1.5vw,20px);font-weight:300;transition:opacity .8s,visibility 0s linear .8s;position:absolute;bottom:20vh;left:16px;right:16px}.sound-hint.is-visible{opacity:1;visibility:visible;transition:opacity 1.6s .6s,visibility}.sound-hint span{animation:3.2s ease-in-out 2.2s infinite sound-hint;display:inline-block}@keyframes sound-hint{0%,to{opacity:1}50%{opacity:.55}}@media (prefers-reduced-motion:reduce){.sound-hint span{animation:none}}.sound{z-index:1;pointer-events:auto;align-items:center;gap:8px;display:flex;position:absolute;top:clamp(16px,3vw,36px);right:clamp(16px,3.2vw,44px)}#hud.is-hidden .sound{pointer-events:none}#hud.is-debug .sound{top:auto;left:clamp(16px,3.2vw,44px);right:auto;bottom:calc(var(--footer-h) + 8px)}.volume{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff6b;border:1px solid #3e355229;border-radius:999px;align-items:center;gap:8px;padding:3px 12px 3px 3px;display:flex;position:relative}.mute{width:26px;height:26px;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;transition:background .25s,color .25s;display:grid}.mute svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.mute .icon-off,.mute.is-muted .icon-on{display:none}.mute.is-muted .icon-off{display:block}.mute:not(.is-muted){color:#fff;background:linear-gradient(90deg,#e58db3,#9d86ea)}.mute:focus-visible{outline-offset:2px;outline:2px solid #3e355259}.vol{--fill:50%;appearance:none;cursor:pointer;background:0 0;width:72px;height:14px;margin:0}.vol::-webkit-slider-runnable-track{background:linear-gradient(90deg, #c79be0 var(--fill), #3e35522e var(--fill));border-radius:2px;height:3px}.vol::-moz-range-track{background:linear-gradient(90deg, #c79be0 var(--fill), #3e35522e var(--fill));border-radius:2px;height:3px}.vol::-webkit-slider-thumb{appearance:none;background:#fff;border:1px solid #3e35524d;border-radius:50%;width:11px;height:11px;margin-top:-4px;transition:transform .15s}.vol::-moz-range-thumb{background:#fff;border:1px solid #3e35524d;border-radius:50%;width:11px;height:11px}.vol:hover::-webkit-slider-thumb{transform:scale(1.2)}.vol:focus-visible{outline-offset:2px;border-radius:4px;outline:2px solid #3e355259}.volume-more{color:#fffffff0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;visibility:hidden;background:#1c172880;border:1px solid #ffffff1a;border-radius:12px;gap:10px;width:168px;padding:10px 12px 12px;transition:opacity .25s,transform .25s,visibility .25s;display:grid;position:absolute;top:calc(100% + 8px);right:0;transform:translateY(-4px)}.volume-more:after{content:"";height:10px;position:absolute;bottom:100%;left:0;right:0}.volume:hover .volume-more,.volume:focus-within .volume-more{opacity:1;visibility:visible;transform:none}@media (max-width:720px){.controls{bottom:var(--footer-h);height:auto}.volume{padding:3px}.volume>.vol,.volume-more{display:none}}.vol-row{letter-spacing:.16em;text-transform:uppercase;cursor:pointer;grid-template-columns:1fr auto;row-gap:5px;font-size:10px;font-weight:500;display:grid}.vol-row output{font-variant-numeric:tabular-nums;letter-spacing:.04em;color:#fff9}.vol-row .vol{grid-column:1/-1;width:100%}.vol-row .vol::-webkit-slider-runnable-track{background:linear-gradient(90deg, #e3b6f0 var(--fill), #ffffff38 var(--fill))}.vol-row .vol::-moz-range-track{background:linear-gradient(90deg, #e3b6f0 var(--fill), #ffffff38 var(--fill))}.look{letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);align-items:center;gap:9px;font-size:10px;font-weight:500;display:flex}.look select{appearance:none;font:inherit;letter-spacing:.02em;text-transform:none;color:var(--ink);-webkit-backdrop-filter:blur(10px);cursor:pointer;background:#ffffff6b url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5z' fill='%233e3552' fill-opacity='.6'/%3E%3C/svg%3E") right 11px center no-repeat;border:1px solid #3e355229;border-radius:999px;padding:6px 28px 6px 12px;font-size:12px;transition:background-color .2s,border-color .2s}.look select:hover{background-color:#ffffff9e;border-color:#3e355247}.look select:focus-visible{outline-offset:2px;outline:2px solid #3e355259}.site-footer{bottom:var(--footer-bottom);z-index:1000;color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);text-align:center;pointer-events:none;opacity:1;background:#1c172880;border:1px solid #ffffff1a;border-radius:12px;justify-content:flex-start;align-items:center;gap:20px;padding:4px 16px;font-family:Space Mono,Arial,Helvetica,sans-serif;font-size:16px;line-height:32px;transition:opacity 1.2s ease-out;display:flex;position:fixed;left:clamp(16px,3.2vw,44px)}.site-footer.is-hidden{opacity:0}.site-footer p,.site-footer span{font-size:inherit;vertical-align:middle;margin:0;line-height:32px;display:inline-block}.site-footer a{color:#fff;vertical-align:middle;pointer-events:auto;min-width:32px;line-height:32px;text-decoration:none;transition:color 1s ease-out;display:inline-block}.site-footer.is-hidden a{pointer-events:none}.site-footer a:hover{color:#f5d66d}.site-footer a:focus-visible{color:#f5d66d;outline-offset:3px;outline:2px solid}.site-footer svg{width:16px;height:16px}.site-footer svg path,.site-footer svg polygon{fill:currentColor;transition:fill 1s ease-out}@media (max-width:640px){.site-footer{gap:8px;padding:2px 10px;font-size:11px}}@media (prefers-reduced-motion:reduce){.site-footer,.site-footer a,.site-footer svg path,.site-footer svg polygon{transition:none}}#loader{z-index:10;background:radial-gradient(at 30% 40%,#f3e7e8,#dcd4f2);place-content:center;justify-items:center;gap:14px;transition:opacity 1.4s;display:grid;position:fixed;inset:0}#loader.is-done{opacity:0;pointer-events:none}.loader-title{letter-spacing:.02em;color:var(--ink);margin:0;font-size:clamp(36px,5.2vw,60px);font-weight:300;line-height:1}.loader-sub{letter-spacing:.32em;text-transform:uppercase;color:var(--ink-soft);margin:-4px 0 18px;font-size:11px;font-weight:500}#loader p{letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);text-align:center;max-width:80vw;margin:0;font-size:12px}.dots{gap:6px;display:flex}.dots span{background:#e58db3;width:9px;height:9px;animation:1.2s ease-in-out infinite pulse}.dots span:nth-child(2){background:#9d86ea;animation-delay:.15s}.dots span:nth-child(3){background:#7f9dee;animation-delay:.3s}@keyframes pulse{0%,to{opacity:.4;transform:scale(.4)}50%{opacity:1;transform:scale(1)}}
