:root{--bg:#090a0c;--panel:rgba(13,15,18,.88);--panel-solid:#111317;--ink:#f1eee8;--muted:#9da0a5;--line:rgba(255,255,255,.15);--red:#c52d32;--red-bright:#f0474c;--red-deep:#6d1015;--good:#dad7cf;--great:#d5353a;--shadow:0 20px 70px rgba(0,0,0,.58);--font-display:'Barlow Condensed',sans-serif;--font-body:'Inter',sans-serif}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:var(--font-body)}body{overflow:hidden}button,input{font:inherit}.scene{position:fixed;inset:0;background:linear-gradient(90deg,rgba(2,3,4,.34),rgba(2,3,4,.62) 42%,rgba(2,3,4,.4)),linear-gradient(0deg,rgba(3,4,5,.85),transparent 55%),url('horror-compound.png') center/cover no-repeat;transform:scale(1.03);animation:scene-drift 18s ease-in-out infinite alternate}.grain{position:fixed;inset:-60%;pointer-events:none;opacity:.09;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.6'/%3E%3C/svg%3E");animation:grain .25s steps(2) infinite}#app{position:relative;z-index:1;min-height:100vh}.topbar{position:fixed;z-index:20;top:0;left:0;right:0;height:74px;padding:0 clamp(20px,4vw,64px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,rgba(3,4,5,.74),transparent)}.brand-mini{display:flex;align-items:center;gap:11px;background:none;border:0;color:var(--ink);font-family:var(--font-display);font-weight:700;letter-spacing:.12em;font-size:15px;cursor:pointer}.brand-mark{width:26px;height:26px;border:2px solid var(--red);border-radius:50%;display:grid;place-items:center;transform:rotate(-25deg)}.brand-mark i{display:block;width:2px;height:16px;background:var(--ink);box-shadow:0 0 8px var(--red-bright)}.topbar-right,.currency{display:flex;align-items:center;gap:10px}.currency{padding:8px 13px;border:1px solid var(--line);background:rgba(7,8,10,.62)}.currency strong{font-family:var(--font-display);font-size:20px}.currency small{font-size:10px;letter-spacing:.12em;color:var(--muted)}.blood-icon{color:var(--red-bright);text-shadow:0 0 12px var(--red)}.icon-btn{width:38px;height:38px;border:1px solid var(--line);background:rgba(7,8,10,.62);color:var(--ink);cursor:pointer}.screen{position:absolute;inset:0;min-height:100vh;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .35s,transform .35s,visibility .35s}.screen.is-active{opacity:1;visibility:visible;transform:none}.menu-screen{display:grid;place-items:center}.menu-wrap{text-align:center;margin-top:-1vh}.eyebrow{display:flex;align-items:center;justify-content:center;gap:14px;color:#aeb0b3;font-family:var(--font-display);font-size:12px;letter-spacing:.35em}.eyebrow span{display:block;width:42px;height:1px;background:var(--red)}h1{margin:10px 0 25px;position:relative;display:inline-grid;font-family:var(--font-display);font-style:italic;font-weight:800;line-height:.72;letter-spacing:-.055em;text-shadow:0 7px 22px #000}h1 span{font-size:clamp(72px,10vw,138px);color:#f0ede7;-webkit-text-stroke:1px rgba(255,255,255,.2)}h1 em{font-size:clamp(72px,10vw,138px);font-style:italic;color:transparent;-webkit-text-stroke:2px #b9b8b5;filter:drop-shadow(0 0 16px rgba(197,45,50,.18))}h1 small{position:absolute;right:-5px;bottom:-20px;padding:3px 10px;background:var(--red);font-size:14px;letter-spacing:.42em;color:white;transform:skew(-8deg)}.menu-actions{display:grid;gap:10px;width:min(390px,84vw);margin:auto}.menu-btn{height:62px;padding:0 18px;display:grid;grid-template-columns:38px 1fr 30px;align-items:center;border:1px solid rgba(255,255,255,.17);background:linear-gradient(90deg,rgba(16,18,21,.91),rgba(10,11,13,.72));color:var(--ink);clip-path:polygon(7px 0,100% 0,calc(100% - 7px) 100%,0 100%);cursor:pointer;transition:.18s}.menu-btn b{font-family:var(--font-display);font-size:12px;color:#6f7378}.menu-btn span{font-family:var(--font-display);font-size:24px;font-weight:700;letter-spacing:.12em}.menu-btn i{font-size:28px;font-style:normal;color:#85888d}.menu-btn:hover,.menu-btn:focus-visible{transform:translateX(5px);border-color:rgba(240,71,76,.8);background:linear-gradient(90deg,rgba(74,15,19,.96),rgba(17,14,16,.87));outline:0}.menu-btn.primary{border-left:3px solid var(--red-bright)}.menu-hint{margin-top:24px;color:#aaaeb2;font-size:13px}.menu-hint kbd,.game-instruction kbd{margin-right:5px}.menu-status{position:absolute;left:4vw;bottom:28px;display:flex;align-items:center;gap:12px;color:#73777b;font-family:var(--font-display);font-size:11px;letter-spacing:.2em}.menu-status i{width:28px;height:1px;background:#555}.panel-screen{padding:100px 4vw 35px;overflow:auto}.panel-shell{width:min(900px,100%);margin:auto;padding:30px 34px;background:linear-gradient(145deg,rgba(16,18,22,.94),rgba(8,9,11,.9));border:1px solid var(--line);box-shadow:var(--shadow);backdrop-filter:blur(16px)}.panel-shell.wide{width:min(1080px,100%)}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;padding-bottom:22px;border-bottom:1px solid var(--line)}.section-kicker{font-family:var(--font-display);font-size:12px;letter-spacing:.28em;color:var(--red-bright)}h2{margin:2px 0 0;font:800 clamp(36px,5vw,58px)/.95 var(--font-display);letter-spacing:.02em}.back-btn{border:0;background:none;color:#b9bbc0;font-family:var(--font-display);letter-spacing:.12em;font-weight:700;cursor:pointer;padding:10px}.back-btn:hover{color:white}.difficulty-tabs{display:grid;grid-template-columns:repeat(4,1fr);margin-top:24px;border-bottom:1px solid var(--line)}.difficulty-tabs button{padding:14px 8px 13px;border:0;border-bottom:3px solid transparent;background:none;color:#777b81;font:700 16px var(--font-display);letter-spacing:.08em;cursor:pointer}.difficulty-tabs button small{display:block;font:500 10px var(--font-body);margin-top:4px}.difficulty-tabs button.active{color:white;border-color:var(--red-bright);background:linear-gradient(0deg,rgba(197,45,50,.12),transparent)}.level-meta{display:flex;justify-content:space-between;align-items:flex-end;padding:25px 0 20px}.level-meta>div>span{font:700 20px var(--font-display);letter-spacing:.15em}.level-meta p{margin:4px 0 0;color:var(--muted);font-size:13px}.progress-copy{text-align:right}.progress-copy strong{display:block;font:700 24px var(--font-display)}.progress-copy span{font-size:9px!important;color:var(--muted);letter-spacing:.18em!important}.level-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.level-card{aspect-ratio:1.35;padding:12px;position:relative;text-align:left;border:1px solid var(--line);background:rgba(255,255,255,.035);color:var(--ink);cursor:pointer;overflow:hidden;transition:.18s}.level-card:before{content:"";position:absolute;inset:auto 0 0;height:3px;background:#474a4e}.level-card strong{display:block;font:700 27px var(--font-display)}.level-card small{font-size:9px;letter-spacing:.14em;color:#8d9095}.level-card .star{position:absolute;right:10px;top:10px;color:#777}.level-card:hover:not(:disabled){transform:translateY(-2px);border-color:var(--red-bright);background:rgba(197,45,50,.1)}.level-card.available:before{background:var(--red-bright);box-shadow:0 0 10px var(--red)}.level-card.cleared{background:rgba(255,255,255,.075)}.level-card.cleared:before{background:#d5d2ca}.level-card.cleared .star{color:var(--red-bright)}.level-card:disabled{opacity:.34;cursor:not-allowed}.legend{display:flex;gap:22px;margin-top:20px;color:#85898f;font-size:11px}.dot{display:inline-block;width:7px;height:7px;margin-right:6px;background:#555}.dot.cleared{background:#ddd}.dot.current{background:var(--red)}.dot.locked{background:#3b3d40}.game-screen{background:radial-gradient(circle at center,rgba(14,16,20,.68),rgba(3,4,5,.84))}.game-hud{height:88px;padding:18px 4vw;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.trial-id{text-align:center}.trial-id span,.chain-status span{display:block;color:var(--red-bright);font:600 10px var(--font-body);letter-spacing:.2em}.trial-id strong{font:700 24px var(--font-display);letter-spacing:.1em}.chain-status{text-align:right}.chain-status strong{font:700 20px var(--font-display)}.arena{height:calc(100vh - 88px);display:grid;place-items:center;align-content:center;gap:24px;position:relative}.skill-check{width:min(50vh,390px);aspect-ratio:1;position:relative;border-radius:50%;cursor:crosshair;filter:drop-shadow(0 24px 30px rgba(0,0,0,.45));transition:transform .8s ease}.skill-check svg{width:100%;height:100%;overflow:visible;transform:rotate(-90deg)}.outer-echo,.dial-base,.inner-ring{fill:none}.outer-echo{stroke:rgba(255,255,255,.08);stroke-width:1;stroke-dasharray:2 8}.dial-base{stroke:#9a9a98;stroke-width:9;opacity:.55}.inner-ring{stroke:rgba(255,255,255,.11);stroke-width:1;stroke-dasharray:1 8}.zone{fill:none;stroke-linecap:butt}.good-zone{stroke:var(--good);stroke-width:15;filter:drop-shadow(0 0 6px rgba(255,255,255,.25))}.great-zone{stroke:var(--great);stroke-width:17;filter:drop-shadow(0 0 7px var(--red))}.needle{position:absolute;inset:4%;border-radius:50%;transform:rotate(0deg);will-change:transform;pointer-events:none}.needle span{position:absolute;top:-1px;left:50%;width:4px;height:48%;transform:translateX(-50%);background:linear-gradient(180deg,var(--red-bright) 0 8%,#eee 8% 58%,transparent 58%);clip-path:polygon(50% 0,100% 12%,66% 100%,34% 100%,0 12%);filter:drop-shadow(0 0 5px rgba(240,71,76,.7))}.dial-core{position:absolute;inset:36%;display:grid;place-items:center;align-content:center;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:radial-gradient(circle,#1e2126,#0b0c0f 72%);box-shadow:inset 0 0 20px #000}.dial-core span{font-size:22px;color:#c8c6c0}.dial-core small{margin-top:7px;font:600 8px var(--font-body);letter-spacing:.2em;color:#696d72}.game-instruction{display:flex;align-items:center;color:#9da0a5;font-size:12px}.game-instruction kbd{font-size:15px}.modifier-list{min-height:26px;display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.modifier-list span{padding:5px 9px;border:1px solid rgba(240,71,76,.35);background:rgba(87,12,16,.28);color:#c9c4c0;font:600 10px var(--font-body);letter-spacing:.1em}kbd{padding:4px 9px;border:1px solid #74777b;border-bottom-width:3px;background:#22252a;color:#fff;border-radius:3px;font:600 12px var(--font-body)}.result-overlay{position:absolute;inset:0;display:grid;place-items:center;background:rgba(3,4,5,.78);backdrop-filter:blur(8px);opacity:0;visibility:hidden;transition:.25s}.result-overlay.show{opacity:1;visibility:visible}.result-card{width:min(420px,88vw);padding:34px;text-align:center;border:1px solid var(--line);border-top:3px solid var(--red);background:#101216;box-shadow:var(--shadow)}.result-kicker{font-size:10px;letter-spacing:.22em;color:#9b9ea3}.result-card h3{margin:8px 0 3px;font:800 58px var(--font-display);font-style:italic}.result-card p{color:var(--muted)}.reward-row{display:flex;justify-content:space-between;margin:24px 0;padding:15px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:12px;color:#93969a}.reward-row strong{color:white}.reward-row i{color:var(--red);font-style:normal}.result-actions{display:grid;gap:8px}.solid-btn{padding:14px;border:1px solid var(--red-bright);background:var(--red);color:#fff;font:700 16px var(--font-display);letter-spacing:.12em;cursor:pointer}.text-btn{padding:10px;border:0;background:none;color:#a4a7ab;font:600 12px var(--font-display);letter-spacing:.12em;cursor:pointer}.settings-grid{display:grid;gap:24px;margin-top:25px}.setting-group>h3{margin:0 0 8px;color:var(--red-bright);font:600 12px var(--font-display);letter-spacing:.2em}.setting-row{min-height:68px;padding:13px 0;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px}.setting-row>div:first-child strong{display:block;font-size:14px}.setting-row>div:first-child span{display:block;margin-top:4px;color:#83878c;font-size:11px}.switch{width:46px;height:25px;padding:2px;border:1px solid #51545a;border-radius:20px;background:#25282d;cursor:pointer}.switch i{display:block;width:19px;height:19px;border-radius:50%;background:#8d9094;transition:.2s}.switch.active{background:var(--red-deep);border-color:var(--red)}.switch.active i{transform:translateX(19px);background:#fff}.stacked{align-items:flex-start}.segmented{display:flex;border:1px solid var(--line)}.segmented button{padding:9px 13px;border:0;background:transparent;color:#85888d;font:600 10px var(--font-body);cursor:pointer}.segmented button.active{background:var(--red);color:#fff}.slider-wrap{display:flex;align-items:center;gap:12px;width:min(330px,48vw)}input[type=range]{width:100%;accent-color:var(--red)}.slider-wrap output{width:32px;color:#bbb;font-size:11px;text-align:right}.shop-intro{display:flex;align-items:center;justify-content:space-between;margin:22px 0}.shop-intro p{color:var(--muted)}.currency.large{padding:9px 16px}.shop-tabs{display:flex;gap:5px;margin-bottom:15px}.shop-tabs button{padding:9px 15px;border:1px solid var(--line);background:#17191d;color:#8b8e93;font:600 11px var(--font-body);letter-spacing:.1em;cursor:pointer}.shop-tabs button.active{background:var(--red-deep);border-color:var(--red);color:white}.shop-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.shop-card{position:relative;border:1px solid var(--line);background:rgba(255,255,255,.035);overflow:hidden}.item-preview{aspect-ratio:1.35;display:grid;place-items:center;background:radial-gradient(circle,#25282d,#111317)}.preview-ring{width:74px;height:74px;border:8px solid var(--item-color);border-radius:50%;box-shadow:0 0 13px color-mix(in srgb,var(--item-color),transparent 45%);position:relative}.preview-ring:after{content:"";position:absolute;width:2px;height:42px;background:#eee;top:-9px;left:50%;transform:rotate(28deg);transform-origin:bottom}.item-info{padding:12px}.item-info strong{display:block;font:700 16px var(--font-display);letter-spacing:.04em}.item-info small{color:#85888d;font-size:9px;letter-spacing:.1em}.buy-btn{width:100%;padding:9px;border:0;border-top:1px solid var(--line);background:#181a1e;color:#ddd;font:600 11px var(--font-body);cursor:pointer}.buy-btn:hover{background:var(--red-deep)}.buy-btn.equipped{color:var(--red-bright)}.buy-btn:disabled{opacity:.45;cursor:not-allowed}.toast{position:fixed;z-index:80;left:50%;bottom:30px;transform:translate(-50%,15px);padding:11px 17px;border:1px solid var(--line);background:#15171b;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:.25s;font-size:12px}.toast.show{opacity:1;transform:translate(-50%,0)}.shake{animation:shake .35s}.flash-great:after,.flash-good:after{content:"";position:absolute;inset:-20%;border-radius:50%;animation:hitflash .55s;pointer-events:none}.flash-great:after{background:radial-gradient(circle,rgba(240,71,76,.42),transparent 60%)}.flash-good:after{background:radial-gradient(circle,rgba(255,255,255,.27),transparent 60%)}html[data-theme=light]{--ink:#17191c;--muted:#555a60;--line:rgba(0,0,0,.18);--panel:rgba(228,227,222,.92);--panel-solid:#e9e7e1}html[data-theme=light] .scene{filter:grayscale(.2) brightness(1.4)}html[data-theme=light] .panel-shell{background:rgba(232,230,224,.91)}html[data-theme=light] .setting-group,html[data-theme=light] .level-card{color:#16181b}
@keyframes scene-drift{to{transform:scale(1.06) translateX(-.5%)}}@keyframes grain{0%{transform:translate(0)}25%{transform:translate(3%,-2%)}50%{transform:translate(-2%,3%)}75%{transform:translate(2%,2%)}100%{transform:translate(-3%,-2%)}}@keyframes shake{0%,100%{transform:translate(0)}25%{transform:translate(-13px,5px)}50%{transform:translate(10px,-4px)}75%{transform:translate(-7px,2px)}}@keyframes hitflash{from{opacity:1;transform:scale(.5)}to{opacity:0;transform:scale(1.25)}}
@media(max-width:760px){.topbar{height:62px}.brand-mini>span:last-child{display:none}.panel-screen{padding:78px 14px 20px}.panel-shell{padding:22px 17px}.difficulty-tabs{grid-template-columns:repeat(2,1fr)}.level-grid{grid-template-columns:repeat(3,1fr)}.level-card{aspect-ratio:1.15}.shop-grid{grid-template-columns:repeat(2,1fr)}.shop-intro{align-items:flex-start;gap:12px}.shop-intro p{margin-top:0}.currency.large small{display:none}.setting-row.stacked{display:block}.segmented{margin-top:12px;width:max-content}.slider-wrap{width:45vw}.game-hud{height:74px}.arena{height:calc(100vh - 74px)}.skill-check{width:min(78vw,360px)}}

/* Dead by Daylight-inspired interface assets and default skill-check treatment. */
.brand-mini{width:136px;height:58px;padding:5px 0;justify-content:flex-start}
.brand-mini img{display:block;width:112px;max-height:52px;object-fit:contain;object-position:left center;filter:drop-shadow(0 2px 8px #000)}
.blood-icon{display:inline-block;width:25px;height:25px;object-fit:contain;vertical-align:middle;filter:drop-shadow(0 0 7px rgba(208,24,38,.7))}
.currency.large .blood-icon{width:30px;height:30px}.reward-row strong{display:flex;align-items:center;gap:5px}.reward-row .blood-icon{width:23px;height:23px}.bp-inline{width:18px;height:18px;object-fit:contain;vertical-align:-5px;margin-right:3px}
.fan-notice{position:absolute;right:4vw;bottom:22px;max-width:430px;margin:0;color:#62666b;font:500 9px var(--font-body);letter-spacing:.12em;text-align:right}
.dial-base{stroke:#e8e8e5;stroke-width:7;opacity:.3}.good-zone{stroke:var(--good);stroke-width:16;filter:drop-shadow(0 0 4px rgba(255,255,255,.25))}.great-zone{stroke:#fff;stroke-width:18;filter:drop-shadow(0 0 5px rgba(255,255,255,.8))}.needle span{background:linear-gradient(180deg,#f7f7f4 0 58%,transparent 58%);filter:drop-shadow(0 0 4px rgba(255,255,255,.7))}.dial-core{background:radial-gradient(circle,#17191d,#08090b 72%)}
@media(max-width:760px){.brand-mini{width:90px}.brand-mini img{width:78px}.fan-notice{left:14px;right:14px;bottom:8px;text-align:center;font-size:7px}.blood-icon{width:22px;height:22px}}

/* Readability, index, and animation performance pass. */
body{font-size:16px}.eyebrow,.menu-status,.section-kicker,.result-kicker{display:none!important}.menu-wrap{margin-top:0}.menu-actions{gap:12px}.menu-btn{height:68px}.menu-btn b{font-size:14px}.menu-btn span{font-size:27px}.menu-hint{font-size:16px}.currency small{font-size:13px}.currency strong{font-size:23px}
.panel-heading{padding-bottom:25px}.back-btn{font-size:16px}.difficulty-tabs button{font-size:19px}.difficulty-tabs button small{font-size:13px}.level-meta>div>span{font-size:24px}.level-meta p{font-size:16px}.progress-copy span{font-size:12px!important}.level-card small{font-size:13px;line-height:1.35}.legend{font-size:14px}.trial-id span,.chain-status span{font-size:13px}.trial-id strong,.chain-status strong{font-size:25px}.game-instruction{font-size:15px}.modifier-list span{font-size:13px}.result-card p,.reward-row{font-size:16px}.setting-group>h3{font-size:16px}.setting-row>div:first-child strong{font-size:17px}.setting-row>div:first-child span{font-size:14px;line-height:1.4}.segmented button{font-size:13px}.slider-wrap output{font-size:14px}.shop-intro p{font-size:16px}.shop-tabs button{font-size:14px}.item-info strong{font-size:19px}.item-info small{font-size:13px}.buy-btn{font-size:14px}.toast{font-size:14px}
.index-intro{max-width:720px;margin:24px 0 30px;color:#b0b3b8;font-size:17px;line-height:1.6}.index-section-title{margin:26px 0 14px;color:#f0ede7;font:700 22px var(--font-display);letter-spacing:.12em}.index-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.index-card{min-height:142px;padding:20px;border:1px solid var(--line);border-left:3px solid var(--red);background:rgba(255,255,255,.04)}.index-card strong{font:700 21px var(--font-display);letter-spacing:.04em}.index-card p{margin:9px 0 0;color:#a5a8ad;font-size:15px;line-height:1.55}.cosmetic-index{grid-template-columns:repeat(4,1fr)}
.grain{animation:none;opacity:.045}.skill-check{filter:none;contain:layout paint;will-change:transform}.needle{transform:translateZ(0);backface-visibility:hidden}.needle span{filter:none}.good-zone,.great-zone{filter:none}
@media(max-width:900px){.index-grid,.cosmetic-index{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.menu-btn{height:62px}.menu-btn span{font-size:23px}.menu-hint{font-size:14px}.index-grid,.cosmetic-index{grid-template-columns:1fr}.index-card{min-height:0}.fan-notice{font-size:9px}}

/* Input isolation and three-star progression. */
.screen{pointer-events:none;z-index:0}.screen.is-active{pointer-events:auto;z-index:2}.game-hud{display:grid;grid-template-columns:1fr auto 1fr}.game-hud-spacer{min-width:1px}.chain-status{justify-self:end}.abandon-btn{position:absolute;z-index:5;left:50%;bottom:24px;transform:translateX(-50%);padding:12px 22px;border:1px solid rgba(255,255,255,.22);background:rgba(8,9,11,.78);font-size:16px}.abandon-btn:hover{transform:translateX(-50%);border-color:var(--red-bright);background:rgba(76,15,20,.88)}
.level-card{border-width:1px}.level-card.status-locked{background:#060709;border-color:#181a1d;opacity:.5}.level-card.status-unlocked{background:#34373b;border-color:#555a60}.level-card.status-completed{background:#153a58;border-color:#3b86ba}.level-card.status-perfect{background:#17452f;border-color:#49a873}.level-card.status-locked:before{background:#17191c}.level-card.status-unlocked:before{background:#8b9096}.level-card.status-completed:before{background:#55a9e3;box-shadow:0 0 10px rgba(85,169,227,.45)}.level-card.status-perfect:before{background:#63db8f;box-shadow:0 0 10px rgba(99,219,143,.45)}.level-card.status-completed:hover:not(:disabled){background:#1c4b70}.level-card.status-perfect:hover:not(:disabled){background:#1c5439}.level-stars{position:absolute;right:11px;top:10px;display:flex;gap:3px}.level-stars i{color:rgba(255,255,255,.22);font-style:normal;font-size:17px}.level-stars i.earned{color:#f4d76b;text-shadow:0 0 6px rgba(244,215,107,.35)}
.dot.locked{background:#111317;border:1px solid #3a3d41}.dot.unlocked{background:#777c82}.dot.completed{background:#55a9e3}.dot.perfect{background:#63db8f}.result-overlay{z-index:10}.result-stars{margin:8px 0 2px;color:#f4d76b;font:700 31px var(--font-display);letter-spacing:.16em}.star-guide{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.star-guide>div{padding:17px;border:1px solid var(--line);background:rgba(255,255,255,.035)}.star-guide strong{display:block;color:#f4d76b;font:700 24px var(--font-display);letter-spacing:.1em}.star-guide span{display:block;margin-top:5px;color:#a5a8ad;font-size:14px;line-height:1.45}
@media(max-width:760px){.abandon-btn{bottom:14px}.star-guide{grid-template-columns:1fr}.legend{gap:12px;flex-wrap:wrap}}

/* Centred game status, attempts, and result actions. */
.game-hud{display:flex;justify-content:center}.game-hud-center{display:flex;align-items:center;justify-content:center;gap:32px}.game-hud-center>div{min-width:88px;text-align:center}.chain-status{justify-self:auto;text-align:center}.attempt-status span{display:block;color:var(--red-bright);font:600 13px var(--font-body);letter-spacing:.2em}.attempt-status strong{font:700 25px var(--font-display)}.level-attempts{position:absolute;left:12px;bottom:11px;color:rgba(255,255,255,.62);font:600 11px var(--font-body);letter-spacing:.1em}.result-attempts{margin-top:5px;color:#8f9398;font:600 13px var(--font-body);letter-spacing:.13em}.secondary-btn{padding:13px;border:1px solid rgba(255,255,255,.28);background:#25282d;color:#fff;font:700 16px var(--font-display);letter-spacing:.12em;cursor:pointer}.secondary-btn:hover{border-color:var(--red-bright);background:#3d2024}.solid-btn:disabled{opacity:.38;cursor:not-allowed;filter:grayscale(1)}
.star-average-note{margin:12px 0 0;color:#a5a8ad;font-size:14px;line-height:1.5}
@media(max-width:760px){.game-hud-center{gap:12px}.game-hud-center>div{min-width:68px}.trial-id strong,.chain-status strong,.attempt-status strong{font-size:20px}.trial-id span,.chain-status span,.attempt-status span{font-size:10px}.level-attempts{font-size:10px}}

/* Category-specific cosmetic previews and equipped effect rendering. */
.item-preview{position:relative;overflow:hidden}.preview-ring:after{background:#ecece8}.preview-needle{width:86px;height:86px;position:relative;border:4px solid rgba(235,235,231,.25);border-radius:50%}.preview-needle span{position:absolute;left:50%;bottom:50%;width:5px;height:55px;transform:translateX(-50%) rotate(28deg);transform-origin:bottom;background:var(--item-color);clip-path:polygon(50% 0,100% 12%,65% 100%,35% 100%,0 12%);box-shadow:0 0 12px var(--item-color)}.preview-effect{width:92px;height:92px;position:relative;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--item-color) 48%,transparent) 0 16%,transparent 55%)}.preview-effect span,.preview-effect i,.preview-effect b{position:absolute;width:10px;height:54px;background:linear-gradient(180deg,var(--item-color),transparent);clip-path:polygon(50% 0,100% 100%,0 100%);filter:drop-shadow(0 0 7px var(--item-color))}.preview-effect span{transform:rotate(0deg)}.preview-effect i{transform:rotate(120deg)}.preview-effect b{transform:rotate(240deg)}.preview-effect:after{content:"";width:32px;height:32px;border:5px solid var(--item-color);border-radius:50%;box-shadow:0 0 18px var(--item-color)}.preview-trail{width:100px;height:100px;position:relative;border-radius:50%;border:5px solid rgba(235,235,231,.15);transform:rotate(-35deg)}.preview-trail span{position:absolute;inset:-5px;border-radius:50%;border:7px solid transparent;border-top-color:var(--item-color);border-right-color:var(--item-color);filter:drop-shadow(0 0 6px var(--item-color))}.preview-trail i{position:absolute;left:50%;top:-12px;width:4px;height:58px;background:#eee;transform-origin:bottom;transform:rotate(64deg)}
.needle span{box-shadow:0 0 7px var(--trail-color),0 0 15px var(--trail-color),0 0 26px var(--trail-color)}.flash-great:after,.flash-good:after{background:radial-gradient(circle,color-mix(in srgb,var(--effect-color) 58%,transparent),transparent 62%)}
@media(max-height:720px){h1 span,h1 em{font-size:74px}.menu-actions{gap:7px}.menu-btn{height:52px}.menu-hint{margin-top:14px}.skill-check{width:min(54vh,330px)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}.scene{transform:none}}

/* Impossible trials and fully visible equipped cosmetics. */
.skill-check{contain:layout;overflow:visible}
.difficulty-tabs{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.difficulty-tabs button[data-difficulty="impossible"].active{border-color:#b75cff;background:linear-gradient(0deg,rgba(125,35,170,.24),transparent);text-shadow:0 0 12px rgba(183,92,255,.5)}.skill-check.is-teleporting{transition:none}
.needle:before{content:"";position:absolute;inset:-2%;border-radius:50%;pointer-events:none;background:conic-gradient(from 318deg,transparent 0 302deg,color-mix(in srgb,var(--trail-color) 30%,transparent) 314deg,var(--trail-color) 342deg,transparent 358deg);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 13px),#000 calc(100% - 11px),#000 calc(100% - 3px),transparent 100%);mask:radial-gradient(farthest-side,transparent calc(100% - 13px),#000 calc(100% - 11px),#000 calc(100% - 3px),transparent 100%);filter:drop-shadow(0 0 7px var(--trail-color));opacity:.95}.needle span{box-shadow:0 0 8px var(--trail-color),0 0 18px var(--trail-color)}
.flash-good:after,.flash-great:after{z-index:6;border:4px solid color-mix(in srgb,var(--effect-color) 72%,white);background:radial-gradient(circle,transparent 0 21%,color-mix(in srgb,var(--effect-color) 72%,transparent) 22% 27%,transparent 28% 43%,color-mix(in srgb,var(--effect-color) 58%,transparent) 44% 48%,transparent 49%);box-shadow:0 0 24px var(--effect-color),inset 0 0 24px var(--effect-color);mix-blend-mode:screen}.flash-good:after{inset:-10%;animation:hit-good .56s ease-out}.flash-great:after{inset:-38%;border-width:7px;animation:hit-great .76s ease-out}
.skill-check[data-effect="effect-spark"].flash-good:after,.skill-check[data-effect="effect-spark"].flash-great:after,.skill-check[data-effect="effect-crimson"].flash-good:after,.skill-check[data-effect="effect-crimson"].flash-great:after,.skill-check[data-effect="effect-electric"].flash-good:after,.skill-check[data-effect="effect-electric"].flash-great:after{background:repeating-conic-gradient(from 8deg,color-mix(in srgb,var(--effect-color) 82%,transparent) 0 3deg,transparent 4deg 18deg)}
.skill-check[data-effect="effect-frost"].flash-good:after,.skill-check[data-effect="effect-frost"].flash-great:after,.skill-check[data-effect="effect-ash"].flash-good:after,.skill-check[data-effect="effect-ash"].flash-great:after{background:repeating-radial-gradient(circle,color-mix(in srgb,var(--effect-color) 72%,transparent) 0 3px,transparent 5px 15px)}
.skill-check[data-effect="effect-void"].flash-good:after,.skill-check[data-effect="effect-void"].flash-great:after,.skill-check[data-effect="effect-eclipse"].flash-good:after,.skill-check[data-effect="effect-eclipse"].flash-great:after{background:radial-gradient(circle,var(--effect-color) 0 7%,transparent 9% 27%,color-mix(in srgb,var(--effect-color) 78%,transparent) 29% 34%,transparent 36% 55%,color-mix(in srgb,var(--effect-color) 48%,transparent) 57% 61%,transparent 63%)}
.skill-check[data-effect="effect-gold"].flash-good:after,.skill-check[data-effect="effect-gold"].flash-great:after,.skill-check[data-effect="effect-inferno"].flash-good:after,.skill-check[data-effect="effect-inferno"].flash-great:after{background:conic-gradient(from 20deg,transparent,var(--effect-color),transparent 18%,var(--effect-color) 28%,transparent 41%,var(--effect-color) 55%,transparent 70%,var(--effect-color) 84%,transparent)}
.skill-check[data-effect="effect-prism"].flash-good:after,.skill-check[data-effect="effect-prism"].flash-great:after,.skill-check[data-effect="effect-verdant"].flash-good:after,.skill-check[data-effect="effect-verdant"].flash-great:after,.skill-check[data-effect="effect-spectral"].flash-good:after,.skill-check[data-effect="effect-spectral"].flash-great:after{background:repeating-conic-gradient(from 0deg,color-mix(in srgb,var(--effect-color) 68%,transparent) 0 8deg,transparent 9deg 30deg)}
@keyframes hit-good{from{opacity:.95;transform:scale(.48) rotate(0)}to{opacity:0;transform:scale(1.18) rotate(24deg)}}@keyframes hit-great{from{opacity:1;transform:scale(.3) rotate(0)}to{opacity:0;transform:scale(1.48) rotate(58deg)}}
@media(max-width:760px){.difficulty-tabs{grid-template-columns:repeat(2,1fr)}}
