@import url(https://fonts.googleapis.com/css2?family=Cinzel:wght@600;700;800&family=Playfair+Display:wght@400;600&display=swap);:root{--bg:#080512;--text:#f3ead8;--muted:#b7a98b;--mint:#79c56b;--gold:#d4af37;--violet:#75598d;--line:rgba(212,175,55,.24)}*{box-sizing:border-box}body,html{margin:0;width:100%;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:"Playfair Display",Georgia,serif}button{font-family:Cinzel,Georgia,serif}#gameCanvas{position:fixed;inset:0;width:100%;height:100%;z-index:1;display:block;touch-action:none}#ui-layer{position:fixed;inset:0;z-index:10;pointer-events:none;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(16px,2.3vw,32px);padding-bottom:max(clamp(16px,2.3vw,32px),env(safe-area-inset-bottom))}.topbar{display:flex;justify-content:center;align-items:flex-start;padding-inline:54px}.stats{display:flex;gap:8px;pointer-events:auto}.stat{min-width:92px;padding:8px 12px;text-align:center;border:1px solid var(--line);border-radius:10px;background:rgba(12,10,18,.76);box-shadow:inset 0 1px rgba(255,255,255,.035),0 10px 30px rgba(0,0,0,.18);backdrop-filter:blur(12px)}.stat span{display:block;color:var(--muted);font-family:Cinzel,Georgia,serif;font-size:.58rem;text-transform:uppercase;letter-spacing:.08em}.stat strong{font-family:Cinzel,Georgia,serif;font-size:.96rem;font-variant-numeric:tabular-nums}.score-stat strong{color:var(--gold)}.bottom-ui{display:flex;flex-direction:column;align-items:center;gap:9px}.controls-bottom{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:min(320px,100%);gap:9px;pointer-events:auto}.btn{min-height:44px;border:0;border-radius:8px;padding:10px 15px;font-size:.78rem;font-weight:700;letter-spacing:.025em;cursor:pointer;transition:transform .16s ease,opacity .16s ease,box-shadow .16s ease,background .16s ease;pointer-events:auto;white-space:nowrap}.btn:hover:not(:disabled){transform:translateY(-2px)}.btn:active:not(:disabled){transform:translateY(0) scale(.98)}.btn:disabled{opacity:.32;cursor:default;transform:none}.btn-secondary{color:#e9ddbd;background:rgba(17,14,22,.8);border:1px solid rgba(212,175,55,.42);box-shadow:inset 0 1px rgba(255,255,255,.04);backdrop-filter:blur(10px)}.btn-secondary:hover:not(:disabled){color:#fff4cf;background:rgba(72,60,27,.48);border-color:rgba(212,175,55,.72)}.btn-primary{color:#16120b;background:linear-gradient(135deg,#e3c45d,#79c56b);box-shadow:0 9px 24px rgba(121,197,107,.13)}.message{min-height:18px;padding:0 8px;color:#d6cab2;font-size:.84rem;line-height:1.3;text-align:center;text-shadow:0 2px 12px rgba(0,0,0,.75)}.modal-kicker{margin:0 0 5px;font-family:Cinzel,Georgia,serif;font-size:.67rem;font-weight:800;letter-spacing:.18em;color:var(--mint)}.overlay{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:12px;background:rgba(4,4,12,.8);backdrop-filter:blur(14px);pointer-events:auto}.overlay.hidden{display:none}.modal{position:relative;width:min(430px,100%);max-height:calc(100dvh - 24px);overflow:auto;padding:clamp(24px,5vh,38px) 34px clamp(22px,4.5vh,34px);text-align:center;border:1px solid rgba(212,175,55,.3);border-radius:18px;background:radial-gradient(circle at 50% 0,rgba(212,175,55,.16),transparent 42%),radial-gradient(circle at 12% 18%,rgba(121,197,107,.08),transparent 38%),linear-gradient(160deg,#1b1720,#0b1012);box-shadow:0 35px 100px rgba(0,0,0,.62);animation:modalIn .38s cubic-bezier(.2,.85,.3,1.15)}@keyframes modalIn{from{opacity:0;transform:translateY(14px) scale(.92)}}.victory-glyph{width:64px;height:64px;margin:0 auto 12px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(121,197,107,.38);color:var(--mint);font-size:1.6rem;box-shadow:0 0 35px rgba(121,197,107,.14),inset 0 0 20px rgba(121,197,107,.08);animation:glyphPulse 2.1s ease-in-out infinite}@keyframes glyphPulse{50%{box-shadow:0 0 50px rgba(121,197,107,.2),inset 0 0 24px rgba(121,197,107,.12);transform:scale(1.035)}}.modal h2{margin:4px 0 10px;font-family:Cinzel,Georgia,serif;font-size:clamp(1.45rem,6vw,2rem);letter-spacing:-.025em}.modal p{color:var(--muted);margin:0 0 clamp(16px,3.5vh,24px)}@media(max-width:720px){#ui-layer{padding:14px;padding-bottom:max(14px,env(safe-area-inset-bottom))}.topbar{padding-inline:48px}.stats{gap:6px}.stat{min-width:66px;padding:7px 8px}.stat span{font-size:.52rem}.stat strong{font-size:.88rem}.controls-bottom{gap:8px}.btn{padding:9px 10px;font-size:.73rem}.message{font-size:.78rem;max-width:94vw}}@media(max-width:440px){.score-stat{display:none}.topbar{padding-inline:54px}.stats{width:min(220px,100%)}.stat{flex:1;min-width:0}.controls-bottom{width:min(290px,100%)}.controls-bottom .btn{min-width:0}.modal .btn span{display:inline}}@media(max-width:520px){.bottom-ui{gap:8px}.message{max-width:92vw}}@media(max-height:680px){#ui-layer{padding-top:14px;padding-bottom:max(12px,env(safe-area-inset-bottom))}.stat{padding-block:6px}.bottom-ui{gap:7px}.controls-bottom .btn{padding-block:8px}}@media(max-height:420px){.modal{padding:16px 24px}.victory-glyph{width:44px;height:44px;margin-bottom:6px;font-size:1.2rem}.modal-kicker{font-size:.56rem}.modal p{margin-bottom:12px}.modal .btn{min-height:40px;padding-block:7px}}.modal.campaign-complete{border-color:rgba(212,175,55,.42);background:radial-gradient(circle at 50% -5%,rgba(212,175,55,.2),transparent 38%),radial-gradient(circle at 15% 15%,rgba(121,197,107,.12),transparent 42%),linear-gradient(160deg,#211b18,#0b1012)}.modal.campaign-complete .victory-glyph{color:#f1d87d;border-color:rgba(212,175,55,.52);box-shadow:0 0 45px rgba(212,175,55,.2),inset 0 0 20px rgba(212,175,55,.1)}.final-blessing{color:#eadca9;font-weight:700;text-shadow:0 0 18px rgba(212,175,55,.18)}.witch-backdrop{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;opacity:.96;filter:saturate(.94) contrast(1.02)}.witch-backdrop::before{content:"";position:absolute;width:min(640px,58vw);aspect-ratio:1;right:-1vw;top:50%;transform:translateY(-50%);border-radius:50%;background:radial-gradient(circle,rgba(114,52,87,.34) 0,rgba(95,43,83,.16) 48%,rgba(8,5,18,0) 72%);filter:blur(26px)}.witch-source-container{position:absolute;width:330px;height:480px;right:clamp(18px,7vw,118px);top:50%;transform:translateY(-48%) scale(clamp(1.08,.78 + .047vw,1.48));transform-origin:center center;opacity:.96;filter:blur(.35px) drop-shadow(0 22px 34px rgba(0,0,0,.24))}.witch-source-witch{position:absolute;top:100px;left:110px}.witch-source-hair{height:0;width:80px;border-bottom:80px solid #ff7903;border-left:20px solid transparent;border-right:20px solid transparent}.witch-source-hat{background-color:#0b081b;width:160px;height:25px;border-radius:50%;position:relative;right:38px;bottom:5px}.witch-source-hat:before{content:"";position:relative;width:0;height:0;border-left:50px solid transparent;border-right:50px solid transparent;border-bottom:100px solid #0b081b;bottom:95px;left:28px}.witch-source-hat:after{width:0;height:0;content:"";border-top:10px solid transparent;border-bottom:10px solid transparent;border-left:40px solid #0b081b;position:absolute;right:45px;bottom:83px;transform:rotate(20deg)}.witch-source-face{background-color:#ffcb9b;height:60px;width:80px;border-radius:0 0 40px 40px;z-index:1;position:relative}.witch-source-eye{background-color:#6155bd;height:9px;width:9px;border-radius:50%;position:relative;top:18px;left:15.2px;box-shadow:0 -3px 0 5px #1f1a43,37px 0 0 0 #6155bd,37px -3px 0 5px #1f1a43}.witch-source-mouth{height:2px;background-color:#000;width:40px;position:relative;left:20px;top:30px}.witch-source-mouth:after,.witch-source-mouth:before{content:"";position:absolute;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:7px solid #fff;top:2px}.witch-source-mouth:before{left:4px}.witch-source-mouth:after{right:4px}.witch-source-cloak{height:0;width:80px;border-bottom:180px solid #0e0c29;border-left:40px solid transparent;border-right:40px solid transparent;position:relative;right:20px}.witch-source-hand-l{background-color:#0e0c29;height:30px;width:70px;position:relative;right:65px;bottom:0;transform:rotate(20deg);transform-origin:right;animation:witch-source-wave 2s infinite}@keyframes witch-source-wave{50%{transform:rotate(5deg)}}.witch-source-hand-l:before{content:"";position:absolute;background-color:#ffcb9b;height:25px;width:20px;right:70px;top:2px;border-radius:10px 0 0 10px}.witch-source-stick{background-color:#b35900;height:100px;width:10px;border-radius:10px;position:relative;bottom:80px;left:-15px}.witch-source-hand-l:after{content:"";position:absolute;background-color:#ffcb9b;height:10px;width:10px;border-radius:15px;top:10px;right:71px}.witch-source-hand-r{background-color:#0e0c29;height:80px;width:30px;position:absolute;left:90px;bottom:98px;transform:rotate(-25deg)}.witch-source-hand-r:before{content:"";position:absolute;background-color:#ffcb9b;height:15px;width:20px;border-radius:0 0 15px 15px;left:10px;top:80px}.witch-source-stick2{background-color:#b35900;height:200px;width:18px;border-radius:25px;transform:rotate(23deg);position:relative;top:220px;left:210px;animation:witch-source-mix 4s infinite}@keyframes witch-source-mix{50%{transform:translateX(-100px) rotate(-23deg)}}.witch-source-bubble-1{background-color:#29a329;height:30px;width:30px;opacity:.6;border-radius:50%;position:relative;top:130px;left:130px;animation:witch-source-move-up-1 3s .5s infinite}@keyframes witch-source-move-up-1{100%{transform:translateY(-95px)}}.witch-source-bubble-2{background-color:#29a329;height:20px;width:20px;opacity:.6;border-radius:50%;position:relative;top:130px;left:210px;animation:witch-source-move-up-2 3.2s 1.5s infinite}@keyframes witch-source-move-up-2{100%{transform:translateY(-90px)}}.witch-source-claudron{background-color:#222;height:150px;width:200px;position:relative;margin:auto;top:50px;border-radius:100px;box-shadow:0 20px 30px rgba(0,0,0,.28),0 -8px 30px rgba(41,163,41,.12)}.witch-source-claudron:before{content:"";position:absolute;background-color:#222;height:40px;width:100%;border-radius:50px}.witch-source-handle{background-color:transparent;height:40px;width:240px;border:7px solid #222;position:absolute;border-radius:40px;margin:auto;left:-27px;top:55px}.witch-source-stand,.witch-source-stand:before{height:0;width:5px;border-top:15px solid #222;border-left:6px solid transparent;border-right:6px solid transparent;position:absolute}.witch-source-stand{bottom:-10px;transform:rotate(20deg);left:40px}.witch-source-stand:before{content:"";position:absolute;bottom:35px;left:90px;transform:rotate(-40deg)}.witch-source-potion{background-color:#29a329;height:70px;width:20px;border-radius:0 0 50px 50px;position:relative;bottom:0;left:120px;box-shadow:0 0 26px rgba(41,163,41,.28)}.witch-source-potion:before{content:"";position:absolute;height:35px;background-color:#29a329;width:15px;left:30px;border-radius:0 0 30px 30px}.witch-source-potion:after{content:"";position:absolute;background-color:#29a329;height:22px;width:50px;bottom:70px;right:60px;border-radius:25px 25px 0 0;box-shadow:0 0 22px rgba(41,163,41,.24)}@media(max-width:720px){.witch-backdrop{opacity:.94}.witch-backdrop::before{width:520px;right:-190px;top:54%;opacity:.92}.witch-source-container{right:-76px;top:54%;transform:translateY(-50%) scale(.88);opacity:.88;filter:blur(.45px) drop-shadow(0 18px 28px rgba(0,0,0,.2))}}@media(max-width:440px){.witch-source-container{right:-105px;top:53%;transform:translateY(-50%) scale(.76);opacity:.84}.witch-backdrop::before{right:-220px;top:53%}}@media(max-height:650px){.witch-source-container{top:55%;transform:translateY(-50%) scale(.78)}}@media(prefers-reduced-motion:reduce){.witch-source-bubble-1,.witch-source-bubble-2,.witch-source-hand-l,.witch-source-stick2{animation-duration:12s}}