.laser-barrier{position:relative;margin:0 0 30px;color:#cd7568}
.laser-topline{display:flex;justify-content:space-between;gap:18px;font:9px/1.7 var(--mono);letter-spacing:1px}
.laser-topline>span:first-child{color:#a07970}
.laser-hint{margin:13px 0 9px;color:#d78274;font:11px/1.7 var(--mono);letter-spacing:.2px;text-shadow:0 0 8px #d65c4830}
.laser-rails{position:relative;height:52px;margin:0 5px;--laser-hit:50%;isolation:isolate}
.laser-emitter{position:absolute;top:10px;width:9px;height:32px;z-index:2;border:1px solid #6b6557;background:linear-gradient(90deg,#2a2c26,#555547,#20231e);box-shadow:0 2px 3px #0009}
.laser-emitter:after{content:'';position:absolute;top:7px;bottom:7px;width:3px;background:#ed6b51;box-shadow:0 0 8px #ee4237}
.laser-emitter--left{left:-5px}.laser-emitter--right{right:-5px;transform:scaleX(-1)}
.laser-emitter--left:after,.laser-emitter--right:after{right:-1px}
.laser-beam{position:absolute;left:4px;right:4px;top:17px;height:2px;background:#ffb1a2;box-shadow:0 0 4px #ff4c40,0 0 12px 2px #d93329a6,0 0 26px 3px #c3241d30;animation:laser-energy 2.1s ease-in-out infinite;transform-origin:left}
.laser-beam--second{top:33px;animation-duration:2.7s;animation-delay:-1.1s}
.laser-beam:before{content:'';position:absolute;inset:-6px 0;background:linear-gradient(transparent,#ff493958,transparent);filter:blur(3px);animation:laser-aura 3.4s ease-in-out infinite}
.laser-beam--second:before{animation-delay:-1.7s}
.laser-beam:after{content:'';position:absolute;inset:-3px 0;background:linear-gradient(90deg,transparent,#ff705580 25%,#fff2d9 50%,#ff705580 75%,transparent) 0 0/24% 100% no-repeat;filter:blur(.35px);animation:laser-travel 2.2s linear infinite}
.laser-beam--second:after{animation-direction:reverse;animation-duration:3.1s;animation-delay:-.8s}
.laser-deflection{position:absolute;left:var(--laser-hit);top:17px;width:74px;height:2px;background:#ffe7c5;box-shadow:0 0 7px #ff5338;transform:rotate(-32deg);transform-origin:left;opacity:0;pointer-events:none}
.laser-deflection--second{top:33px;transform:rotate(32deg)}
.laser-rails.is-drop-target .laser-beam{box-shadow:0 0 6px #ff7462,0 0 20px 4px #e8403580}
.laser-barrier.is-disabled .laser-beam{right:auto;width:calc(var(--laser-hit) - 4px);animation:laser-cut .65s ease-out forwards}
.laser-barrier.is-disabled .laser-deflection{animation:laser-reflect .65s ease-out forwards}
.laser-barrier.is-disabled .laser-beam:before,.laser-barrier.is-disabled .laser-beam:after{animation:none}
.laser-barrier.is-disabled .laser-emitter:after{background:#5a5145;box-shadow:none}
.laser-barrier.is-disabled .laser-rails:after{content:'';position:absolute;inset:25px 6px auto;height:1px;background:#4a493b}
.laser-barrier.is-disabled .laser-topline,.laser-barrier.is-disabled .laser-hint{color:#a3b58b;text-shadow:none}
#vault-dropzone[inert],#encrypted-archive[inert]{opacity:.65}
#laser-shield{position:absolute;left:0;width:100%;z-index:30;cursor:not-allowed!important;background:transparent}
#laser-shield[hidden],#laser-stopped-cursor[hidden]{display:none}
#laser-stopped-cursor{position:fixed;z-index:60;width:31px;height:31px;transform:translate(-50%,-50%);background:url('assets/tactical-cursor.svg') center/contain;filter:sepia(1) saturate(5) hue-rotate(315deg);pointer-events:none}
body.laser-cursor-blocked,body.laser-cursor-blocked *{cursor:none!important}
.loose-prop[data-prop=coin] .prop-grip{aspect-ratio:1}
.loose-prop[data-prop=coin] .prop-case-hint{color:#e9caa1;border:1px solid #8e795346}
@keyframes laser-energy{0%,100%{opacity:.52;box-shadow:0 0 3px #ff4c40,0 0 7px 1px #d9332970,0 0 16px 2px #c3241d20}46%{opacity:1;box-shadow:0 0 6px 1px #ff6b54,0 0 18px 3px #ec3b2eb0,0 0 30px 5px #d3282240}72%{opacity:.76;box-shadow:0 0 4px #ff4c40,0 0 11px 2px #d9332990,0 0 21px 3px #c3241d30}}
@keyframes laser-aura{0%,100%{opacity:.25;transform:scaleY(.6)}50%{opacity:.9;transform:scaleY(1.25)}}
@keyframes laser-travel{0%{background-position:0 0;opacity:0}8%,92%{opacity:1}100%{background-position:100% 0;opacity:0}}
@keyframes laser-reflect{0%{opacity:1;scale:.35 1}30%{opacity:1;scale:1 1}100%{opacity:0;scale:1.2 1}}
@keyframes laser-cut{0%{opacity:1}100%{opacity:0}}
@media(max-width:650px){.laser-topline{font-size:8px;letter-spacing:.3px;gap:8px;flex-wrap:wrap}.laser-hint{font-size:10px;line-height:1.8}.laser-barrier{margin-bottom:24px}}
@media(prefers-reduced-motion:reduce){.laser-beam{animation-duration:5s}.laser-beam:before{animation-duration:6s}.laser-beam:after{animation-duration:7s}.laser-barrier.is-disabled .laser-beam,.laser-barrier.is-disabled .laser-deflection{animation-duration:.2s}}
@media print{#laser-shield,#laser-stopped-cursor{display:none}.laser-beam{animation:none}}
/* Coin impact: a local flash, reflected rays and a short shower of pixels. */
.laser-cut-fx{position:absolute;inset:-130px 0;z-index:4;pointer-events:none;overflow:hidden}
.laser-impact,.laser-ring{position:absolute;left:var(--laser-hit);top:156px;width:224px;height:224px;margin:-112px;border-radius:50%;opacity:0}
.laser-impact{background:radial-gradient(circle,#fffde4 0 8%,#ffeb9cf0 18%,#ffaa638a 40%,#e5443140 62%,transparent 75%);mix-blend-mode:screen;animation:laser-impact 1.45s ease-out both}
.laser-ring{border:2px solid #ffc988;box-shadow:0 0 10px #ff69367a,inset 0 0 12px #ff9e4840;animation:laser-ring 1.2s ease-out both}
.laser-ring--second{border-width:1px;border-color:#d9efad;animation-delay:.13s;animation-duration:1.5s}
.laser-spark{position:absolute;left:var(--laser-hit);top:156px;width:9px;height:4px;background:#ffe4a7;box-shadow:0 0 7px #ff6c3c;opacity:0;animation:laser-spark 1.25s cubic-bezier(.12,.5,.3,1) both;animation-delay:var(--spark-delay)}
.laser-spark:nth-child(3n){width:3px;height:3px;background:#fba56a}
.laser-spark:nth-child(4n){background:#f5ffd6;box-shadow:0 0 9px #d4ef93}
.laser-barrier.is-cutting .laser-rails{animation:laser-jolt .3s steps(2,end)}
.laser-barrier.is-cutting .laser-emitter:after{animation:laser-emitter-out .65s ease-out both}
.laser-barrier.is-disabled .laser-beam{animation:laser-power-down 1.65s ease-out forwards}
.laser-barrier.is-disabled .laser-beam--second{animation-delay:.07s}
.laser-barrier.is-disabled .laser-deflection{width:min(clamp(120px,19vw,260px),calc(100% - var(--laser-hit) - 8px));height:3px;background:#ffebbc;box-shadow:0 0 7px #ffcf91,0 0 19px #fa593b;--reflect-angle:-28deg;animation:laser-reflected-ray 1.4s ease-out forwards}
.laser-barrier.is-disabled .laser-deflection--second{--reflect-angle:29deg;animation-delay:.055s}
@keyframes laser-impact{0%{opacity:0;transform:scale(.15)}9%{opacity:1;transform:scale(.8)}30%{opacity:.9;transform:scale(1.25)}100%{opacity:0;transform:scale(1.65)}}
@keyframes laser-ring{0%{opacity:1;transform:scale(.08)}22%{opacity:.85}100%{opacity:0;transform:scale(1.3)}}
@keyframes laser-spark{0%{opacity:0;transform:translate(0,0) rotate(var(--spark-angle)) scaleX(.3)}9%{opacity:1}55%{opacity:.8}100%{opacity:0;transform:translate(var(--spark-x),var(--spark-y)) rotate(var(--spark-angle)) scaleX(.2)}}
@keyframes laser-jolt{0%,100%{transform:translateY(0)}30%{transform:translateY(-1px)}65%{transform:translateY(1px)}}
@keyframes laser-emitter-out{0%,35%{background:#ffddb1;box-shadow:0 0 18px #ff663e}100%{background:#5a5145;box-shadow:none}}
@keyframes laser-power-down{0%{opacity:1;transform:scaleX(1);box-shadow:0 0 9px #fff0b5,0 0 25px #ff6547}24%{opacity:1;transform:scaleX(1)}50%{opacity:.8}100%{opacity:0;transform:scaleX(0)}}
@keyframes laser-reflected-ray{0%{opacity:0;transform:rotate(var(--reflect-angle)) scaleX(.15)}12%{opacity:1;transform:rotate(var(--reflect-angle)) scaleX(1)}40%{opacity:.85}100%{opacity:0;transform:rotate(var(--reflect-angle)) scaleX(1)}}
@media(prefers-reduced-motion:reduce){.laser-barrier.is-cutting .laser-rails{animation:none}.laser-impact{animation:laser-impact-soft 1.4s ease-out both}.laser-ring{display:none}.laser-spark{animation:laser-spark-soft .95s ease-out both;transform:translate(calc(var(--spark-x)*.45),calc(var(--spark-y)*.45))}.laser-barrier.is-disabled .laser-deflection{animation-duration:.7s}.laser-barrier.is-disabled .laser-beam{animation:laser-cut .85s ease-out forwards}}
@keyframes laser-impact-soft{0%{opacity:.8}100%{opacity:0}}
@keyframes laser-spark-soft{0%{opacity:.8}100%{opacity:0}}

.loose-prop[data-prop="coin"].is-reflecting-laser .prop-grip img{animation:laser-coin-hit 1.25s ease-out both}
@keyframes laser-coin-hit{0%{filter:brightness(1)}13%,30%{filter:brightness(1.8) drop-shadow(0 0 13px #ffe5a8)}70%{filter:brightness(1.2) drop-shadow(0 0 6px #d7efb0)}100%{filter:brightness(1)}}
.topbar{position:relative;border-bottom-color:transparent}
/* One decorative beam: the barrier's light rhythm, with no puzzle interaction. */
.header-laser{position:absolute;left:0;right:0;bottom:-1px;height:2px;z-index:3;pointer-events:none;background:#bcffac;box-shadow:0 0 4px #69ff40,0 0 12px 2px #48d929a6,0 0 26px 3px #39c31d30;animation:header-laser-energy 2.1s ease-in-out infinite}
.header-laser:before{content:'';position:absolute;inset:-6px 0;pointer-events:none;background:linear-gradient(transparent,#63ff3958,transparent);filter:blur(3px);animation:laser-aura 3.4s ease-in-out infinite}
.header-laser:after{content:'';position:absolute;inset:-3px 0;pointer-events:none;background:linear-gradient(90deg,transparent,#8bff5580 25%,#f0ffe3 50%,#8bff5580 75%,transparent) 0 0/24% 100% no-repeat;filter:blur(.35px);animation:laser-travel 2.2s linear infinite}
@keyframes header-laser-energy{0%,100%{opacity:.52;box-shadow:0 0 3px #69ff40,0 0 7px 1px #48d92970,0 0 16px 2px #39c31d20}46%{opacity:1;box-shadow:0 0 6px 1px #85ff54,0 0 18px 3px #5bec2eb0,0 0 30px 5px #48d32240}72%{opacity:.76;box-shadow:0 0 4px #69ff40,0 0 11px 2px #48d92990,0 0 21px 3px #39c31d30}}
@media(prefers-reduced-motion:reduce){.header-laser{animation-duration:5s}.header-laser:before{animation-duration:6s}.header-laser:after{animation-duration:7s}}
@media print{.header-laser{display:none}.topbar{border-bottom-color:var(--line)}}
