/* R37: interaction skin over the approved original and R36 scenes. */
#camp-experience{--serif:Journey,'Songti SC',serif;--cream:#f5edcf;--gold:#e4d2a0;width:min(100%,500px);margin:0 auto!important;background:transparent!important;color:#f5edcf;font-family:var(--serif)!important}
#camp-experience *{box-sizing:border-box}
#camp-experience button{font-family:inherit;cursor:pointer}
#camp-experience .camp-scene{width:100%;height:auto!important;min-height:0!important;aspect-ratio:853/1844;position:relative;container-type:inline-size;isolation:isolate;overflow:hidden}
#camp-experience .scene-camera{position:absolute;inset:0;z-index:-3;overflow:hidden}
#camp-experience .scene-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
#camp-experience .camp-content{position:absolute;inset:0;pointer-events:none}
#camp-experience .camp-content button{pointer-events:auto}
#camp-experience .world-nav{position:absolute;top:3.4%;left:5%;right:5%;display:flex;justify-content:space-between;align-items:flex-start;z-index:5}
#camp-experience .world-nav .back{position:static;border:0;background:none;padding:0;color:#f5edcf;font:8cqw/1 var(--serif)}
#camp-experience .world-nav .brand{position:absolute;left:18%;width:64%;text-align:center;text-shadow:0 1px 8px #18351f;pointer-events:none}
#camp-experience .brand>span{display:block;font:2.15cqw/1.6 system-ui,sans-serif;letter-spacing:.22em}
#camp-experience .brand small{display:block;font-size:3.15cqw;margin-top:1cqw;letter-spacing:.14em}
#camp-experience .world-nav .tools{margin-left:auto;display:flex;gap:1cqw}
#camp-experience .world-tool{position:relative!important;inset:auto!important;width:9cqw!important;height:13cqw!important;padding:0!important;border:0!important;background:none!important;display:flex!important;align-items:center;flex-direction:column;color:#f2e8c1}
#camp-experience .world-tool .world-tool-art{width:8cqw!important;height:8cqw!important;object-fit:contain}
#camp-experience .world-tool .world-tool-label{font-size:2.5cqw!important;line-height:1.5;display:block}
#camp-experience.camp-later button.primary{width:100%;background:transparent;border-left:0;border-right:0;border-radius:0;font-family:var(--serif);font-weight:400}
#camp-experience.camp-later .quiet{background:none;border-top:0;border-left:0;border-right:0;border-radius:0;font-family:var(--serif);font-weight:400}
#camp-experience button:disabled{opacity:.4;cursor:default}
#camp-experience .nfc-instruction{display:block;width:100%;background:none;border:0;color:#f5edcf;padding:0}
#camp-experience .nfc-instruction strong{display:block;font:400 4.1cqw/1.55 var(--serif);margin:0 0 2cqw}
#camp-experience .nfc-instruction>span{display:block;font-size:3.1cqw;line-height:1.85;color:#e7e8cd}
#camp-experience .answer-grid>button{padding:2cqw .5cqw;border:1px solid #d1d4a14d;border-radius:2cqw;color:#dfd7ae;background:none}
#camp-experience .answer-grid>button.selected{background:#e5d39f24;border-color:#e8d092}
#camp-experience .decision-action>button{display:flex;width:100%;text-align:left;align-items:center;gap:2.5cqw;padding:3cqw 0;border:0;border-bottom:1px solid #c4cda634;border-radius:0;background:none;min-height:13cqw}
#camp-experience .decision-action svg{flex-shrink:0}
#camp-experience .door-markers{top:51%;left:12%;right:14%;display:grid;grid-template-columns:repeat(4,1fr)}
#camp-experience .door-markers small{font-size:2.9cqw;margin:0}
#camp-experience .camp-door-picks{position:absolute;top:35%;left:10%;right:11%;height:15%;display:grid;grid-template-columns:repeat(4,1fr);gap:3%}
#camp-experience .camp-door-picks button{background:#d6cf9610;border:1px solid #e6d29170;border-radius:4px;box-shadow:0 0 15px #e4d49433}
#camp-experience .camp-door-picks button[aria-pressed=true]{background:#ffe49b26;outline:2px solid #e7d99e;box-shadow:0 0 22px #efd78e66}
#camp-experience .camp-door-picks button:disabled{box-shadow:none;border:0;background:#0b211f55}
#camp-experience .camp-claim{display:block;width:100%;padding:0;border:0;background:none;text-align:center}
#camp-experience .clue-emblem svg{width:18cqw;height:18cqw;fill:none;stroke:#e0cd97;stroke-width:.8}
#camp-experience .camp-feedback{font:2.6cqw/1.7 var(--serif);color:#f2dfa8;margin:2cqw 0 0;text-shadow:0 1px 5px #182e22}
#camp-experience .camp-feedback:empty{display:none}
#camp-experience .camp-unopened{pointer-events:none!important;opacity:.68}
#camp-experience .camp-unopened small{display:block;font-size:2.2cqw;opacity:.7}
#camp-experience [data-story=wind]{touch-action:none}
#camp-experience .camp-demo-tools{padding:20px 10px 28px;color:#adbdaf;font:12px/1.8 system-ui,sans-serif;text-align:center}
#camp-experience .camp-demo-tools>div{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:10px 0}
#camp-experience .camp-demo-tools button{background:none;color:#d4ddcb;border:1px solid #acbda657;border-radius:20px;padding:7px 12px;font-size:12px}
#camp-experience .camp-demo-tools small{display:block;font-size:10px;opacity:.75}
#camp-experience .camp-demo-tools details{margin-top:8px;font-size:11px}
#camp-experience .camp-fx{position:absolute;inset:0;pointer-events:none;display:none;z-index:4;background:radial-gradient(ellipse at 50% 45%,#e9cf8733,transparent 40%)}
#camp-experience [data-effect] .camp-fx{display:block;animation:camp37-light 2.3s ease-in-out both}
#camp-experience [data-effect=wake] .scene-camera{animation:camp37-approach 2.6s ease-in-out both}
#camp-experience .camp-paused *,#camp-experience.camp-paused *{animation-play-state:paused!important}
@keyframes camp37-light{0%,100%{opacity:0}45%{opacity:1}}
@keyframes camp37-approach{0%{transform:scale(1)}60%{transform:scale(1.045)}100%{transform:scale(1.015)}}
.cm-camp-layer{mix-blend-mode:screen}
.cm-camp-cord{fill:none;stroke:#d9cf9a;stroke-width:.9;opacity:.86}
.cm-camp-sway{transform-origin:284.19px 367px;animation:camp37-sway 9s ease-in-out infinite}
.cm-camp-image{animation:camp37-glow 6s ease-in-out infinite}
.cm-camp-arrival{transform-origin:284.19px 346.35px;animation:camp37-hang 2.8s cubic-bezier(.25,.6,.3,1) both}
.cm-camp-hit{position:absolute;left:55%;top:63%;width:20%;height:16%;border:0;background:transparent;color:transparent;cursor:pointer}
.cm-camp-hit:focus-visible{outline:1px solid #e4dcb1;border-radius:50%}
.cm-camp-caption{text-align:center;border-top:1px solid #c7d5b13d;padding:16px 0 10px;color:#c7d6bb}
.cm-camp-caption h3{font-weight:400;font-size:18px;margin:0 0 8px;color:#e9dab0}
.cm-camp-caption p{font-size:13px;margin:7px 0}
.cm-camp-caption button{border:0;background:none;border-bottom:1px solid #c7d5b155;color:#d6dfc5;font:inherit;padding:8px 0;font-size:13px}
.wg-object.key-camp{mix-blend-mode:screen;filter:none!important;object-fit:contain;transform:none!important;animation:camp37-bag-lamp 8s ease-in-out infinite}
@keyframes camp37-hang{0%{opacity:0;transform:translate(-55px,95px) rotate(-12deg)}45%{opacity:1;transform:translate(5px,-7px) rotate(4deg)}65%{transform:translate(0,0) rotate(-2deg)}82%{transform:rotate(1deg)}100%{opacity:1;transform:none}}
@keyframes camp37-sway{0%,100%{transform:rotate(-1deg)}50%{transform:rotate(1deg)}}
@keyframes camp37-glow{0%,100%{opacity:.87}50%{opacity:1}}
@keyframes camp37-bag-lamp{0%,100%{rotate:-1deg}50%{rotate:1deg}}
@media(prefers-reduced-motion:reduce){#camp-experience *, .cm-camp-arrival,.cm-camp-sway,.cm-camp-image,.wg-object.key-camp{animation:none!important;transition:none!important}}
#camp-experience.camp-prologue [data-page=C01] .brand small{display:none}
#camp-experience.camp-prologue .primary>span{display:none}
#camp-experience h1:focus{outline:none}
.cm-field:has(.cm-camp-layer){isolation:auto}
.wg-hero:has(.key-camp),.wg-shore>button:has(.key-camp),.wg-detail-object:has(.key-camp){mix-blend-mode:screen}
#camp-experience.camp-later .cinema-fx{display:none}
#camp-experience #camp-particles{position:absolute;inset:0;width:100%;height:100%}
#camp-experience.camp-paused *::before,#camp-experience.camp-paused *::after{animation-play-state:paused!important}
.water-tools .wg-echo-reading:has(.key-camp){isolation:auto}
#camp-experience.camp-background-paused *,#camp-experience.camp-background-paused *::before,#camp-experience.camp-background-paused *::after{animation-play-state:paused!important}
/* R37.1: make a puzzle mismatch visible beside the choice; no modal or reward bypass. */
#camp-experience .camp-answer-feedback{margin:2cqw 0 0;padding:2cqw 3cqw;border-left:1px solid #e7cc89;background:linear-gradient(90deg,#16382ec7,#16382e2b);color:#f5e5b7;text-align:left;outline:none}
#camp-experience .camp-answer-feedback strong{display:block;font:400 clamp(14px,3.6cqw,18px)/1.5 var(--serif)}
#camp-experience .camp-answer-feedback p{margin:1cqw 0 0;font:400 clamp(12px,3cqw,15px)/1.65 var(--serif);color:#dedec2}
#camp-experience.camp-prologue .answer[data-mismatch=true],#camp-experience .answer-grid .answer[data-mismatch=true]{border-color:#d2b577;background:#b0904926;color:#e6c791}
/* R37.2: the same warm flame identifies every gain, cost and saved total. */
#camp-experience .ember-flame{width:5cqw;height:6.25cqw;overflow:visible;flex-shrink:0;filter:drop-shadow(0 0 5px #e8a84855)}
#camp-experience .ember-shell{fill:#d8964266;stroke:#f3cd86;stroke-width:1.3;stroke-linejoin:round}
#camp-experience .ember-core{fill:#fff1b7;stroke:none}
#camp-experience .ember-pocket{position:absolute;top:8.25%;left:32%;right:32%;display:flex;align-items:center;justify-content:center;gap:1.2cqw;color:#f1dfad;font:clamp(11px,2.6cqw,13px)/1.5 var(--serif);text-shadow:0 1px 8px #11271e;z-index:4}
#camp-experience .ember-pocket>.ember-flame{width:3.2cqw;height:4cqw}
#camp-experience .ember-pocket b{font-size:3.7cqw;font-weight:400}
#camp-experience .ember-pocket[data-empty=true]>.ember-flame{opacity:.5;filter:grayscale(1)}
#camp-experience .ember-intro{display:flex;align-items:center;justify-content:center;gap:3cqw;border-top:1px solid #dfcc923d;margin:3cqw 0;padding:3cqw 0 0}
#camp-experience .ember-intro p{margin:0;text-align:left;font:clamp(12px,2.9cqw,15px)/1.8 var(--serif);color:#e5dfc0}
#camp-experience .ember-intro b{color:#f8d88e;font-weight:400}
#camp-experience .ember-receipt{position:relative;margin:3cqw 0;padding:2.8cqw 2cqw 2.3cqw;border-top:1px solid #d5b47680;border-bottom:1px solid #d5b47640;background:radial-gradient(ellipse at 50% 0,#d89c3b25,transparent 80%);text-align:left}
#camp-experience .ember-receipt-top{display:flex;align-items:center;gap:2cqw;color:#e9dfbc;font:clamp(12px,2.9cqw,15px)/1.7 var(--serif)}
#camp-experience .ember-receipt-top>span{flex:1}
#camp-experience .ember-receipt-top>strong{color:#ffe0a0;font:400 6.2cqw/1 var(--serif);white-space:nowrap}
#camp-experience .ember-receipt-top>strong small{font:clamp(11px,2.6cqw,13px)/1.5 var(--serif);display:block;text-align:right;margin-top:1cqw}
#camp-experience .ember-receipt-bottom{display:flex;align-items:center;justify-content:center;gap:2.4cqw;margin-top:1.6cqw;color:#ead9ac;font:clamp(12px,3.1cqw,16px)/1.6 var(--serif)}
#camp-experience .ember-units{display:inline-flex;gap:1cqw;align-items:center}
#camp-experience .ember-units i{display:block;width:3cqw;height:3.8cqw;transform-origin:center bottom}
#camp-experience .ember-units .ember-flame{display:block;width:100%;height:100%}
#camp-experience .ember-units .unlit{opacity:.35;filter:grayscale(1)}
#camp-experience .spent-embers{display:flex;position:relative;gap:.4cqw;opacity:.4}
#camp-experience .spent-embers .ember-flame{width:2.6cqw;height:3.3cqw;filter:grayscale(1)}
#camp-experience .spent-embers:after{content:'';position:absolute;left:-4%;right:-4%;top:50%;height:1px;background:#d1d6c3;rotate:-18deg}
#camp-experience .ember-caption{font:2.8cqw/1.7 var(--serif);color:#dbe0c1;margin:2cqw 0}
#camp-experience .ember-trail{display:flex;justify-content:center;flex-wrap:wrap;gap:1cqw 0;margin:2.5cqw 0;font:clamp(11px,2.65cqw,14px)/1.8 var(--serif);color:#d4d8b9}
#camp-experience .ember-trail>span{padding:0 1.7cqw;border-left:1px solid #b4bc8d50}
#camp-experience .ember-trail>span:first-child{border-left:0}
#camp-experience .ember-trail b{font-weight:400;color:#f1d69c;white-space:nowrap}
#camp-experience .ember-assembly-summary{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:2.3cqw;margin:3cqw 0 1cqw}
#camp-experience .ember-assembly-summary>strong{font:400 6cqw/1.4 var(--serif);color:#f5d594}
#camp-experience .ember-assembly-summary small{font:2.8cqw/1.5 var(--serif);color:#e0dcc0}
#camp-experience .ember-assembly-summary .ember-units{flex-basis:100%;justify-content:center}
#camp-experience .decision-footer .ember-receipt{padding:1.5cqw 2cqw;margin:2cqw 0}
#camp-experience .decision-footer .ember-receipt-top>.ember-flame{width:3.6cqw;height:4.5cqw}
#camp-experience .decision-footer .ember-receipt-top>strong{font-size:4.8cqw}
#camp-experience .decision-footer .ember-receipt-top>strong small{display:inline;font-size:2.5cqw}
#camp-experience .decision-footer .ember-receipt-bottom{margin-top:1cqw;font-size:2.8cqw}
#camp-experience [data-effect^=ember-] .camp-fx{display:none}
#camp-experience [data-effect=ember-gain] .ember-receipt .new-ember{animation:camp37-ember-appear 1.4s cubic-bezier(.2,.6,.3,1) both;animation-delay:calc(var(--ember-i)*.16s)}
#camp-experience [data-effect=ember-gain] .ember-receipt-top>.ember-flame{animation:camp37-ember-kindle 2s ease-in-out both}
#camp-experience [data-effect=ember-gain] .ember-pocket>.ember-flame{animation:camp37-ember-kindle 1s .9s ease-in-out both}
#camp-experience [data-effect=ember-gain] .ember-receipt-top>strong{animation:camp37-ember-appear 1s .25s both}
#camp-experience [data-effect=ember-loss] .spent-embers{animation:camp37-ember-spend 1.6s ease-out both}
#camp-experience [data-effect=ember-keep] .ember-receipt{animation:camp37-ember-seal 2s ease-in-out both}
@keyframes camp37-ember-appear{0%{opacity:0;transform:translateY(3cqw) scale(.35)}55%{opacity:1;filter:drop-shadow(0 0 8px #ffc869)}100%{opacity:1;transform:none;filter:none}}
@keyframes camp37-ember-kindle{0%{opacity:.35;transform:scale(.65)}45%{opacity:1;filter:drop-shadow(0 0 14px #ffc465);transform:scale(1.3)}100%{opacity:1;transform:none}}
@keyframes camp37-ember-spend{0%{opacity:1;filter:drop-shadow(0 0 8px #f6c068);transform:translateY(0)}65%{opacity:.3;transform:translateY(-1.5cqw)}100%{opacity:.4;transform:none}}
@keyframes camp37-ember-seal{0%,100%{border-color:#d5b47680}50%{border-color:#ffe3a2;box-shadow:0 0 20px #eaba5225}}
/* R37.3: keep the desk instructions in one flow in empty, returning and completed states. */
#camp-experience.camp-prologue [data-page=C01] .camp-desk-copy{top:76%;bottom:auto;left:6%;right:6%;display:flex;flex-direction:column;align-items:stretch;gap:1.7cqw}
#camp-experience.camp-prologue [data-page=C01] .camp-desk-copy .desk-hint{position:static;inset:auto;font-size:clamp(10px,2.6cqw,13px);line-height:1.6;margin:0;letter-spacing:.03em}
#camp-experience.camp-prologue [data-page=C01] .camp-desk-copy h1{font-size:clamp(16px,4.6cqw,23px);line-height:1.5;margin:0}
#camp-experience.camp-prologue [data-page=C01] .camp-desk-copy .copy{font-size:clamp(11px,3cqw,15px);line-height:1.75;margin:0}
#camp-experience.camp-prologue [data-page=C01] .camp-desk-copy .meta{font-size:clamp(10px,2.6cqw,13px);line-height:1.6;margin:0}
#camp-experience.camp-prologue [data-page=C01] .camp-desk-copy .primary{font-size:clamp(14px,4cqw,20px);width:100%;min-height:11.5cqw;margin:1cqw 0 0;padding:2.5cqw 5cqw;line-height:1.5}
#camp-experience.camp-prologue [data-page=C01] .camp-desk-copy .camp-feedback{margin:0}
#camp-experience.camp-prologue [data-page=C01] .story-point[data-story=wind]{top:68.5%}
#camp-experience.camp-prologue [data-page=C01] .story-point[data-story=wind]:active{transform:scale(1.08);color:#fff9d5}
#camp-experience .camp-selected-lamp-glow{position:absolute;left:72%;top:46%;width:36%;height:28%;opacity:0;background:radial-gradient(ellipse,#fff3bcaa,#efb74855 25%,transparent 67%);transform-origin:50% 60%;mix-blend-mode:screen}
#camp-experience.camp-prologue .playing.wake .camp-selected-lamp-glow{animation:camp37-lamp-selected 2.6s ease-in-out both}
#camp-experience.camp-prologue .playing.wake .falling-token{animation:camp37-lantern-to-table 2.6s cubic-bezier(.3,.5,.3,1) both;color:#ffe6ac;border-color:#f4d287;background:linear-gradient(135deg,#85613c,#3b3024);box-shadow:0 0 20px #f2cb8280,0 6px 12px #1b180d77}
#camp-experience.camp-prologue .playing.wake .fx-word{top:65%;font-size:4cqw;letter-spacing:.08em;animation:camp37-wake-caption 2.6s both}
#camp-experience.camp-prologue .playing.wake .table-ripple{border-width:2px;box-shadow:0 0 32px #ffe1a6aa,inset 0 0 25px #e2ed9688}
#camp-experience.camp-prologue .playing.wake .light-ribbon,#camp-experience.camp-prologue .playing.wake .vein-burst{display:none}
#camp-experience .camp-demo-tools [data-camp-action=reset-prompt]{border-color:#e4ca9688;color:#f4dfb2}
#camp-experience .camp-reset-panel{border-top:1px solid #bcbb9166;margin:16px auto 0;padding:16px 10px 0;max-width:450px;text-align:left;color:#dbe0c5}
#camp-experience .camp-reset-panel h2{font:400 16px/1.6 var(--serif);color:#f2dfb0;margin:0 0 8px}
#camp-experience .camp-reset-panel p{margin:0 0 12px;font-size:12px;line-height:1.85}
#camp-experience .camp-reset-panel>div{display:flex;gap:10px;flex-wrap:wrap}
#camp-experience .camp-reset-panel [data-camp-action=reset-confirm]{color:#f7e4b3;border-color:#dcc58b99;background:#d5bf7720}
#camp-experience .camp-reset-error:empty{display:none}
#camp-experience .camp-reset-error,#camp-experience .camp-reset-notice{color:#ead7a7;margin:12px 0;font-size:12px}
@keyframes camp37-lamp-selected{0%{opacity:0;transform:scale(.7)}20%{opacity:1;transform:scale(1.15)}43%{opacity:.85;transform:scale(1)}75%,100%{opacity:0;transform:scale(1.3)}}
@keyframes camp37-lantern-to-table{0%{opacity:0;transform:translate(290%,220%) rotate(-12deg) scale(.7)}13%{opacity:1;transform:translate(290%,220%) rotate(-6deg) scale(1.05)}48%{opacity:1;transform:translate(0,0) rotate(0) scale(1.15)}59%{opacity:1;transform:scale(.95)}70%{opacity:1;transform:scale(1)}88%,100%{opacity:0;transform:scale(.15)}}
@keyframes camp37-wake-caption{0%,38%{opacity:0;transform:translateY(1cqw)}54%,82%{opacity:1;transform:none}100%{opacity:0;transform:none}}
