:root{color-scheme:dark;--ink:#f6e4c9;--muted:#b9ab98;--orange:#f5a23b;--panel:#15151d;--wood:linear-gradient(3deg,#9c572b,#d39850 38%,#e3ad65 46%,#b7773c 51%,#c98e48 90%,#e0a461);font:15px/1.45 system-ui,-apple-system,"Segoe UI",sans-serif}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 30% 0,#222b47,#10121d 68%);color:var(--ink);min-height:100vh}button,input,select{font:inherit}button{display:inline-flex;align-items:center;justify-content:center;gap:10px;cursor:pointer;color:var(--ink);border:1px solid #725239;border-radius:6px;padding:10px 15px;font-weight:700;transition:filter .15s,transform .15s;background:#23212a}button:hover:not(:disabled){filter:brightness(1.2);transform:translateY(-1px)}button:active:not(:disabled){transform:translateY(1px)}button:focus-visible,select:focus-visible,input:focus-visible,canvas:focus-visible{outline:3px solid #ffcf75;outline-offset:3px}button:disabled{cursor:default}button i,.section-title i{width:26px;height:26px;flex:0 0 auto}i{display:inline-flex;width:26px;height:26px;align-items:center;justify-content:center;font-style:normal}svg.icon{display:block;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 2px 2px #0008)}.primary{background:var(--wood);color:#24170d;border-color:#f4c078;box-shadow:inset 0 0 0 2px #5c301644,0 3px 0 #4d2a1b;text-shadow:0 1px #ffe0a1;font-size:17px}.dark{background:linear-gradient(#25242d,#121219);box-shadow:inset 0 0 0 1px #ffffff09}.wide{width:100%;margin-top:10px}.square{width:40px;height:40px;padding:8px;flex:0 0 auto}.muted{color:var(--muted);font-size:12px}.wood-frame{border:5px solid #704328;border-radius:10px;box-shadow:inset 0 0 0 2px #dca36288,0 0 0 2px #1a1110,0 18px 70px #0005;position:relative;background:var(--panel)}.wood-frame:after{content:"";position:absolute;inset:-3px;border:1px solid #d19a5259;border-radius:5px;pointer-events:none}.wood-label{position:relative;display:flex;align-items:center;justify-content:center;gap:10px;margin:0;padding:7px 30px;color:#241509;background:var(--wood);font-family:Georgia,serif;font-size:28px;text-shadow:0 1px #f7ce8c;box-shadow:0 4px 7px #0008;border:2px solid #57301d;border-radius:4px}.wood-label:before,.wood-label:after{content:"";position:absolute;width:6px;height:6px;border-radius:50%;background:#30211a;box-shadow:0 1px #f3c284;top:50%}.wood-label:before{left:9px}.wood-label:after{right:9px}[hidden]{display:none!important}
header{min-height:86px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 24px;background:linear-gradient(90deg,#1d2030,#16151d);border-bottom:1px solid #765339;box-shadow:0 2px 20px #0004}.brand{display:flex;gap:12px;align-items:center}.brand>i{width:44px;height:44px}.brand h1{font-family:Georgia,serif;letter-spacing:1.1px;font-size:21px;margin:0;color:#ffb95a}.brand span{color:var(--muted);font-size:12px}.hud-stats{display:flex;gap:9px;flex-wrap:wrap}.stat{display:flex;align-items:center;gap:7px;padding:7px 13px;background:#0e1018;border:1px solid #594634;border-radius:6px;box-shadow:inset 0 1px 5px #0007}.stat i{width:32px;height:32px}.stat b{font-size:20px;color:#ffe4b1}.stat>span{font-size:12px;color:var(--muted)}main{padding:18px;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;max-width:1920px;margin:auto}.world-panel{overflow:hidden;min-height:640px;height:calc(100vh - 124px)}#game{display:block;width:100%;height:100%;touch-action:none;cursor:crosshair}#game.orbiting{cursor:grabbing}.world-badge{position:absolute;top:15px;left:16px;display:flex;align-items:center;gap:8px;padding:7px 13px;background:#10131ccf;border:1px solid #ad875455;border-radius:6px;font-family:Georgia,serif;font-size:17px;pointer-events:none}.world-actions{position:absolute;top:14px;right:14px;display:flex;gap:8px}#controls{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);display:flex;gap:16px;white-space:nowrap;padding:9px 14px;border:1px solid #98703d55;background:#12121ddd;border-radius:6px;font-size:11px;color:#d9c8ae}kbd{display:inline-block;background:#f4eadb;color:#211c1a;border:1px solid #fff;border-radius:4px;padding:2px 6px;font:700 12px system-ui;box-shadow:0 2px 0 #9d8e79;margin-right:4px}.interaction{position:absolute;bottom:80px;left:50%;transform:translateX(-50%);font-size:20px;box-shadow:0 5px 25px #0009;border-color:#e7b46b;padding:9px 18px}.interaction:hover:not(:disabled){transform:translateX(-50%) translateY(-1px)}.interaction kbd{font-size:20px}.loading{position:absolute;top:40%;width:100%;text-align:center;font-family:Georgia,serif;font-size:24px}aside{padding:18px;align-self:start;background:linear-gradient(135deg,#201c21,#12131b)!important}aside section+section{border-top:1px solid #75533366;margin-top:18px;padding-top:18px}.section-title{font:700 20px Georgia,serif;display:flex;align-items:center;gap:9px;color:#ffd38d;margin:0 0 12px}#minimap{width:100%;height:auto;border:2px solid #795335;border-radius:5px;background:#182427}.map-legend{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted);margin:7px 0}.map-legend i{width:17px;height:17px}.map-legend i:nth-of-type(2){margin-left:12px}label{display:block;font-size:12px;color:#cfbea6;margin-top:12px}input,select{width:100%;padding:10px;background:#0f111a;color:#fff0dc;border:1px solid #775135;border-radius:5px;margin-top:5px}label.check{display:flex;align-items:center;gap:9px}label.check input{width:auto;margin:0}#leaderboard{padding-left:23px;margin:0;color:#f6c477;font-size:13px}#leaderboard li{padding:3px 0}#saveStatus{font-size:12px;color:#edc886;min-height:0}#saveStatus:empty{display:none}.floating{position:absolute;right:16px;top:68px;width:300px;z-index:3;padding:0 12px 14px}.floating .wood-label{font-size:21px;margin:-9px 25px 16px -3px;padding:4px 18px}.panel-close{position:absolute;right:8px;top:8px;background:linear-gradient(#b83427,#6e1d1c);border:2px solid #d16b42;box-shadow:0 2px 4px #0006;color:#ffe1bc;z-index:5}.panel-close i{width:23px;height:23px}.inventory-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.inventory-grid>div{border:1px solid #655846;border-radius:4px;background:#0b1017;position:relative;display:flex;flex-direction:column;align-items:center;padding:12px 5px 9px;gap:4px}.inventory-grid i{width:45px;height:45px}.inventory-grid span{font-size:10px;color:#c9bba4}.inventory-grid b{font-size:16px;color:#ffe0a0}
.modal{position:fixed;inset:0;background:#060911d9;z-index:20;display:grid;place-items:center;padding:35px 20px;backdrop-filter:blur(6px)}.puzzle-panel{width:min(1040px,100%);max-height:calc(100dvh - 70px);padding:24px 18px 18px;background:linear-gradient(120deg,#25202a,#101118);overflow:visible}.puzzle-panel>.wood-label{position:absolute;left:50%;top:-29px;transform:translateX(-50%);z-index:2;min-width:240px;white-space:nowrap}.puzzle-panel>.panel-close{right:8px;top:7px}.puzzle-layout{display:grid;grid-template-columns:43% 57%;max-height:calc(100dvh - 120px);overflow:auto;border:2px solid #563825;border-radius:4px}.gallows-art{position:relative;min-height:540px;overflow:hidden;background:radial-gradient(ellipse at 20% 25%,#41597d,#121c33 55%,#060c18);border-right:3px solid #8a5d35}.gallows-art canvas{position:absolute;inset:0;width:100%;height:100%;display:block;min-height:0;touch-action:none}.art-caption{position:absolute;bottom:18px;width:100%;text-align:center;font:11px Georgia,serif;letter-spacing:2px;color:#dbc596;text-shadow:0 2px 4px #000;pointer-events:none}.model-rotate{position:absolute;top:10px;left:10px;font-size:11px;padding:5px 8px;background:#101723bb;font-weight:500}.model-rotate i{width:18px;height:18px}.puzzle-content{padding:24px 24px 16px;background:radial-gradient(ellipse at 40% 0,#25212a,#101117 75%)}.hearts{display:flex;gap:8px;margin-bottom:18px}.hearts i{width:28px;height:28px}.hearts .lost{filter:grayscale(1);opacity:.25}.hint-box{border:1px solid #6b513b;border-radius:5px;background:#080b11a8;padding:16px;box-shadow:inset 0 0 20px #0006}.eyebrow{font-size:12px;color:#ceae7c;letter-spacing:1.2px;text-transform:uppercase}.hint-box p{margin:3px 0 18px;font-size:17px;font-weight:500}#word{display:flex;gap:7px;flex-wrap:wrap;justify-content:center;min-height:45px;align-items:center}#word span{display:inline-flex;justify-content:center;min-width:23px;font-size:29px;font-weight:800;border-bottom:3px solid #ccbd9d;color:#fff7df;line-height:1.2;padding-bottom:3px}#word span.revealed{color:#ffce7d;border-color:#dfb365}.keyboard-label{font-size:13px;margin:18px 0 8px;color:#d8c9b2}#letters{display:grid;grid-template-columns:repeat(9,1fr);gap:6px}#letters button{padding:7px 2px;border:1px solid #77717a;background:linear-gradient(#57515a,#35333e);font-size:17px;border-radius:4px;min-height:39px;box-shadow:0 3px 0 #16141c;color:#faf4ed}#letters button.hit{background:linear-gradient(#68b76d,#26743c);border-color:#95c675;color:#fff}#letters button.miss{background:linear-gradient(#c94e3a,#822b2b);border-color:#ec8c5f;color:#ffe9cd}#letters button:disabled:not(.hit):not(.miss){opacity:.3}.wrong-row{display:flex;gap:9px;align-items:center;margin-top:20px;color:#e8cfac;font-size:14px}.wrong-row i{width:22px;height:22px}.keyboard-hint{color:#958a7c;font-size:11px;margin:9px 0 12px}#outcome{border:1px solid #a57835;background:radial-gradient(ellipse at 50% 15%,#6d4623,#231e1b);border-radius:7px;text-align:center;padding:10px;margin:13px 0}#outcome.loss{border-color:#b24a33;background:radial-gradient(ellipse at 50% 15%,#6a2b29,#251c21)}.outcome-art{display:flex;justify-content:center;align-items:center;height:70px}.outcome-art i{width:65px;height:65px;filter:drop-shadow(0 0 14px #ffb13e55)}.outcome-art i:nth-child(2){transform:scale(1.2)}#outcome h3{font:700 25px Georgia,serif;margin:5px;color:#ffd470}#outcome.loss h3{color:#ff9f84}#outcome p{margin:3px 0;font-size:14px;color:#f8e1b9}
.gate{position:fixed;inset:0;z-index:50;display:grid;place-items:center;overflow:auto;padding:35px 16px;background:radial-gradient(ellipse at 22% 20%,#36548488,transparent 40%),radial-gradient(ellipse at 83% 90%,#9d462030,transparent 40%),linear-gradient(#11182d,#090d1c)}.gate:after{content:"";position:absolute;bottom:0;left:0;right:0;height:22%;background:repeating-linear-gradient(90deg,transparent 0 29px,#060a16 29px 34px),linear-gradient(transparent 50%,#080b14 52%);opacity:.6;pointer-events:none}.gate-moon{position:fixed;left:calc(50% - 360px);top:8vh;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle at 35% 40%,#b5d0f4,#6a98c4);box-shadow:0 0 60px #82b6f459,inset 18px -12px 26px #dceaff;opacity:.5}.gate-card{width:min(460px,100%);padding:32px 36px 26px;text-align:center;background:radial-gradient(ellipse at 30% 0,#353247,#171722 70%);z-index:1}.brand-small{font:700 30px Georgia,serif;letter-spacing:3px;color:#eef1ed;text-shadow:0 2px 5px #000}.linkedin-mark{display:inline-flex;background:#11639a;width:30px;height:30px;align-items:center;justify-content:center;font:bold 24px Arial;letter-spacing:-2px;border-radius:4px;text-shadow:none}.halloween-title{font:900 51px Georgia,serif;letter-spacing:-2px;color:#ff9c31;text-shadow:0 3px 0 #9e3b1b,0 6px 8px #000;margin:0}.brand-subtitle{font-weight:700;letter-spacing:5px;font-size:19px;margin:5px 0 25px}.language-panel{border:1px solid #7c5734;border-radius:6px;background:#0c0d15bb;padding:14px 10px 10px;margin-bottom:19px}.language-panel h2{font-size:11px;font-weight:500;margin:0 0 14px}.languages{display:flex;justify-content:center;gap:11px}.languages button{display:flex;flex-direction:column;padding:10px 12px;border:1px solid transparent;background:transparent;gap:6px;font-size:16px;min-width:87px}.languages button[aria-pressed=true]{background:linear-gradient(#ffe7ba,#dda96a);border:1px solid #ffe2a1;color:#21170d;box-shadow:0 0 15px #ffc06944}.languages i{width:51px;height:36px}.languages svg{border-radius:4px;overflow:hidden}.gate .wide{font-size:18px}.gate .wide i:first-child{width:30px;height:30px}.gate .primary i:last-child{margin-left:auto;width:20px}#gateHelp{font-size:13px;color:#d4c7b5}.gate-footer{font-size:11px;color:#af9c85;margin:21px 0 0}#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);z-index:90;background:#30261d;border:1px solid #c99450;border-radius:6px;padding:12px 22px;box-shadow:0 5px 25px #0008}#touchControls{display:none;position:absolute;bottom:65px;left:12px;text-align:center}#touchControls button{width:36px;height:36px;padding:3px;background:#141724c7;margin:2px;touch-action:none}
@media(max-width:1050px){main{grid-template-columns:minmax(0,1fr) 250px;gap:12px;padding:12px}header{padding:12px 16px}.brand h1{font-size:17px}.stat{padding:5px 9px}.stat>span{display:none}.world-panel{min-height:560px}.puzzle-content{padding:22px 18px 14px}.gallows-art{min-height:500px}}
@media(max-width:760px){header{flex-wrap:wrap;gap:9px;padding:10px 12px}.brand{flex:1}.brand>i{width:35px;height:35px}.brand h1{font-size:17px}.hud-stats{order:3;width:100%}.stat{flex:1;justify-content:center}.stat>span{display:inline}.stat b{font-size:16px}.stat i{width:24px;height:24px}main{grid-template-columns:1fr;padding:10px}.world-panel{height:66vh;min-height:430px}aside{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:14px}aside section+section{margin:0;padding:0;border:0}aside>#reset{grid-column:1/-1}#settings{grid-column:1/-1}.world-badge{font-size:13px;max-width:65%;left:9px;top:10px}.world-badge i{width:20px;height:20px}#controls{gap:8px;font-size:10px;padding:7px;bottom:8px}#controls kbd{font-size:10px}.world-actions{right:8px;top:9px;gap:5px}.modal{padding:27px 9px}.puzzle-panel{padding:21px 6px 6px;max-height:calc(100dvh - 52px)}.puzzle-panel>.wood-label{font-size:24px;top:-24px;min-width:190px}.puzzle-layout{grid-template-columns:37% 63%;max-height:calc(100dvh - 90px)}.gallows-art{min-height:430px}.puzzle-content{padding:18px 12px 10px}.hint-box{padding:11px}.hint-box p{font-size:14px}.hearts{gap:4px;margin-bottom:12px}.hearts i{width:23px;height:23px}.model-rotate span{display:none}.art-caption{font-size:9px;letter-spacing:1px;padding:0 8px}#letters{gap:4px}#letters button{min-height:34px;font-size:14px}#word{gap:5px}#word span{font-size:24px;min-width:18px}}
@media(max-width:480px){.puzzle-layout{display:block}.gallows-art{height:210px;min-height:0;border-right:0;border-bottom:2px solid #8a5d35}.gallows-art canvas{min-height:0;height:210px}.art-caption{bottom:8px}.puzzle-content{padding:14px}#letters{grid-template-columns:repeat(10,1fr)}.keyboard-hint{margin:5px 0}.hearts{float:right;gap:3px;margin:0 0 8px}.hearts i{width:20px;height:20px}.hint-box{clear:both}.hint-box p{margin-bottom:12px}.wrong-row{margin-top:14px}.gate-card{padding:26px 18px 20px}.halloween-title{font-size:43px}.brand-small{font-size:25px}.languages{gap:5px}.languages button{min-width:80px}.stat>span{font-size:10px}.world-badge{font-size:11px}.floating{right:6px;width:270px}aside{grid-template-columns:1fr 1fr;gap:12px}.section-title{font-size:17px}.section-title i{width:22px;height:22px}#controls>span:first-child{display:none}}
@media(pointer:coarse){#touchControls{display:block}.interaction{bottom:58px;left:auto;right:14px;transform:none}.interaction:hover:not(:disabled){transform:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important}}

/* Completion replaces the guessing screen, keeping the result and action in view. */
.puzzle-job{font:700 18px Georgia,serif!important;color:#ffc979!important;margin:0 0 12px!important;padding-bottom:10px;border-bottom:1px solid #8b644944}
.puzzle-panel.is-finished .puzzle-layout{height:min(540px,calc(100dvh - 148px));min-height:0;overflow:hidden}
.is-finished .gallows-art{min-height:0}
.is-finished .puzzle-content{display:flex;flex-direction:column;justify-content:center;min-height:0;padding:20px}
.is-finished .puzzle-content>:not(#outcome):not(#close){display:none}
.is-finished #outcome{display:flex;flex-direction:column;justify-content:center;align-items:center;flex:1;min-height:0;margin:0;padding:18px;overflow:hidden}
.is-finished .outcome-art{height:76px;flex-shrink:0;margin:0 0 10px}
.is-finished .outcome-art i{width:66px;height:66px}
.is-finished #outcomeTitle{font-size:36px;margin:4px 0 8px}
.is-finished #outcomeJob{color:#e4c9a5;font:700 16px Georgia,serif;max-width:100%;overflow-wrap:anywhere}
.is-finished #outcome .answer-label{font-size:10px;letter-spacing:1.3px;text-transform:uppercase;color:#c5ab8b;margin:18px 0 3px}
.is-finished #outcomeWord{font-size:clamp(20px,2.7vw,32px);line-height:1.25;font-weight:800;color:#ffe0a3;max-width:100%;overflow-wrap:anywhere;text-align:center}
.is-finished #outcomeText{font-size:15px;line-height:1.45;margin:14px 0 0;max-width:100%}
.is-finished #close{flex-shrink:0;margin-top:12px;min-height:46px}
.grave-legend{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0 0}
.grave-legend>span{display:flex;align-items:center;gap:5px;font-size:10px;border:1px solid #8a684755;padding:4px 6px;border-radius:4px}
.grave-legend i{width:15px;height:15px}
.grave-legend .visited{color:#9fcfee;background:#21486655}
.grave-legend .won{color:#b3e5a1;background:#28553755}
.grave-legend .trick{color:#ffc28c;background:#74432355}
@media(max-width:760px){.is-finished .puzzle-content{padding:13px}.is-finished #outcome{padding:13px}.is-finished #outcomeTitle{font-size:29px}.is-finished #outcomeJob{font-size:14px}.is-finished #outcomeText{font-size:13px}.is-finished .outcome-art{height:60px;margin-bottom:5px}.is-finished .outcome-art i{width:54px;height:54px}}
@media(max-width:480px){.is-finished .puzzle-layout{display:block;height:min(470px,calc(100dvh - 116px))}.is-finished .gallows-art{display:none}.is-finished .puzzle-content{height:100%;padding:12px}.is-finished #outcomeWord{font-size:26px}.is-finished #outcomeTitle{font-size:31px}.is-finished #outcome .answer-label{margin-top:13px}}
@media(max-height:560px){.puzzle-panel.is-finished .puzzle-layout{height:calc(100dvh - 116px)}.is-finished .puzzle-content{padding:9px}.is-finished #outcome{padding:9px}.is-finished .outcome-art{height:35px;margin:0 0 3px}.is-finished .outcome-art i{width:33px;height:33px}.is-finished #outcomeTitle{font-size:24px;margin:1px 0 4px}.is-finished #outcomeJob{font-size:12px}.is-finished #outcomeWord{font-size:22px}.is-finished #outcome .answer-label{margin:7px 0 2px;font-size:9px}.is-finished #outcomeText{font-size:12px;margin-top:7px}.is-finished #close{min-height:38px;padding:7px;margin-top:8px}}
.header-tools{display:flex;align-items:center;gap:8px}
.gate .gate-sound{font-size:12px;padding:6px 13px;margin-top:14px}
.gate-sound i{width:20px;height:20px}
.audio-heading{font:700 17px Georgia,serif;color:#f6ce91;margin:19px 0 0;padding-top:14px;border-top:1px solid #75533366}
.volume-label{display:grid;grid-template-columns:1fr auto;gap:7px}
.volume-label input[type=range]{grid-column:1/-1;accent-color:#eda94b;padding:0;margin:0;height:20px;cursor:pointer;border:0}
.volume-label output{color:#f5cf90;font-variant-numeric:tabular-nums}
#musicStatus:empty{display:none}
#celebration{position:fixed;inset:0;width:100vw;height:100vh;z-index:80;pointer-events:none;display:block}
.celebration-glow{outline:3px solid #ffe09b;box-shadow:0 0 35px #f5ae5f99!important}
.puzzle-audio{position:absolute;right:56px;top:8px;z-index:5}
@media(max-width:480px){.puzzle-audio{left:10px;right:auto;width:32px;height:32px;padding:6px}.model-rotate{left:50px}}
