@font-face{font-family:Cinzel;font-style:normal;font-weight:400 700;font-display:swap;src:url('./fonts/cinzel-latin.woff2') format('woff2')}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url('./fonts/dm-sans-latin.woff2') format('woff2')}

:root{--ivory:#eee5d3;--muted:#a4a49b;--gold:#d9ae67;--ember:#efb170;--line:rgba(215,183,126,.25);--serif:'Cinzel',Georgia,serif;--sans:'DM Sans',Arial,sans-serif;color-scheme:dark;font-family:var(--sans);color:var(--ivory);font-synthesis:none}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;background:#101a1c}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible{outline:2px solid #f4cb87;outline-offset:5px}button:disabled{cursor:default}button svg{pointer-events:none}button{touch-action:manipulation}svg{display:block}#scene{position:fixed;inset:0}#scene canvas{display:block;width:100%;height:100%;outline:none;touch-action:none}#ui{position:fixed;inset:0;pointer-events:none;user-select:none;-webkit-user-select:none}#ui button,#ui [data-interactive]{pointer-events:auto}.hidden{display:none!important}.eyebrow{font-size:10px;font-weight:600;letter-spacing:3px;text-transform:uppercase}.gold{color:var(--gold)}.key{display:inline-flex;justify-content:center;align-items:center;min-width:24px;height:22px;padding:0 5px;font-size:10px;letter-spacing:.5px;border:1px solid rgba(225,216,191,.23);border-bottom-width:2px;border-radius:3px;color:#d6cdbb}.utility{display:flex;align-items:center;gap:9px;border:1px solid rgba(219,210,185,.16);border-radius:3px;background:rgba(12,22,24,.38);backdrop-filter:blur(8px);padding:10px 13px;font-size:11px;color:#c6c5b8;letter-spacing:.5px;transition:color .2s,background .2s}.utility:hover{background:rgba(33,44,45,.8);color:var(--ivory)}.utility svg{width:16px;height:16px}.top-utilities{position:absolute;top:30px;right:34px;display:flex;gap:8px;z-index:8}.brand-mark{width:28px;height:34px;color:#dfb06d}.menu{position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,16,19,.93) 0%,rgba(8,17,20,.8) 26%,rgba(9,19,22,.40) 49%,transparent 75%),linear-gradient(0deg,rgba(7,13,15,.75),transparent 24%,transparent 80%,rgba(7,13,15,.3));animation:menu-in 1.1s ease}.menu-top{position:absolute;top:34px;left:55px;display:flex;align-items:center;gap:15px}.menu-top .eyebrow{font-size:9px;letter-spacing:2.8px;color:#a5afa9}.menu-content{position:absolute;left:7%;top:50%;transform:translateY(-47%);width:520px;max-width:49vw}.edition{display:flex;align-items:center;gap:13px;color:#cdad79;margin:0 0 22px;font-size:9px;letter-spacing:3.7px}.edition:before{content:'';width:27px;height:1px;background:#b79057}.game-title{margin:0;color:#eee2c9;font-family:var(--serif);font-size:clamp(55px,5.9vw,88px);font-weight:500;letter-spacing:2px;line-height:1.04;text-shadow:0 4px 30px rgba(0,0,0,.35)}.game-subtitle{display:flex;align-items:center;gap:18px;margin:16px 0 28px;font-family:var(--serif);font-size:13px;letter-spacing:5.6px;color:#c3a87e}.game-subtitle:before,.game-subtitle:after{content:'';height:1px;flex:1;max-width:45px;background:linear-gradient(90deg,transparent,#b59562)}.game-subtitle:after{background:linear-gradient(90deg,#b59562,transparent)}.tagline{font-family:Georgia,serif;font-size:22px;line-height:1.55;font-weight:400;margin:0 0 7px;letter-spacing:.2px;color:#d8d5c9}.tagline em{font-style:normal;color:#e7bc84}.intro-copy{font-size:12px;line-height:1.8;color:#9ca6a2;margin:0;max-width:350px}.character-heading{margin:29px 0 12px;display:flex;align-items:center;gap:10px;color:#a3a99d;font-size:9px;letter-spacing:2.5px}.character-heading:after{height:1px;content:'';width:40px;background:var(--line)}.hero-options{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-width:430px}.hero-card{position:relative;display:flex;align-items:center;gap:10px;text-align:left;border:1px solid rgba(188,187,163,.17);border-radius:2px;background:rgba(11,23,26,.52);height:69px;padding:11px 12px;transition:all .2s}.hero-card svg{width:25px;height:31px;flex-shrink:0;color:#8d9c96}.hero-card .hero-name{font-size:11px;font-weight:500;white-space:nowrap}.hero-card .hero-role{font-size:8px;display:block;margin-top:5px;color:#80908b;letter-spacing:1px;text-transform:uppercase}.hero-card:hover{border-color:#8d784f;background:rgba(47,43,33,.5)}.hero-card.selected{border-color:#b78e52;background:linear-gradient(110deg,rgba(131,86,39,.25),rgba(29,34,31,.6));box-shadow:inset 0 0 20px rgba(206,150,70,.035)}.hero-card.selected:after{position:absolute;bottom:-1px;left:38%;right:38%;height:2px;content:'';background:#f2bb71;box-shadow:0 0 9px rgba(242,187,113,.45)}.hero-card.selected svg{color:#e1ad65}.hero-card.selected .hero-name{color:#f0d5aa}.hero-card.selected .hero-role{color:#ad9a7b}.hero-description{font-size:11px;color:#a1a59a;min-height:30px;margin:14px 0 19px;line-height:1.7}.start-button{display:flex;align-items:center;justify-content:space-between;width:286px;min-height:55px;position:relative;border:1px solid #d5af74;border-radius:2px;background:linear-gradient(115deg,#e6bd7e,#c2995c);color:#27251e;padding:0 23px;box-shadow:0 4px 26px #0004,inset 0 0 0 3px rgba(62,45,22,.11);font-size:11px;letter-spacing:2.5px;font-weight:700;text-transform:uppercase;transition:filter .2s,transform .2s}.start-button:hover{filter:brightness(1.13);transform:translateY(-2px)}.start-button svg{width:21px;height:21px}.run-note{color:#788c87;font-size:9px;letter-spacing:1.6px;text-transform:uppercase;margin:13px 0 0 2px}.menu-bottom{position:absolute;bottom:30px;left:55px;right:36px;display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.control-guide{display:flex;align-items:center;gap:20px;font-size:10px;color:#9ca9a3}.control-guide>span{display:flex;align-items:center;gap:8px}.auto-note{color:#758b83;font-size:9px;letter-spacing:1px;text-transform:uppercase;border-left:1px solid #ffffff20;padding-left:20px}.location-label{text-align:right}.location-label .eyebrow{font-size:9px;letter-spacing:2px;color:#b8c2b5}.location-label p{font-family:Georgia,serif;color:#e4d9c2;font-size:20px;letter-spacing:.5px;margin:8px 0 0}.location-label small{font-size:9px;color:#8a9b93;display:block;margin-top:8px;letter-spacing:1px}.location-number{display:inline-block;color:#d7b77d;font-size:10px;margin-right:12px}.menu-seal{position:absolute;right:7%;top:50%;transform:translateY(-50%);width:230px;height:230px;border:1px solid rgba(232,206,150,.1);border-radius:50%;display:none}
.hud{position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,13,16,.61),transparent 140px),linear-gradient(0deg,rgba(5,13,17,.63),transparent 150px)}.health-block{position:absolute;left:32px;top:29px;display:flex;gap:14px;align-items:center}.hero-badge{height:51px;width:51px;display:grid;place-items:center;background:linear-gradient(135deg,rgba(44,47,36,.85),rgba(13,25,26,.9));border:1px solid #8d764e;transform:rotate(45deg);margin:0 9px}.hero-badge svg{width:30px;height:30px;transform:rotate(-45deg);color:#d7b576}.health-main{min-width:210px}.health-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.health-label strong{font-family:var(--serif);font-size:13px;letter-spacing:1.2px;font-weight:500}.health-label span{font-size:10px;color:#c7c5b2}.health-track{width:210px;height:7px;background:#1c2525;border:1px solid #6f4e3b;transform:skew(-12deg);overflow:hidden}.health-fill{height:100%;width:100%;background:linear-gradient(90deg,#9e443c,#d57554);box-shadow:0 0 15px #e8684544;transition:width .15s}.level-row{display:flex;gap:15px;align-items:center;margin-top:8px;color:#b4b8a8;font-size:9px;letter-spacing:1.4px}.level-row span{color:#788d85}.run-clock{position:absolute;top:24px;left:50%;transform:translateX(-50%);text-align:center}.run-clock .eyebrow{font-size:8px;color:#a8b1a3;letter-spacing:2.8px}.clock-time{font-family:var(--serif);font-size:32px;letter-spacing:3px;line-height:1.4;color:#e6dfc9;font-variant-numeric:tabular-nums}.wave-label{color:#d4b77e;font-size:8px;letter-spacing:2px;text-transform:uppercase}.kill-block{position:absolute;right:34px;top:88px;display:flex;align-items:center;gap:10px;color:#b1bbb1}.kill-block svg{width:17px;height:17px;color:#c5ad7d}.kill-block strong{font-family:var(--serif);font-size:20px;font-weight:400}.kill-block span{font-size:8px;letter-spacing:1.5px}.xp-track{position:absolute;bottom:0;left:0;right:0;height:4px;background:rgba(12,28,27,.8)}.xp-fill{height:100%;background:linear-gradient(90deg,#4c8c78,#abc39b);box-shadow:0 0 16px #b3dfa044;transition:width .2s}.ability-bar{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:10px}.ability{position:relative;display:flex;gap:12px;align-items:center;min-width:150px;height:61px;background:rgba(11,22,24,.75);backdrop-filter:blur(8px);border:1px solid #81724d77;border-radius:3px;padding:10px 14px;text-align:left;overflow:hidden}.ability:before{content:'';position:absolute;inset:0;transform:scaleY(var(--cooldown,0));transform-origin:bottom;background:rgba(171,165,132,.13);pointer-events:none;transition:transform .15s}.ability svg{height:30px;width:28px;color:#d6b580}.ability-info{position:relative}.ability-name{font-family:var(--serif);font-size:10px;letter-spacing:.5px;display:block}.ability-status{display:block;font-size:9px;letter-spacing:1px;color:#99a89a;margin-top:6px}.ability .key{height:17px;min-width:20px;font-size:8px;position:absolute;right:6px;top:5px;background:#07161888}.ability.ready{border-color:#c4a56b88}.ability:hover{background:rgba(32,40,32,.85)}.auto-attack{width:68px;height:68px;display:grid;place-items:center;border:1px solid #8a7d5766;border-radius:50%;background:rgba(13,26,26,.75);margin:0 9px;position:relative}.auto-attack:after{content:'';position:absolute;inset:5px;border:1px solid #a8955a44;border-radius:50%}.auto-attack svg{width:30px;height:30px;color:#dbc08d}.auto-attack-label{position:absolute;top:-15px;left:50%;transform:translateX(-50%);font-size:7px;letter-spacing:2px;white-space:nowrap;color:#9aaa9c}.objective{position:absolute;left:34px;bottom:33px;color:#c5c9b8;display:flex;gap:11px;align-items:center;font-size:10px;letter-spacing:.4px}.objective:before{content:'◇';font-size:20px;color:#b6a36e}.objective span{display:block;font-size:8px;letter-spacing:1.3px;color:#8a9e92;text-transform:uppercase;margin-top:5px}.hud-help{position:absolute;right:34px;bottom:39px;color:#8e9e91;font-size:9px;letter-spacing:.5px}.hud-help .key{margin-right:7px}.boss-panel{position:absolute;left:50%;top:119px;transform:translateX(-50%);width:360px;max-width:70vw;text-align:center}.boss-name{font-family:var(--serif);font-size:11px;letter-spacing:3px;color:#e3b99d;margin-bottom:9px}.boss-track{height:6px;background:#221f21;border:1px solid #9c5c42;box-shadow:0 0 20px #6e2d2d22}.boss-fill{height:100%;width:100%;background:linear-gradient(90deg,#8c3836,#c78159);transition:width .15s}.boss-name:before,.boss-name:after{content:'◆';font-size:5px;margin:0 13px;color:#9a6e48}.toast{position:absolute;top:26%;left:50%;transform:translate(-50%,-10px);text-align:center;opacity:0;transition:opacity .25s,transform .25s;max-width:85vw;z-index:15;color:#efdbb9;text-shadow:0 2px 12px #000;font-family:var(--serif);font-size:17px;letter-spacing:1.2px;pointer-events:none}.toast.visible{opacity:1;transform:translate(-50%,0)}.toast:after{content:'';display:block;background:linear-gradient(90deg,transparent,#dcb77d77,transparent);height:1px;width:100%;margin-top:13px}.modal{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;z-index:20;background:rgba(5,14,18,.76);backdrop-filter:blur(7px);pointer-events:auto;animation:fade-in .25s ease}.modal-content{text-align:center;padding:32px;width:min(920px,94vw)}.modal-ornament{color:#caa467;margin:0 auto 17px;display:flex;align-items:center;justify-content:center;gap:20px}.modal-ornament:before,.modal-ornament:after{content:'';height:1px;width:70px;background:linear-gradient(90deg,transparent,#b18e58)}.modal-ornament:after{transform:rotate(180deg)}.modal-ornament svg{width:33px;height:42px}.modal h2{font-family:var(--serif);font-size:39px;font-weight:400;color:#eee2c9;margin:14px 0 13px;letter-spacing:2px}.modal-intro{font-family:Georgia,serif;font-size:16px;line-height:1.6;color:#a7b2a6;margin:0 0 32px}.upgrade-options{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:35px auto 25px}.upgrade-card{position:relative;display:flex;align-items:center;flex-direction:column;min-height:270px;padding:25px 23px 22px;border:1px solid rgba(184,159,104,.35);border-radius:3px;background:linear-gradient(160deg,rgba(50,57,45,.58),rgba(17,32,32,.88));text-align:center;transition:transform .2s,border-color .2s,background .2s}.upgrade-card:hover{transform:translateY(-7px);border-color:#d0ab6c;background:linear-gradient(160deg,rgba(90,75,47,.5),rgba(20,35,32,.95))}.upgrade-rarity{font-size:8px;text-transform:uppercase;letter-spacing:2px;color:#a7b49b}.upgrade-icon{height:77px;width:77px;border:1px solid #c2a66d55;border-radius:50%;display:grid;place-items:center;color:#debf82;font-family:Georgia,serif;font-size:34px;margin:19px 0 20px;background:radial-gradient(circle,#ae884e22,transparent 72%)}.upgrade-icon svg{height:36px;width:36px}.upgrade-card h3{font-family:var(--serif);font-size:16px;font-weight:500;letter-spacing:.5px;margin:0 0 12px;color:#e8d8b7}.upgrade-description{font-size:11px;line-height:1.9;color:#adb6a8;flex:1}.upgrade-card .key{position:absolute;bottom:12px;right:12px;color:#a6ab96;border-color:#a6ab9633}.modal-footnote{font-size:9px;letter-spacing:1.5px;color:#788e83;text-transform:uppercase}.pause-content{width:400px}.pause-actions{display:flex;flex-direction:column;align-items:center;gap:12px;margin:27px auto}.secondary-button{display:flex;align-items:center;justify-content:center;padding:14px 24px;background:rgba(22,35,33,.55);border:1px solid #b3a17a44;border-radius:2px;letter-spacing:1.8px;text-transform:uppercase;font-size:10px;min-width:286px;transition:background .2s,border-color .2s}.secondary-button:hover{border-color:#c6aa70;background:rgba(59,60,40,.55)}.pause-controls{border-top:1px solid #b3a17a22;padding-top:23px;display:grid;grid-template-columns:1fr 1fr;gap:15px;font-size:10px;color:#96a598;text-align:left}.pause-controls>span{display:flex;align-items:center;gap:9px}.end-stats{display:flex;justify-content:center;gap:0;margin:30px auto 35px;max-width:480px}.end-stat{padding:0 30px;border-right:1px solid #b8ad8a22}.end-stat:last-child{border-right:0}.end-stat strong{display:block;font-family:var(--serif);font-size:30px;font-weight:400;color:#e1c28b}.end-stat span{font-size:8px;letter-spacing:2px;text-transform:uppercase;color:#9cae9c;display:block;margin-top:8px}.end-content .start-button,.end-content .secondary-button{margin:12px auto}.touch-stick{display:none;position:absolute;bottom:42px;left:26px;width:110px;height:110px;border:1px solid #c4c6ab44;border-radius:50%;background:rgba(12,24,24,.3);pointer-events:auto;touch-action:none}.touch-stick:before{content:'';position:absolute;width:40px;height:40px;top:34px;left:34px;background:rgba(190,198,160,.16);border:1px solid #bac5ad55;border-radius:50%;transform:translate(var(--stick-x,0px),var(--stick-y,0px));pointer-events:none}.touch-stick:after{content:'MOVE';position:absolute;bottom:-19px;left:0;right:0;text-align:center;font-size:7px;color:#a4b29f;letter-spacing:2px}.webgl-error{position:absolute;inset:0;padding:60px;background:#102125;display:grid;place-content:center;text-align:center;z-index:100}.webgl-error h1{font-family:var(--serif);font-weight:400}.webgl-error p{max-width:420px;line-height:1.8;color:#b0b7a7}
@keyframes fade-in{from{opacity:0}to{opacity:1}}@keyframes menu-in{from{opacity:0;filter:blur(4px)}to{opacity:1;filter:blur(0)}}
@media(min-width:1600px){.menu-content{left:9%;max-width:550px;width:550px}.game-title{font-size:94px}.hero-options{max-width:460px}.hero-card{height:75px}.tagline{font-size:25px}.intro-copy{font-size:13px}.character-heading{margin-top:35px}.hero-description{font-size:12px;margin-bottom:24px}.start-button{height:59px;width:305px}.game-subtitle{font-size:14px}.menu-bottom{bottom:40px}.menu-top{top:40px;left:60px}}
@media(max-height:760px) and (min-width:801px){.menu-content{transform:translateY(-44%)}.edition{margin-bottom:15px}.game-title{font-size:66px}.game-subtitle{margin:12px 0 20px}.tagline{font-size:20px}.character-heading{margin-top:20px}.hero-card{height:61px}.hero-description{margin:10px 0 13px;min-height:24px}.start-button{min-height:49px}.menu-top{top:25px;left:40px}.menu-bottom{bottom:22px;left:40px}.top-utilities{top:25px}.intro-copy{max-width:370px}.health-block{top:22px}.run-clock{top:18px}}
@media(max-width:1100px){.menu-content{left:6%;width:430px;max-width:53vw}.hero-card{gap:8px;padding:9px}.hero-card svg{width:21px;height:25px}.hero-card .hero-name{font-size:10px}.hero-card .hero-role{font-size:7px}.game-title{font-size:67px}.game-subtitle{font-size:11px;letter-spacing:4.5px}.objective{bottom:115px}.hud-help{display:none}.health-main{min-width:170px}.health-track{width:170px}.health-label strong{font-size:11px}.menu-bottom{left:6%;right:30px}.location-label p{font-size:17px}.control-guide{gap:13px}.auto-note{padding-left:13px}}
@media(max-width:800px){.menu{background:linear-gradient(90deg,rgba(6,16,19,.90),rgba(8,17,20,.64) 60%,rgba(9,19,22,.12)),linear-gradient(0deg,rgba(7,13,15,.85),transparent 40%)}.menu-top{left:27px;top:23px}.menu-top .eyebrow{font-size:8px;letter-spacing:1.8px}.brand-mark{width:23px;height:28px}.top-utilities{right:22px;top:23px}.utility{padding:8px 10px}.utility-label{display:none}.menu-content{max-width:88vw;width:440px;left:7%;transform:translateY(-45%)}.game-title{font-size:clamp(48px,9vw,73px)}.game-subtitle{font-size:11px;letter-spacing:4px;margin-bottom:23px}.edition{font-size:8px;letter-spacing:3px;margin-bottom:17px}.tagline{font-size:21px}.intro-copy{font-size:11px;max-width:320px}.character-heading{margin-top:25px}.hero-options{max-width:400px}.hero-card{height:68px;padding:10px}.hero-card .hero-name{font-size:10px}.hero-card .hero-role{font-size:7px}.hero-description{font-size:10px;max-width:380px}.start-button{min-height:52px;width:280px}.menu-bottom{bottom:25px;left:7%;right:7%}.location-label{display:none}.control-guide{gap:14px;font-size:9px}.auto-note{font-size:8px}.health-block{left:18px;top:23px;gap:10px}.hero-badge{height:37px;width:37px;margin:0 5px}.hero-badge svg{width:24px;height:24px}.health-main{min-width:140px}.health-track{width:140px}.health-label strong{font-size:10px}.health-label span{font-size:8px}.level-row{font-size:8px;gap:10px}.clock-time{font-size:25px}.run-clock{top:20px;left:58%}.run-clock .eyebrow{font-size:6px;letter-spacing:1.5px}.wave-label{font-size:7px;letter-spacing:1px}.kill-block{top:73px;right:22px}.kill-block strong{font-size:17px}.kill-block span{display:none}.objective{left:22px;bottom:113px;font-size:9px}.objective span{font-size:7px}.ability-bar{bottom:25px}.ability{min-width:137px;height:57px;padding:9px 12px;gap:9px}.ability svg{width:25px;height:25px}.auto-attack{width:56px;height:56px;margin:0 1px}.auto-attack svg{width:25px;height:25px}.ability-name{font-size:9px}.ability-status{font-size:8px}.boss-panel{top:112px;width:300px}.modal-content{padding:20px}.modal h2{font-size:28px}.modal-intro{font-size:14px;margin-bottom:20px}.upgrade-options{gap:9px;margin:25px auto 15px}.upgrade-card{padding:18px 12px 27px;min-height:265px}.upgrade-card h3{font-size:13px;line-height:1.5}.upgrade-description{font-size:10px;line-height:1.7}.upgrade-icon{height:59px;width:59px;margin:16px 0}.upgrade-rarity{font-size:7px;letter-spacing:1px}.end-stat{padding:0 20px}.end-stat strong{font-size:26px}.end-stat span{font-size:7px}}
@media(pointer:coarse){.touch-stick{display:block}.control-guide{display:none}.menu-bottom:before{content:'DRAG TO MOVE · TAP TO DASH · AUTO-ATTACK';font-size:8px;letter-spacing:1.3px;color:#91a196}.ability-bar{left:auto;right:22px;transform:none;gap:10px;bottom:43px}.ability{min-width:0;width:66px;height:66px;border-radius:50%;padding:0;justify-content:center}.ability svg{width:28px;height:28px}.ability .key{display:none}.ability-info{position:absolute;left:0;right:0;top:72px;text-align:center}.ability-name{font-family:var(--sans);font-size:7px;letter-spacing:1px;text-transform:uppercase;white-space:nowrap}.ability-status{position:absolute;bottom:41px;left:0;right:0;font-size:13px;font-weight:600;color:#fff;text-shadow:0 0 5px #000}.ability.ready .ability-status{display:none}.auto-attack{display:none}.objective{left:22px;bottom:190px}.hud-help{display:none}}
@media(max-width:500px){.menu-top{left:23px;top:23px}.menu-content{left:7%;top:49%;transform:translateY(-42%)}.game-title{font-size:55px;letter-spacing:1px}.game-subtitle{font-size:9px;letter-spacing:3.8px;gap:10px;margin:13px 0 23px}.game-subtitle:before,.game-subtitle:after{max-width:28px}.edition{font-size:7px;letter-spacing:2.7px}.tagline{font-size:19px}.intro-copy{font-size:10px;line-height:1.9;max-width:290px}.character-heading{margin-top:23px;font-size:8px}.hero-options{gap:6px}.hero-card{padding:10px 6px;gap:5px;height:63px;justify-content:center}.hero-card svg{width:18px}.hero-card .hero-name{font-size:8px}.hero-card .hero-role{font-size:6px;letter-spacing:.7px}.hero-description{min-height:31px;line-height:1.65;font-size:10px;margin:12px 0 15px}.start-button{width:100%;height:53px;font-size:10px}.run-note{text-align:center;font-size:8px;margin-top:13px}.menu-bottom{bottom:24px}.health-block{left:14px;top:21px;gap:8px}.health-main{min-width:118px}.health-track{width:118px}.health-label strong{font-size:8px;letter-spacing:.6px}.health-label span{font-size:7px}.hero-badge{width:30px;height:30px;margin:0 3px}.hero-badge svg{width:20px;height:20px}.level-row{font-size:7px;letter-spacing:.8px}.level-row span{font-size:6px}.run-clock{left:65%;top:22px}.clock-time{font-size:21px;letter-spacing:1.5px}.wave-label{font-size:6px;letter-spacing:.7px}.run-clock .eyebrow{font-size:5px;letter-spacing:1px}.top-utilities{right:13px;top:20px;gap:5px}.hud~.top-utilities .utility{padding:7px}.utility{padding:7px}.utility svg{width:13px;height:13px}.kill-block{top:81px;right:17px}.kill-block svg{width:14px}.kill-block strong{font-size:16px}.boss-panel{top:122px}.boss-name{font-size:9px}.toast{font-size:13px;top:29%;width:85vw;line-height:1.6}.upgrade-options{grid-template-columns:1fr;gap:10px;margin:20px auto 15px}.upgrade-card{min-height:106px;display:grid;grid-template-columns:58px 1fr;grid-template-rows:17px auto auto;column-gap:15px;align-content:center;text-align:left;padding:13px 25px 13px 14px}.upgrade-rarity{grid-column:2;grid-row:1}.upgrade-icon{grid-column:1;grid-row:1/4;width:54px;height:54px;margin:0;font-size:26px}.upgrade-icon svg{height:28px;width:28px}.upgrade-card h3{grid-column:2;grid-row:2;margin:0 0 5px;font-size:12px}.upgrade-description{grid-column:2;grid-row:3;font-size:9px;line-height:1.6}.upgrade-card .key{height:15px;min-width:16px;font-size:7px;right:7px;bottom:7px}.modal h2{font-size:26px;margin-top:10px}.modal-intro{font-size:13px;margin-bottom:15px}.modal-ornament{margin-bottom:10px}.modal-ornament svg{height:33px;width:27px}.modal .eyebrow{font-size:8px;letter-spacing:2px}.pause-content{width:360px}.pause-content .start-button{width:286px}.end-content .start-button{width:286px}.end-stat{padding:0 16px}.end-stat strong{font-size:22px}.end-stats{margin:24px auto}.end-content .modal-intro{max-width:280px;margin:0 auto}.modal-content{max-height:95vh;overflow:auto}.modal-footnote{font-size:7px;line-height:1.6}}
@media(max-height:560px){.menu-top{top:15px}.menu-top .eyebrow{display:none}.top-utilities{top:15px}.menu-content{top:47%;left:7%;width:440px;max-width:65vw;transform:translateY(-45%)}.edition{font-size:6px;margin-bottom:8px}.game-title{font-size:46px}.game-subtitle{font-size:8px;margin:7px 0 12px;letter-spacing:3px}.tagline{font-size:16px;margin-bottom:3px}.intro-copy{display:none}.character-heading{margin:14px 0 8px;font-size:7px}.hero-card{height:48px}.hero-card svg{height:24px;width:21px}.hero-card .hero-name{font-size:9px}.hero-card .hero-role{font-size:6px;margin-top:3px}.hero-description{font-size:9px;margin:8px 0 10px;min-height:15px}.start-button{min-height:41px;height:41px;width:250px;font-size:9px}.run-note{font-size:7px;margin-top:8px;text-align:left}.menu-bottom{bottom:14px}.control-guide{font-size:8px}.control-guide .key{height:18px;font-size:8px}.location-label p{font-size:14px}.location-label small{font-size:7px}.modal-content{padding:15px}.modal h2{font-size:25px;margin:7px 0}.modal-ornament{display:none}.modal-intro{font-size:12px;margin-bottom:13px}.upgrade-options{margin:15px auto;grid-template-columns:repeat(3,1fr)}.upgrade-card{display:flex;min-height:205px;padding:13px}.upgrade-icon{height:45px;width:45px;margin:11px 0}.upgrade-card h3{font-size:12px}.upgrade-description{font-size:9px}.pause-actions{margin:17px auto;gap:8px}.pause-controls{padding-top:15px;gap:10px}.end-stats{margin:18px auto}.end-stat strong{font-size:24px}.secondary-button{padding:11px 20px}.objective{display:none}.ability-bar{bottom:23px}.touch-stick{bottom:25px;width:90px;height:90px}.touch-stick:before{left:24px;top:24px}.ability-info{top:67px}.boss-panel{top:102px}.toast{top:35%}}
.quality-setting{display:flex;align-items:center;gap:10px;width:286px;margin:0 auto 24px;padding:11px 3px;background:none;border:0;color:#98aa9b;font-size:10px;letter-spacing:.5px;text-align:left}.quality-setting svg{width:16px;height:16px;color:#c5ac7b}.quality-setting strong{margin-left:auto;font-size:10px;color:#d0ba8c;font-weight:500}.quality-cycle{font-size:15px;color:#8e9a89;margin-left:3px}.quality-setting:hover{color:#e4d9bc}.quality-setting:hover strong{color:#f0ce92}@media(max-width:800px),(pointer:coarse){.top-utilities .quality-toggle{display:none}}@media(max-height:560px){.quality-setting{margin-bottom:12px;padding:5px 3px}}
/* Champion accents stay within the selection and combat interface. */
#ui{--champion-rgb:231,159,100;--champion-ink:#edba88}
#ui[data-champion="knight"]{--champion-rgb:218,192,129;--champion-ink:#e5cea0}
#ui[data-champion="ranger"]{--champion-rgb:133,186,158;--champion-ink:#b3d4bc}
.hero-card.selected{border-color:rgba(var(--champion-rgb),.72);background:linear-gradient(110deg,rgba(var(--champion-rgb),.14),rgba(21,32,31,.7));box-shadow:inset 0 0 22px rgba(var(--champion-rgb),.025),0 0 20px rgba(var(--champion-rgb),.025)}
.hero-card.selected:after{background:var(--champion-ink);box-shadow:0 0 9px rgba(var(--champion-rgb),.4)}
.hero-card.selected svg,.hero-card.selected .hero-name{color:var(--champion-ink)}
.hero-card.selected .hero-role{color:rgba(var(--champion-rgb),.68)}
.hero-badge{border-color:rgba(var(--champion-rgb),.6);background:linear-gradient(135deg,rgba(var(--champion-rgb),.16),rgba(12,25,26,.92));box-shadow:inset 0 0 17px rgba(var(--champion-rgb),.025)}
.hero-badge svg,.auto-attack svg{color:var(--champion-ink)}
.auto-attack{border-color:rgba(var(--champion-rgb),.34)}
.auto-attack:after{border-color:rgba(var(--champion-rgb),.22)}
.ability{border-color:rgba(var(--champion-rgb),.25);isolation:isolate}
.ability>svg{position:relative;z-index:1;color:var(--champion-ink);transition:opacity .25s,filter .25s}
.ability:before{z-index:0;background:linear-gradient(0deg,rgba(var(--champion-rgb),.20),rgba(var(--champion-rgb),.035));border-top:1px solid rgba(var(--champion-rgb),.13)}
.ability:after{content:'';position:absolute;left:0;right:0;bottom:0;height:2px;background:rgba(var(--champion-rgb),.9);box-shadow:0 0 10px rgba(var(--champion-rgb),.4);transform:scaleX(calc(1 - var(--cooldown,0)));transform-origin:left;transition:transform .15s;pointer-events:none}
.ability .ability-info,.ability .key{z-index:1}
.ability:not(.ready)>svg{opacity:.45;filter:saturate(.4)}
.ability:not(.ready) .ability-name{color:#929e92}
.ability:not(.ready) .ability-status{color:#e2e1cf;font-variant-numeric:tabular-nums;letter-spacing:.4px}
.ability.ready{border-color:rgba(var(--champion-rgb),.62);box-shadow:inset 0 0 18px rgba(var(--champion-rgb),.045),0 0 17px rgba(var(--champion-rgb),.055)}
.ability.ready .ability-status{color:var(--champion-ink);letter-spacing:1.3px}
.ability.ready .ability-status:before{content:'';display:inline-block;width:3px;height:3px;background:var(--champion-ink);border-radius:50%;margin:0 6px 2px 0;box-shadow:0 0 5px rgba(var(--champion-rgb),.6)}
.ability.ready>svg{filter:drop-shadow(0 0 5px rgba(var(--champion-rgb),.18))}
.ability:hover{border-color:rgba(var(--champion-rgb),.75);background:rgba(29,40,35,.88)}
/* Etched relic cards: quiet material detail, distinct blessing rarities. */
.upgrade-card{--relic-rgb:213,179,116;isolation:isolate;overflow:hidden;border-color:rgba(var(--relic-rgb),.36);background:radial-gradient(ellipse at 50% 25%,rgba(var(--relic-rgb),.07),transparent 66%),linear-gradient(160deg,rgba(42,50,42,.86),rgba(13,27,29,.95));box-shadow:inset 0 0 38px rgba(0,0,0,.16),0 12px 25px rgba(0,0,0,.12)}
.upgrade-card.rarity-rare{--relic-rgb:133,197,194}
.upgrade-card.rarity-epic{--relic-rgb:179,151,217}
.upgrade-card:before{content:'';position:absolute;inset:6px;border:1px solid rgba(var(--relic-rgb),.1);pointer-events:none;z-index:0}
.upgrade-card:after{content:'';position:absolute;top:0;left:27%;right:27%;height:1px;background:linear-gradient(90deg,transparent,rgba(var(--relic-rgb),.95),transparent);box-shadow:0 0 14px rgba(var(--relic-rgb),.25);pointer-events:none}
.upgrade-card:hover{border-color:rgba(var(--relic-rgb),.82);background:radial-gradient(ellipse at 50% 25%,rgba(var(--relic-rgb),.13),transparent 72%),linear-gradient(160deg,rgba(43,53,46,.96),rgba(16,31,33,.97));box-shadow:inset 0 0 35px rgba(var(--relic-rgb),.025),0 16px 34px rgba(0,0,0,.22),0 0 22px rgba(var(--relic-rgb),.05)}
.upgrade-card:focus-visible{outline-color:rgba(var(--relic-rgb),.8);outline-offset:4px}
.upgrade-sigil{position:absolute;z-index:0;width:182px;height:182px;max-width:90%;top:17px;left:50%;transform:translateX(-50%);color:rgb(var(--relic-rgb));opacity:.085;stroke-width:.7;pointer-events:none}
.upgrade-rarity,.upgrade-icon,.upgrade-card h3,.upgrade-description{position:relative;z-index:1}
.upgrade-rarity{color:rgba(var(--relic-rgb),.87);letter-spacing:2.5px}
.upgrade-rarity:before,.upgrade-rarity:after{content:'';display:inline-block;width:3px;height:3px;border:1px solid rgba(var(--relic-rgb),.55);transform:rotate(45deg);vertical-align:middle;margin:-2px 8px 0}
.upgrade-icon{border-color:rgba(var(--relic-rgb),.4);color:rgb(var(--relic-rgb));background:radial-gradient(circle,rgba(var(--relic-rgb),.10),rgba(13,25,27,.55) 69%);box-shadow:inset 0 0 15px rgba(0,0,0,.25),0 0 24px rgba(var(--relic-rgb),.035)}
.upgrade-icon:before{content:'';position:absolute;inset:11px;border:1px solid rgba(var(--relic-rgb),.12);transform:rotate(45deg);pointer-events:none}
.upgrade-icon:after{content:'';position:absolute;inset:-5px;border:1px solid rgba(var(--relic-rgb),.16);border-radius:50%;pointer-events:none}
.upgrade-icon svg{position:relative;z-index:1;stroke-width:1.25;filter:drop-shadow(0 0 7px rgba(var(--relic-rgb),.24))}
.upgrade-card h3{color:#e9e1ce;text-shadow:0 2px 9px #0003}
.upgrade-description{color:#b3beb0;line-height:1.85}
.upgrade-card .key{border-color:rgba(var(--relic-rgb),.24);color:rgba(var(--relic-rgb),.6)}
@media(pointer:coarse){.ability:after{inset:0;width:auto;height:auto;border-radius:50%;transform:none;background:conic-gradient(from -90deg,rgba(var(--champion-rgb),.9) calc((1 - var(--cooldown,0))*1turn),rgba(var(--champion-rgb),.12) 0);mask:radial-gradient(transparent 65%,#000 66%);-webkit-mask:radial-gradient(transparent 65%,#000 66%);box-shadow:none;transition:none}.ability:not(.ready) .ability-status{color:#f0e8d2;font-size:13px}.ability:not(.ready)>svg{opacity:.28}.ability:before{border-top:0}}
@media(max-width:500px){.upgrade-sigil{width:120px;height:120px;left:39px;top:50%;transform:translate(-50%,-50%);opacity:.075}.upgrade-rarity{letter-spacing:1.4px}.upgrade-rarity:before{display:none}.upgrade-rarity:after{margin-left:7px}.upgrade-description{line-height:1.6}.upgrade-icon:before{inset:8px}.upgrade-icon:after{inset:-4px}}
@media(max-height:560px){.upgrade-sigil{width:145px;height:145px;top:3px;left:50%;transform:translateX(-50%)}.upgrade-rarity{letter-spacing:1.2px}.upgrade-rarity:before,.upgrade-rarity:after{margin-left:5px;margin-right:5px}.upgrade-description{line-height:1.6}.upgrade-icon:before{inset:7px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
body.hurt:after{content:'';position:fixed;inset:0;z-index:6;pointer-events:none;box-shadow:inset 0 0 130px 28px rgba(174,35,25,.5);animation:wound-pulse .65s ease-out forwards}
@keyframes wound-pulse{from{opacity:.85}to{opacity:0}}
@media(prefers-reduced-motion:reduce){body.hurt:after{display:none}}
/* Let the environment remain part of the reward and encounter presentation. */
.modal{background:rgba(4,13,16,.69);backdrop-filter:blur(5px)}
#pause-modal{background:rgba(4,13,16,.56)}
#end-modal{background:linear-gradient(90deg,rgba(4,13,16,.78),rgba(4,13,16,.46) 50%,rgba(4,13,16,.78))}
.combat-text{transform:translate(-50%,-50%);font-variant-numeric:tabular-nums;will-change:transform,opacity}
.encounter-banner{position:absolute;z-index:6;left:50%;top:19%;width:min(760px,88vw);transform:translate(-50%,12px);opacity:0;visibility:hidden;pointer-events:none;text-align:center;color:#efd5a7;transition:opacity .7s,transform .9s,visibility .9s;text-shadow:0 3px 24px #000,0 1px 6px #000}
.encounter-banner.visible{opacity:1;visibility:visible;transform:translate(-50%,0)}
.encounter-banner>span{display:block;font-size:9px;font-weight:500;letter-spacing:4px;text-transform:uppercase;color:#c7b78f}
.encounter-banner h2{font-family:var(--serif);font-weight:400;letter-spacing:3px;font-size:clamp(25px,3vw,43px);margin:14px 0 18px}
.encounter-banner i{display:block;width:210px;max-width:65%;height:1px;background:linear-gradient(90deg,transparent,#c39a58,transparent);margin:auto;position:relative}
.encounter-banner i:after{content:'';display:block;position:absolute;width:5px;height:5px;left:50%;top:-2px;transform:rotate(45deg);background:#d6b478;box-shadow:0 0 15px #dfb66d77}
.encounter-banner[data-kind="boss"] h2{color:#f0c1ab}.encounter-banner[data-kind="boss"]>span{color:#d29d91}.encounter-banner[data-kind="boss"] i{background:linear-gradient(90deg,transparent,#ac5d50,transparent)}
@media(max-width:600px) and (orientation:portrait){.menu-content{top:auto;bottom:72px;transform:none}.menu-content .edition,.menu-content .tagline,.menu-content .intro-copy{display:none}.menu-content .game-title{font-size:46px}.menu-content .game-subtitle{margin:10px 0 13px}.menu-content .character-heading{margin:16px 0 9px}.encounter-banner{top:23%}.encounter-banner>span{font-size:7px;letter-spacing:2.5px}.encounter-banner h2{font-size:25px;letter-spacing:1px;margin:11px 0 15px}.encounter-banner i{width:150px}}
@media(max-width:600px) and (max-height:740px) and (orientation:portrait){.menu-content{bottom:60px}.menu-content .hero-description{display:none}.menu-content .start-button{margin-top:15px}.menu-content .game-title{font-size:40px}}
@media(prefers-reduced-motion:reduce){.encounter-banner{transform:translateX(-50%)}.encounter-banner.visible{transform:translateX(-50%)}}
@media(max-width:500px){.hero-card .hero-name{font-size:9.5px}.hero-card .hero-role{font-size:7px}.upgrade-card h3{font-size:13px}.upgrade-description{font-size:10.5px}.upgrade-rarity{font-size:8px}.health-label strong{font-size:9px}.health-label span{font-size:8.5px}.wave-label{font-size:7px}}
