:root{color:#e6d7b8;background:#12161f;font-family:Georgia,Times New Roman,serif}*{box-sizing:border-box}html,body{width:100%;min-height:100%;margin:0;overflow:hidden;overscroll-behavior:none;background:#12161f}body{min-height:100dvh}#stage{display:block;position:fixed;inset:0;width:100dvw;height:100dvh;background:#12161f;touch-action:none}#ui{position:fixed;inset:0;z-index:1;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);pointer-events:none}#ui>*{pointer-events:auto}#ui>.match-shell{pointer-events:none}.match-shell button,.match-shell a,.match-shell input{pointer-events:auto}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid #fff3d0;outline-offset:4px;box-shadow:0 0 0 7px #e8b64c57}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.scene{position:absolute;inset:0;display:grid;place-items:center;overflow:hidden;isolation:isolate}.scene__stone{position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at 50% 45%,#12161f33,#07090ed1),linear-gradient(130deg,rgba(184,35,47,.14),transparent 32%,rgba(47,95,184,.17));-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.scene--overlay .scene__stone{background:#07090ebd}.scene__content{width:min(100%,1100px);max-height:100%;overflow:auto;padding:clamp(18px,4vw,58px);scrollbar-width:none}.scene__content::-webkit-scrollbar{display:none}.title-hero,.panel{text-align:center;color:#e6d7b8;text-shadow:0 2px 0 #0c0f16,0 0 20px rgba(255,171,82,.25)}.title-hero{display:grid;grid-template-columns:minmax(76px,160px) minmax(240px,620px) minmax(76px,160px);align-items:center;gap:clamp(8px,3vw,42px);animation:royal-arrival .85s cubic-bezier(.2,.8,.2,1) both}.title-hero__crest{animation:crest-settle .95s .15s cubic-bezier(.2,.9,.2,1) both}.eyebrow{margin:0 0 10px;color:#e8b64c;font-size:clamp(.68rem,1.8vw,.9rem);font-weight:700;letter-spacing:.2em;text-transform:uppercase}h1,h2,p{margin-top:0}h1{margin-bottom:12px;color:#fff3d0;font-size:clamp(2.2rem,8vw,6.8rem);line-height:.83;letter-spacing:.03em;text-transform:uppercase}h1 span{display:block;margin:.12em 0;color:#e8b64c;font-size:.31em;letter-spacing:.36em}h2{margin-bottom:8px;font-size:clamp(1.3rem,3vw,2rem)}.gold-rule{width:min(280px,64vw);height:3px;margin:18px auto;background:linear-gradient(90deg,transparent,#8a6420 9%,#e8b64c 50%,#8a6420 91%,transparent);box-shadow:0 0 12px #e8b64c8c;transform-origin:center;animation:rule-draw .75s .3s ease-out both}.tagline{margin:0 auto 27px;font-size:clamp(1rem,2.3vw,1.4rem);font-style:italic}.crest{display:inline-grid;width:clamp(58px,11vw,122px);aspect-ratio:.78;place-items:center;border:clamp(3px,.6vw,7px) solid #e8b64c;border-radius:43% 43% 26% 26%;background:linear-gradient(135deg,#b8232f,#56151c);color:#f1c65c;font-size:clamp(2rem,7vw,5.6rem);line-height:1;filter:drop-shadow(0 8px 8px rgba(0,0,0,.46))}.crest svg{width:74%;height:74%}.crest--frost{border-color:#c9d4e0;background:linear-gradient(135deg,#2f5fb8,#173967);color:#fff3d0}.button,.text-button{min-width:min(100%,244px);margin:6px;border:2px solid #8a6420;border-radius:3px;padding:12px 20px;background:linear-gradient(#3d4755,#171b22);color:#e6d7b8;font-weight:700;letter-spacing:.04em;text-transform:uppercase;box-shadow:inset 0 1px #fff3d040,0 4px #090c12;transition:transform .14s ease,filter .14s ease}.button:hover,.button:focus-visible{filter:brightness(1.2);transform:translateY(-2px)}.button--primary{border-color:#f1c65c;background:linear-gradient(#d3a663,#8a6420);color:#12161f;text-shadow:0 1px rgba(255,243,208,.42)}.button--quiet,.text-button{border-color:transparent;background:transparent;box-shadow:none;color:#e8b64c}.panel{width:min(100%,950px);margin:auto;border:1px solid rgba(232,182,76,.65);padding:clamp(22px,4vw,46px);background:linear-gradient(145deg,#1c2230f2,#0c0f16f0);box-shadow:inset 0 0 0 5px #8a64203d,0 18px 55px #0009}.panel h1{font-size:clamp(2rem,5vw,4.4rem);line-height:.96}.mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:22px 0}.mode-card{min-width:0;padding:20px;border:1px solid #8a6420;background:linear-gradient(150deg,#56151c8c,#12161fb3)}.mode-card--frost{border-color:#596f91;background:linear-gradient(150deg,#173967a6,#12161fb3)}.mode-card .crest{width:58px;font-size:2rem}.difficulty-grid{display:grid;gap:8px;margin-top:13px}.difficulty-card{width:100%;border:1px solid #8a6420;padding:10px;background:#0c0f1699;color:#e6d7b8;text-align:left}.difficulty-card strong,.difficulty-card span{display:block}.difficulty-card span{margin-top:3px;color:#c9d4e0;font-size:.82rem}.difficulty-card.is-selected{border-color:#f1c65c;box-shadow:inset 0 0 0 1px #e8b64c}.panel--settings{width:min(100%,620px);text-align:left}.panel--settings h1,.panel--settings .eyebrow{text-align:center}.setting-row,.toggle-row,.setting-fieldset label,.controls-reference span{display:flex;justify-content:space-between;gap:16px;align-items:center}.range{width:100%;accent-color:#e8b64c}.toggle-row{justify-content:flex-start;margin:21px 0}.toggle-row input,.setting-fieldset input{accent-color:#e8b64c}.setting-fieldset{display:grid;gap:10px;margin:20px 0;border:1px solid #59606a;padding:14px}.controls-reference{display:grid;gap:7px;margin:25px 0;border-top:1px solid rgba(232,182,76,.38);padding-top:17px;color:#c9d4e0;font-size:.9rem}kbd{display:inline-block;min-width:1.7em;margin-right:3px;border:1px solid #59606a;border-bottom-color:#0c0f16;border-radius:3px;padding:1px 4px;background:#2b3446;color:#fff3d0;font-family:ui-monospace,monospace;text-align:center}.panel--victory .crest{width:82px;margin-bottom:14px}.victory-score{display:flex;justify-content:center;gap:18px;margin:18px 0 9px;color:#fff3d0;font-size:clamp(2.5rem,8vw,5.8rem);font-weight:700}.panel--ember .victory-score{color:#f1c65c}.panel--frost .victory-score{color:#c9d4e0}.match-shell{position:absolute;inset:0;pointer-events:none}.match-hud{position:absolute;top:calc(env(safe-area-inset-top) + 12px);left:50%;display:flex;width:min(580px,calc(100vw - 86px));justify-content:center;gap:clamp(10px,3vw,42px);transform:translate(-50%);color:#fff3d0;font-size:clamp(.76rem,2vw,1.1rem);font-weight:700;letter-spacing:.05em;text-shadow:0 2px 3px #090c12;text-transform:uppercase}.match-hud__house--ember{color:#f1c65c}.match-hud__house--frost{color:#c9d4e0}.match-hud__rally{color:#e6d7b8}.pause-button{position:absolute;top:calc(env(safe-area-inset-top) + 10px);right:calc(env(safe-area-inset-right) + 12px);width:44px;height:44px;border:1px solid #e8b64c;border-radius:50%;background:#12161fe0;color:#fff3d0;font-size:1.2rem;pointer-events:auto}.touch-hint{display:none;position:absolute;bottom:calc(env(safe-area-inset-bottom) + 10px);left:50%;margin:0;transform:translate(-50%);color:#e6d7b8;font-size:.74rem;text-align:center;text-shadow:0 2px 3px #090c12;white-space:nowrap}@media(pointer:coarse){.touch-hint{display:block}}@media(max-width:620px),(max-height:620px){.scene__content{padding:15px}.title-hero{grid-template-columns:1fr 3fr 1fr}.title-hero__crest .crest{width:52px;font-size:1.8rem}.mode-grid{grid-template-columns:1fr}.mode-card{padding:14px}.panel{padding:19px}.controls-reference{font-size:.75rem}}@media(max-height:520px)and (orientation:landscape){.title-hero{transform:scale(.78)}.panel{transform:scale(.82);transform-origin:center}}@keyframes royal-arrival{0%{opacity:0;transform:translateY(28px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes crest-settle{0%{opacity:0;transform:translateY(-38px) rotate(-8deg)}70%{opacity:1;transform:translateY(5px) rotate(2deg)}to{opacity:1;transform:translateY(0) rotate(0)}}@keyframes rule-draw{0%{transform:scaleX(0);opacity:0}to{transform:scaleX(1);opacity:1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}:root[data-reduced-motion=true] *,:root[data-reduced-motion=true] *:before,:root[data-reduced-motion=true] *:after{scroll-behavior:auto!important;animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}
