@font-face{font-family:Cinzel;font-weight:400;font-display:swap;src:url(fonts/cinzel-latin-400-normal.woff2) format("woff2")}@font-face{font-family:Cinzel;font-weight:700;font-display:swap;src:url(fonts/cinzel-latin-700-normal.woff2) format("woff2")}@font-face{font-family:Cinzel;font-weight:900;font-display:swap;src:url(fonts/cinzel-latin-900-normal.woff2) format("woff2")}:root{--tablet: url(assets/ui_tablet.webp) 64 fill;--plaque-img: url(assets/ui_plaque.webp) 40 fill;--panel-img: url(assets/ui_panel.webp) 28 fill;--ink: #2a1408;--parchment: #f6e7c8;--gold: #e3ad2d;--gold-hi: #ffd978;--red: #a3151b;--red-hi: #d8353a;--panel: rgba(28, 13, 7, .82);--line: rgba(227, 173, 45, .5);--body: "Iowan Old Style", "Palatino Linotype", Georgia, serif;--roman: Cinzel, "Times New Roman", serif}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#1a0d08}body{color:var(--parchment);font:16px/1.45 var(--body);user-select:none;-webkit-user-select:none}.hidden{display:none!important}#stage,#stage canvas{position:fixed;inset:0;display:block}#vignette{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 45%,transparent 72%,rgba(26,10,4,.22) 100%)}#labels,#floaters{position:fixed;inset:0;pointer-events:none;overflow:hidden}.tag{position:absolute;left:0;top:0;transform-origin:0 0;white-space:nowrap;display:flex;flex-direction:column;align-items:center;gap:4px;will-change:transform}.plate{padding:2px 10px 0;font:700 34px/1.2 var(--roman);letter-spacing:.03em;color:var(--ink);border:5px solid transparent;border-image:var(--tablet) / 8px / 2px;filter:drop-shadow(0 3px 4px rgba(0,0,0,.5))}.urgency{width:68%;height:9px;border-radius:5px;border:1.5px solid rgba(30,16,8,.85);box-shadow:inset 0 2px 1px #ffffff59}.plate .done{color:#5a5046bf}.plate .next{color:#c31c1c}.plate .rest{color:var(--ink)}.tag-chief .plate{font-size:40px}.words-left{font:700 21px/1.2 var(--body);color:#fff3d6;text-align:center;white-space:nowrap;text-shadow:0 2px 4px #1c0814,0 0 10px rgba(28,8,20,.9)}.tag.target .plate{filter:brightness(1.08) drop-shadow(0 0 3px #fff0b8) drop-shadow(0 0 16px rgba(255,186,60,1))}.tag.shake{animation:shake .22s linear}.tag.pop{animation:pop .2s ease-out forwards}@keyframes shake{0%,to{translate:0 0}20%{translate:-7px 0}40%{translate:6px 0}60%{translate:-4px 0}80%{translate:3px 0}}@keyframes pop{to{opacity:0;translate:0 -14px}}.floater{position:absolute;transform:translate(-50%,-100%);font:900 26px var(--roman);color:var(--gold-hi);text-shadow:0 2px 0 #4a2a12,0 0 12px rgba(0,0,0,.7);animation:rise .95s ease-out forwards}.floater.perfect{color:#fff;font-size:31px}@keyframes rise{0%{opacity:1;translate:0 0}to{opacity:0;translate:0 -64px}}#hud{position:fixed;inset:0;pointer-events:none}.frame-panel{border:6px solid transparent;border-image:var(--panel-img) / 9px / 5px}.hud-left{position:absolute;left:14px;top:12px}#lives{display:flex;gap:6px;padding:1px 6px}.aquila{width:50px;height:40px;background:url(assets/ui_aquila.webp) center / contain no-repeat;transition:filter .3s,opacity .3s,transform .3s}.aquila.lost{filter:grayscale(1) brightness(.45);opacity:.5;transform:scale(.84)}.hud-stats{display:none}.hud-center{position:absolute;top:8px;left:50%;transform:translate(-50%)}#wave-name{padding:1px 34px 0;white-space:nowrap;border:6px solid transparent;border-image:var(--plaque-img) / 9px / 3px;font:700 29px/1.25 var(--roman);letter-spacing:.06em;color:#eed9a4}.hud-right{position:absolute;right:14px;top:12px;display:grid;justify-items:end;gap:3px}.score-row{display:flex;align-items:center;gap:12px;padding:0 12px 0 4px;font:700 31px/40px var(--roman);color:#f0e6cf}.denarius{width:40px;height:40px;background:url(assets/ui_denarius.webp) center / contain no-repeat}.combo-row{display:flex;align-items:baseline;gap:8px;font:700 16px var(--roman);text-shadow:0 1px 4px #000}#multiplier{font-size:22px;visibility:hidden}#multiplier.hot{color:var(--gold-hi);visibility:visible}#testudo{position:absolute;left:50%;bottom:12px;transform:translate(-50%);width:min(560px,76vw);display:flex;align-items:center;gap:12px;padding:1px 12px}.testudo-name{font:700 24px/34px var(--roman);letter-spacing:.04em;color:#eed9a4}.testudo-bar{flex:1;height:15px;border-radius:8px;background:#0000008c;border:1.5px solid rgba(214,160,44,.6);overflow:hidden}#testudo-fill{height:100%;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(#58c652,#2e8f35)}#testudo.ready{animation:glow 1.1s ease-in-out infinite alternate}#testudo.ready .testudo-name{color:var(--gold-hi)}.testudo-tip{display:none;position:absolute;left:50%;bottom:calc(100% + 14px);width:min(540px,86vw);padding:10px 16px;transform:translate(-50%);text-align:center;pointer-events:none;color:var(--ink);background:var(--parchment);border:3px solid var(--gold);border-radius:12px;box-shadow:0 8px 22px #0a0402a6}.testudo-tip:after{content:"";position:absolute;left:50%;top:100%;margin-left:-11px;border:11px solid transparent;border-top-color:var(--gold)}.testudo-tip strong{display:block;font:900 26px/1.2 var(--roman);color:var(--red)}.testudo-tip span{font:700 21px/1.3 var(--body)}.testudo-tip kbd{font:700 19px/1.2 var(--body);padding:2px 10px;margin:0 2px;color:var(--gold-hi);background:var(--red);border:2px solid var(--gold);border-radius:6px}#testudo.ready:not(.active) .testudo-tip{display:block;animation:tip-show 8s ease both}@keyframes tip-show{0%{opacity:0;transform:translate(-50%,12px)}5%,92%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%)}}#testudo.active #testudo-fill{background:linear-gradient(#a8ccff,#6f9fe8)}@keyframes glow{to{filter:drop-shadow(0 0 12px rgba(255,210,110,.95))}}kbd{font:700 12px var(--body);padding:1px 7px;border-radius:4px;background:#f6e7c824;border:1px solid rgba(246,231,200,.4)}#banner{position:fixed;left:50%;top:33%;transform:translate(-50%,-50%);opacity:0;text-align:center;pointer-events:none;width:min(92vw,1000px)}#banner-title{font:900 clamp(38px,7vw,82px)/1.08 var(--roman);letter-spacing:.07em;color:var(--gold-hi);text-shadow:0 4px 0 #5b1408,0 0 34px rgba(0,0,0,.8)}#banner-sub{font:700 clamp(17px,2.3vw,26px) var(--roman);text-shadow:0 2px 7px #000;margin-top:6px}#banner.boss #banner-title{color:#ff8c6b}#banner.phrase #banner-title{font-size:clamp(30px,5vw,62px)}#flash{position:fixed;inset:0;pointer-events:none;opacity:0}#flash.breach{background:radial-gradient(ellipse at center,#b4140a1a,#b4140a99);animation:flash .55s ease-out}#flash.miss{background:radial-gradient(ellipse at center,transparent 60%,rgba(180,30,10,.3));animation:flash .2s ease-out}#flash.testudo{background:radial-gradient(ellipse at center,transparent 40%,rgba(120,170,255,.4));animation:flash .8s ease-out}@keyframes flash{0%{opacity:1}to{opacity:0}}#mute{position:fixed;right:16px;bottom:14px;width:42px;height:42px;border-radius:50%;background:var(--panel);border:1px solid var(--line);cursor:pointer;z-index:40;display:grid;place-items:center}#mute:before{content:"\266a";color:var(--gold-hi);font-size:22px;line-height:1}#mute.off:before{opacity:.35}#mute.off:after{content:"";position:absolute;width:26px;height:2px;background:var(--red-hi);transform:rotate(-45deg)}.screen{position:fixed;inset:0;display:grid;place-items:center;z-index:30;padding:16px}#loading{background:#1a0d08;align-content:center;gap:16px}#loading h2{font:700 24px var(--roman);margin:0}.load-bar{width:min(320px,70vw);height:6px;background:#ffffff26;border-radius:3px;overflow:hidden}#load-fill{height:100%;background:var(--gold);transform-origin:0 50%;transform:scaleX(0)}#title{background:linear-gradient(rgba(36,12,40,.34),transparent 24%),url(assets/menu_backdrop.webp) center / cover no-repeat,radial-gradient(ellipse at 50% 35%,#a64a2e,#1a0d08)}body:has(#title:not(.hidden)) #mute{top:14px;bottom:auto}.title-inner{width:100%;height:100%;text-align:center;padding:clamp(0px,1.2vh,14px) 0;display:flex;flex-direction:column;justify-content:space-between;gap:16px}h1{margin:0;font:900 clamp(64px,min(11.5vw,17vh),148px)/1 var(--roman);letter-spacing:.12em;color:var(--gold-hi);text-shadow:0 5px 0 #6a160b,0 9px 26px rgba(25,6,22,.8)}.tagline{margin:2px 0 0;font:700 clamp(16px,2.2vw,23px) var(--roman);text-shadow:0 2px 5px #1c0814,0 0 16px rgba(28,8,20,.85)}.title-actions{width:min(760px,64vw);margin-left:auto;display:grid;gap:10px}#difficulties{display:flex;gap:8px;justify-content:center}.diff{flex:1 1 0;min-width:0;padding:14px 6px;cursor:pointer;color:var(--parchment);background:none;border:8px solid transparent;border-image:var(--plaque-img) / 12px / 3px;font:inherit;display:grid;align-content:center;gap:1px;filter:drop-shadow(0 5px 8px rgba(10,4,2,.7));transition:transform .12s,filter .12s}.diff:hover,.diff:focus-visible{transform:translateY(-3px);filter:brightness(1.18) drop-shadow(0 0 14px rgba(255,200,90,.95));outline:none}.diff strong{font:900 clamp(20px,2.2vw,28px) var(--roman);color:var(--gold-hi)}.diff em{font-style:normal;font-size:13px;opacity:.85}.diff em:empty{display:none}.howto-line{margin:0;padding:10px 16px;border-radius:9px;background:#180a089e;border:1px solid rgba(227,173,45,.28);font:700 clamp(18px,2vw,24px)/1.25 var(--body);text-align:center}#pause,#end{background:#1208048c}.card{width:min(520px,100%);padding:26px 30px;text-align:center;background:#1e0e08f2;border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 60px #0009}.card h2{margin:0;font:900 clamp(32px,6vw,50px)/1.12 var(--roman);color:var(--gold-hi)}#end.lost .card h2{color:#ff8c6b}.card p{margin:6px 0}.rank{display:flex;align-items:center;justify-content:center;gap:14px;margin:16px 0}.laurel{width:76px;height:76px;background:url(assets/ui_laurel.webp) center / contain no-repeat}.rank-text{text-align:left;display:grid}.rank-text small{font:700 14px var(--roman);opacity:.75}.rank-text strong{font:900 35px/1.1 var(--roman)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:10px;margin:14px 0}.stats div{padding:8px;background:#f6e7c812;border-radius:7px}.stats dt{font-size:14px;opacity:.8}.stats dd{margin:0;font:900 25px var(--roman);color:var(--gold-hi)}.actions{display:flex;gap:10px;justify-content:center;margin-top:16px}.actions button{padding:11px 20px;border-radius:8px;border:1px solid var(--line);background:transparent;color:var(--parchment);font:700 17px var(--roman);cursor:pointer}.actions button.primary{background:var(--red);border-color:var(--gold)}.actions button:hover{border-color:var(--gold-hi);filter:brightness(1.15)}@media(max-width:640px){.title-actions{width:100%}#difficulties{flex-direction:column}.score-row{font-size:24px}.aquila{width:30px;height:30px}#wave-name{font-size:18px}.hud-center{top:62px}}@media(prefers-reduced-motion:reduce){.tag.shake,.floater,#flash{animation-duration:.01s}}
