/* Readable story pacing and a village that can be walked through. */
[hidden]{display:none!important}
.explorer{transition:none}.walking-paths{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}.walking-paths g{stroke:#c7a772;stroke-width:.9;opacity:.42;filter:url(#path-soft)}.walking-paths #walk-route{fill:none;stroke:#745b35;stroke-width:.28;stroke-dasharray:.4 1.5;stroke-linecap:round;opacity:.85}
.village-spot{margin-top:-32px}.travel-screen .village-spot small{font-size:12px}.travel-screen .movement-tip{font-size:13px}.travel-guide{top:auto;bottom:15px;max-width:350px}.travel-guide small{font-size:13px}.travel-guide button{font-size:14px}.explorer-name{font-size:12px}
.scene-fade{position:fixed;inset:0;z-index:50;background:#152c25;opacity:0;transition:opacity .42s ease;pointer-events:all}.scene-fade.covered{opacity:1}
.story-overlay,.calendar-overlay{position:fixed;inset:0;z-index:45;display:grid;place-items:center;background:linear-gradient(#132c27d9,#16281df2);color:#fff1d3;padding:20px;backdrop-filter:blur(4px);animation:story-in .6s ease}.story-card{width:min(740px,94vw);display:grid;grid-template-columns:110px 1fr;gap:18px 26px;padding:35px;border:1px solid #d6be8577;border-radius:16px;background:linear-gradient(140deg,#345445f2,#192f28f2);box-shadow:0 20px 90px #061a1a55}.story-card>small{font-size:14px;letter-spacing:.1em;color:#d2c49c;grid-column:2}.story-card h1{font-family:Batang,serif;font-size:30px;font-weight:400;grid-column:2;line-height:1.5}.story-card p{grid-column:2;font-size:21px;line-height:1.9;min-height:140px;word-break:keep-all}.story-card>button{grid-column:2;justify-self:end;font-size:17px;padding:13px 25px}.story-portrait{grid-row:1/5;grid-column:1;align-self:center;font-size:66px;text-align:center}.story-portrait.villager{position:relative;height:130px;font-size:16px;display:flex;justify-content:center}.story-portrait b{position:absolute;bottom:0;width:100%;font-weight:400;letter-spacing:.15em}.villager-head{position:absolute;top:14px;left:calc(50% - 25px);width:50px;height:48px;border-radius:45% 45% 48% 48%;background:#eebf91;border-top:15px solid #664934;box-shadow:inset 0 -4px #dba67f}.villager-head:after{content:'•  •';position:absolute;left:10px;top:4px;font-size:18px;color:#3c322b}.villager-body{position:absolute;top:61px;left:calc(50% - 34px);width:68px;height:45px;border-radius:25px 25px 8px 8px;background:linear-gradient(90deg,#b27830,#dfac49,#b27830);border-bottom:7px solid #648550}
.typewriter:after{content:'▏';animation:blink .75s steps(1) infinite;color:#c9ab70}.chapter-film{text-align:center;width:min(650px,95vw)}.chapter-film>small{font-size:14px;letter-spacing:.4em;color:#c8c49d}.chapter-film h1{font-family:Batang,serif;font-weight:400;font-size:30px;line-height:1.6;margin:18px 0 8px}.chapter-film>p{font-size:17px;letter-spacing:.25em;color:#d9cca7;margin-bottom:20px}.chapter-film button{font-size:16px;animation:story-in 1.6s}.calendar-book{position:relative;width:170px;height:200px;margin:22px auto 0;perspective:750px}.calendar-page{position:absolute;inset:0;border-radius:4px 4px 14px 14px;background:linear-gradient(#8d4736 0 38px,#fff2d6 38px);color:#524132;box-shadow:0 10px 15px #0005;display:flex;flex-direction:column;align-items:center;transform-origin:top center;backface-visibility:hidden}.calendar-page small{font-size:13px;color:#f4dca4;margin:11px 0 26px}.calendar-page strong{font-family:Georgia,serif;font-weight:400;font-size:78px;line-height:1.2}.calendar-page>span{font-size:17px;letter-spacing:.25em;margin-top:6px}.calendar-book>i{position:absolute;top:-9px;left:30px;height:25px;width:8px;border:2px solid #dcc592;border-radius:6px;background:#68583d;z-index:2}.calendar-book>i:last-child{left:auto;right:30px}.turning-page{animation:calendar-turn 1.3s .15s ease-in forwards}
.chapter-screen .choice{min-height:90px;align-items:center;padding:15px 13px;gap:10px}.chapter-screen .choice strong{font-size:18px;line-height:1.55;word-break:keep-all}.choice>span{width:26px;height:26px;font-size:14px}.chapter-screen .quest{max-height:72%;padding:20px 24px;column-gap:28px}.chapter-screen .quest-heading h2{font-size:24px}.quest-tag{font-size:14px}.chapter-screen .dialogue{font-size:18px;line-height:1.75}.villager-dialogue{display:block;position:relative}.dialogue-portrait{display:block;position:relative;width:72px;height:94px;float:left;margin:0 14px 4px 0}.dialogue-portrait .villager-head{top:0}.dialogue-portrait .villager-body{top:47px}.villager-dialogue>p{min-height:130px}.villager-dialogue button{display:block;font-size:15px;text-decoration:none;padding:8px 0}.chapter-screen .result-panel{width:440px}.chapter-screen .result-panel p,.chapter-screen .final-panel p{font-size:18px;line-height:1.75}.chapter-screen .result-panel h2{font-size:22px}.chapter-banner h1{font-size:24px}.chapter-banner p,.chapter-back{font-size:14px}.previous-scene{position:absolute;inset:0;opacity:1;transition:opacity 1.7s ease;z-index:1}.previous-scene.dissolving{opacity:0}.chapter-scene:after{z-index:2}.chapter-screen .quest.final-panel{width:510px;max-height:85%;padding:20px}.meeting-journal{display:grid;gap:12px}.meeting-journal p{font-size:16px;display:grid;grid-template-columns:66px 1fr;gap:12px;line-height:1.6}.meeting-journal b{color:#59733b;font-weight:700}.final-choices strong{font-size:17px!important}.chapter-screen .final-panel h2{font-size:24px}.cinema.rolling .credits-window{overflow:hidden;mask-image:linear-gradient(transparent,#000 8%,#000 90%,transparent)}.cinema.rolling .credits{will-change:transform}.cinema .credits p{font-size:19px;line-height:2;text-align:center;margin:38px 0}.cinema .credits h1{font-size:30px}.saved-photos{display:flex;gap:12px;margin-top:15px}.saved-photos img{width:calc((100% - 24px)/3);height:auto;border:7px solid #fff5d8;border-bottom-width:20px;box-shadow:0 4px 9px #3e392a44;transform:rotate(-2deg)}.saved-photos img:nth-child(2){transform:rotate(3deg)}
/* Keep instructions legible even in the tablet's shorter browser viewport. */
.chapter-screen .quest.mission-panel{grid-template-columns:minmax(220px,.72fr) minmax(0,1.7fr);gap:14px 22px}.mission-panel .quest-heading h2{font-size:23px}.mission-plan-name{font-size:14px;line-height:1.6}.mission-panel .dialogue{font-size:17px;line-height:1.8}.mission-panel .quest-footer button{font-size:15px;padding:10px 5px}.chapter-screen #task-note{font-size:14px}.mission-device-top{font-size:14px}.mission-feedback{font-size:15px;min-height:55px;line-height:1.6}.mission-device-top strong{font-size:14px}.observation-console{font-size:14px}.observation-console button{font-size:14px}.observation-object small{font-size:12px;white-space:nowrap;background:#f9edca;padding:2px 4px;border-radius:5px;pointer-events:none}.brush-cursor{transform:translate(-50%,-50%);width:54px;height:54px;font-size:42px;display:grid;place-items:center}.photo-field{background:url('assets/village.webp') 86% 20%/220% auto}.camera-flash{position:absolute;inset:0;background:white;opacity:0;pointer-events:none}.taking-photo .camera-flash{animation:camera-flash .3s ease}.photo-strip{display:flex;gap:8px;height:57px;justify-content:center;padding:4px;background:#5c6d49}.photo-strip img{height:100%;width:auto;border:4px solid #fff4d9;border-bottom-width:8px;transform:rotate(-3deg);animation:photo-appear .4s ease}.photo-strip img:nth-child(2){transform:rotate(3deg)}
.plumbing-work{width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;gap:18px;padding:12px 16px;background:linear-gradient(120deg,#8b9c84,#566c61);color:#fff3d7}.plumbing-route{position:relative;display:flex;align-items:center;justify-content:space-between;gap:8px}.plumbing-route>span{font-size:14px;text-align:center;flex:1}.pipe-socket,.loose-pipe{font:700 54px Georgia,serif;color:#526c71;background:#dfdcb8;border:3px dashed #5a726b;border-radius:12px;min-width:55px;min-height:55px;padding:0 8px}.pipe-socket{opacity:.5}.pipe-socket.fitted{opacity:1;border-style:solid;color:#2b737e}.pipe-supplies{display:flex;justify-content:center;gap:20px}.loose-pipe{background:#acb8ad;border-style:solid;color:#dce9d8;box-shadow:0 4px #384c47}.loose-pipe.stored{visibility:hidden}.valve,.cup-controls>button{padding:10px 14px;border:2px solid #b99c5e;border-radius:9px;background:#f6ddb0;color:#475c41;font-size:16px;align-self:center}.water-stream{position:absolute;left:8%;right:8%;height:6px;top:50%;pointer-events:none;background:repeating-linear-gradient(90deg,#99e4e6 0 15px,#3497b5 15px 25px);opacity:0;border-radius:5px}.water-running .water-stream{opacity:.85;animation:waterflow .6s linear infinite}
.spraying-work{flex:1;position:relative;padding:18px;background:linear-gradient(135deg,#927046,#c2a271);cursor:crosshair;overflow:hidden}.crop-bed{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(3,1fr);height:100%;gap:10px;background:repeating-linear-gradient(0deg,#9d744b 0 8px,#a98054 8px 14px);border-radius:20px}.spray-crop{position:relative;border-radius:10px;background:transparent;min-height:0;padding:0;font-size:38px;overflow:hidden}.spray-crop>span{position:relative;z-index:1;pointer-events:none}.spray-crop>i{position:absolute;inset:0;background:radial-gradient(circle,#b2e0dfaa,transparent 65%);pointer-events:none}.sprayed{filter:brightness(1.1)}.sprayer-cursor{position:absolute;right:6%;top:25%;pointer-events:none;transform:translate(-50%,-50%);font-size:38px;width:50px;height:58px;z-index:4}.sprayer-cursor span{position:absolute;right:0;bottom:0}.mist{position:absolute;left:-44px;top:-23px;width:75px;height:55px;background:radial-gradient(ellipse,#ddffffcc,transparent 68%);opacity:0}.active .mist{opacity:1;animation:mist-puff .25s ease-in-out infinite}.soil-pot{position:relative;overflow:hidden}.seed-grains{font-style:normal;font-size:28px;letter-spacing:6px;color:#ffe4a2;opacity:0;pointer-events:none}.seeded .seed-grains{animation:seed-drop .6s ease both}.growing-flower{transform-origin:bottom center}.watered .growing-flower{animation:flower-grow .9s cubic-bezier(.2,.8,.2,1) both}.plant-tool{font-size:14px}.soil-pot>small{font-size:12px}
.cup-work{width:100%;height:100%;display:flex;gap:25px;justify-content:center;align-items:center;padding:15px;background:radial-gradient(ellipse,#74805b,#354b3e)}.cup-stack{width:160px;height:100%;position:relative;min-height:130px}.cup-table{position:absolute;bottom:13px;left:0;right:0;height:15px;border-radius:5px;background:linear-gradient(#c6a773,#927344);box-shadow:0 15px 0 -5px #685236}.paper-cup{position:absolute;bottom:calc(27px + var(--cup) * 19px);left:calc(40px + var(--cup) * 2px);font-size:0;width:76px;height:47px;background:linear-gradient(90deg,#cfc6b3,#fff7e1,#d5cbb8);clip-path:polygon(0 0,100% 0,80% 100%,20% 100%);border-top:5px solid #fffbef}.falling-cup{animation:cup-drop .48s ease-in both}.cup-controls{display:flex;flex-direction:column;gap:24px}.festival-switches{display:flex;gap:12px}.festival-bulb{width:65px;height:75px;border-radius:12px;border:2px solid #a8ad8a;background:#354b3e;color:#eee3bc;font-size:36px;filter:grayscale(1)}.festival-bulb.lit{filter:none;background:#e7c478;box-shadow:0 0 25px #f7df8f99}
.fire-work{position:relative;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:15px;gap:10px;background:radial-gradient(ellipse at bottom,#a99777,#465c49);overflow:hidden}.fire-work button{background:none;position:relative;height:70%;min-height:80px;width:90%;touch-action:none}.rubbish-pile{position:absolute;bottom:8px;left:0;right:0;font-size:45px}.fire-flame{position:absolute;bottom:4px;left:35%;font-size:80px;opacity:0;transform-origin:bottom}.friction-sparks{position:absolute;left:45%;bottom:40px;font-size:30px;color:#fff5c1;opacity:0}.fire-work button:active .friction-sparks{opacity:1;animation:mist-puff .2s infinite}.burning .fire-flame{opacity:1;animation:fire-dance .4s ease-in-out infinite alternate}.fire-work p{font-size:15px;color:#fff3d2}.heat-meter{height:14px;width:75%;border:2px solid #d1c39a;background:#354b3a;border-radius:10px;overflow:hidden}.heat-meter span{display:block;height:100%;background:linear-gradient(90deg,#efc264,#d77a43,#c84e36);transition:width .08s}.fire-smoke{position:absolute;inset:0;pointer-events:none;opacity:0}.burning .fire-smoke{opacity:1}.fire-smoke i{position:absolute;left:42%;bottom:30%;width:90px;height:90px;border-radius:50%;background:radial-gradient(circle,#62736eaa,#53656200 68%);animation:smoke-rise 2.6s infinite ease-out}.fire-smoke i:nth-child(2){animation-delay:.7s;left:49%}.fire-smoke i:nth-child(3){animation-delay:1.5s;left:37%}
@keyframes story-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes calendar-turn{0%{transform:rotateX(0);opacity:1}80%{opacity:1}100%{transform:rotateX(-130deg);opacity:0}}@keyframes camera-flash{0%{opacity:1}100%{opacity:0}}@keyframes photo-appear{from{opacity:0;translate:0 18px}to{opacity:1;translate:0 0}}@keyframes cup-drop{from{translate:0 -200px;rotate:-12deg}to{translate:0 0;rotate:0deg}}@keyframes seed-drop{0%{opacity:1;translate:0 -50px}90%{opacity:1}100%{opacity:0;translate:0 20px}}@keyframes flower-grow{from{transform:scale(.08);opacity:0}to{transform:scale(1);opacity:1}}@keyframes mist-puff{50%{scale:1.2;opacity:.65}}@keyframes smoke-rise{from{translate:0 0;scale:.6;opacity:.9}to{translate:-25px -190px;scale:2;opacity:0}}@keyframes fire-dance{to{scale:.9 1.1}}@keyframes waterflow{to{background-position:25px 0}}
@media(max-width:1100px){.chapter-screen .choice strong{font-size:16px}.chapter-screen .choice{min-height:80px}.chapter-screen .dialogue{font-size:16px}.mission-panel .dialogue{font-size:15px}.mission-plan-name{font-size:13px}.mission-feedback{font-size:14px}.cinema .credits p{font-size:17px}.chapter-screen .quest.mission-panel{grid-template-columns:minmax(205px,.75fr) minmax(0,1.7fr)}.chapter-screen .quest-heading h2{font-size:21px}}
@media(max-height:550px){.story-card{padding:22px;gap:11px 18px;grid-template-columns:85px 1fr}.story-card h1{font-size:24px}.story-card p{font-size:18px;line-height:1.8;min-height:100px}.story-card>button{font-size:15px;padding:10px 17px}.calendar-book{width:130px;height:155px;margin-top:14px}.calendar-page{background:linear-gradient(#8d4736 0 32px,#fff2d6 32px)}.calendar-page small{font-size:11px;margin:8px 0 16px}.calendar-page strong{font-size:61px}.calendar-page>span{font-size:15px}.chapter-film h1{font-size:24px;margin:15px 0 5px}.chapter-film>p{margin-bottom:13px}.chapter-screen .quest{max-height:73%;padding:13px 15px;gap:9px 18px;grid-template-columns:minmax(205px,.8fr) minmax(0,1.6fr)}.chapter-screen .choice{min-height:73px;padding:10px}.chapter-screen .choice strong{font-size:15px}.chapter-screen .dialogue{font-size:15px;line-height:1.65}.chapter-screen .quest-heading h2{font-size:20px}.quest-tag{font-size:12px}.dialogue-portrait{height:74px;width:58px;margin-right:9px}.dialogue-portrait .villager-head{scale:.8;transform-origin:top}.dialogue-portrait .villager-body{top:38px;scale:.8;transform-origin:top}.villager-dialogue>p{min-height:90px}.chapter-screen .quest.mission-panel{top:87px;padding:11px;gap:9px 14px;grid-template-columns:minmax(205px,.8fr) minmax(0,1.6fr)}.mission-panel .dialogue{font-size:14px}.mission-panel .quest-footer button{font-size:13px;padding:8px 4px}.mission-panel .quest-heading h2{font-size:19px}.mission-plan-name{font-size:12px}.mission-character{font-size:29px}.mission-feedback{font-size:13px;min-height:46px;padding:6px 9px}.mission-device-top{font-size:12px}.chapter-screen #task-note{font-size:12px}.chapter-screen .result-panel,.chapter-screen .final-panel{width:450px;max-height:88%;padding:15px}.chapter-screen .result-panel h2{font-size:20px}.chapter-screen .result-panel p,.chapter-screen .final-panel p{font-size:15px;line-height:1.7}.meeting-journal{gap:8px}.meeting-journal p{font-size:14px;line-height:1.5}.chapter-screen .final-panel h2{font-size:21px}.final-choices strong{font-size:14px!important}.cinema .credits p{font-size:16px;line-height:1.9}.cinema .credits h1{font-size:25px}.travel-screen .village-spot small{font-size:11px}.travel-screen .movement-tip{font-size:11px}.travel-guide small{font-size:11px}.travel-guide button{font-size:12px}.observation-console{font-size:12px}.observation-console button{font-size:12px}.observation-object small{font-size:10px}.pipe-socket,.loose-pipe{min-width:42px;min-height:42px;font-size:40px;padding:0 5px}.plumbing-route>span{font-size:12px}.plumbing-work{gap:12px;padding:10px}.valve,.cup-controls>button{font-size:13px;padding:8px 10px}.plant-tool{font-size:12px}.soil-pot>small{font-size:10px}.cup-work{gap:12px}.cup-stack{width:135px}.festival-bulb{width:45px;height:54px;font-size:27px}.spray-crop{font-size:30px}.fire-work p{font-size:12px}.photo-strip{height:42px}}
.seed-grains{position:absolute;top:4px;left:20%}.seeded:not(.recent-plot) .seed-grains,.watering .seed-grains{animation:none;opacity:0}.water-drops{font-style:normal;position:absolute;left:20%;top:0;opacity:0;font-size:22px;pointer-events:none}.recent-plot.watering .water-drops{animation:water-drop .8s ease both}.watered:not(.recent-plot) .growing-flower{animation:none}.flower-art{position:relative;display:block;width:48px;height:53px}.flower-stem{position:absolute;width:4px;height:30px;bottom:0;left:22px;border-radius:4px;background:linear-gradient(90deg,#487240,#83aa54);rotate:5deg}.flower-leaf{position:absolute;bottom:6px;left:7px;width:22px;height:11px;background:linear-gradient(30deg,#46753c,#a0bd63);border-radius:2px 100% 2px 100%;rotate:25deg}.flower-head{position:absolute;left:24px;top:20px}.petal{position:absolute;left:-9px;top:-23px;width:18px;height:25px;border-radius:70% 70% 40% 40%;background:radial-gradient(ellipse at top,#f6bbbe,#d77a96 70%,#b15c73);transform-origin:50% 100%;rotate:calc(var(--petal) * 72deg);box-shadow:inset 1px 1px #ffe4ca77}.flower-center{position:absolute;width:13px;height:13px;border-radius:50%;left:-6px;top:-6px;background:radial-gradient(circle,#ffe48f,#b8954b);box-shadow:0 1px 2px #744c3666}.recent-plot .flower-head{animation:petals-open 1s ease both;transform-origin:center}.recent-plot .flower-stem{animation:stem-rise .7s ease both;transform-origin:bottom}
@keyframes water-drop{0%{opacity:0;translate:0 -30px}25%{opacity:1}100%{opacity:0;translate:0 40px}}@keyframes petals-open{from{scale:.1;rotate:-35deg}to{scale:1;rotate:0deg}}@keyframes stem-rise{from{scale:1 .1}to{scale:1 1}}
.cinema .credits-window{position:relative}.credits-finished .credits-window:after{content:'이야기의 끝';position:absolute;left:0;right:0;top:45%;text-align:center;font-family:Batang,serif;font-size:22px;letter-spacing:.18em;color:#eadcb6;animation:story-in 1.5s ease}
@media(prefers-reduced-motion:reduce){.fire-smoke i,.fire-flame,.mist{animation:none!important}}
/* These brief, player-triggered effects carry the action's meaning. Preserve
   them while the older reduced-motion rule still suppresses ambient loops. */
.turning-page{animation:calendar-turn 1.3s .15s ease-in forwards!important}.scene-fade{transition:opacity .42s ease!important}.previous-scene{transition:opacity 1.7s ease!important}.taking-photo .camera-flash{animation:camera-flash .3s ease!important}.falling-cup{animation:cup-drop .48s ease-in both!important}.recent-plot.seeded:not(.watering) .seed-grains{animation:seed-drop .6s ease both!important}.recent-plot.watering .water-drops{animation:water-drop .8s ease both!important}.recent-plot.watered .growing-flower{animation:flower-grow .9s cubic-bezier(.2,.8,.2,1) both!important}.recent-plot .flower-head{animation:petals-open 1s ease both!important}.recent-plot .flower-stem{animation:stem-rise .7s ease both!important}
