:root{--ink:#ffffffdb;--ink-soft:#ffffff94;--ink-faint:#ffffff61;--line:#ffffff29;--gutter:clamp(16px, 3vw, 36px);--font:"Helvetica Neue", "Segoe UI", "Hiragino Sans", "Noto Sans JP", system-ui, -apple-system, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;overscroll-behavior:none;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:#000;margin:0;overflow:hidden}#stage{width:100vw;height:100vh;touch-action:none;cursor:grab;background:#000;height:100dvh;display:block;position:fixed;inset:0}body:has(#app.is-orbiting){cursor:grabbing}body:has(#app.is-orbiting) #stage{cursor:grabbing}#app{pointer-events:none;position:fixed;inset:0}button{font:inherit;color:inherit}button:focus-visible,.seek:focus-visible,input:focus-visible{outline-offset:2px;outline:1px solid #fff9}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.landing{place-items:center;transition:opacity 1.4s;display:grid;position:absolute;inset:0}.landing.is-hidden{opacity:0;pointer-events:none}.landing.is-hidden *{pointer-events:none!important}.landing__mark{top:calc(26px + env(safe-area-inset-top));left:var(--gutter);letter-spacing:.42em;color:var(--ink-faint);font-size:10px;position:absolute}.landing__portal,.settings__portal{color:var(--ink-faint);pointer-events:auto;text-decoration:none;transition:color .3s}.landing__portal:hover,.settings__portal:hover{color:var(--ink)}.landing__portal{top:calc(22px + env(safe-area-inset-top));right:var(--gutter);letter-spacing:.12em;font-size:12px;position:absolute}.settings__portal{letter-spacing:.08em;margin-top:10px;padding:4px 2px;font-size:12px;display:block}.landing__center{text-align:center;flex-direction:column;align-items:center;gap:14px;padding:0 24px;display:flex;transform:translateY(-2vh)}.landing__title{letter-spacing:.55em;color:var(--ink);text-shadow:0 0 24px #000c;margin:0 -.55em 0 0;font-size:clamp(15px,1.35vw,20px);font-weight:300;transition:text-shadow .6s,letter-spacing .8s}.landing.is-dragging .landing__title{text-shadow:0 0 22px #ffffff73;letter-spacing:.62em}.landing__select{pointer-events:auto;cursor:pointer;letter-spacing:.08em;color:var(--ink-soft);text-underline-offset:5px;background:0 0;border:0;padding:8px 14px;font-size:13px;-webkit-text-decoration:underline #ffffff40;text-decoration:underline #ffffff40;transition:color .3s,text-decoration-color .3s}.landing__select:hover{color:var(--ink);text-decoration-color:#fff9}.landing__formats{letter-spacing:.3em;color:#ffffff47;margin:0;font-size:10px}.landing__scenes{pointer-events:auto;gap:4px;margin-top:10px;display:flex}.landing__scenes button{letter-spacing:.34em;color:#ffffff4d;cursor:pointer;background:0 0;border:0;padding:6px 8px 6px 12px;font-size:10px;transition:color .3s}.landing__scenes button:hover{color:var(--ink-soft)}.landing__scenes button.is-on{color:var(--ink)}.landing[data-state=loading] .landing__scenes,.landing[data-state=enter] .landing__scenes,.landing__status,.landing__enter,.landing[data-state=loading] .landing__title,.landing[data-state=loading] .landing__select,.landing[data-state=loading] .landing__formats,.landing[data-state=enter] .landing__title,.landing[data-state=enter] .landing__select,.landing[data-state=enter] .landing__formats{display:none}.landing[data-state=loading] .landing__status{flex-direction:column;align-items:center;gap:16px;display:flex}.landing__status-label{letter-spacing:.55em;color:var(--ink-soft);margin-right:-.55em;font-size:12px;font-weight:300;animation:3.2s ease-in-out infinite breathe}.landing__status-track{background:#ffffff1f;width:150px;height:1px;overflow:hidden}.landing__status-bar{transform-origin:0;background:#ffffffbf;height:100%;transition:transform .35s;display:block;transform:scaleX(0)}.landing[data-state=enter] .landing__enter{pointer-events:auto;cursor:pointer;letter-spacing:.5em;color:var(--ink);background:0 0;border:1px solid #ffffff38;border-radius:999px;padding:14px 28px 14px 34px;font-size:12px;transition:border-color .3s,background .3s;animation:3.2s ease-in-out infinite breathe;display:block}.landing__enter:hover{background:#ffffff0a;border-color:#ffffff80}.landing__error{letter-spacing:.03em;color:#ffdecde6;opacity:0;max-width:460px;min-height:1px;font-size:13px;line-height:1.6;transition:opacity .6s}.landing__error p{margin:0}.landing__error-detail{color:#ffdecd9e;font-size:12px}.landing__error.is-visible{opacity:1}.landing__privacy{left:0;right:0;bottom:calc(26px + env(safe-area-inset-bottom));text-align:center;letter-spacing:.12em;color:var(--ink-faint);flex-direction:column;align-items:center;gap:5px;padding:0 20px;font-size:11px;display:flex;position:absolute}.landing__privacy span[lang=ja]{letter-spacing:.08em;color:#ffffff4d;font-size:10.5px}@keyframes breathe{0%,to{opacity:.55}50%{opacity:1}}.dock{padding:40px var(--gutter) calc(16px + env(safe-area-inset-bottom));pointer-events:auto;background:linear-gradient(#0000,#00000080);transition:opacity 1.2s,transform 1.2s;position:absolute;bottom:0;left:0;right:0}#app[data-mode=landing] .dock,#app[data-mode=loading] .dock,#app[data-mode=enter] .dock{opacity:0;pointer-events:none;transform:translateY(10px)}#app[data-mode=landing] .dock *,#app[data-mode=loading] .dock *,#app[data-mode=enter] .dock *{pointer-events:none!important}#app.is-idle .dock{opacity:0;transform:translateY(6px)}#app.is-idle .dock *{pointer-events:none!important}body:has(#app.is-idle){cursor:none}body:has(#app.is-idle:not(.is-orbiting)) #stage{cursor:none}.controls__label{letter-spacing:.12em;color:var(--ink-faint);white-space:nowrap;justify-content:space-between;gap:24px;margin:0 6px 8px;font-size:11px;display:flex}.label__now{gap:12px;min-width:0;display:flex}.label__position{font-variant-numeric:tabular-nums;flex:none}.label__position:empty{display:none}.label__track{text-overflow:ellipsis;min-width:0;overflow:hidden}.label__world{letter-spacing:.3em;flex:none;font-size:10px}.controls__row{align-items:center;gap:4px;display:flex}.ctrl{color:#ffffffb3;cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;place-items:center;width:38px;height:38px;padding:0;transition:color .25s,background .25s;display:grid}.ctrl:hover{color:#fff;background:#ffffff0f}.ctrl--toggle.is-on,.ctrl.is-on{color:#fff;background:#ffffff1a}.ctrl.ctrl--track{display:none}.controls.has-playlist .ctrl.ctrl--track{display:grid}.ctrl--small{width:30px;height:30px}.ctrl--small svg{width:17px;height:17px}.ctrl-scene{color:#ffffffb3;letter-spacing:.26em;cursor:pointer;background:0 0;border:0;border-radius:15px;flex:none;height:30px;padding:0 8px 0 12px;font-size:10px;transition:color .25s,background .25s}.ctrl-scene:hover{color:#fff;background:#ffffff0f}.seek{cursor:pointer;touch-action:none;flex:1;align-items:center;height:30px;margin:0 10px;display:flex;position:relative}.seek__track{background:var(--line);border-radius:2px;width:100%;height:2px;transition:height .2s;overflow:hidden}.seek:hover .seek__track{height:3px}.seek__fill{transform-origin:0;background:#ffffffc7;height:100%;transform:scaleX(0)}.seek__hover{letter-spacing:.08em;font-variant-numeric:tabular-nums;color:var(--ink-soft);opacity:0;pointer-events:none;font-size:10px;transition:opacity .2s;position:absolute;bottom:28px;transform:translate(-50%)}.seek:hover .seek__hover{opacity:1}.time{text-align:right;letter-spacing:.06em;font-variant-numeric:tabular-nums;min-width:92px;color:var(--ink-soft);flex:none;margin-right:8px;font-size:11px}.volume-group{align-items:center;display:flex}.volume{--fill:85%;opacity:0;appearance:none;background:linear-gradient(to right, #fffc var(--fill), var(--line) var(--fill));cursor:pointer;border-radius:2px;width:0;height:2px;margin:0;transition:width .3s,opacity .3s,margin .3s}.volume-group:hover .volume,.volume:focus-visible{opacity:1;width:72px;margin:0 10px 0 4px}.volume::-webkit-slider-thumb{-webkit-appearance:none;background:#fff;border:0;border-radius:50%;width:10px;height:10px}.volume::-moz-range-thumb{background:#fff;border:0;border-radius:50%;width:10px;height:10px}.settings{right:var(--gutter);bottom:calc(96px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(18px)saturate(1.2);opacity:0;pointer-events:none;background:#08090eb8;border:1px solid #ffffff14;border-radius:16px;width:312px;max-width:calc(100vw - 32px);max-height:calc(100vh - 140px);padding:18px 18px 14px;font-size:12px;transition:opacity .35s,transform .35s;position:absolute;overflow:auto;transform:translateY(8px)}.settings.is-open{opacity:1;pointer-events:auto;transform:none}.settings:not(.is-open) *{pointer-events:none!important}.settings__section+.settings__section{border-top:1px solid #ffffff0f;margin-top:16px;padding-top:14px}.settings__row{justify-content:space-between;align-items:center;gap:16px;display:flex}.settings__heading{letter-spacing:.28em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 8px;font-size:10px}.settings__note{color:var(--ink-faint);margin:6px 0 0;font-size:11px}.segmented{grid-template-columns:repeat(5,1fr);gap:4px;display:grid}.segmented--3{grid-template-columns:repeat(3,1fr)}.segmented--3 button{letter-spacing:.12em;font-size:10px}.segmented button{color:var(--ink-soft);cursor:pointer;background:#ffffff0d;border:0;border-radius:8px;padding:7px 0;font-size:11px;transition:background .2s,color .2s}.segmented button:hover{color:#fff}.segmented button.is-on{color:#fff;background:#ffffff29}.switch{cursor:pointer;background:#ffffff24;border:0;border-radius:11px;flex:none;width:38px;height:22px;padding:0;transition:background .25s;position:relative}.switch__knob{background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .25s;position:absolute;top:3px;left:3px}.switch.is-on{background:#ffffff73}.switch.is-on .switch__knob{transform:translate(16px)}.settings__open{width:100%;color:var(--ink);letter-spacing:.04em;cursor:pointer;background:0 0;border:1px solid #ffffff1a;border-radius:10px;align-items:center;gap:10px;padding:9px 12px;font-size:12px;transition:background .2s;display:flex}.settings__open:hover{background:#ffffff0f}.settings__keys{grid-template-columns:auto 1fr;gap:5px 14px;margin:0;font-size:11px;display:grid}.settings__keys dt{color:var(--ink);font-variant-numeric:tabular-nums}.settings__keys dd{color:var(--ink-faint);margin:0}.settings__privacy{color:var(--ink-faint);margin:16px 0 0;font-size:10.5px;line-height:1.65}.playlist{right:var(--gutter);bottom:calc(96px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(18px)saturate(1.2);opacity:0;pointer-events:none;background:#08090eb8;border:1px solid #ffffff14;border-radius:16px;flex-direction:column;width:340px;max-width:calc(100vw - 32px);max-height:min(64vh,100vh - 140px);padding:12px 8px 10px;font-size:12px;transition:opacity .35s,transform .35s;display:flex;position:absolute;transform:translateY(8px)}.playlist.is-open{opacity:1;pointer-events:auto;transform:none}.playlist:not(.is-open) *{pointer-events:none!important}.playlist__head{align-items:center;gap:10px;padding:0 2px 8px 10px;display:flex}.playlist__heading{letter-spacing:.28em;text-transform:uppercase;color:var(--ink-soft);margin:0;font-size:10px}.playlist__count{letter-spacing:.1em;color:var(--ink-faint);font-variant-numeric:tabular-nums;font-size:10px}.playlist__modes{gap:2px;margin-left:auto;display:flex}.playlist__list{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#ffffff29 transparent;border-top:1px solid #ffffff0f;margin:0;padding:4px 0 2px;list-style:none;overflow-y:auto}.playlist__item{border-radius:9px;align-items:center;transition:transform .18s,background .2s;display:flex;position:relative}.playlist__item:hover{background:#ffffff0a}.playlist__item.is-dragging{z-index:1;background:#282a34f2;transition:none;box-shadow:0 6px 18px #00000073}.playlist__grip{color:#fff3;cursor:grab;touch-action:none;flex:none;place-items:center;width:22px;height:36px;transition:color .2s;display:grid}.playlist__grip svg{width:14px;height:14px}.playlist__item:hover .playlist__grip{color:#ffffff80}.playlist__list.is-sorting,.playlist__list.is-sorting *{cursor:grabbing}.playlist__play{min-width:0;height:36px;color:var(--ink-soft);text-align:left;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:10px;padding:0 6px 0 2px;transition:color .2s;display:flex}.playlist__play:hover,.playlist__item.is-current .playlist__play{color:#fff}.playlist__index,.playlist__eq{flex:none;width:18px}.playlist__index{letter-spacing:.04em;color:var(--ink-faint);font-variant-numeric:tabular-nums;text-align:right;font-size:10px}.playlist__name{text-overflow:ellipsis;white-space:nowrap;letter-spacing:.02em;flex:1;min-width:0;overflow:hidden}.playlist__note{letter-spacing:.08em;color:#ffb4a0bf;flex:none;font-size:10px}.playlist__item.is-error .playlist__name{color:var(--ink-faint);-webkit-text-decoration:line-through #ffffff40;text-decoration:line-through #ffffff40}.playlist__remove{color:#fff6;cursor:pointer;opacity:0;background:0 0;border:0;border-radius:50%;flex:none;place-items:center;width:30px;height:30px;padding:0;transition:opacity .2s,color .2s;display:grid}.playlist__remove svg{width:14px;height:14px}.playlist__item:hover .playlist__remove,.playlist__remove:focus-visible{opacity:1}.playlist__remove:hover{color:#fff}@media (hover:none){.playlist__remove{opacity:.6}}.playlist__eq{justify-content:flex-end;align-items:flex-end;gap:2px;height:12px;display:flex}.playlist__eq i{background:currentColor;border-radius:1px;width:2px;height:45%}.playlist__eq i:nth-child(2){height:80%;animation-delay:-.4s}.playlist__eq i:nth-child(3){height:60%;animation-delay:-.8s}.playlist.is-playing .playlist__eq i{animation-name:eq;animation-duration:1.2s;animation-timing-function:ease-in-out;animation-iteration-count:infinite}@keyframes eq{0%,to{height:30%}50%{height:100%}}.playlist__empty{text-align:center;color:var(--ink-faint);padding:20px 8px}.playlist__hint{color:var(--ink-faint);margin:8px 10px 0;font-size:10.5px}.toast{top:calc(28px + env(safe-area-inset-top));letter-spacing:.26em;text-transform:uppercase;white-space:nowrap;color:var(--ink);text-shadow:0 0 18px #000000e6;opacity:0;padding:0 16px;font-size:11px;transition:opacity .5s,transform .5s;position:absolute;left:50%;transform:translate(-50%,-6px)}.toast.is-visible{opacity:.85;transform:translate(-50%)}.drop-veil{opacity:0;border:1px solid #0000;border-radius:20px;place-items:center;transition:opacity .4s,border-color .4s;display:grid;position:absolute;inset:14px}.drop-veil span{letter-spacing:.5em;color:var(--ink);font-size:12px}#app.is-dragging:not([data-mode=landing]) .drop-veil{opacity:1;border-color:#ffffff2e}.fatal,.noscript{text-align:center;letter-spacing:.04em;color:var(--ink);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:24px;font-size:14px;display:flex;position:fixed;inset:0}.fatal p{margin:0}.fatal__detail{color:var(--ink-soft);font-size:12px}.debug{z-index:10;color:#cfe8e0;pointer-events:auto;-webkit-user-select:text;user-select:text;background:#0009;border-radius:8px;width:324px;padding:10px 12px;font:11px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace;position:fixed;top:12px;left:12px}.debug pre{font:inherit;white-space:pre-wrap;margin:0 0 8px}.debug__bars{gap:2px;display:grid}.debug__bar{grid-template-columns:58px 1fr;align-items:center;height:10px;display:grid}.debug__bar i{transform-origin:0;background:#8fe0c8;height:4px;display:block}.debug__timeline{background:#ffffff0a;width:300px;height:60px;margin:8px 0;display:block}.debug button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:1px solid #fff3;border-radius:6px;padding:4px 8px}@media (max-width:640px){.time{min-width:0;font-size:10px}.controls__row{gap:0}.ctrl{width:36px;height:36px}.seek{margin:0 6px}.label__world{display:none}.settings,.playlist{width:auto;left:16px;right:16px}}@media (max-width:420px){.time,.ctrl--toggle,.controls.has-playlist .ctrl.ctrl--prev{display:none}.ctrl-scene{letter-spacing:.14em;padding:0 4px 0 7px}}@media (prefers-reduced-motion:reduce){.landing__status-label,.landing__enter,.playlist.is-playing .playlist__eq i{animation:none}}
