@import url('https://fonts.googleapis.com/css2?family=Gowun+Batang:wght@400;700&family=Noto+Sans+KR:wght@400;500;600&display=swap');
:root{color-scheme:dark;--cream:#f4efd9;--muted:#c7d1bb}*{box-sizing:border-box}body{margin:0;background:#183a35;color:var(--cream);font-family:'Noto Sans KR',sans-serif;font-size:14px;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;font:inherit;color:inherit}button:focus-visible,a:focus-visible{outline:2px solid #dfedb5;outline-offset:5px}button:disabled{opacity:.5;cursor:wait}#world{position:fixed;width:100%;height:100%;touch-action:none;display:block}body:before{content:'';position:fixed;inset:0;pointer-events:none;z-index:1;background:linear-gradient(90deg,rgba(8,28,24,.76),rgba(9,27,25,.1) 65%),linear-gradient(0deg,rgba(6,25,21,.55),transparent 26%,transparent 80%,rgba(8,25,22,.4));transition:opacity 1.5s}body.playing:before{opacity:.28}header{position:fixed;z-index:3;top:0;left:0;width:100%;padding:35px 4.5%;display:flex;align-items:center;justify-content:space-between}.brand{text-decoration:none;color:inherit;display:flex;align-items:center;gap:13px;font-family:'Gowun Batang',serif;font-size:28px}.brand-mark{font-size:44px;font-family:serif;color:#d7e3b1}.brand small{display:block;font:8px sans-serif;letter-spacing:2.6px;margin-top:5px}.top-right{display:flex;gap:24px;align-items:center;font-size:11px}.top-right button{border:1px solid #dce8c344;background:#17382d66;border-radius:30px;padding:11px 18px}#welcome{position:absolute;z-index:2;left:8.5%;top:28%;}.eyebrow{font-size:11px;letter-spacing:2px;color:#d2dfa9;display:flex;align-items:center;gap:12px}.eyebrow>span{width:23px;height:1px;background:currentColor}h1{font-family:'Gowun Batang',serif;font-size:clamp(38px,4.3vw,70px);line-height:1.42;letter-spacing:-2px;font-weight:400;margin:26px 0 21px}#welcome p{font-size:14px;line-height:2;color:#d1d6c5;font-weight:400;margin:0 0 31px}#enter{min-width:226px;background:#e2e9c9;border:0;border-radius:4px;padding:18px 23px;color:#1a3b30;display:flex;align-items:center;justify-content:space-between;font-weight:600;box-shadow:0 8px 50px #b4da6d22}#enter span{font-size:21px;font-weight:400}.entry-note{font-size:10px;letter-spacing:1px;color:#abbda6;margin-top:16px}#scene-label{position:absolute;z-index:2;right:5%;bottom:19%;text-align:right;border-right:1px solid #c3dd9866;padding-right:16px}#scene-label span{font:9px sans-serif;letter-spacing:2px;color:#d5e3b7}#scene-label p{font-family:'Gowun Batang',serif;font-size:18px;margin:10px 0}#intro-foot{position:fixed;z-index:2;bottom:32px;left:4.5%;right:4.5%;border-top:1px solid #d8e7c127;padding-top:18px;display:flex;justify-content:space-between;font-size:10px;letter-spacing:.6px;color:#bdcdb4}#play-ui{position:fixed;z-index:3;bottom:26px;left:50%;transform:translateX(-50%);text-align:center;width:max-content;max-width:96%}.guide{display:flex;gap:9px;justify-content:center;align-items:center;margin-bottom:17px;font-size:12px;text-shadow:0 2px 8px #000}.live-dot{width:5px;height:5px;border-radius:50%;background:#daefb6}.guide button{border:1px solid #e6f0cd66;border-radius:50%;background:#15383180;width:22px;height:22px;font-size:12px}.actions{display:flex;gap:6px;padding:7px;background:#142f29d9;border:1px solid #c0d6ac44;border-radius:16px;backdrop-filter:blur(18px);box-shadow:0 10px 30px #0003}.actions button{border:0;background:transparent;border-radius:10px;padding:12px 22px;font-size:11px;min-width:100px}.actions button:hover{background:#dce7be20}.actions button span{display:block;font:26px serif;color:#d1e2aa;margin-bottom:7px}.controls{margin-top:13px;font-size:10px;color:#d1dbbd}.controls i{font-style:normal;margin:0 10px;color:#a2b396}#toast{position:fixed;z-index:5;left:50%;top:19%;transform:translate(-50%,-10px);opacity:0;pointer-events:none;background:#e5ebd3;color:#294432;padding:13px 23px;border-radius:40px;font-size:12px;transition:.4s;width:max-content;max-width:90%;text-align:center}#toast.show{opacity:1;transform:translate(-50%,0)}dialog{border:1px solid #a7c09644;border-radius:17px;background:#19382f;color:var(--cream);padding:40px;max-width:92vw;line-height:2}dialog::backdrop{background:#071b16aa;backdrop-filter:blur(6px)}dialog h2{font-family:'Gowun Batang',serif;font-weight:400}dialog p{font-size:13px;color:#c5d3b8}dialog small{font-size:10px;color:#a7bd9b}#close-help{position:absolute;right:15px;top:10px;background:none;border:0;font-size:25px}[hidden]{display:none!important}.playing #welcome,.playing #scene-label,.playing #intro-foot{display:none}
@media(max-width:600px){header{padding:22px 6%;align-items:flex-start}.brand{font-size:23px}.brand-mark{font-size:34px}.brand small{font-size:6px;letter-spacing:1.6px}.top-right{gap:9px;flex-direction:column-reverse;align-items:flex-end;font-size:9px}.top-right button{font-size:10px;padding:8px 12px}#welcome{left:8%;top:29%}h1{font-size:38px;letter-spacing:-1.5px}#welcome p{font-size:12px}#scene-label{bottom:17%;right:8%}#scene-label p{font-size:14px}#intro-foot{bottom:25px;font-size:9px}#intro-foot span:last-child{display:none}#play-ui{bottom:max(20px,env(safe-area-inset-bottom))}.actions{gap:0;padding:5px;border-radius:13px}.actions button{padding:10px 12px;min-width:77px;font-size:10px}.controls{font-size:9px}.controls i{margin:0 4px}.guide{font-size:11px;max-width:95vw}.playing header{padding:17px 5%}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
/* Solo Eden: a compact walking guide and unobtrusive first-person controls. */
#destinations{position:fixed;z-index:3;left:26px;top:142px;display:flex;flex-direction:column;gap:6px;padding:15px;background:#15382ac9;border:1px solid #d8e6bd30;border-radius:14px;backdrop-filter:blur(14px)}#destinations>span{font-size:9px;color:#bdcdaa;letter-spacing:1px;margin:0 5px 7px}#destinations button{background:none;border:0;text-align:left;font-size:11px;padding:9px 13px;border-radius:8px}#destinations button:hover{background:#dce7bf22}#destinations button:last-child{color:#b4bea2;font-size:10px;margin-top:8px;border-top:1px solid #dae4ba25;border-radius:0}#basket{position:fixed;z-index:3;right:4.5%;top:120px;font-size:11px;text-align:right;color:#e4e9cc}#basket strong{font:25px 'Gowun Batang',serif;margin-left:10px}#basket small{display:block;font-size:9px;color:#c1d0b2;margin-top:6px}.solo-actions button{min-width:85px;padding:9px 13px;font-weight:400}.solo-actions b{font-weight:400;display:block;font-size:11px}.solo-actions small{display:block;font-size:8px;letter-spacing:1px;margin-top:4px;color:#afc49c}.solo-actions button:disabled{cursor:default;opacity:.35}#rest-views{display:flex;justify-content:center;gap:7px;margin-top:12px}#rest-views button{background:#15382be8;border:1px solid #d1ddb64d;border-radius:25px;padding:9px 17px;font-size:10px}#stand{color:#f1deb7}.first-person #destinations{opacity:.15;transition:opacity .4s}.first-person #destinations:hover{opacity:1}.first-person #basket{opacity:.5}.first-person .actions{background:#10291eb3}.first-person #play-ui .controls{opacity:.55}#temptation{position:fixed;z-index:5;top:140px;left:50%;transform:translateX(-50%);background:#29392deb;border:1px solid #c8b97b80;backdrop-filter:blur(16px);border-radius:18px;padding:24px;width:min(440px,90vw);text-align:center;box-shadow:0 10px 70px #091a14aa}#temptation small{font-size:10px;display:block;color:#c8ceac}#temptation p{font-family:'Gowun Batang',serif;font-size:19px;line-height:1.8;min-height:65px}#tempt-progress{height:3px;background:linear-gradient(90deg,#d1b979 var(--progress,0%),#68735b var(--progress,0%));margin:20px 0}#temptation button{border:1px solid #d3d9ad66;background:#152c22;border-radius:22px;padding:10px 23px;margin-bottom:15px;font-size:12px}
@media(max-width:600px){#destinations{left:10px;top:110px;gap:3px;padding:8px}#destinations button{font-size:9px;padding:8px}#destinations>span{font-size:8px}#basket{top:111px}.solo-actions{max-width:96vw;flex-wrap:wrap;justify-content:center}.solo-actions button{min-width:73px;padding:7px 9px;font-size:9px}.solo-actions b{font-size:9px}.solo-actions button span{font-size:21px;margin-bottom:3px}.guide{padding:0 9px;font-size:10px}#rest-views{gap:4px}#rest-views button{padding:8px 12px}.controls{max-width:92vw;margin-inline:auto;line-height:1.7}.first-person #destinations{display:none}#temptation{top:190px}}
.first-person .actions{display:none}.first-person .actions:has(#fish:not([hidden])){display:flex}.first-person header{opacity:.55;transition:opacity .5s}.first-person header:hover{opacity:1}
#nature-view{position:fixed;inset:0;z-index:1;overflow:hidden;background:#243e29;pointer-events:none;isolation:isolate}#nature-view[hidden]{display:none} .nature-photo{position:absolute;inset:-5%;background-size:cover;background-repeat:no-repeat;opacity:0;transition:opacity 1.8s ease;will-change:transform;filter:saturate(.87) contrast(.97)}.nature-photo.on{opacity:1}.nature-light{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 64%,rgba(255,153,48,var(--fire-glow,0)),transparent 65%);mix-blend-mode:screen;z-index:2}#nature-motion{position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none}#gentle-fawn{position:absolute;z-index:4;width:min(370px,32vw);height:auto;right:13%;bottom:17%;filter:drop-shadow(0 12px 11px #293a2450);transform-origin:50% 80%;pointer-events:none}#nature-caption{position:absolute;bottom:175px;left:0;right:0;text-align:center;z-index:5;text-shadow:0 2px 25px #12241299;pointer-events:none}#nature-kicker{font:9px sans-serif;letter-spacing:3.5px;color:#f7f3dc}#nature-title{font-family:'Gowun Batang',serif;font-size:21px;color:#fff9e5;margin:12px 0;font-weight:400}body:not(.playing) #nature-caption{display:none}body:before{z-index:2;background:linear-gradient(90deg,rgba(8,28,16,.58),transparent 73%),linear-gradient(0deg,rgba(6,25,17,.4),transparent 35%)}body.playing:before{opacity:.16}.nature-active #world{opacity:0}.entry-buttons{display:flex;align-items:center;gap:20px}#walk-enter{background:none;border:0;border-bottom:1px solid #dce6bc70;padding:12px 0;color:#f2eed8;font-size:12px}#scene-label{opacity:.8}#welcome h1{font-size:clamp(38px,4.3vw,67px)}.first-person header{opacity:.35}.first-person .guide{opacity:.6}.first-person .controls{display:none}#rest-views{padding:7px;border-radius:40px;border:1px solid #e8edd540;background:#19332250;backdrop-filter:blur(16px)}#rest-views button{border:0;background:transparent;padding:12px 19px;font-size:11px}#rest-views button:hover{background:#ffffff18}.first-person #basket{opacity:.2}.first-person #play-ui{bottom:28px}.first-person #nature-title{letter-spacing:.5px}.first-person #destinations{display:none}.first-person #rest-views button:last-child{border-left:1px solid #e6edc733;border-radius:0;padding-left:20px}.playing .brand small{letter-spacing:2px}#welcome .entry-note{color:#e2e6cf}#intro-foot{color:#e0e5cf}
@media(max-width:600px){#welcome{top:27%;left:7%;right:5%}#welcome h1{font-size:36px;line-height:1.5}#welcome p{font-size:12px;line-height:2}#enter{min-width:185px;padding:16px 20px}.entry-buttons{gap:15px}#walk-enter{font-size:10px}#scene-label{bottom:14%;right:7%}#gentle-fawn{width:62vw;right:4%;bottom:23%}#nature-caption{bottom:160px;padding:0 20px}#nature-title{font-size:18px}#nature-kicker{font-size:8px;letter-spacing:2px}#rest-views{max-width:95vw;gap:0;padding:4px;border-radius:28px}#rest-views button{padding:11px 10px;font-size:10px}.first-person #rest-views button:last-child{padding-left:12px}.first-person #basket{display:none}.first-person .guide{font-size:10px;padding-inline:15px}.first-person #play-ui{bottom:23px}#nature-view[data-view='animal'] #nature-caption{bottom:130px}.first-person .top-right{font-size:8px}}
@media(prefers-reduced-motion:reduce){.nature-photo{transition:none}}
@media(max-width:600px){#nature-view[data-view='animal'] #nature-caption{top:20%;bottom:auto}}
#temptation{max-height:80vh;overflow:auto;z-index:6;width:min(340px,88vw);box-sizing:border-box}
#levels{display:flex;flex-wrap:wrap;justify-content:center;gap:5px}
#memory-board{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;padding:6px;background:#b38853;border-radius:8px}
#memory-board button{display:grid;place-items:center;height:43px;font-size:20px;color:#322d27;border:0;border-radius:2px;background:linear-gradient(90deg,transparent 49%,#866541 49% 51%,transparent 51%),linear-gradient(transparent 49%,#866541 49% 51%,transparent 51%),#e4bf83}
#memory-board button:disabled{opacity:1}#memory-board button[data-stone=true]{color:#262722;text-shadow:0 1px 2px #776452}
#memory-leave{margin-top:9px}#destinations{max-height:52vh;overflow:auto}
#temptation:has(#memory-offer:not([hidden])),#temptation:has(#memory-play:not([hidden])){top:50%;transform:translate(-50%,-50%);max-height:88dvh}
#memory-play p{min-height:0;font:13px/1.5 sans-serif}#memory-board button{padding:0;margin:0}
#character-picker{width:min(640px,94vw);max-height:93dvh;box-sizing:border-box;padding:24px;background:#f8f5ed;color:#273d31}
#character-picker h1{margin:0 0 16px;font:500 25px 'Gowun Batang',serif;color:#2a4636}
.picker-layout{display:grid;grid-template-columns:1fr 1fr;gap:18px}.portrait{background:#e0e7d7;border-radius:14px;overflow:hidden}.portrait canvas{display:block;width:100%;height:275px}.portrait label{display:flex;align-items:center;gap:6px;justify-content:center;padding:4px 8px;font-size:11px}.portrait input{width:54%;accent-color:#4c7359}
#character-picker .options{display:grid;grid-template-columns:1fr 1fr;align-content:center;gap:13px 9px}.options label{display:grid;gap:4px;font-size:12px}.options select{min-width:0;width:100%;padding:8px 4px;border:1px solid #abb9aa;background:white;color:#263f31;border-radius:6px}#character-picker footer{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}#character-picker footer button{border:1px solid #93a18b;border-radius:8px;padding:9px 15px;color:#304436;background:transparent}#character-picker .confirm{background:#385e43;color:white}
@media(max-width:540px){#character-picker{padding:16px}.picker-layout{grid-template-columns:1fr;gap:10px}.portrait canvas{height:175px}#character-picker .options{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.options select{font-size:12px}}
#camp-work{max-width:min(92vw,450px);margin:0 auto 7px;background:#263a2edc;border:1px solid #f4ecd13a;border-radius:14px;padding:8px 14px;font-size:12px}
#camp-work progress{height:5px;width:100%;accent-color:#e4bd81}#camp-work button{border:1px solid #f2ead94d;border-radius:20px;background:#314439;padding:7px 11px;margin:3px}#camp-work .camp-caption{display:block}
.first-person #rest-views{display:flex;flex-wrap:wrap;justify-content:center}
