:root{font-family:"PingFang SC","Noto Sans CJK SC",system-ui,sans-serif;color:#f5f0ff;background:#0c0c1d}*{box-sizing:border-box}body{min-height:100dvh;margin:0;background:#0c0c1d}button,input{font:inherit}button{border:0;-webkit-tap-highlight-color:transparent;cursor:pointer}button:disabled{cursor:wait}.scene{position:relative;isolation:isolate;width:min(100%,520px);min-height:100dvh;margin:auto;padding:max(20px,env(safe-area-inset-top)) 18px max(26px,env(safe-area-inset-bottom));overflow:hidden;background:radial-gradient(circle at 72% -8%,color-mix(in srgb,var(--accent) 30%,transparent),transparent 32%),radial-gradient(circle at 10% 64%,#27315a 0,transparent 36%),linear-gradient(155deg,#17152e,#0d0d1e 70%)}.scene:before{position:absolute;z-index:-1;inset:0;content:"";opacity:.32;background-image:radial-gradient(#fff 0.65px,transparent .8px),linear-gradient(115deg,transparent 48%,rgba(255,255,255,.12) 50%,transparent 52%);background-size:11px 11px,90px 100%}.nebula{position:absolute;z-index:-1;right:-110px;top:32%;width:330px;height:330px;border:1px solid color-mix(in srgb,var(--accent) 43%,transparent);border-radius:44% 56% 65% 35%;filter:blur(.1px);transform:rotate(-24deg);box-shadow:0 0 80px color-mix(in srgb,var(--accent) 19%,transparent),inset 0 0 60px color-mix(in srgb,var(--accent) 12%,transparent)}.eyebrow{margin:0;color:#c8baf0;font-size:11px;font-weight:750;letter-spacing:.18em}.hero{min-height:66dvh;padding:6vh 8px 28px;display:flex;flex-direction:column;justify-content:center}.hero h1,.detail h1,.hall h1,.rules h1,.gate h1{margin:12px 0;color:#faf7ff;font:750 clamp(34px,10vw,49px)/1.13 "Songti SC","STSong",serif;letter-spacing:.03em}.hero h1 em{color:#d9c3ff;font-style:normal}.hero>p:not(.eyebrow){color:#bdb6d2;font:16px/1.9 "Kaiti SC","Songti SC",serif}.primary,.secondary,.ghost{min-height:50px;border-radius:14px;transition:.2s transform,.2s filter}.primary{width:100%;margin-top:20px;color:#171223;background:linear-gradient(115deg,#f3e8ff,var(--accent));box-shadow:0 13px 34px color-mix(in srgb,var(--accent) 27%,transparent);font-weight:800;letter-spacing:.08em}.primary:active,.role-card:active,.choices button:active{transform:scale(.985)}.secondary{width:100%;border:1px solid color-mix(in srgb,var(--accent) 70%,#fff);color:#efe9fa;background:rgba(255,255,255,.06);font-weight:700}.ghost{width:100%;color:#c3bad6;background:transparent;text-decoration:underline;text-underline-offset:4px}.mini-demo{display:grid;gap:7px;margin:0 0 28px;padding:19px;border:1px solid rgba(221,210,255,.16);border-radius:18px;background:rgba(255,255,255,.045)}.mini-demo span{color:#a89bbb;font-size:10px;letter-spacing:.14em}.mini-demo b{margin-bottom:7px;color:#eee8f7;font:16px/1.5 "Kaiti SC",serif}.section-title{display:grid;gap:5px;margin-bottom:12px}.section-title span{color:#d7c8f5;font-size:13px;font-weight:760}.section-title b{color:#9187a6;font-size:11px;font-weight:500}.home-list{padding-bottom:10px}.role-card{position:relative;width:100%;display:grid;grid-template-columns:53px 1fr;gap:11px;margin:10px 0;padding:15px;border:1px solid rgba(224,215,255,.15);border-radius:17px;color:#f5f0ff;background:linear-gradient(125deg,rgba(255,255,255,.09),rgba(255,255,255,.03));text-align:left;overflow:hidden}.role-card:after{position:absolute;inset:0 0 0 auto;width:4px;content:"";background:var(--accent)}.symbol{align-self:center;display:grid;width:48px;height:48px;place-items:center;border:1px solid color-mix(in srgb,var(--accent) 70%,#fff);border-radius:50%;color:#f2eaff;font:29px "Songti SC",serif}.role-copy{display:grid;gap:4px;padding-right:8px}.role-copy small{color:#b7acd1;font-size:10px;letter-spacing:.12em}.role-copy b{font-size:17px}.role-copy em{color:#d2cbdc;font:13px/1.55 "Kaiti SC",serif;font-style:normal}.role-copy i{color:#a39ab4;font-size:10px;font-style:normal}.role-card>strong{grid-column:2;color:#ddcafb;font-size:10px;font-weight:600}.disclaimer,.tiny{margin:20px 4px 0;color:#928aa7;font-size:10px;line-height:1.75}.top{display:flex;align-items:center;justify-content:space-between;margin-bottom:34px}.top span{font-size:13px;font-weight:700;letter-spacing:.1em}.top button,.challenge-head button{padding:4px;color:#ded6ee;background:transparent;font-size:12px}.hall{padding:5px 1px}.hall h1{font-size:34px;margin-bottom:24px}.detail{padding-top:4vh;text-align:center}.big-symbol,.gate-symbol{display:grid;width:128px;height:128px;place-items:center;margin:0 auto 24px;border:1px solid color-mix(in srgb,var(--accent) 66%,#fff);border-radius:45% 55% 42% 58%;color:#f0e3ff;font:76px "Songti SC",serif;box-shadow:0 0 52px color-mix(in srgb,var(--accent) 35%,transparent);animation:float 4.5s ease-in-out infinite}.hook{margin:0 auto 20px;max-width:340px;color:#d7cfe2;font:17px/1.8 "Kaiti SC",serif}.stats{display:grid;grid-template-columns:repeat(3,1fr);margin:26px 0;border-block:1px solid rgba(235,228,255,.17)}.stats div{display:grid;gap:6px;padding:15px 5px;border-right:1px solid rgba(235,228,255,.14)}.stats div:last-child{border:0}.stats b{color:#f1e8ff;font-size:15px}.stats span{color:#9e95ae;font-size:10px}.warning{padding:15px;text-align:left;border-left:2px solid var(--accent);background:rgba(255,255,255,.06)}.warning b{color:#ebdfff;font-size:11px;letter-spacing:.12em}.warning p{margin:7px 0 0;color:#c6bfd3;font-size:13px;line-height:1.75}.topics{margin:16px 4px;color:#aaa0ba;font-size:11px;line-height:1.7}.gate{padding-top:8vh;text-align:center}.gate>p:not(.eyebrow,.tiny){color:#beb7cf;font:16px/1.75 "Kaiti SC",serif}.gate label{display:grid;gap:7px;margin-top:28px;text-align:left;color:#c5bad9;font-size:11px}.gate input{height:52px;padding:0 14px;border:1px solid rgba(230,219,255,.28);border-radius:12px;outline:none;color:#f9f4ff;background:rgba(6,6,20,.55);text-align:center;text-transform:uppercase;letter-spacing:.09em}.gate input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent)}.rules{display:grid;min-height:90dvh;align-content:center}.rules h1{font-size:34px}.rules ol{display:grid;gap:12px;margin:24px 0 20px;padding:0;list-style:none;counter-reset:rules}.rules li{display:grid;grid-template-columns:27px 1fr;gap:10px;color:#d9d1e4;font-size:14px;line-height:1.6;counter-increment:rules}.rules li:before{display:grid;width:24px;height:24px;place-items:center;border:1px solid var(--accent);border-radius:50%;color:#eedfff;content:counter(rules);font-size:11px}.path{display:flex;justify-content:space-between;gap:4px;margin:17px 0}.path i{display:block;flex:1;height:4px;border-radius:4px;background:rgba(224,215,246,.2)}.path i.done{background:var(--accent);box-shadow:0 0 9px color-mix(in srgb,var(--accent) 80%,transparent)}.path i.current{background:#f6edff;box-shadow:0 0 10px #f5eaff}.path i.dark{background:rgba(17,14,28,.9)}.challenge-head{display:grid;grid-template-columns:32px 1fr 32px;align-items:center}.challenge-head>div{text-align:center}.challenge-head span{color:#cfc6df;font-size:10px;letter-spacing:.12em}.challenge-head .path{margin:7px 0}.stage{padding-top:9vh}.scene-copy{margin:0 0 24px;color:#b2a8c5;font-size:13px;line-height:1.65}.speaker{display:flex;align-items:center;gap:8px;color:#d5cae8;font-size:11px}.speaker span{display:grid;width:28px;height:28px;place-items:center;border:1px solid var(--accent);border-radius:50%;font-size:17px}.stage blockquote{position:relative;margin:12px 0 34px;padding:18px 19px;border:1px solid rgba(237,229,255,.17);border-radius:5px 18px 18px 18px;color:#faf7ff;background:rgba(255,255,255,.085);font:22px/1.52 "Kaiti SC","Songti SC",serif}.reply-label{color:#c5b8d8;font-size:12px}.choices{display:grid;gap:10px}.choices button{position:relative;display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:center;min-height:61px;padding:12px 13px;border:1px solid rgba(235,225,255,.17);border-radius:14px;color:#e8e1f1;background:rgba(255,255,255,.055);text-align:left;font-size:13px;line-height:1.55;transition:.2s}.choices button:hover{border-color:color-mix(in srgb,var(--accent) 75%,#fff);background:rgba(255,255,255,.1)}.choices i{display:grid;width:25px;height:25px;place-items:center;border:1px solid rgba(234,223,255,.42);border-radius:50%;color:#cbbbe4;font-size:10px;font-style:normal}.choices .picked{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 20%,transparent);transform:translateY(-2px)}.beat{display:grid;min-height:90dvh;place-content:center;text-align:center}.beat .path{width:min(300px,80vw)}.beat p{color:#eee6fa;font:22px "Kaiti SC",serif}.beat.uneasy p{color:#b6a0c0}.result{padding-top:6vh}.result-card{position:relative;overflow:hidden;padding:31px 22px 20px;border:1px solid rgba(241,232,255,.28);border-radius:22px;background:radial-gradient(circle at 50% 7%,color-mix(in srgb,var(--accent) 48%,transparent),transparent 35%),linear-gradient(160deg,#29233f,#131226);text-align:center;box-shadow:0 24px 60px rgba(0,0,0,.35)}.result-card.failed{background:radial-gradient(circle at 50% 7%,rgba(164,66,112,.4),transparent 35%),linear-gradient(160deg,#332136,#17101f)}.card-symbol{display:block;color:#f6edff;font:54px "Songti SC",serif}.result-card p{margin:8px 0;color:#e8d9fa;font-size:10px;letter-spacing:.12em}.result-card h1{margin:9px 0;color:#fffaff;font:700 31px/1.3 "Songti SC",serif}.result-card>b{color:#d1bddc;font-size:11px;font-weight:500}.result-card .path{margin:24px 0 14px}.result-card em{color:#a59aaf;font-size:9px;font-style:normal}.replay{margin:15px 0;padding:15px;border:1px dashed color-mix(in srgb,var(--accent) 75%,#fff);background:rgba(255,255,255,.055);text-align:center}.replay span{color:#c8b3dd;font-size:10px}.replay b{display:block;margin:6px;color:#f2eaff;font:18px "Kaiti SC",serif}.replay p{margin:0;color:#c9bdd0;font-size:11px}.report{margin:16px 0;padding:20px;border:1px solid rgba(234,225,255,.15);border-radius:17px;background:rgba(255,255,255,.05)}.report h2{margin:0 0 9px;color:#eee6f9;font-size:13px}.report p{margin:0 0 19px;color:#c9c0d5;font-size:13px;line-height:1.82}.report blockquote{margin:0 0 22px;padding:12px;border-left:2px solid var(--accent);color:#e5d8ef;font:14px/1.75 "Kaiti SC",serif;background:rgba(255,255,255,.04)}.actions{display:grid;gap:9px}.actions .primary{margin-top:0}.history{padding-top:8px}.history h1{margin:9px 0 24px;font:700 33px "Songti SC",serif}.history article{display:grid;grid-template-columns:38px 1fr;gap:11px;margin:10px 0;padding:14px;border:1px solid rgba(237,228,255,.14);border-radius:14px;background:rgba(255,255,255,.04)}.history article>span{display:grid;width:34px;height:34px;place-items:center;border:1px solid var(--accent);border-radius:50%;color:#eedfff;font-size:21px}.history b{color:#eee7f7;font-size:13px}.history p{margin:6px 0;color:#b8afc5;font-size:12px;line-height:1.6}.history small{color:#8e849d;font-size:9px}.empty{color:#b5aabe;font-size:13px}@keyframes float{50%{transform:translateY(-8px) rotate(3deg)}}.toast{position:fixed;z-index:8;left:50%;bottom:25px;max-width:calc(100% - 34px);padding:11px 15px;border:1px solid rgba(237,227,255,.28);border-radius:12px;color:#fbf6ff;background:#2c2742;box-shadow:0 12px 40px rgba(0,0,0,.4);opacity:0;transform:translate(-50%,14px);pointer-events:none;transition:.2s;font-size:12px;text-align:center}.toast.shown{opacity:1;transform:translate(-50%,0)}.toast.error{background:#632b49}.reduce-motion *,.reduce-motion *:before,.reduce-motion *:after{animation-duration:.01ms!important;transition-duration:.01ms!important}@media(max-width:370px){.scene{padding-inline:13px}.hero h1{font-size:35px}.stage{padding-top:5vh}.stage blockquote{font-size:20px}.choices button{font-size:12px}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
