:root{--blood:#a93418;--ember:#ed9a2c;--bone:#eadfc9;--rot:#a9b72f;--black:#080706;--panel:#151211;--line:#453a31}*{box-sizing:border-box}html{background:#070606}body{margin:0;min-height:100vh;color:var(--bone);font-family:Georgia,serif;background:radial-gradient(circle at 50% 15%,#332317 0,#120e0c 35%,#050404 78%);overflow-x:hidden}.game-shell{width:min(1400px,100%);min-height:100vh;margin:auto;padding:18px clamp(14px,3vw,40px) 24px}.masthead{text-align:center;text-transform:uppercase}.eyebrow{margin:0;color:var(--ember);font:bold .8rem Arial,sans-serif;letter-spacing:.42em}.masthead h1{margin:.05em 0 0;font-size:clamp(2.3rem,6vw,5.4rem);line-height:.9;letter-spacing:.035em;color:#d7c6a5;text-shadow:0 2px 0 #3d0d08,0 0 28px #9a2b1538}.tagline{margin:.55rem 0 1rem;color:#9c8d7c;font-style:italic}.score-strip{display:grid;grid-template-columns:repeat(4,1fr);max-width:900px;margin:auto;border:1px solid var(--line);background:#0b0908d9;box-shadow:0 14px 50px #000}.score-strip div{padding:.65rem;text-align:center;border-right:1px solid var(--line)}.score-strip div:last-child{border:0}.score-strip span{display:block;color:#8d7b6b;font:700 .68rem Arial,sans-serif;letter-spacing:.18em}.score-strip strong{font-size:1.2rem;color:#f0d3a0}.play-grid{display:grid;grid-template-columns:minmax(340px,.82fr) minmax(420px,1.18fr);gap:clamp(20px,4vw,56px);align-items:center;min-height:650px}.execution-stage{position:relative;min-height:620px;display:grid;place-items:center}.stage-light{position:absolute;inset:4% 8% 10%;background:radial-gradient(ellipse,#6e611e25 0,#172c2835 40%,transparent 70%);filter:blur(12px)}.character{position:relative;width:min(430px,85vw);aspect-ratio:2/3;z-index:2;filter:drop-shadow(0 14px 12px #000)}.body-piece{position:absolute;inset:0;background:url('assets/zombie-swingali.png') center/contain no-repeat;transition:filter .3s}.head{clip-path:polygon(35% 0,65% 0,68% 24%,32% 24%)}.torso{clip-path:polygon(27% 20%,73% 20%,68% 56%,32% 56%)}.arm-left{clip-path:polygon(5% 22%,37% 20%,34% 55%,0 58%)}.arm-right{clip-path:polygon(63% 20%,95% 22%,100% 58%,66% 55%)}.leg-left{clip-path:polygon(29% 51%,51% 51%,50% 100%,22% 100%)}.leg-right{clip-path:polygon(49% 51%,71% 51%,78% 100%,50% 100%)}.body-piece.dropped{pointer-events:none;animation:limbDrop 1.25s cubic-bezier(.32,.03,.72,.29) forwards}.head.dropped{animation-name:headDrop}.torso.dropped{animation-name:torsoDrop}.goo{position:absolute;z-index:8;width:55px;height:26px;border-radius:50%;left:50%;top:46%;opacity:0;background:radial-gradient(circle at 40% 40%,#e1e84a,#738800 58%,#253600);box-shadow:0 0 18px #bad400}.goo.burst{animation:gooPulse .9s ease-out}.floor-shadow{position:absolute;bottom:8%;width:72%;height:38px;background:#000;border-radius:50%;filter:blur(13px)}.verdict{position:absolute;bottom:0;z-index:4;width:90%;text-align:center;color:#a99886;font-style:italic}.puzzle-panel{padding:clamp(18px,3vw,34px);border:1px solid #4b3a2d;background:linear-gradient(145deg,#1a1512f3,#0d0b0af5);box-shadow:0 24px 80px #000,inset 0 0 70px #4b16080d}.category-line{display:flex;justify-content:space-between;color:var(--ember);font:700 .72rem Arial,sans-serif;letter-spacing:.15em}.puzzle{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem 1rem;min-height:160px;padding:30px 0;align-content:center}.word{display:flex;gap:.18rem}.letter{display:grid;place-items:center;width:clamp(20px,2.2vw,31px);height:42px;border-bottom:2px solid #907c65;font:bold clamp(1.15rem,2vw,1.65rem) Arial,sans-serif;color:#f5e4c5}.punctuation{width:auto;border:0}.hint-row{text-align:center;min-height:54px}.text-button{border:0;background:transparent;color:#bca37c;text-decoration:underline;cursor:pointer}.hint{margin:.5rem;color:#b8aa97;font-style:italic}.keyboard{display:grid;grid-template-columns:repeat(9,1fr);gap:6px;margin:20px 0}.keyboard button{min-height:42px;border:1px solid #59483a;background:#241d18;color:#efdfc3;font:bold 1rem Arial,sans-serif;cursor:pointer}.keyboard button:hover:not(:disabled){border-color:var(--ember);background:#3a2418}.keyboard button:disabled{opacity:.22}.keyboard button.wrong{color:#c74c25}.solve-form label{display:block;color:#8f8171;font:700 .72rem Arial,sans-serif;letter-spacing:.1em;margin-bottom:6px}.solve-form div{display:flex}.solve-form input{flex:1;min-width:0;padding:13px;border:1px solid #59483a;background:#090807;color:white;font-size:16px}.solve-form button,.new-game{border:1px solid #7b351e;background:#7c2514;color:white;font:bold .8rem Arial,sans-serif;letter-spacing:.08em;padding:0 18px;cursor:pointer}.new-game{width:100%;margin-top:15px;padding:14px;background:#2a231e;border-color:#59483a}.new-game:hover,.solve-form button:hover{background:#a73b1d}footer{display:flex;justify-content:center;gap:2rem;color:#7f7367;font:700 .7rem Arial,sans-serif;letter-spacing:.08em}footer button{border:0;background:none;color:#9c8e7e;cursor:pointer}@keyframes limbDrop{0%{transform:none}20%{transform:translateY(5px) rotate(2deg)}100%{transform:translateY(540px) rotate(45deg);opacity:.25}}@keyframes headDrop{to{transform:translateY(500px) rotate(150deg);opacity:.25}}@keyframes torsoDrop{to{transform:translateY(560px) rotate(-8deg);opacity:.15}}@keyframes gooPulse{0%{opacity:0;transform:translate(-50%,-50%) scale(.1)}25%{opacity:1;transform:translate(-50%,-50%) scale(1.4,.7)}55%{opacity:.9;transform:translate(-50%,-50%) scale(.8,1.5)}100%{opacity:0;transform:translate(-50%,65px) scale(.45,1.8)}}
@media(max-width:850px){.game-shell{padding-top:10px}.play-grid{grid-template-columns:1fr;min-height:0}.execution-stage{min-height:470px}.character{width:300px}.puzzle-panel{margin-top:-20px}.keyboard{grid-template-columns:repeat(7,1fr)}.verdict{bottom:3%}}@media(max-width:520px){.masthead h1{font-size:2.55rem}.score-strip span{font-size:.55rem}.score-strip strong{font-size:1rem}.score-strip div{padding:.55rem .2rem}.execution-stage{min-height:420px}.character{width:265px}.puzzle{min-height:125px;padding:20px 0}.keyboard{grid-template-columns:repeat(7,1fr);gap:4px}.keyboard button{min-height:38px}.solve-form div{flex-direction:column}.solve-form button{padding:12px}footer{flex-wrap:wrap;gap:.7rem 1.2rem}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important}}

/* Severed-body and game-state presentation */
.torso{clip-path:polygon(34% 18%,40% 20%,46% 19%,53% 21%,60% 19%,67% 21%,72% 27%,70% 36%,72% 45%,68% 54%,61% 55%,54% 53%,47% 55%,40% 53%,32% 55%,29% 46%,31% 38%,28% 29%)}
.arm-left{clip-path:polygon(6% 24%,17% 22%,27% 20%,35% 22%,37% 27%,34% 31%,36% 35%,32% 39%,34% 44%,30% 50%,22% 53%,12% 56%,3% 53%,8% 47%,5% 40%,10% 35%)}
.arm-right{clip-path:polygon(64% 22%,73% 20%,83% 22%,94% 24%,90% 34%,96% 41%,92% 47%,97% 53%,88% 56%,78% 53%,70% 50%,66% 44%,68% 39%,64% 35%,67% 29%)}
.leg-left{clip-path:polygon(31% 51%,38% 53%,45% 51%,51% 54%,49% 63%,51% 73%,48% 84%,51% 94%,47% 100%,29% 100%,25% 96%,28% 86%,26% 76%,29% 66%)}
.leg-right{clip-path:polygon(49% 54%,55% 51%,62% 53%,69% 51%,71% 65%,74% 76%,72% 86%,76% 96%,71% 100%,53% 100%,49% 94%,52% 84%,49% 73%,51% 63%)}
.body-piece.dropped{filter:drop-shadow(0 -7px 4px #5f160d) drop-shadow(0 -10px 3px #a6ad21);animation:raggedDrop 1.45s cubic-bezier(.32,.03,.72,.29) forwards}
.head.dropped{animation-name:raggedHeadDrop}.torso.dropped{animation:none}
.cleaver{--cy:46%;position:absolute;z-index:14;left:0;top:var(--cy);width:74%;opacity:0;pointer-events:none;will-change:transform,opacity}.cleaver img{display:block;width:100%;height:auto}.cleaver.slash{animation:cleaverSlash .58s cubic-bezier(.22,.7,.2,1) forwards}
.goo{--gx:50%;--gy:46%;position:absolute;z-index:10;width:54px;height:22px;left:var(--gx);top:var(--gy);opacity:0;border-radius:48% 52% 58% 42%;background:radial-gradient(circle at 35% 30%,#deec45 0 12%,#7d8e09 34%,#731d12 62%,#280b08 100%);box-shadow:0 0 12px #9fab18;filter:contrast(1.2)}
.goo:before,.goo:after{content:"";position:absolute;width:9px;height:9px;border-radius:50%;background:#8f1d12;opacity:0}.goo:before{left:5px;top:4px}.goo:after{right:2px;bottom:2px;background:#a7b31b}
.goo.burst{animation:impactSplat .7s ease-out}.goo.burst:before{animation:dropLeft .7s ease-out}.goo.burst:after{animation:dropRight .8s ease-out}
.wound{--wx:50%;--wy:46%;position:absolute;z-index:7;left:var(--wx);top:var(--wy);width:62px;height:30px;transform:translate(-50%,-50%) rotate(var(--wr,0deg));border-radius:44% 56% 38% 62%;opacity:0;background:radial-gradient(ellipse,#e4e84a 0 16%,#788514 18% 32%,#7e2819 35% 60%,#24100b 65%);box-shadow:0 0 0 5px #3b2119,0 0 16px #c6d328}.wound.show{opacity:1;animation:woundPulse 1.7s ease-out}
.modal-screen{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:20px;background:radial-gradient(circle,#1d160fdc,#050404f5 70%);backdrop-filter:blur(7px)}.modal-screen[hidden]{display:none}.modal-card{width:min(590px,100%);padding:clamp(28px,6vw,55px);text-align:center;border:1px solid #6d4b30;background:linear-gradient(155deg,#211912,#0b0908 75%);box-shadow:0 30px 100px #000,inset 0 0 70px #7d240d1c;position:relative}.modal-card:before{content:"";position:absolute;inset:8px;border:1px solid #5a40285e;pointer-events:none}.modal-kicker{color:var(--ember);font:700 .72rem Arial,sans-serif;letter-spacing:.32em}.modal-card h2{margin:.15em 0;font-size:clamp(2.4rem,8vw,5rem);line-height:.9;color:#dbc7a2;text-shadow:0 2px #5b160c}.modal-epitaph,.result-saying{font-size:1.1rem;line-height:1.55;color:#c6b59e;font-style:italic}.rules{margin:24px 0;text-align:left;padding:14px 20px;border-top:1px solid #4b392b;border-bottom:1px solid #4b392b;color:#9f9180}.rules p{margin:.6rem 0}.primary-action,.secondary-action{position:relative;border:1px solid #91391e;padding:14px 22px;color:white;background:#8b2915;font:bold .8rem Arial,sans-serif;letter-spacing:.11em;cursor:pointer}.primary-action:hover{background:#b44120}.secondary-action{background:#211b17;border-color:#5b493a}.result-score{margin:24px auto;width:210px;padding:18px;border:1px solid #745139;background:#0a0807}.result-score span{display:block;color:#9e8b76;font:700 .65rem Arial,sans-serif;letter-spacing:.2em}.result-score strong{display:block;color:#e7bb67;font-size:2.2rem}.result-facts{display:flex;justify-content:center;gap:20px;color:#9f8f7d;font:700 .7rem Arial,sans-serif;letter-spacing:.08em}.result-facts b{color:#e4d4bb}.result-actions{display:grid;grid-template-columns:1.25fr 1fr;gap:8px;margin-top:24px}.challenge-options{margin-top:10px;padding:14px;border:1px solid #6d4b30;background:#0b0908}.challenge-options[hidden]{display:none}.challenge-options p{margin:0 0 12px;color:#c6b59e;font-size:.92rem;line-height:1.4}.challenge-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.challenge-buttons a{display:flex;align-items:center;justify-content:center;text-decoration:none}.share-status{min-height:1.2em;color:#b9c448;font-size:.85rem}
@keyframes raggedDrop{0%{transform:none}12%{transform:translateY(-4px) rotate(-2deg)}26%{transform:translateY(10px) rotate(4deg)}100%{transform:translateY(540px) rotate(51deg);opacity:.3}}@keyframes raggedHeadDrop{0%{transform:none}18%{transform:translateY(8px) rotate(-7deg)}100%{transform:translateY(500px) rotate(165deg);opacity:.3}}@keyframes cleaverSlash{0%{opacity:0;transform:translate(-120%,-62%) scaleX(-1) rotate(-17deg)}12%{opacity:1}55%{opacity:1;transform:translate(25%,-50%) scaleX(-1) rotate(5deg)}78%{opacity:.9;transform:translate(57%,-45%) scaleX(-1) rotate(10deg)}100%{opacity:0;transform:translate(105%,-38%) scaleX(-1) rotate(13deg)}}@keyframes impactSplat{0%{opacity:0;transform:translate(-50%,-50%) scale(.1)}22%{opacity:1;transform:translate(-50%,-50%) scale(1.45,.75)}58%{opacity:.9;transform:translate(-50%,3px) scale(.9,1.2)}100%{opacity:0;transform:translate(-50%,35px) scale(.45,1.45)}}@keyframes dropLeft{0%{opacity:0;transform:translate(0)}30%{opacity:1;transform:translate(-24px,-18px) scale(1.3)}100%{opacity:0;transform:translate(-39px,38px) scale(.7)}}@keyframes dropRight{0%{opacity:0;transform:translate(0)}30%{opacity:1;transform:translate(28px,-12px) scale(1.15)}100%{opacity:0;transform:translate(45px,44px) scale(.65)}}@keyframes woundPulse{0%,100%{filter:brightness(.8)}25%,55%{filter:brightness(1.6);transform:translate(-50%,-50%) rotate(var(--wr,0deg)) scale(1.14)}}
@media(max-width:520px){.result-actions{grid-template-columns:1fr}.result-facts{gap:10px;flex-wrap:wrap}.modal-card{padding:28px 20px}}
.result-actions{grid-template-columns:repeat(2,1fr)}
@media(max-width:520px){.result-actions,.challenge-buttons{grid-template-columns:1fr}}

/* Cinematic apocalypse environment and cleaner detachable-body seams */
body{background-color:#090908;background-image:linear-gradient(90deg,rgba(5,7,7,.28),rgba(5,7,7,.12) 46%,rgba(5,7,7,.3)),linear-gradient(180deg,rgba(4,5,6,.08),rgba(4,5,5,.42)),url('assets/zombie-apocalypse-background.webp');background-size:cover;background-position:center;background-attachment:fixed}
.game-shell{background:linear-gradient(90deg,rgba(5,6,6,.18),transparent 28%,transparent 72%,rgba(5,6,6,.18))}
.masthead h1{color:#f0dec0;text-shadow:0 3px 0 #3d0d08,0 0 18px #000,0 0 42px #b951253f}.tagline{color:#d1c2ae;text-shadow:0 2px 8px #000}
.torso{clip-path:polygon(27% 17%,36% 17%,43% 19%,50% 18%,57% 19%,64% 17%,73% 18%,75% 27%,72% 36%,74% 45%,69% 56%,60% 57%,53% 55%,47% 57%,39% 55%,31% 57%,26% 46%,29% 37%,25% 28%)}
.arm-left{clip-path:polygon(3% 22%,14% 20%,25% 18%,37% 17%,43% 21%,42% 27%,36% 32%,38% 37%,33% 42%,35% 47%,30% 52%,21% 55%,11% 58%,1% 54%,7% 47%,4% 40%,9% 34%)}
.arm-right{clip-path:polygon(57% 21%,63% 17%,75% 18%,86% 20%,97% 22%,91% 34%,96% 40%,93% 47%,99% 54%,89% 58%,79% 55%,70% 52%,65% 47%,67% 42%,62% 37%,64% 32%,58% 27%)}
.score-strip{border-color:#71811d;background:linear-gradient(180deg,rgba(54,48,40,.96),rgba(28,25,22,.97));box-shadow:0 14px 40px #000,0 0 0 1px #1a1c0b,inset 0 0 22px #a9b72f12}.score-strip div{border-right-color:#655d45}.score-strip span{color:#c2b7a6}.score-strip strong{color:#ffe2aa;text-shadow:0 1px 6px #000}
.puzzle-panel{position:relative;border:2px solid #82951f;background:linear-gradient(145deg,rgba(55,49,42,.97),rgba(27,25,22,.98));box-shadow:0 24px 80px #000,inset 0 0 55px #c6d3280c,0 0 20px #4c5a0e80}
.puzzle-panel:before{content:"";position:absolute;pointer-events:none;inset:5px;border:1px solid #bacb3b66;box-shadow:inset 0 0 16px #9db51f20}
.puzzle-panel:after{content:"";position:absolute;pointer-events:none;z-index:2;left:2%;right:2%;bottom:-18px;height:24px;background:radial-gradient(ellipse at 4% 0,#899c19 0 30%,transparent 33%),radial-gradient(ellipse at 13% 0,#65780d 0 22%,transparent 25%),radial-gradient(ellipse at 25% 0,#9aaa1d 0 35%,transparent 38%),radial-gradient(ellipse at 39% 0,#71850f 0 20%,transparent 23%),radial-gradient(ellipse at 53% 0,#95a91b 0 33%,transparent 36%),radial-gradient(ellipse at 67% 0,#60730b 0 23%,transparent 26%),radial-gradient(ellipse at 82% 0,#8fa117 0 37%,transparent 40%),radial-gradient(ellipse at 95% 0,#687c0d 0 25%,transparent 28%);filter:drop-shadow(0 4px 2px #141903)}
.category-line{color:#ffc06a;text-shadow:0 1px 4px #000}.letter{color:#fff1d7;border-bottom-color:#d2bea0;text-shadow:0 2px 5px #000}.hint,.solve-form label{color:#e0d5c4}.text-button{color:#e9cf9d;font-weight:700}.keyboard button{border-color:#776956;background:#40382f;color:#fff0d7;text-shadow:0 1px 3px #000}.keyboard button:hover:not(:disabled){background:#62402a}.solve-form input{border-color:#8a7b65;background:#211e1a;color:#fff4e2}.solve-form input::placeholder{color:#aaa092}
.modal-card{border-color:#83941f;background:linear-gradient(155deg,rgba(61,52,43,.98),rgba(26,23,20,.99) 75%);box-shadow:0 30px 100px #000,inset 0 0 70px #a8bb2519,0 0 24px #64740e80}.modal-card:before{border-color:#b9c93d70}.modal-epitaph,.result-saying,.rules{color:#e0d4c2}
@media(max-width:850px){body{background-position:58% center;background-attachment:scroll}.puzzle-panel{margin-bottom:22px}}

/* Dimensional carved-metal title and ornate three-dimensional frames */
.masthead{perspective:700px}.masthead h1,.dimensional-title{position:relative;font-family:Impact,Haettenschweiler,"Arial Narrow Bold",sans-serif;font-weight:900;letter-spacing:.065em;color:#d7c79f;background:linear-gradient(180deg,#fff0bf 0,#b99a59 38%,#72572e 55%,#d3b976 78%,#5f431f 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;transform:rotateX(7deg);filter:drop-shadow(0 8px 7px #000);text-shadow:0 1px 0 #fff0bd,0 2px 0 #ad8a4d,0 3px 0 #80602e,0 4px 0 #4c351a,0 5px 0 #2d1c0c,0 8px 11px #000,0 0 24px #8ea51c55}.masthead h1:after,.dimensional-title:after{content:attr(data-text);position:absolute;inset:0;z-index:-1;color:#161009;-webkit-text-fill-color:#161009;transform:translateY(6px);text-shadow:0 2px 12px #000}
.score-strip{position:relative;border:7px ridge #79633b;outline:2px solid #303807;box-shadow:0 14px 40px #000,0 0 0 2px #adbd2b,0 0 0 6px #21190e,inset 0 0 22px #a9b72f12}.score-strip:before,.score-strip:after{content:"✦";position:absolute;z-index:3;top:50%;width:30px;height:30px;display:grid;place-items:center;transform:translateY(-50%) rotate(45deg);border:2px ridge #a58a4d;background:linear-gradient(145deg,#5f4a28,#17130d);color:#a9ba27;text-shadow:0 0 7px #d5ec45;box-shadow:0 4px 8px #000,inset 0 0 6px #d1b36a66}.score-strip:before{left:-22px}.score-strip:after{right:-22px}
.puzzle-panel{border:9px ridge #786038;outline:2px solid #82951f;box-shadow:0 24px 80px #000,0 0 0 4px #22180d,0 0 0 6px #a6b526,inset 0 0 55px #c6d3280c,inset 0 0 0 3px #b99a5c42}.puzzle-panel:before{inset:5px;border:3px double #9ead2b;box-shadow:inset 0 0 16px #9db51f20,0 0 0 2px #241a0e;background:linear-gradient(135deg,#d0b56a 0 9px,transparent 10px) top left/34px 34px no-repeat,linear-gradient(225deg,#d0b56a 0 9px,transparent 10px) top right/34px 34px no-repeat,linear-gradient(45deg,#6f7f13 0 9px,transparent 10px) bottom left/34px 34px no-repeat,linear-gradient(315deg,#6f7f13 0 9px,transparent 10px) bottom right/34px 34px no-repeat}
.modal-card{border:10px ridge #79613a;outline:2px solid #91a21d;box-shadow:0 30px 100px #000,0 0 0 4px #21170c,0 0 0 7px #6b7912,inset 0 0 70px #a8bb2519,inset 0 0 0 3px #c5a96944}.modal-card:before{inset:7px;border:4px double #adbc32;box-shadow:inset 0 0 18px #000,0 0 0 2px #2f2414}
.primary-action,.secondary-action,.new-game{border:4px ridge #8e7547;box-shadow:0 7px 0 #24170d,0 10px 18px #000,inset 0 1px 0 #ffffff35;text-shadow:0 2px 3px #000;transition:transform .15s,box-shadow .15s,filter .15s}.primary-action:hover,.secondary-action:hover,.new-game:hover{transform:translateY(-2px);filter:brightness(1.14);box-shadow:0 9px 0 #24170d,0 13px 20px #000,inset 0 1px 0 #ffffff45}.primary-action:active,.secondary-action:active,.new-game:active{transform:translateY(5px);box-shadow:0 2px 0 #24170d,0 5px 9px #000}.start-awakening{font-size:clamp(.78rem,2.6vw,1rem);padding:16px 24px;background:linear-gradient(180deg,#a43a1d,#681709);border-color:#be9a59}
@media(max-width:520px){.masthead h1{letter-spacing:.035em}.score-strip{border-width:5px}.score-strip:before,.score-strip:after{display:none}.puzzle-panel{border-width:6px}.modal-card{border-width:7px}.new-game{font-size:.72rem;padding-inline:8px}}

/* Hard start gate and protected lower information areas */
.awaiting-start #startScreen{display:grid!important}.awaiting-start .game-shell{pointer-events:none}.awaiting-start #startScreen{pointer-events:auto}
.execution-stage{min-height:710px;padding-bottom:90px}.character{transform:translateY(-38px)}.floor-shadow{bottom:15%}
.verdict{bottom:12px;width:min(92%,560px);min-height:58px;margin:0;padding:12px 18px;display:grid;place-items:center;color:#f1dfbe;background:linear-gradient(180deg,rgba(61,51,41,.97),rgba(27,23,19,.98));border:5px ridge #7d673d;outline:2px solid #83951d;box-shadow:0 9px 20px #000,0 0 0 3px #21170d,inset 0 0 12px #9daf2220;font-size:clamp(.98rem,1.45vw,1.15rem);font-weight:700;line-height:1.35;text-shadow:0 2px 3px #000}
footer{position:relative;z-index:30;width:min(760px,96%);margin:34px auto 12px;padding:13px 18px;gap:clamp(1rem,4vw,3rem);color:#e2d3bb;background:linear-gradient(180deg,rgba(55,47,39,.98),rgba(25,22,19,.98));border:5px ridge #755f39;outline:2px solid #788a19;box-shadow:0 9px 22px #000,0 0 0 3px #20170e;font-size:.86rem;line-height:1.35;text-shadow:0 2px 3px #000}footer strong{color:#ffe0a7;font-size:.95rem}footer button{color:#dce5a5;font-size:.82rem;font-weight:800}
@media(max-width:850px){.execution-stage{min-height:550px;padding-bottom:82px}.character{transform:translateY(-26px)}.floor-shadow{bottom:17%}.verdict{bottom:10px}.puzzle-panel{margin-top:0}footer{margin-top:38px}}
@media(max-width:520px){.execution-stage{min-height:510px;padding-bottom:84px}.character{transform:translateY(-22px)}.verdict{width:96%;padding:10px 12px;font-size:.95rem}.modal-epitaph{font-size:1rem}.rules{padding:10px 12px}.start-awakening{width:100%;padding-inline:10px}footer{width:96%;font-size:.78rem;padding:11px 9px}}

/* Opening mausoleum scene */
#startScreen{overflow:auto;background-color:#080a0c;background-image:linear-gradient(90deg,rgba(2,4,6,.28),rgba(2,4,6,.06) 45%,rgba(2,4,6,.28)),linear-gradient(180deg,rgba(3,5,8,.08),rgba(3,4,5,.5)),url('assets/intro-mausoleum.webp');background-size:cover;background-position:center;background-attachment:fixed;backdrop-filter:none}
#startScreen:before{content:"";position:fixed;pointer-events:none;inset:0;background:radial-gradient(ellipse at center,transparent 22%,rgba(0,0,0,.22) 68%,rgba(0,0,0,.67) 100%),linear-gradient(180deg,rgba(114,135,36,.08),transparent 34%)}
#startScreen .start-card{isolation:isolate;width:min(720px,94vw);margin:48px auto;padding:clamp(70px,9vw,100px) clamp(28px,6vw,68px) clamp(38px,6vw,58px);border:14px ridge #696052;border-radius:48% 48% 18px 18px/100px 100px 18px 18px;outline:4px solid #24251b;background:linear-gradient(115deg,transparent 0 23%,rgba(255,255,255,.045) 24%,transparent 25% 71%,rgba(0,0,0,.09) 72%,transparent 73%),radial-gradient(circle at 20% 18%,#797566 0 1px,transparent 2px),radial-gradient(circle at 74% 31%,#292d25 0 2px,transparent 3px),linear-gradient(145deg,rgba(73,72,63,.98),rgba(40,43,37,.99) 48%,rgba(21,25,22,.99));background-size:auto,29px 31px,41px 43px,auto;box-shadow:0 36px 90px #000,0 0 0 6px #171912,0 0 0 10px #78831a,0 0 40px #96aa2555,inset 0 0 0 4px #a29a7d,inset 0 0 0 9px #22251d,inset 0 0 65px #000}
#startScreen .start-card:before{inset:17px 15px 15px;border:7px double #958a66;border-radius:43% 43% 10px 10px/74px 74px 10px 10px;box-shadow:inset 0 0 0 3px #25281e,inset 0 0 24px #000,0 0 0 3px #5d6814;background:linear-gradient(135deg,#a89b69 0 13px,transparent 14px) top left/48px 48px no-repeat,linear-gradient(225deg,#a89b69 0 13px,transparent 14px) top right/48px 48px no-repeat,linear-gradient(45deg,#6e7918 0 12px,transparent 13px) bottom left/48px 48px no-repeat,linear-gradient(315deg,#6e7918 0 12px,transparent 13px) bottom right/48px 48px no-repeat}
#startScreen .start-card:after{content:"";position:absolute;z-index:-1;left:50%;top:-46px;width:116px;height:76px;transform:translateX(-50%);border:9px ridge #62594b;border-radius:58px 58px 12px 12px;background:radial-gradient(circle at 50% 58%,#a8b528 0 8%,#515a13 9% 18%,transparent 19%),linear-gradient(145deg,#5f5d52,#20241f);box-shadow:0 9px 18px #000,0 0 0 4px #161812,inset 0 0 13px #000}
#startScreen .modal-kicker{position:relative;color:#e8bb5f;font-size:.78rem;letter-spacing:.34em;text-shadow:0 2px 4px #000,0 0 13px #a5bb28}
#startScreen .dimensional-title{font-size:clamp(3rem,9vw,6.2rem);line-height:.86;margin:.16em 0 .24em;background:linear-gradient(180deg,#e7f06c 0,#9daf21 28%,#e0b95d 51%,#755523 68%,#d2b15b 83%,#3b2c16 100%);-webkit-background-clip:text;background-clip:text;filter:drop-shadow(0 10px 8px #000);text-shadow:0 1px 0 #f7ffb0,0 2px 0 #9cab25,0 3px 0 #798414,0 4px 0 #534510,0 6px 0 #241b09,0 10px 13px #000,0 0 28px #a9bc2b88}
#startScreen .modal-epitaph{position:relative;margin:0 auto 20px;max-width:560px;color:#f2e6cd;font-size:clamp(1.02rem,2vw,1.2rem);line-height:1.55;text-shadow:0 2px 4px #000}
#startScreen .rules{position:relative;margin:20px 0 27px;padding:17px 22px;border:8px ridge #78663e;outline:2px solid #95a222;background:linear-gradient(145deg,rgba(36,31,26,.97),rgba(15,16,14,.98));box-shadow:0 12px 24px #000,0 0 0 4px #191c14,inset 0 0 20px #82941a20;color:#ecdfc7;font-size:1rem;line-height:1.45;text-shadow:0 2px 3px #000}
#startScreen .rules p:last-child{margin-top:15px;padding-top:14px;border-top:1px solid #8b943c;color:#e9cf83;font-size:1.06rem;font-style:italic}
#startScreen .start-awakening{position:relative;z-index:2;background:linear-gradient(180deg,#9dac27,#4c5a10 48%,#242b09);border:7px ridge #9a824c;box-shadow:0 9px 0 #181b08,0 15px 24px #000,inset 0 1px 0 #fbffac66;color:#fff5d8;font-size:.95rem}
@media(max-width:650px){#startScreen{background-position:52% center;background-attachment:scroll}#startScreen .start-card{margin:38px auto;padding:66px 21px 36px;border-width:9px;border-radius:42% 42% 14px 14px/72px 72px 14px 14px}#startScreen .start-card:before{inset:11px;border-width:5px}#startScreen .start-card:after{top:-34px;width:90px;height:60px;border-width:6px}#startScreen .modal-kicker{font-size:.66rem;letter-spacing:.2em}#startScreen .rules{padding:13px 14px;border-width:6px;font-size:.94rem}}

/* Persistent brand emblem and dripping Swingali pre-title */
.corner-logo{position:fixed;z-index:130;top:max(14px,env(safe-area-inset-top));left:max(14px,env(safe-area-inset-left));width:clamp(78px,8vw,118px);height:auto;pointer-events:none;user-select:none;filter:drop-shadow(0 7px 8px #000) drop-shadow(0 0 7px #b2c62d55)}
#startScreen .intro-preamble{display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:10px;letter-spacing:normal}
#startScreen .swingali-drip{position:relative;display:inline-block;padding:0 .12em .14em;color:#d8e653;font-family:Impact,Haettenschweiler,"Arial Narrow Bold",sans-serif;font-size:clamp(1.4rem,4vw,2.25rem);font-weight:900;line-height:.95;letter-spacing:.08em;text-shadow:0 1px 0 #f3f6a0,0 2px 0 #889514,0 4px 0 #495308,0 7px 8px #000,0 0 17px #a9c027}
#startScreen .swingali-drip:after{content:"";position:absolute;left:4%;right:4%;bottom:-8px;height:13px;background:radial-gradient(ellipse at 8% 0,#96aa20 0 35%,transparent 39%),radial-gradient(ellipse at 24% 0,#c4d743 0 24%,transparent 28%),radial-gradient(ellipse at 41% 0,#798a14 0 39%,transparent 43%),radial-gradient(ellipse at 61% 0,#bdcf38 0 27%,transparent 31%),radial-gradient(ellipse at 79% 0,#849718 0 42%,transparent 46%),radial-gradient(ellipse at 94% 0,#b3c72f 0 29%,transparent 33%);filter:drop-shadow(0 3px 2px #111700)}
#startScreen .deadly-words{color:#efc875;font-family:Georgia,serif;font-size:clamp(.76rem,1.8vw,.98rem);font-weight:800;letter-spacing:.2em;line-height:1.3;text-shadow:0 2px 4px #000,0 0 10px #7a2c14}
@media(max-width:650px){.corner-logo{width:66px;top:max(8px,env(safe-area-inset-top));left:max(8px,env(safe-area-inset-left))}.game-shell{padding-top:82px}.modal-screen{padding-top:88px}.masthead{padding-inline:8px}#startScreen .start-card{margin-top:28px}#startScreen .intro-preamble{gap:10px}#startScreen .deadly-words{letter-spacing:.12em}}

/* Score challenge action */
.challenge-action{grid-column:1/-1;background:linear-gradient(180deg,#9eaa26,#4b5810 52%,#282f0a);border-color:#b79855;color:#fff5d9;font-size:.9rem}.challenge-action:hover{background:linear-gradient(180deg,#bdca36,#637217 52%,#343d0d)}

/* Persistent ambience controls */
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.ambient-control{position:fixed;z-index:130;top:max(18px,env(safe-area-inset-top));right:max(18px,env(safe-area-inset-right));width:174px;padding:8px 10px 9px;border:5px ridge #755f38;outline:2px solid #768719;background:linear-gradient(180deg,rgba(53,46,38,.98),rgba(22,20,17,.99));box-shadow:0 8px 17px #000,0 0 0 3px #1d160d;color:#f1dfbd}.ambient-control button{display:block;width:100%;padding:4px;border:0;background:transparent;color:#e9d6ae;font:800 .68rem Arial,sans-serif;letter-spacing:.1em;cursor:pointer;text-shadow:0 2px 3px #000}.ambient-control label{display:block}.ambient-control input{display:block;width:100%;height:18px;margin:2px 0 0;accent-color:#9cad25;cursor:pointer}
@media(max-width:650px){.ambient-control{top:max(8px,env(safe-area-inset-top));right:max(8px,env(safe-area-inset-right));width:152px;padding:6px 8px;border-width:4px}.ambient-control button{font-size:.61rem}.game-shell{padding-top:88px}.modal-screen{padding-top:94px}}
.modal-screen{overflow-y:auto}

/* Desktop game-board fit: keep the full play surface and lower status rail visible. */
.corner-logo{width:clamp(104px,9.5vw,158px)}
@media(min-width:851px){
  .game-shell{width:min(1680px,100%)}
  .play-grid{grid-template-columns:minmax(310px,.68fr) minmax(620px,1.52fr);gap:clamp(16px,2.1vw,36px);align-items:stretch}
  .execution-stage{justify-items:start}
  .character{justify-self:start;margin-left:-10px;transform:translateY(-52px)}
  .verdict{left:0;width:100%}
  .puzzle-panel{align-self:center;width:100%}
}
@media(min-width:851px) and (min-height:720px){
  body{height:100svh;overflow:hidden}
  .game-shell{height:100svh;min-height:0;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;padding-top:10px;padding-bottom:10px}
  .masthead h1{font-size:clamp(2.8rem,4.7vw,4.6rem)}
  .tagline{margin:.35rem 0 .6rem}
  .score-strip{width:min(1040px,76%)}
  .play-grid{min-height:0;height:100%}
  .execution-stage{min-height:0;height:100%;padding-bottom:72px}
  .character{height:min(590px,calc(100% - 66px));width:auto;max-width:100%;transform:translate(-16px,-28px)}
  .floor-shadow{left:2%;bottom:14%;width:76%}
  .verdict{bottom:2px;min-height:54px}
  .puzzle-panel{max-height:100%;padding:clamp(16px,2.2vh,28px) clamp(22px,2.3vw,38px)}
  .puzzle{min-height:clamp(112px,17vh,160px);padding:clamp(15px,2.5vh,28px) 0}
  .keyboard{margin:clamp(12px,2vh,20px) 0}
  footer{margin:8px auto 4px;padding:10px 18px}
}

/* Successful rounds stay on the solved board; the report replaces only the zombie. */
.round-won .puzzle-panel{box-shadow:0 24px 80px #000,0 0 26px #aabb2740,inset 0 0 70px #77851d18}
.round-won .puzzle .letter{color:#fff2c9;border-color:#c2d44b;text-shadow:0 0 9px #b5c63566}
.execution-stage:has(#resultsScreen.survival-inline:not([hidden])) .character,.execution-stage:has(#resultsScreen.survival-inline:not([hidden])) .floor-shadow{opacity:0;visibility:hidden}
#resultsScreen.survival-inline{position:absolute;z-index:24;inset:10px 0 78px;display:grid;place-items:center;padding:0;background:transparent;backdrop-filter:none;overflow:visible}
#resultsScreen.survival-inline[hidden]{display:none}
#resultsScreen.survival-inline .result-card{width:min(96%,450px);max-height:100%;overflow:auto;padding:24px 24px 20px;border-width:8px;box-shadow:0 18px 55px #000,0 0 28px #aabc2930,inset 0 0 50px #77851d18}
#resultsScreen.survival-inline .result-card h2{font-size:clamp(2.3rem,4vw,3.4rem)}
#resultsScreen.survival-inline .result-saying{font-size:.98rem;line-height:1.4}
#resultsScreen.survival-inline .result-score{margin:13px auto;padding:10px}
#resultsScreen.survival-inline .result-score strong{font-size:1.8rem}
#resultsScreen.survival-inline .result-actions{margin-top:14px}
#resultsScreen.survival-inline .primary-action,#resultsScreen.survival-inline .secondary-action{padding:10px 12px;font-size:.7rem}
#resultsScreen.survival-inline .share-status{margin-bottom:0}
@media(max-width:650px){.corner-logo{width:82px}}

/* Game-show solve mode: known letters stay fixed; only missing boxes accept input. */
.solve-launch{width:100%;min-height:46px;padding:11px 14px;border:1px solid #7b351e;background:linear-gradient(180deg,#7f2b18,#59190f);color:#fff4dc;font:800 .76rem Arial,sans-serif;letter-spacing:.09em;cursor:pointer}
.solve-launch:hover:not(:disabled){background:linear-gradient(180deg,#a63b1e,#6f1d10)}
.solve-form .solve-tray{display:block;padding:13px 14px 14px;border:5px ridge #735f3b;outline:2px solid #788918;background:linear-gradient(180deg,rgba(50,43,36,.98),rgba(20,18,16,.99));box-shadow:0 8px 18px #000,inset 0 0 18px #95a52417}.solve-form .solve-tray[hidden]{display:none}
.solve-tray>p{margin:0 0 11px;color:#d9c8ad;font:700 .78rem Arial,sans-serif;letter-spacing:.04em;text-align:center}
.solve-slots{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 12px;max-height:150px;padding:4px;overflow-y:auto}
.solve-word{display:inline-flex;gap:3px;white-space:nowrap}.solve-cell{display:grid;place-items:center;width:25px;height:34px;color:#f8e8ca;font:800 1rem Arial,sans-serif;border-bottom:2px solid #9a886e}
.solve-fixed{color:#d8e653;border-color:#899a1d;text-shadow:0 0 7px #a9c027}.solve-punctuation{width:auto;border:0}.solve-missing{margin:0;padding:0;border:1px solid #887352;border-bottom:3px solid #c4ad7e;background:#0c0a08;color:#fff2d1;text-align:center;text-transform:uppercase;caret-color:#d8e653;outline:none}
.solve-missing:focus{border-color:#d8e653;box-shadow:0 0 0 2px #a9c02755,0 0 10px #a9c02755}.solve-missing:invalid:not(:placeholder-shown){border-color:#b83b24}
.solve-form .solve-actions{display:grid;grid-template-columns:1.2fr 1fr;gap:8px;margin-top:12px}.solve-actions button{min-height:40px;padding:8px 10px;border:1px solid #7b351e;background:#7c2514;color:#fff;font:800 .7rem Arial,sans-serif;letter-spacing:.07em;cursor:pointer}.solve-actions button:last-child{background:#27211c;border-color:#675541}
.puzzle-panel.solving .keyboard,.puzzle-panel.solving .hint-row,.puzzle-panel.solving .solve-launch,.puzzle-panel.solving .new-game{display:none}
@media(min-width:851px){.character{transform:translate(18px,-50px) scale(1.2);transform-origin:center bottom}}
@media(min-width:851px) and (min-height:720px){.character{transform:translate(24px,-28px) scale(1.2);transform-origin:center bottom}}
@media(max-width:520px){.solve-form .solve-slots{max-height:190px;gap:7px 10px;flex-direction:row}.solve-cell{width:23px;height:32px}.solve-form .solve-actions{grid-template-columns:1fr}}
