:root{color-scheme:dark;--forest:#13251f;--deep:#0e1d18;--paper:#f4efdf;--paper-deep:#e9e0ca;--ink:#21392d;--sage:#c2cba8;--muted:#a9b4a0;--line:#c8bea6;--gold:#d5bd89;--text-scale:1;--character-aspect:.604;--card-aspect:.65;--camera-aspect:1.6;font:16px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI","Apple SD Gothic Neo","Malgun Gothic",sans-serif;background:var(--forest);color:var(--paper);font-synthesis:none;-webkit-font-smoothing:antialiased}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.48}a{color:inherit}button,a{touch-action:manipulation}button{border:0}h1,h2,h3,p{margin:0}h1,h2,h3,.brand{font-family:Georgia,"Times New Roman",serif;font-weight:400}button svg,svg.icon{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}img{max-width:100%;display:block}[hidden]{display:none!important}:focus-visible{outline:3px solid #cf9e46;outline-offset:4px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:fixed;top:8px;left:8px;z-index:30;background:var(--paper);color:var(--ink);padding:12px;transform:translateY(-200%)}.skip-link:focus{transform:none}
.site-header{max-width:1480px;margin:auto;padding:18px 34px 0;display:flex;align-items:center;gap:24px}.brand{font-size:43px;text-decoration:none;line-height:1;letter-spacing:-1.5px}.site-header>p{margin-left:auto;font:italic 16px Georgia,serif;color:var(--sage)}.quiet{color:var(--sage);background:none;font-size:12px;min-height:48px;padding:8px 0;text-decoration:underline;text-underline-offset:4px}.game-shell{max-width:1480px;margin:auto;padding:0 28px}.game-heading{text-align:center;margin:-10px 0 22px;pointer-events:none}.game-heading h1{font-size:clamp(38px,5.3vw,74px);line-height:1.1;letter-spacing:-2.5px;position:relative;display:inline-block}.title-star{position:absolute;right:-22px;top:0;font-size:26px;color:var(--paper)}.game-heading>p{font:20px Georgia,serif;letter-spacing:.4px;color:var(--gold);display:flex;align-items:center;justify-content:center;gap:16px;margin-top:8px}.game-heading>p:before,.game-heading>p:after{content:"";width:48px;height:1px;background:#b9aa87}
.world{position:relative;aspect-ratio:16/8.4;border-radius:15px;overflow:hidden;isolation:isolate;background:#796c51;box-shadow:0 12px 40px #0002}.room-art{width:100%;height:100%;object-fit:cover;object-position:center 46%;pointer-events:none}.room-shade{position:absolute;inset:0;background:linear-gradient(#0002,transparent 24%,transparent 85%,#0d1f1833);pointer-events:none}.world-topbar{position:absolute;inset:20px 24px auto;display:flex;justify-content:space-between;align-items:flex-start;gap:12px;z-index:5}.objective{display:flex;align-items:center;gap:10px;max-width:45%;min-height:48px;padding:10px 16px;background:#203a2ef2;color:#fff8e8;border:1px solid #d6cda039;border-radius:15px;font:15px/1.4 Georgia,serif;box-shadow:0 4px 12px #0001}.objective-mark{color:#eed6a8;font-size:23px}.toolbar{display:flex;gap:8px}.toolbar button{display:flex;align-items:center;gap:8px;padding:10px 15px;min-height:48px;background:#20372dee;color:var(--paper);border:1px solid #d6cda039;border-radius:24px;font:14px Georgia,serif;box-shadow:0 4px 12px #0001}.toolbar button:hover{background:#31503e}.toolbar button[aria-pressed=true]{box-shadow:inset 0 0 0 1px #e4d7b5}.world-people{position:absolute;inset:0;pointer-events:none}.world-person{position:absolute;left:var(--x);bottom:var(--y);width:18%;aspect-ratio:var(--character-aspect);background:url('./assets/characters.webp') no-repeat;background-size:400% 200%;background-position:calc(var(--col)*100%/3) calc(var(--row)*100%);transform:translateX(-50%);filter:drop-shadow(0 8px 4px #35261d33)}.world-person.player{width:19%;z-index:2;transition:left 1.1s ease,bottom 1.1s ease}.world-person.mina{width:18.5%;z-index:2}.world-person.alex{width:15.5%}.world-person.bo{width:16%}.world-person.walking{animation:walk-bob .25s infinite alternate}.world-person.active{filter:drop-shadow(0 3px 8px #f6e6b65c)}.hotspots{position:absolute;inset:0;z-index:4;pointer-events:none}.hotspot{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);background:#f7f1deed;color:var(--ink);min-height:48px;border-radius:24px;padding:10px 18px;font-size:14px;box-shadow:0 3px 12px #33281a33;pointer-events:auto;border:1px solid #e8ddc4}.hotspot.current{background:var(--forest);color:var(--paper);outline:1px solid #e6d4a7}.hotspot:hover{box-shadow:0 3px 14px #0004;outline:2px solid var(--gold)}.hotspot-dot{position:absolute;right:8px;top:6px;width:5px;height:5px;background:var(--gold);border-radius:50%}.room-decorations{position:absolute;inset:0;pointer-events:none}.pinned-mini{position:absolute;left:49%;top:17%;width:4.3%;transform:rotate(-5deg);border:3px solid #f6eedb;box-shadow:0 2px 3px #0005}.photo-mini{position:absolute;left:40%;top:83%;width:7%;transform:rotate(-9deg);border:3px solid #f6eedb}
.story-panel{position:relative;z-index:6;margin:-30px 20px 0;background:var(--paper);color:var(--ink);border-radius:18px;padding:28px 38px 18px;box-shadow:0 14px 40px #0002;color-scheme:light;scroll-margin-top:14px}.story-panel:focus{outline:none}.dialogue{display:grid;grid-template-columns:110px minmax(0,1fr) auto;align-items:center;gap:28px;min-height:130px}.portrait{width:108px;aspect-ratio:1;background-image:url('./assets/portraits.webp');background-size:400% 300%;background-position:calc(var(--col)*100%/3) calc(var(--row)*100%/2);border-radius:22px;background-color:#e7dac0;overflow:hidden}.speaker{font:600 19px Georgia,serif;margin-bottom:8px}.dialogue-copy{font:calc(23px * var(--text-scale))/1.5 Georgia,"Times New Roman","Apple SD Gothic Neo",serif;max-width:900px}.dialogue-copy [lang=ko]{font-family:-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;font-weight:600}.word-lookup{font:inherit;color:inherit;background:none;border-bottom:1px dashed #58795e;padding:0 2px;display:inline;min-height:0}.word-play{display:inline-flex;vertical-align:middle;margin-left:4px;border-radius:50%;min-width:36px;min-height:36px;align-items:center;justify-content:center;background:#e3e3d3;color:var(--ink)}.word-play svg{width:15px;height:15px}.reading-aid{font:13px/1.2 sans-serif;color:#63725e;display:inline-block;margin-left:4px}.primary,.secondary,.text-button{min-height:48px;padding:11px 23px;border-radius:24px;display:inline-flex;align-items:center;justify-content:center;gap:12px;font-size:calc(15px * var(--text-scale));line-height:1.4;transition:background .15s,box-shadow .15s}.primary{background:#223e2e;color:#fbf5e4;font-family:Georgia,serif;font-size:calc(18px * var(--text-scale))}.primary:hover{background:#34543f}.secondary{background:#e5e4d5;color:var(--ink);border:1px solid #c7cbb5}.secondary:hover{background:#d9decc}.text-button{background:transparent;color:#49614d;text-decoration:underline;text-underline-offset:4px;padding-inline:12px}.text-button:hover{background:#eae5d6}.primary svg{width:20px;height:20px}.chapter-progress{border-top:1px solid #c5bca46e;margin-top:24px;padding:16px 0 0;display:flex;align-items:center;justify-content:center;gap:35px;font:italic 14px Georgia,serif;color:#5c6855}.progress-dots{display:flex;gap:14px;align-items:center}.progress-dot{width:8px;height:8px;border:1px solid #b5af91;border-radius:50%;position:relative}.progress-dot+.progress-dot:before{content:"";height:1px;width:15px;background:#c7c0a7;position:absolute;top:3px;right:7px}.progress-dot.filled{background:#365841;border-color:#365841}.progress-dot.current{outline:3px solid #d6d9c6;outline-offset:2px}.chapter-number{font-style:normal}.status-bar{padding:16px 22px 0;display:flex;justify-content:space-between;gap:12px;font-size:11px;color:var(--muted)}.audio-status{font-size:12px;color:var(--muted);margin:4px 22px}.site-footer{max-width:1440px;margin:8px auto 0;padding:20px 32px 32px;display:flex;align-items:center;justify-content:center;gap:16px;font:13px Georgia,serif;color:var(--muted)}.site-footer a{min-height:32px;display:flex;align-items:center;text-underline-offset:4px}.site-footer a:last-child{margin-left:12px;font:12px -apple-system,sans-serif}.loading{text-align:center;padding:24px}.loading-leaf{font-size:30px;color:#7c8c60}.loading h2{font-size:26px}.loading p{margin-top:8px;color:#6a755f}
.welcome{text-align:center;max-width:720px;margin:0 auto;padding:6px 0 0}.welcome h2{font-size:clamp(28px,3vw,36px);line-height:1.2}.welcome p{font-size:calc(15px * var(--text-scale));color:#63705d;line-height:1.65;margin:10px auto 18px;max-width:590px}.welcome-actions,.actions{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}.welcome-note{font-size:12px!important;margin:14px auto 0!important}.choice-view{max-width:900px;margin:auto}.choice-view h2,.task-heading h2,.ending h2{font-size:clamp(25px,3vw,34px);line-height:1.25;margin-bottom:12px}.choice-grid{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:20px}.choice-grid .secondary{min-width:200px;border-radius:12px;text-align:left;justify-content:flex-start}.choice-grid .primary{border-radius:12px}.task-heading{text-align:center;margin-bottom:20px}.task-kicker{font:15px Georgia,serif;letter-spacing:.3px;color:#657157;margin-bottom:8px}.task-evidence{font-size:calc(14px * var(--text-scale));color:#5a694f;max-width:760px;margin:8px auto 0;white-space:pre-line}.options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;max-width:820px;margin:0 auto}.options.cards{grid-template-columns:repeat(3,minmax(0,1fr));max-width:780px}.options.return-cards{grid-template-columns:repeat(4,minmax(0,1fr));max-width:850px}.options.camera{max-width:1000px}.option-wrap{min-width:0}.option{display:flex;flex-direction:column;align-items:stretch;width:100%;background:#eae2cf;color:var(--ink);border:2px solid transparent;border-radius:12px;padding:0;overflow:hidden;text-align:center;position:relative;transition:transform .15s,box-shadow .15s,border-color .15s}.option:hover{transform:translateY(-3px);box-shadow:0 6px 12px #52483115}.option[aria-pressed=true]{border-color:#395c40;box-shadow:0 0 0 3px #c3cbb4}.option-label{padding:10px 8px 3px;font:calc(18px * var(--text-scale))/1.2 Georgia,serif}.option-age{padding:2px 8px 12px;font-size:calc(14px * var(--text-scale));color:#5f6c54}.option-check{position:absolute;top:8px;right:8px;background:#294933;color:var(--paper);width:28px;height:28px;border-radius:50%;display:none;align-items:center;justify-content:center}.option[aria-pressed=true] .option-check{display:flex}.option-check svg{width:18px;height:18px}.option-art{display:block;width:100%;pointer-events:none}.card-art{aspect-ratio:var(--card-aspect);background-image:url('./assets/cards.webp');background-size:500% 200%;background-position:calc(var(--col)*100%/4) calc(var(--row)*100%);background-repeat:no-repeat;background-color:#e8dcc5}.camera-art{aspect-ratio:var(--camera-aspect);background-image:url('./assets/cameras.webp');background-size:300% 200%;background-position:calc(var(--col)*100%/2) calc(var(--row)*100%);background-repeat:no-repeat;background-color:#e8dcc5}.character-window{height:180px;overflow:hidden;position:relative;background:#e9ddc6}.character-window .character-art{position:absolute;top:4px;left:0;width:100%;aspect-ratio:var(--character-aspect);background-image:url('./assets/characters.webp');background-size:400% 200%;background-position:calc(var(--col)*100%/3) calc(var(--row)*100%);background-repeat:no-repeat}.character-window.npc-portrait{height:180px;aspect-ratio:1;background-image:url('./assets/portraits.webp');background-size:400% 300%;background-position:0 calc(var(--row)*100%/2)}.option-inspect{display:block;width:100%;min-height:44px;background:transparent;font-size:12px;color:#586850;text-decoration:underline;text-underline-offset:4px;border-radius:8px}.camera .option-label{font-size:15px;line-height:1.4;padding-bottom:12px}.option-description{font-size:13px;line-height:1.5;padding:0 12px 12px;color:#5d6953}.task-controls{display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap;margin-top:23px}.selection-note{font-size:13px;color:#59694e;text-align:center;margin-top:15px;min-height:20px}.task-utilities{display:flex;justify-content:center;align-items:center;gap:8px;margin:8px auto 0;flex-wrap:wrap}.task-utilities button{font-size:13px}.drop-zone{border:1px dashed #9fac8b;border-radius:12px;max-width:360px;margin:18px auto 0;padding:15px;text-align:center;font-size:13px;color:#5b6d50}.drop-zone.dragover{background:#dce5cf;outline:2px solid #637959}.art-fallback .option-art{display:none}.art-fallback .option-description{display:block!important}.profile-overview{margin:20px 0}.room-tools{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:16px}.teaching-inset{height:160px;max-width:180px;margin:auto;overflow:hidden;position:relative}.teaching-inset .character-art{position:absolute;width:160px;aspect-ratio:var(--character-aspect);background:url('./assets/characters.webp') 100% 100%/400% 200% no-repeat}
dialog{background:var(--paper);color:var(--ink);color-scheme:light;max-width:min(740px,calc(100vw - 32px));width:100%;max-height:calc(100dvh - 40px);padding:26px 30px 30px;border:1px solid #c3b99f;border-radius:20px;box-shadow:0 24px 100px #0005;overscroll-behavior:contain}dialog::backdrop{background:#081510aa;backdrop-filter:blur(4px)}.modal-header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.modal-header h2{font-size:28px}.icon-button{width:48px;height:48px;border-radius:50%;background:#e5e2d0;color:var(--ink);display:flex;align-items:center;justify-content:center;flex:none}.modal-prose{font-size:calc(15px * var(--text-scale));line-height:1.75}.modal-prose p+p{margin-top:12px}.modal-prose ul{padding-left:20px}.modal-prose a{text-underline-offset:3px}.modal-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}.notebook-list{display:grid;gap:12px}.notebook-entry{background:#eae5d4;border-radius:12px;padding:18px}.notebook-entry h3{font-size:25px}.notebook-entry h3 [lang=ko]{font-family:-apple-system,sans-serif}.notebook-entry>p{font-size:14px;margin-top:6px;color:#57694f}.notebook-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.notebook-track{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:#737b62;margin-bottom:7px}.practice-status{font-size:12px;font-weight:600;color:#526b4c;margin-top:10px}.review-flag{display:block;margin-top:4px;font-size:12px;font-weight:400;color:#8c6b39}.settings-list{display:grid;gap:8px}.setting{padding:12px 0;border-bottom:1px solid #d9d0ba;display:flex;align-items:center;justify-content:space-between;gap:20px}.setting input[type=checkbox]{width:24px;height:24px;accent-color:#39583b}.setting select{max-width:48%;padding:10px;border:1px solid #bfc5ac;border-radius:8px;background:#eceadf;color:var(--ink)}.inspect-art{max-width:300px;margin:0 auto 20px;border-radius:12px;overflow:hidden}.inspect-art.camera-art{max-width:600px}.inspect-description{font:calc(20px * var(--text-scale))/1.55 Georgia,serif;text-align:center}.inventory-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.inventory-item{border-radius:10px;overflow:hidden;background:#e5ddc8}.inventory-item p{font-size:12px;padding:8px}.ending{text-align:center}.ending>p{max-width:620px;margin:8px auto 22px;color:#647057}.end-spread{display:grid;grid-template-columns:1.3fr 1fr;gap:22px;max-width:850px;margin:20px auto 24px;text-align:left}.scrap-page{background:#e8dfc7;padding:22px;border-radius:7px;box-shadow:2px 3px 0 #d4c8ad;position:relative}.scrap-page .camera-art{transform:rotate(-2deg);border:7px solid #faf4e4;box-shadow:0 2px 6px #0002}.scrap-page h3{margin-top:16px;font-size:23px}.stamp{display:inline-flex;border:2px solid #8d694f;border-radius:50%;width:90px;height:90px;align-items:center;justify-content:center;text-align:center;font:italic 17px Georgia,serif;color:#8d694f;transform:rotate(-12deg);padding:8px;position:absolute;right:16px;bottom:13px}.learning-summary{display:grid;gap:12px}.learning-summary>div{border-bottom:1px solid #d2c9b0;padding-bottom:10px}.learning-summary h3{font-size:21px}.learning-summary p{font-size:13px;color:#5f6f55}.learning-summary .track{font-size:11px;text-transform:uppercase;letter-spacing:.7px;margin-bottom:5px}.completion-note{font-size:12px!important}.trade-preview{display:grid;grid-template-columns:1fr 45px 1fr;gap:16px;max-width:460px;align-items:center;margin:20px auto}.trade-preview figure{margin:0;text-align:center}.trade-preview figcaption{font-size:13px;margin-top:8px}.trade-preview .card-art{max-height:180px;max-width:140px;margin:auto;border:6px solid #fff9eb;box-shadow:0 3px 8px #0002;transform:rotate(-3deg)}.trade-preview figure:last-child .card-art{transform:rotate(3deg)}.trade-arrow{color:#778766;width:35px}.error-panel{text-align:center;padding:16px}.error-panel h2{font-size:27px;margin-bottom:12px}.error-panel p{max-width:570px;margin:10px auto 20px}.no-script{margin:20px;padding:25px;background:var(--paper);color:var(--ink)}
@keyframes walk-bob{from{margin-bottom:0}to{margin-bottom:3px}}@keyframes paper-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.panel-enter{animation:paper-enter .23s ease-out}.reduced-motion *{scroll-behavior:auto}.reduced-motion .world-person.player{transition:none}.reduced-motion .world-person.walking,.reduced-motion .panel-enter{animation:none}
@media(min-width:1600px){.game-shell{max-width:1500px}.world{aspect-ratio:16/8.3}}
@media(max-width:1000px){.site-header{padding-inline:22px}.game-shell{padding-inline:18px}.game-heading{margin:12px 0 22px}.world-topbar{inset:14px}.toolbar button{padding:10px 12px}.toolbar span{display:none}.objective{max-width:60%;font-size:14px}.story-panel{margin-inline:12px;padding:24px}.dialogue{grid-template-columns:86px 1fr;gap:20px}.portrait{width:86px}.dialogue>.primary,.dialogue>.actions{grid-column:2;justify-self:start;margin-top:0}.dialogue-copy{font-size:calc(21px * var(--text-scale))}.chapter-progress{gap:20px}.progress-dots{gap:10px}.progress-dot+.progress-dot:before{width:11px}.character-window,.character-window.npc-portrait{height:150px}.options.return-cards{gap:12px}}
@media(max-width:600px){.site-header{padding:16px 18px 0;gap:10px}.brand{font-size:34px}.site-header>p{display:none}.site-header>.quiet{margin-left:auto;font-size:11px;min-height:36px}.game-shell{padding:0 12px}.game-heading{margin:15px 0 19px}.game-heading h1{font-size:40px;letter-spacing:-1.8px}.title-star{font-size:17px;right:-14px}.game-heading>p{font-size:16px;margin-top:7px;gap:12px}.game-heading>p:before,.game-heading>p:after{width:34px}.world{aspect-ratio:16/10.5;border-radius:12px}.world-topbar{inset:10px 10px auto;gap:6px}.objective{font:11px/1.35 -apple-system,sans-serif;padding:7px 9px;border-radius:10px;gap:6px;max-width:51%;min-height:44px}.objective-mark{font-size:17px}.toolbar{gap:4px}.toolbar button{width:44px;min-height:44px;justify-content:center;padding:0;background:#20372df7}.toolbar svg{width:19px;height:19px}.world-person.player{width:20%}.world-person.mina{width:20%}.world-person.alex{width:17%}.world-person.bo{width:17%}.story-panel{margin:-10px 0 0;border-radius:14px;padding:23px 18px 17px}.dialogue{grid-template-columns:60px minmax(0,1fr);gap:14px;align-items:start}.portrait{width:60px;border-radius:15px}.speaker{font-size:17px;margin-bottom:7px}.dialogue-copy{font-size:calc(19px * var(--text-scale));line-height:1.5}.dialogue>.primary,.dialogue>.actions{grid-column:1/-1;justify-self:stretch;margin-top:4px}.dialogue>.actions{justify-content:stretch}.dialogue>.actions button{flex:1}.primary{font-size:calc(17px * var(--text-scale));min-height:50px}.secondary{font-size:calc(14px * var(--text-scale))}.welcome h2{font-size:29px}.welcome p{font-size:calc(14px * var(--text-scale));margin-block:10px 17px}.welcome-actions{flex-direction:column;align-items:stretch;gap:8px}.welcome-note{font-size:11px!important}.chapter-progress{flex-wrap:wrap;gap:11px;padding-top:15px;margin-top:22px;font-size:12px}.chapter-title{flex-basis:100%;text-align:center;order:2}.progress-dots{gap:12px}.chapter-number{margin-left:12px;order:1}.progress-dot{width:7px;height:7px}.progress-dot+.progress-dot:before{width:13px;right:6px;top:2px}.status-bar{padding:12px 4px 0;font-size:10px;flex-direction:column;gap:2px}.audio-status{font-size:11px;margin:6px 4px}.site-footer{font-size:11px;gap:8px;padding:18px 15px 24px;flex-wrap:wrap}.site-footer a:last-child{flex-basis:100%;justify-content:center;font-size:11px;margin:0}.options{gap:8px}.options.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.options.return-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.options.camera{grid-template-columns:1fr}.camera .option{display:grid;grid-template-columns:43% 1fr;align-items:center;text-align:left}.camera .option-label{padding:10px;font-size:14px}.camera .option-description{grid-column:1/-1}.camera .option-inspect{min-height:36px}.option{border-radius:9px}.option-label{font-size:calc(16px * var(--text-scale));padding:10px 4px 3px}.option-age{font-size:calc(12px * var(--text-scale));padding-bottom:10px}.character-window,.character-window.npc-portrait{height:125px}.character-window .character-art{width:136%;left:-18%;top:0}.option-check{width:22px;height:22px;top:5px;right:5px}.option-check svg{width:14px;height:14px}.task-heading h2,.choice-view h2{font-size:27px}.task-kicker{font-size:13px}.task-evidence{font-size:calc(13px * var(--text-scale))}.task-controls{gap:8px;margin-top:18px}.task-controls>.primary{width:100%}.task-utilities{gap:0}.task-utilities button{font-size:12px;padding-inline:10px}.choice-grid{gap:8px;margin-top:16px}.choice-grid .secondary,.choice-grid .primary{width:100%;min-width:0}.hotspot{font-size:11px;padding:8px 10px;min-height:44px}.end-spread{grid-template-columns:1fr;gap:20px}.scrap-page{padding:18px}.stamp{width:70px;height:70px;font-size:14px}.learning-summary{text-align:left}.ending h2{font-size:29px}.ending .actions{flex-direction:column;align-items:stretch}.inventory-grid{grid-template-columns:repeat(2,1fr)}dialog{padding:22px 20px;max-width:calc(100vw - 20px);max-height:calc(100dvh - 24px);border-radius:16px}.modal-header h2{font-size:26px}.modal-header{gap:12px}.notebook-row{flex-wrap:wrap;gap:8px}.modal-actions>*{flex:1}.trade-preview{gap:8px;grid-template-columns:1fr 25px 1fr}.trade-arrow{width:25px}.trade-preview figcaption{font-size:12px}}
@media(max-height:500px) and (orientation:landscape){.site-header{padding-top:10px}.game-heading{margin:0 0 12px}.game-heading h1{font-size:38px}.world{aspect-ratio:16/5}.room-art{object-position:center 50%}.world-person{width:12%!important}.story-panel{margin-top:-12px;padding:20px 26px}.dialogue{grid-template-columns:65px 1fr auto}.portrait{width:65px}.dialogue>.primary,.dialogue>.actions{grid-column:3;grid-row:1}.dialogue-copy{font-size:18px}.chapter-progress{margin-top:16px}.toolbar span{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.options.single-option{grid-template-columns:minmax(0,220px);justify-content:center}.room-decorations .pinned-mini{width:4.3%}.room-decorations .photo-mini{width:7%}.portrait-letter{display:flex;align-items:center;justify-content:center;font:24px Georgia,serif;color:#778566}.no-art{min-height:40px}.inspect-art.character-window{height:260px;max-width:210px}.inspect-art.character-window .character-art{width:130%;left:-15%}.inspect-art.character-window.npc-portrait{max-width:260px;height:260px}.card-art.inspect-art{max-width:230px}.room-decorations .option-art{position:absolute}

@media(min-width:1001px){.world{aspect-ratio:16/7.2}.task-mode .world{aspect-ratio:16/5.2}.task-mode .world-person{width:13%}.task-mode .world-person.player{width:14%}}
@media(max-width:600px){.task-mode .world{aspect-ratio:16/9}.task-mode .world-person{width:17%}.task-mode .world-person.player{width:18%}}

.word-lookup{white-space:nowrap}.story-moment{position:absolute;inset:0;z-index:6;pointer-events:none;display:flex;align-items:center;justify-content:center;gap:25px;background:#11261b30;animation:moment-in .2s ease-out}.moment-card{width:100px;border:6px solid #f8f0d9;border-radius:8px;box-shadow:0 8px 22px #0004;transform:rotate(-8deg)}.moment-card.give{animation:exchange-give 1.4s ease-in-out both}.moment-card.receive{animation:exchange-receive 1.4s ease-in-out both}.moment-photo{width:220px;border:9px solid #fbf3e1;box-shadow:0 8px 22px #0004;animation:photo-settle 1.3s ease-out both}.moment-sticker{width:100px;height:130px;overflow:hidden;border:6px solid #fbf3e1;border-radius:9px;background:#e8dcc0;animation:photo-settle 1.3s ease-out both}.moment-sticker .character-window{height:160px}.moment-binder{background:#375b40;padding:24px;border:4px solid #cabb94;border-radius:10px;box-shadow:0 8px 20px #0003;animation:photo-settle 1s ease-out both}.moment-binder svg{width:70px;height:70px;color:#efe7d1}@keyframes exchange-give{0%{transform:translateX(-50px) rotate(-10deg)}70%,100%{transform:translateX(65px) rotate(8deg)}}@keyframes exchange-receive{0%{transform:translateX(50px) rotate(10deg)}70%,100%{transform:translateX(-65px) rotate(-8deg)}}@keyframes photo-settle{0%{opacity:0;transform:translateY(-35px) rotate(10deg)}60%,100%{opacity:1;transform:translateY(0) rotate(-4deg)}}@keyframes moment-in{from{opacity:0}to{opacity:1}}.reduced-motion .story-moment *{animation:none!important}
@media(max-width:600px){.task-heading{position:sticky;top:0;z-index:3;background:var(--paper);padding:12px 0;margin-top:-12px}.task-heading h2{font-size:24px}.moment-card{width:70px}.moment-photo{width:150px}.moment-sticker{width:80px;height:105px}}

.scrapbook-spread{display:grid;grid-template-columns:1fr 1fr;gap:3px;margin:0 0 22px;border:8px solid #5a7150;border-radius:8px;box-shadow:0 4px 10px #20351e22}.scrapbook-leaf{position:relative;min-width:0;background:#eee5cd;padding:20px 16px 25px;box-shadow:inset -6px 0 9px #ad977522}.scrapbook-leaf+.scrapbook-leaf{box-shadow:inset 6px 0 9px #ad977522;padding-bottom:105px}.scrapbook-handwriting{font:italic 18px Georgia,serif;margin-bottom:16px!important;color:#69714f}.scrapbook-leaf .character-window{height:220px;border:6px solid #fbf4e4;transform:rotate(-4deg);background:#dccfb1;box-shadow:0 3px 5px #0002}.scrapbook-leaf .camera-art{border:6px solid #fbf4e4;transform:rotate(3deg);box-shadow:0 3px 5px #0002}.scrapbook-leaf h3{font-size:24px;margin:15px 0 5px}.scrapbook-leaf>p:not(.scrapbook-handwriting){font-size:13px;margin-top:14px}.scrapbook-leaf .scrapbook-stars{font-size:24px!important;color:#8d694f;letter-spacing:10px}.photo-space{min-height:170px;border:1px dashed #a3a283;display:flex;align-items:center;text-align:center;padding:20px;font:italic 18px Georgia,serif}.scrapbook-leaf .stamp{width:72px;height:72px;font-size:15px;right:18px;bottom:20px}
@media(max-width:600px){.scrapbook-spread{grid-template-columns:1fr;gap:5px}.scrapbook-leaf{padding:20px}.scrapbook-leaf .character-window{height:240px}.scrapbook-leaf+.scrapbook-leaf{padding-bottom:110px}.scrapbook-leaf .stamp{width:76px;height:76px}}

.speaker-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}.speaker-row .speaker{margin:0}.line-voice{display:inline-flex;gap:6px;align-items:center;min-height:40px;padding:6px 10px;border-radius:18px;background:#e5e5d4;color:#40583d;font-size:12px;line-height:1.4;margin-left:auto}.line-voice svg{width:15px;height:15px}.voice-wave{height:18px;display:flex;align-items:center;gap:3px;opacity:0}.voice-wave i{width:3px;height:5px;background:#557650;border-radius:3px}.voice-playing .voice-wave{opacity:1}.voice-playing .voice-wave i{animation:voice-wave .8s ease-in-out infinite alternate}.voice-wave i:nth-child(2){animation-delay:-.2s!important}.voice-wave i:nth-child(3){animation-delay:-.5s!important}.voice-wave i:nth-child(4){animation-delay:-.35s!important}.settings-heading{font-size:22px;margin-top:8px}.settings-heading:not(:first-child){margin-top:24px}.volume-setting{flex-wrap:wrap}.volume-setting input[type=range]{accent-color:#39583b;flex:1;min-width:110px;min-height:48px;max-width:200px}.volume-value{min-width:40px;font-size:13px;text-align:right}.reduced-motion .voice-wave i{animation:none!important;height:11px}.reduced-motion .voice-wave i:nth-child(2n){height:17px}@keyframes voice-wave{from{height:4px}to{height:18px}}@media(max-width:600px){.speaker-row{gap:6px}.line-voice{font-size:11px;padding:6px 8px;min-height:40px}.voice-wave{display:none}.volume-setting input[type=range]{max-width:150px}.settings-heading{font-size:21px}}
