:root{--ink: #f2eefb;--muted: #a9a3bd;--neon-pink: #ff4f9a;--neon-cyan: #35d4ff;--panel-bg: #0d0c14;--panel-border: #2a2640;--font: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Noto Sans JP", system-ui, sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%;background:#07070b;color:var(--ink);font-family:var(--font);overflow:hidden}#scene{display:block;width:100vw;height:100vh}.hint{position:fixed;left:50%;top:20px;transform:translate(-50%);padding:10px 22px;background:#0a0910c7;border:1px solid rgba(53,212,255,.45);border-radius:999px;box-shadow:0 0 18px #35d4ff2e;font-size:14px;letter-spacing:.06em;white-space:nowrap;pointer-events:none}.site-back{position:fixed;top:20px;left:16px;padding:8px 16px;background:#0a0910c7;color:var(--ink);border:1px solid var(--panel-border);border-radius:999px;font-size:13px;letter-spacing:.04em;text-decoration:none;z-index:5}.site-back:hover{border-color:var(--neon-cyan)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:16px;overflow-y:auto;background:#040308b8;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:10}.overlay[hidden]{display:none}.overlay__panel{position:relative;width:min(760px,100%,calc((100dvh - 32px - 230px) * 16 / 9 + 40px));min-width:min(320px,100%);padding:20px;background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:14px;box-shadow:0 30px 80px #000000b3,0 0 0 1px #ff4f9a14}.overlay__close{position:absolute;top:-14px;right:-14px;width:36px;height:36px;background:var(--panel-bg);color:var(--ink);border:1px solid var(--panel-border);border-radius:50%;font-size:20px;line-height:1;cursor:pointer}.overlay__close:hover{border-color:var(--neon-pink)}.overlay__video{aspect-ratio:16 / 9;width:100%;background:#000;border-radius:8px;overflow:hidden}.overlay--short .overlay__panel{width:min(420px,100%,calc((100dvh - 332px)*.5625 + 40px));min-width:min(260px,100%)}.overlay--short .overlay__video{aspect-ratio:9 / 16}.overlay__cta[hidden]{display:none}.overlay__video iframe{width:100%;height:100%;border:0}.overlay__title{margin:18px 0 6px;font-size:20px;letter-spacing:.02em}.overlay__desc{margin:0 0 18px;font-size:14px;line-height:1.7;color:var(--muted);white-space:pre-line}.overlay__cta{display:inline-block;padding:12px 26px;background:var(--neon-pink);color:#16050d;font-weight:800;text-decoration:none;border-radius:10px;box-shadow:0 0 22px #ff4f9a73}.overlay__cta:hover{filter:brightness(1.1)}.shelf-nav{position:fixed;bottom:20px;left:50%;transform:translate(-50%);display:flex;flex-direction:column-reverse;align-items:center;gap:8px;z-index:5}.shelf-nav[hidden]{display:none}.shelf-nav__tabs{display:flex;gap:4px;padding:4px;background:#0a0910d1;border:1px solid var(--panel-border);border-radius:999px}.shelf-nav__tab{min-height:36px;padding:0 16px;background:transparent;color:var(--muted);border:0;border-radius:999px;font:700 14px/1 var(--font);letter-spacing:.04em;white-space:nowrap;cursor:pointer}.shelf-nav__tab[aria-pressed=true]{background:var(--neon-pink);color:#16050d;box-shadow:0 0 14px #ff4f9a73}.shelf-nav__tab--entrance{position:relative;margin-right:5px}.shelf-nav__tab--entrance:after{content:"";position:absolute;top:8px;bottom:8px;right:-5px;width:1px;background:var(--panel-border)}.shelf-nav__tab--entrance[aria-pressed=true]{background:var(--neon-cyan);color:#04141a;box-shadow:0 0 14px #35d4ff73}.shelf-nav__section{padding:4px 14px;background:#0a0910b3;border-radius:999px;font-size:13px;letter-spacing:.06em;color:var(--neon-cyan)}.section-arrow{position:fixed;top:50%;transform:translateY(-50%);width:48px;height:48px;background:#0a0910c7;color:var(--ink);border:1px solid rgba(53,212,255,.45);border-radius:50%;font-size:28px;line-height:1;cursor:pointer;z-index:5}.section-arrow--prev{left:16px}.section-arrow--next{right:16px}.section-arrow:disabled{opacity:.25;cursor:default}.section-arrow[hidden]{display:none}@media(max-width:600px){.site-back{top:12px;left:12px}.hint{top:60px}.overlay__close{top:8px;right:8px}.shelf-nav__tab{padding:0 12px;font-size:13px}.section-arrow--prev{left:8px}.section-arrow--next{right:8px}}
