.puzzle-header,.puzzle-title,.puzzle-score,.puzzle-state{transition:opacity .25s}:is(#ui,#puzzle-ui):before{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 150px #39233500;transition:box-shadow .4s}:is(#ui,#puzzle-ui).cinematic:before{box-shadow:inset 0 0 150px #39233566}:is(#ui,#puzzle-ui):after{content:"";position:absolute;inset:0;pointer-events:none;background:#fff1c9;opacity:var(--impact-flash,0);mix-blend-mode:screen}.cinematic .puzzle-title,.cinematic .puzzle-score,.cinematic .puzzle-state{opacity:0}.cinematic .puzzle-header{opacity:.45}.cinematic .shot-dock{opacity:.18}.cinematic .puzzle-keybar{opacity:0}.cinema-title{position:absolute;left:50%;top:27%;transform:translate(-50%,-50%) scale(.86) rotate(-3deg);text-align:center;opacity:0;pointer-events:none;color:#fff0c9;text-shadow:2px 3px 0 #50394f,-1px -1px 0 #50394f,0 6px 24px #40273899;white-space:nowrap;transition:opacity .16s,transform .22s cubic-bezier(.16,1.7,.4,1)}.cinema-title.show{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(-3deg)}.cinema-title small{display:block;letter-spacing:5px;font-size:11px;color:#f4d49a;margin-bottom:10px}.cinema-title strong{font-size:clamp(36px,4.8vw,72px);font-weight:850;letter-spacing:-3px}.cinema-result{transition:opacity .25s,transform .25s}.cinema-result.waiting{opacity:0;pointer-events:none;transform:translate(-50%,-35%)}@media(prefers-reduced-motion:reduce){.cinema-title,.cinema-result{transition:none}}.cinematic :is(.chamber-info,.stats,.status-pill,.hint,.chapter-rail){opacity:0}.cinematic .topbar{opacity:.45}:is(#ui,#puzzle-ui) .cinema-toggle{font-size:10px;width:72px;padding:8px 4px;letter-spacing:.4px}:is(#ui,#puzzle-ui) .shot-dock{position:absolute;bottom:40px;left:50%;transform:translate(-50%);display:flex;gap:25px;align-items:center;padding:17px 23px;width:980px;max-width:calc(100% - 56px);color:#453b46;background:linear-gradient(120deg,#f4ead5f5,#eaddc2f5);border:1px solid #8f7a69;box-shadow:0 5px 24px #46354622,inset 0 0 0 4px #fff7e345;border-radius:8px;pointer-events:auto}:is(#ui,#puzzle-ui) .shot-dock label{display:block;font-size:10px;color:#604c47;letter-spacing:1px;font-weight:600}:is(#ui,#puzzle-ui) .shot-dock label span{font-weight:400;letter-spacing:0;color:#8a7863;margin-left:6px}:is(#ui,#puzzle-ui) .shot-dock button{color:#453b46;border:1px solid #97816e;background:#eee1c8;border-radius:5px;padding:10px 14px;box-shadow:0 2px #5e47501a}:is(#ui,#puzzle-ui) .shot-dock button:hover{background:#faf0da;border-color:#644d56}:is(#ui,#puzzle-ui) .shot-dock button:disabled{opacity:.45;cursor:default}:is(#ui,#puzzle-ui) .shot-dock .primary{background:#49776c;border-color:#375f59;color:#fff3dc}:is(#ui,#puzzle-ui) .shot-dock button.primary:hover{background:#3a665b;border-color:#375f59;color:#fff3dc}:is(#ui,#puzzle-ui) .shot-dock .hit-point{display:block;flex:0 0 134px;width:134px;text-align:center;border-right:1px solid #bda78a;padding-right:20px}:is(#ui,#puzzle-ui) .shot-dock #strike-pad{position:relative;display:block;grid-area:auto;border:1px solid #907f74;border-radius:50%;width:80px;height:80px;margin:7px auto 3px;background:radial-gradient(circle at 35% 28%,#fffaf0,#e8ddc6 70%,#c5b9ab);box-shadow:inset -4px -5px 8px #65545a20;touch-action:none;overflow:hidden;cursor:crosshair}:is(#ui,#puzzle-ui) .shot-dock #strike-pad:before,:is(#ui,#puzzle-ui) .shot-dock #strike-pad:after{content:"";position:absolute;background:#83748730;pointer-events:none}:is(#ui,#puzzle-ui) .shot-dock #strike-pad:before{width:1px;height:100%;inset:0 auto auto 50%}:is(#ui,#puzzle-ui) .shot-dock #strike-pad:after{height:1px;width:100%;inset:50% auto auto 0}:is(#ui,#puzzle-ui) .shot-dock .strike-top,:is(#ui,#puzzle-ui) .shot-dock .strike-bottom{position:absolute;left:0;width:100%;font-size:9px;color:#857064;pointer-events:none}:is(#ui,#puzzle-ui) .shot-dock .strike-top{top:5px;bottom:auto}:is(#ui,#puzzle-ui) .shot-dock .strike-bottom{bottom:5px;top:auto}:is(#ui,#puzzle-ui) .shot-dock .strike-dot{position:absolute;width:10px;height:10px;border-radius:50%;background:#705484;border:2px solid #fff3dc;transform:translate(-50%,-50%);box-shadow:0 1px 2px #0005;pointer-events:none}:is(#ui,#puzzle-ui) .shot-dock .strike-region{position:absolute;border:1px dashed #729487;background:#829c7729;border-radius:50%;box-shadow:none;pointer-events:none}:is(#ui,#puzzle-ui) .shot-dock #strike-value{display:block;font-size:9px;height:16px;min-height:0;white-space:nowrap;margin:0;color:#776859}:is(#ui,#puzzle-ui) .shot-dock .hit-point button{padding:3px 10px;font-size:10px;margin-left:5px}:is(#ui,#puzzle-ui) .shot-dock .spell-select{flex:1;min-width:0}:is(#ui,#puzzle-ui) .shot-dock .spell-options{display:flex;gap:8px;margin:13px 0 10px;overflow-x:auto;padding-bottom:4px;max-width:100%}:is(#ui,#puzzle-ui) .shot-dock .spell-options button{position:relative;display:flex;align-items:center;gap:7px;font-size:11px;padding:10px;background:#e6d8be;flex:0 0 auto;min-width:100px;text-align:left}:is(#ui,#puzzle-ui) .shot-dock .spell-options .spell-glyph{font-size:25px;color:#76618d}:is(#ui,#puzzle-ui) .shot-dock .spell-options .active{background:#f9f0d9;border-color:#6f6087;box-shadow:inset 0 -2px #796389}:is(#ui,#puzzle-ui) .shot-dock .spell-caption{display:block;font-size:9px;line-height:1.5;color:#776859;margin:0;max-height:40px;overflow-y:auto}:is(#ui,#puzzle-ui) .shot-dock .spell-options small{display:block;font-size:9px;color:#776859;margin-top:4px}:is(#ui,#puzzle-ui) .shot-dock .shot-sliders{width:200px;flex-shrink:0}:is(#ui,#puzzle-ui) .shot-dock .shot-sliders label{display:flex;justify-content:space-between;letter-spacing:.5px}:is(#ui,#puzzle-ui) .shot-dock .shot-sliders b{font-weight:500;color:#896331}:is(#ui,#puzzle-ui) .shot-dock input[type=range]{appearance:auto;width:100%;accent-color:#608478;height:18px;margin:9px 0 15px;cursor:pointer;background:transparent;border:0;box-shadow:none}:is(#ui,#puzzle-ui) .shot-dock input::-webkit-slider-thumb{appearance:auto;width:auto;height:auto;border:0;box-shadow:none;transform:none;background:initial}:is(#ui,#puzzle-ui) .shot-dock input:disabled{opacity:.4}:is(#ui,#puzzle-ui) .shot-dock .shot-actions{width:168px;flex-shrink:0}:is(#ui,#puzzle-ui) .shot-dock .cast{width:100%;font-size:16px;padding:15px 10px}:is(#ui,#puzzle-ui) .shot-dock .cast small{display:block;font-size:9px;color:#d9e6d2;margin-top:8px}:is(#ui,#puzzle-ui) .shot-dock .shot-actions>div{display:flex;gap:6px;margin-top:9px}:is(#ui,#puzzle-ui) .shot-dock .shot-actions>div button{font-size:10px;padding:7px 10px;flex:1;white-space:nowrap}:is(#ui,#puzzle-ui) .puzzle-keybar{position:absolute;bottom:14px;left:0;width:100%;text-align:center;font-size:10px;color:#4e4650;text-shadow:0 1px #e5d5c4}@media(max-width:1100px){:is(#ui,#puzzle-ui) .shot-dock{gap:17px;padding:13px 18px;width:920px}:is(#ui,#puzzle-ui) .shot-dock .shot-sliders{width:170px}:is(#ui,#puzzle-ui) .shot-dock .shot-actions{width:145px}:is(#ui,#puzzle-ui) .shot-dock .hit-point{flex-basis:120px;width:120px}}@media(max-height:760px){:is(#ui,#puzzle-ui) .shot-dock{bottom:30px;padding-top:10px;padding-bottom:10px}:is(#ui,#puzzle-ui) .shot-dock #strike-pad{height:64px;width:64px}:is(#ui,#puzzle-ui) .puzzle-keybar{bottom:9px}}@media(max-width:800px){:is(#ui,#puzzle-ui) .shot-dock{max-width:calc(100% - 20px);gap:10px;padding:12px}:is(#ui,#puzzle-ui) .shot-dock .hit-point{flex-basis:95px;width:95px;padding-right:10px}:is(#ui,#puzzle-ui) .shot-dock .shot-sliders{width:130px}:is(#ui,#puzzle-ui) .shot-dock .shot-actions{width:110px}:is(#ui,#puzzle-ui) .shot-dock .spell-caption{display:none}:is(#ui,#puzzle-ui) .puzzle-keybar{font-size:8px}}.mobile-tools,.mobile-hint,.touch-help{display:none}:root.mobile-layout :is(#ui,#puzzle-ui) .mobile-tools{display:flex;align-items:center;gap:5px;grid-column:2/4}:root.mobile-layout :is(#ui,#puzzle-ui) .mobile-tools span{font-size:10px;flex:1;text-align:center;white-space:nowrap}:root.mobile-layout :is(#ui,#puzzle-ui) .mobile-tools button{min-width:44px;padding:6px;font-size:13px}:root.mobile-layout :is(#ui,#puzzle-ui) .mobile-tools [data-mobile=camera]{font-size:11px;min-width:82px}:root.mobile-layout :is(#ui,#puzzle-ui) [data-mobile=camera][aria-pressed=true]{color:#fff8e4;background:#725688}:root.mobile-layout :is(#ui,#puzzle-ui) .mobile-hint{display:block;grid-column:1/-1;margin:0;text-align:center;font-size:11px;color:#594656}:root.mobile-layout :is(#ui,#puzzle-ui) .touch-help{display:block}:root.mobile-layout :is(#ui,#puzzle-ui) .desktop-help{display:none}:root.mobile-layout :is(#ui,#puzzle-ui) button,:root.mobile-layout :is(#ui,#puzzle-ui) a{min-height:44px;touch-action:manipulation}:root.mobile-layout :is(#ui,#puzzle-ui) .shot-dock{bottom:max(6px,env(safe-area-inset-bottom));left:max(6px,env(safe-area-inset-left));right:max(6px,env(safe-area-inset-right));transform:none;width:auto;max-width:none;display:grid;grid-template-columns:86px minmax(0,1fr) 102px;gap:5px 8px;padding:8px;z-index:5}:root.mobile-layout :is(#ui,#puzzle-ui) .shot-dock .spell-select{grid-column:1/-1;grid-row:1;min-width:0}:root.mobile-layout :is(#ui,#puzzle-ui) .shot-dock .spell-select>label,:root.mobile-layout :is(#ui,#puzzle-ui) .spell-caption,:root.mobile-layout :is(#ui,#puzzle-ui) .shot-dock kbd,:root.mobile-layout :is(#ui,#puzzle-ui) .cast small,:root.mobile-layout :is(#ui,#puzzle-ui) .desktop-key{display:none}:root.mobile-layout :is(#ui,#puzzle-ui) .shot-dock .spell-options{margin:0;padding:0 0 3px;gap:6px;touch-action:pan-x;overscroll-behavior-x:contain}:root.mobile-layout :is(#ui,#puzzle-ui) .shot-dock .spell-options button{padding:5px 9px;min-width:98px;min-height:48px;font-size:12px}:root.mobile-layout :is(#ui,#puzzle-ui) .shot-dock .spell-options .spell-glyph{font-size:21px}:root.mobile-layout :is(#ui,#puzzle-ui) .shot-dock .hit-point{grid-row:2/4;grid-column:1;width:auto;display:block;padding:0 5px 0 0;margin:0;border-right:1px solid #bda78a}:root.mobile-layout :is(#ui,#puzzle-ui) .shot-dock .hit-point label{font-size:11px;letter-spacing:0}:root.mobile-layout :is(#ui,#puzzle-ui) .hit-point label span{display:none}:root.mobile-layout :is(#ui,#puzzle-ui) .shot-dock #strike-pad{width:76px;height:76px;margin:5px auto}:root.mobile-layout :is(#ui,#puzzle-ui) .shot-dock .hit-point button{min-height:44px;min-width:64px;font-size:12px;padding:5px;margin:0}:root.mobile-layout :is(#ui,#puzzle-ui) .shot-dock #strike-value{font-size:9px;white-space:normal;line-height:13px;height:26px}:root.mobile-layout :is(#ui,#puzzle-ui) .shot-dock .shot-sliders{grid-column:2;grid-row:2;width:auto;min-width:0}:root.mobile-layout :is(#ui,#puzzle-ui) .shot-dock .shot-sliders label{font-size:11px;letter-spacing:0;white-space:nowrap}:root.mobile-layout :is(#ui,#puzzle-ui) .shot-dock input[type=range]{height:40px;min-width:0;margin:0 0 3px;touch-action:pan-y}:root.mobile-layout :is(#ui,#puzzle-ui) .shot-dock .shot-actions{grid-column:3;grid-row:2;width:auto;align-self:center}:root.mobile-layout :is(#ui,#puzzle-ui) .shot-dock .cast{font-size:15px;min-height:60px;padding:10px 5px}:root.mobile-layout :is(#ui,#puzzle-ui) .shot-dock .shot-actions>div{margin-top:6px;gap:5px}:root.mobile-layout :is(#ui,#puzzle-ui) .shot-dock .shot-actions>div button{min-width:44px;font-size:11px;padding:4px;white-space:normal}:root.mobile-layout :is(#ui,#puzzle-ui) .puzzle-keybar,:root.mobile-layout #ui .chapter-rail,:root.mobile-layout #ui .hint,:root.mobile-layout #ui .chapter-label,:root.mobile-layout .puzzle-tabs{display:none}:root.mobile-layout :is(#ui,#puzzle-ui) :is(.topbar,.puzzle-header){top:max(6px,env(safe-area-inset-top));left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));height:46px;padding:0;gap:6px;display:flex;align-items:center;justify-content:space-between}:root.mobile-layout :is(#ui,#puzzle-ui) .wordmark{padding:5px 7px;gap:4px;min-width:58px;font-size:18px;letter-spacing:.5px}:root.mobile-layout :is(#ui,#puzzle-ui) .wordmark span{font-size:10px}:root.mobile-layout :is(#ui,#puzzle-ui) :is(.top-right,.header-actions){gap:4px;display:flex}:root.mobile-layout :is(#ui,#puzzle-ui) :is(.top-right,.header-actions) button{width:44px;height:44px;padding:5px;min-width:44px}:root.mobile-layout :is(#ui,#puzzle-ui) :is(.top-right,.header-actions) .cinema-toggle{display:none}:root.mobile-layout :is(#ui,#puzzle-ui) .puzzle-navigation{flex:1;justify-content:center;gap:0}:root.mobile-layout :is(#ui,#puzzle-ui) .puzzle-picker{font-size:11px;padding:5px;white-space:normal}:root.mobile-layout :is(#ui,#puzzle-ui) :is(.chamber-info,.puzzle-title){top:calc(58px + env(safe-area-inset-top));left:8px;max-width:none;width:calc(100% - 124px);padding:8px 10px;background:#f4ead5e8;border-radius:6px}:root.mobile-layout :is(#ui,#puzzle-ui) :is(.chamber-info,.puzzle-title) h1{font-size:16px;margin:3px 0;letter-spacing:0}:root.mobile-layout :is(#ui,#puzzle-ui) :is(.chamber-info,.puzzle-title) .eyebrow{font-size:9px;letter-spacing:0}:root.mobile-layout :is(#ui,#puzzle-ui) .puzzle-title>p,:root.mobile-layout :is(#ui,#puzzle-ui) .objective small,:root.mobile-layout :is(#ui,#puzzle-ui) .puzzle-title .crown{display:none}:root.mobile-layout :is(#ui,#puzzle-ui) .objective{font-size:11px;line-height:1.4;margin:3px 0 0;padding:0;border:0;max-width:none}:root.mobile-layout :is(#ui,#puzzle-ui) :is(.stats,.puzzle-score){top:calc(58px + env(safe-area-inset-top));right:8px;left:auto;padding:8px;gap:10px;max-width:108px;display:flex}:root.mobile-layout :is(#ui,#puzzle-ui) :is(.stats,.puzzle-score)>div:last-child{display:none}:root.mobile-layout :is(#ui,#puzzle-ui) :is(.stats,.puzzle-score) :is(strong,.stat strong){font-size:20px;margin:0}:root.mobile-layout :is(#ui,#puzzle-ui) :is(.stats,.puzzle-score) :is(label,span){font-size:9px;margin-top:3px;letter-spacing:0;white-space:nowrap}:root.mobile-layout :is(#ui,#puzzle-ui) .puzzle-score div{min-width:30px}:root.mobile-layout :is(#ui,#puzzle-ui) :is(.status-pill,.puzzle-state){display:none}:root.mobile-layout #ui .lesson-launch{font-size:11px;padding:5px 8px;margin-top:5px;position:static;width:auto}:root.mobile-layout #ui .run-badge{font-size:10px;line-height:1.4}:root.mobile-layout #ui .training-lives{position:static;font-size:10px;margin:3px 0}:root.mobile-play #world{top:var(--mobile-world-top,150px);bottom:var(--mobile-world-bottom,280px);left:0;right:0}:root.mobile-layout :is(#ui,#puzzle-ui) :is(.modal,.help-card,.puzzle-catalog){max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;padding:20px;min-width:0;width:min(500px,94vw)}:root.mobile-layout :is(#ui,#puzzle-ui) :is(.overlay,.help-overlay){z-index:20;padding:12px}:root.mobile-layout :is(#ui,#puzzle-ui) .puzzle-result{z-index:10;top:36%;min-width:0;width:90%;padding:20px}:root.mobile-layout #ui .title-content{top:92px;left:20px;right:20px;width:auto;max-width:none;max-height:calc(100dvh - 120px);overflow-y:auto;overflow-x:hidden;pointer-events:auto}:root.mobile-layout #ui .title-content h1{font-size:38px;margin:12px 0}:root.mobile-layout #ui .title-content .intro{font-size:12px;max-width:320px;margin-bottom:16px}:root.mobile-layout #ui :is(.edition,.menu-note){display:none}@media(max-width:370px){:root.mobile-layout :is(#ui,#puzzle-ui) .mobile-tools span{display:none}:root.mobile-layout :is(#ui,#puzzle-ui) .wordmark{font-size:0;gap:0;min-width:58px}:root.mobile-layout :is(#ui,#puzzle-ui) .wordmark span{font-size:9px}}@media(orientation:portrait)and (max-height:700px){:root.mobile-layout :is(#ui,#puzzle-ui) :is(.chamber-info,.puzzle-title) :is(.eyebrow,.run-badge,.lesson-launch,.training-lives){display:none}:root.mobile-layout :is(#ui,#puzzle-ui) :is(.chamber-info,.puzzle-title){padding:6px 8px}}@media(orientation:landscape)and (max-height:560px){:root.mobile-layout :is(#ui,#puzzle-ui) .shot-dock{top:calc(58px + env(safe-area-inset-top));bottom:max(5px,env(safe-area-inset-bottom));left:auto;right:max(6px,env(safe-area-inset-right));width:282px;grid-template-columns:80px minmax(0,1fr);align-content:start;overflow-y:auto;gap:4px 7px}:root.mobile-layout :is(#ui,#puzzle-ui) .shot-dock .spell-select{grid-column:1/3}:root.mobile-layout :is(#ui,#puzzle-ui) .shot-dock .hit-point{grid-row:2/4;grid-column:1}:root.mobile-layout :is(#ui,#puzzle-ui) .shot-dock .shot-sliders{grid-row:2;grid-column:2}:root.mobile-layout :is(#ui,#puzzle-ui) .shot-dock .shot-actions{grid-row:4;grid-column:1/3;display:flex;align-items:center;gap:5px}:root.mobile-layout :is(#ui,#puzzle-ui) .shot-dock .cast{min-height:44px;font-size:13px}:root.mobile-layout :is(#ui,#puzzle-ui) .shot-dock .shot-actions>div{margin:0}:root.mobile-layout :is(#ui,#puzzle-ui) .shot-dock .shot-actions>div button{min-width:44px}:root.mobile-layout :is(#ui,#puzzle-ui) .mobile-tools{grid-column:1/3;grid-row:5}:root.mobile-layout :is(#ui,#puzzle-ui) .mobile-hint{display:none}:root.mobile-layout :is(#ui,#puzzle-ui) .shot-dock #strike-pad{width:64px;height:64px}:root.mobile-layout :is(#ui,#puzzle-ui) :is(.chamber-info,.puzzle-title){width:calc(100% - 310px);padding:4px 8px;top:calc(54px + env(safe-area-inset-top))}:root.mobile-layout :is(#ui,#puzzle-ui) :is(.chamber-info,.puzzle-title) :is(.eyebrow,.objective,.lesson-launch,.run-badge,.training-lives){display:none}:root.mobile-layout :is(#ui,#puzzle-ui) :is(.stats,.puzzle-score){display:none}:root.mobile-play #world{top:calc(88px + env(safe-area-inset-top));bottom:env(safe-area-inset-bottom);right:calc(298px + env(safe-area-inset-right));left:env(safe-area-inset-left)}:root.mobile-layout #ui .title-content{top:58px;max-height:calc(100dvh - 64px)}:root.mobile-layout #ui .title-content h1{font-size:28px}:root.mobile-layout .puzzle-result{max-width:420px}}
