/* Chapter 4 has its own flow layout; no subtitle overlay is inherited. */
#game.chapter-light #rotate,#game.chapter-light .crosshair{display:none}
#game.chapter-light .immersive-inspect{visibility:visible}
#light-chapter{position:absolute;inset:66px 0 34px;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:12px;isolation:isolate}
.light-heading{padding:6px 5% 0;color:#e9dfc7}
.light-heading h2{margin:0;font-size:16px;font-weight:500;letter-spacing:2px;line-height:1.6}
.light-heading p{margin:3px 0 0;font-size:11px;line-height:1.6;color:#bcad8e;letter-spacing:.7px}
.light-view{position:relative;min-height:0;overflow:hidden}
#game.chapter-light #scene{inset:0;background:#101511}
#game.chapter-light #landscape{transition:opacity .4s;object-fit:contain}
#game.chapter-light .shade{background:linear-gradient(0deg,#14150c18,transparent 30%,transparent 85%,#14150c18)}
.light-footer{padding:0 5% 10px;display:grid;gap:12px;max-height:52svh;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
.light-narration{min-width:0;width:min(100%,860px);margin:0 auto;text-align:center;color:#eadfc7}
.light-narration p{font-size:15px;line-height:1.65;letter-spacing:.5px;margin:0;text-wrap:pretty}
.light-narration small{display:block;font-size:10px;line-height:1.4;letter-spacing:1px;color:#baa580;margin:0 0 4px}
.light-controls{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:center;min-width:0}
.light-controls>button,.light-puzzle-actions button{font-size:12px;letter-spacing:1px;line-height:1.5;min-height:42px;padding:10px 16px;border-bottom:1px solid #bfa37777;background:transparent;color:#eadfc7}
.light-interaction{position:absolute;inset:0;pointer-events:none;touch-action:none}
.light-interaction>button,.light-interaction .light-puzzle-slot{pointer-events:auto;touch-action:none}
.light-lens{position:absolute;transform:translate(-50%,-50%);border:1px solid #f0ddb0aa;border-radius:50%;background-image:url('../assets/light/02.pages.webp');background-repeat:no-repeat;color:transparent;cursor:grab;text-shadow:none;box-shadow:0 0 0 5px #1b211a22,inset 0 0 15px #30291144;padding:0;z-index:4}
.light-lens:active{cursor:grabbing}.light-lens:before,.light-lens:after{content:'';position:absolute;background:#f0ddb099;pointer-events:none}
.light-lens:before{width:12px;height:1px;left:calc(50% - 6px);top:50%}.light-lens:after{height:12px;width:1px;top:calc(50% - 6px);left:50%}
.light-lens.near{border-color:#fff0c7;box-shadow:0 0 20px #efce7b55}
.light-smoke-hint{position:absolute;transform:translate(-50%,-50%);width:15%;height:20%;border:1px dashed #f5e3bb99;border-radius:50%;pointer-events:none}
.light-puzzle-board{position:absolute;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;pointer-events:none}
.light-puzzle-board.message{left:35%;top:49%;width:39%;height:24%}
.light-puzzle-board.memory{left:27%;top:52%;width:45%;height:28%}
#hotspots .light-puzzle-slot{position:relative;min-width:0;min-height:44px;padding:4px 2px;border:1px dashed #79604488;color:#4d3924;background:#e7d0a58c;border-radius:2px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font:clamp(10px,1.1vw,17px)/1.4 var(--ink);text-shadow:none;letter-spacing:.5px;box-shadow:none;touch-action:none;overflow:hidden}
.light-puzzle-slot img{width:100%;height:65%;object-fit:cover;border-radius:1px;pointer-events:none}
.light-puzzle-slot span{display:block;pointer-events:none}
#hotspots .light-puzzle-slot.hover-drop{border-color:#f2d491;outline:2px solid #f2d491;background:#f1ddb5cc}
.light-puzzle-board.solved .light-puzzle-slot{border-style:solid;background:#ead7b2bb}
.light-puzzle-board.retry{filter:brightness(.85)}
.light-card-bank{width:min(100%,520px);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;overflow:visible;position:relative}
.light-puzzle-card{position:relative;min-width:0;min-height:45px;background:#e1c99d;color:#493522;border:1px solid #ab906a99;border-radius:2px;padding:9px 6px;font:13px/1.45 var(--ink);letter-spacing:1px;touch-action:none;user-select:none;cursor:grab;box-shadow:0 2px 8px #0002;will-change:transform}
.light-puzzle-card.selected{outline:2px solid #e9d3a2;outline-offset:3px}
.light-puzzle-card:disabled{opacity:.3;cursor:default}
.light-puzzle-card.dragging{cursor:grabbing;filter:brightness(1.08);transition:none;z-index:50}
.light-card-bank.memory .light-puzzle-card{padding:4px 4px 6px;font-size:11px;line-height:1.4;letter-spacing:.5px}
.light-puzzle-card img{width:100%;height:clamp(40px,6vw,75px);object-fit:cover;display:block;margin-bottom:4px;pointer-events:none;border-radius:1px}
.light-puzzle-feedback{width:100%;text-align:center;min-height:1.5em;margin:0;color:#d8c39d;font-size:11px;line-height:1.6;letter-spacing:.5px}
.light-puzzle-feedback:empty{display:none}
.light-puzzle-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;width:100%}
.light-puzzle-actions button:disabled{opacity:.35}
@media(orientation:portrait){#light-chapter{inset:62px 0 36px;gap:10px}.light-heading{padding:5px 5% 0}.light-heading h2{font-size:14px}.light-heading p{font-size:10px}.light-narration p{font-size:14px;line-height:1.65}.light-footer{padding:0 6% 6px;gap:10px}.light-controls>button{padding:9px 12px;font-size:12px}.light-puzzle-card{font-size:12px;letter-spacing:.5px}.light-card-bank{gap:8px}.light-puzzle-actions button{font-size:11px;padding:8px 10px;min-height:40px}}
@media(orientation:landscape) and (max-height:550px){#light-chapter{inset:46px 0 29px;gap:7px}.light-heading{padding-top:0}.light-heading h2{font-size:13px;display:inline}.light-heading p{display:inline;margin-left:14px;font-size:10px}.light-footer{display:grid;grid-template-columns:minmax(190px,1fr) minmax(300px,1.7fr);gap:18px;align-items:center;padding-bottom:0;max-height:43svh}.light-narration p{font-size:12px;line-height:1.6;text-align:left}.light-narration small{text-align:left;font-size:9px}.light-controls{gap:7px}.light-controls>button,.light-puzzle-actions button{font-size:11px;min-height:35px;padding:7px 10px}.light-card-bank{max-width:440px;gap:8px}.light-puzzle-card{padding:5px;font-size:12px;min-height:36px}.light-puzzle-card img{height:40px}.light-puzzle-feedback{font-size:10px}.light-puzzle-slot{font-size:11px!important}.light-puzzle-actions{gap:8px}}
@media(prefers-reduced-motion:reduce){.light-interaction *{animation:none!important;transition:none!important}}

.light-interaction.light-search{pointer-events:auto}
.light-drag-ghost{position:fixed!important;z-index:100!important;pointer-events:none!important;opacity:1!important;box-shadow:0 6px 20px #0005;transition:none!important}.light-drag-ghost img{height:65%;object-fit:cover}

@keyframes light-arrive{from{transform:scale(1)}to{transform:scale(1.018)}}
@media(prefers-reduced-motion:no-preference){#game.chapter-light:has(.light-arrival) #landscape{animation:light-arrive 3s ease-out both}}

/* Memories follow the photographed paper, rather than a screen-facing grid. */
.light-puzzle-board.memory{inset:0;width:100%;height:100%;display:block;mix-blend-mode:multiply}
#hotspots .memory .light-puzzle-slot{position:absolute;left:0;top:0;width:240px;height:160px;min-height:0;padding:8px 8px 4px;transform-origin:0 0;display:flex;gap:4px;border:0;border-radius:0;background:transparent;overflow:visible;font:19px/1.3 KaiTi,STKaiti,'Kaiti SC',serif;color:#503a25;letter-spacing:2px;box-shadow:none}
#hotspots .memory .light-puzzle-slot.empty{justify-content:flex-start;padding-top:50px;color:#735b3c88;font-size:20px;border:0;background:transparent}
#hotspots .memory .light-puzzle-slot:not(.empty){background:#c9ad7680;box-shadow:1px 2px 3px #412b2238;animation:memory-settle .35s ease-out}
#hotspots .memory .light-puzzle-slot img{flex:1;min-height:0;width:100%;height:112px;object-fit:cover;filter:sepia(.95) saturate(.3) contrast(.83);opacity:.85;border-radius:0}
#hotspots .memory .light-puzzle-slot span{font:19px/1.2 KaiTi,STKaiti,'Kaiti SC',serif;white-space:nowrap}
#hotspots .memory .light-puzzle-slot.hover-drop{outline:1px solid #8b693f88;background:#b68a3c22}
.light-written-memory{position:absolute;left:54%;top:73%;width:15%;margin:0;white-space:pre-line;transform:rotate(-3deg);font:clamp(8px,1.2vw,18px)/1.7 KaiTi,STKaiti,'Kaiti SC',serif;letter-spacing:1px;color:#503921;pointer-events:none}
@keyframes memory-settle{from{opacity:.3}to{opacity:1}}

@font-face{font-family:ExpeditionHand;src:url('../assets/fonts/expedition-hand.woff2') format('woff2');font-weight:400;font-display:swap}
:root{--hand:ExpeditionHand,'Kaiti SC',STKaiti,KaiTi,serif}
.sheet-copy,.sheet-copy h2,.sheet-copy .sheet-lines,.sheet-copy .sheet-lines p,.sheet-copy time{font-family:var(--hand);font-weight:400}
#hotspots .memory .light-puzzle-slot,#hotspots .memory .light-puzzle-slot span,.light-written-memory{font-family:var(--hand)}
.light-card-bank.message .light-puzzle-card{font-family:var(--hand);font-size:18px;letter-spacing:2px;background:linear-gradient(130deg,#d7bc8c,#e7cf9f 55%,#cdb182);border:0;border-radius:0;clip-path:polygon(1% 3%,18% 1%,36% 3%,54% 0,79% 2%,98% 0,100% 27%,98% 54%,100% 97%,78% 100%,55% 97%,31% 100%,1% 98%,0 68%,2% 40%)}
.light-puzzle-board.message{inset:0;width:100%;height:100%;display:block;mix-blend-mode:multiply}
#hotspots .message .light-puzzle-slot{position:absolute;left:0;top:0;width:600px;height:76px;min-height:0;transform-origin:0 0;display:block;padding:0 24px;text-align:left;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible;font:44px/76px var(--hand);letter-spacing:6px;color:#483420}
#hotspots .message .light-puzzle-slot.empty{color:#70533255;font-size:32px!important}
#hotspots .message .light-puzzle-slot.hover-drop{outline:0;border-bottom:1px solid #70533288;background:#b88a3810}
#hotspots .message.solved .light-puzzle-slot{background:transparent;border:0}
.hand-ink i{display:inline-block;font-style:normal}
.hand-ink i:nth-child(3n+1){transform:rotate(-2deg) translateY(1px);opacity:.91}
.hand-ink i:nth-child(3n+2){transform:rotate(1deg) translateY(-1px);opacity:.97}
.hand-ink i:nth-child(4n){transform:rotate(-1deg);opacity:.87}
#hotspots .message .light-puzzle-slot:not(.empty) .hand-ink{animation:memory-settle .35s ease-out}

#hotspots .message .light-puzzle-slot:not(.empty){font-size:44px!important}
#hotspots .memory .light-puzzle-slot{font-size:19px!important}
#hotspots .memory .light-puzzle-slot.empty{font-size:20px!important}

.light-delivered-message{position:absolute;left:0;top:0;width:400px;height:210px;transform-origin:0 0;white-space:pre-line;pointer-events:none;mix-blend-mode:multiply;font:46px/68px var(--hand);color:#493723;letter-spacing:3px;opacity:.86}
