@font-face{font-family:'Noto Sans KR';font-style:normal;font-weight:400;font-display:swap;src:url('assets/font-sans-400.ttf')}
@font-face{font-family:'Noto Sans KR';font-style:normal;font-weight:500;font-display:swap;src:url('assets/font-sans-500.ttf')}
@font-face{font-family:'Noto Sans KR';font-style:normal;font-weight:600;font-display:swap;src:url('assets/font-sans-600.ttf')}
@font-face{font-family:'Noto Sans KR';font-style:normal;font-weight:700;font-display:swap;src:url('assets/font-sans-700.ttf')}
@font-face{font-family:'Noto Serif KR';font-style:normal;font-weight:400;font-display:swap;src:url('assets/font-serif-400.ttf')}
@font-face{font-family:'Noto Serif KR';font-style:normal;font-weight:500;font-display:swap;src:url('assets/font-serif-500.ttf')}
@font-face{font-family:'Noto Serif KR';font-style:normal;font-weight:600;font-display:swap;src:url('assets/font-serif-600.ttf')}
:root{--cream:#f6eee0;--gold:#dfbd83;--ink:#152625;--muted:#bebcb2;--serif:'Noto Serif KR',serif;--sans:'Noto Sans KR',sans-serif}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#080e0e;color:var(--cream);font-family:var(--sans)}button,input{font:inherit}button{cursor:pointer;color:inherit;border:0;background:none}button:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:5px}button:disabled{cursor:default;opacity:.32}#game{width:100%;height:100%;position:relative;overflow:hidden;isolation:isolate}.scene{position:absolute;inset:0;background-image:url('assets/bookshop-night.png');background-size:cover;background-position:center;transition:filter 1.2s,transform 2s;z-index:-2}.scene.promise{background-image:url('assets/bookshop-promise.png')}.scene.title-scene:after{content:'';position:absolute;inset:0;background:#06151565}.scene.play-scene{transform:scale(1.015)}#surface{height:100%}.title-screen{height:100%;padding:7vh 8vw;display:flex;flex-direction:column;align-items:flex-start;position:relative}.studio{font-size:10px;letter-spacing:.32em;color:#ddd5c4}.title-copy{margin-top:auto;margin-bottom:4vh;text-shadow:0 3px 20px #102020}.eyebrow{font-size:12px;letter-spacing:.32em;color:var(--gold);margin:0 0 20px}.title-copy h1{font-family:var(--serif);font-size:clamp(45px,5.4vw,86px);font-weight:500;line-height:1.35;letter-spacing:-.05em;margin:0 0 14px}.title-copy h1 span{display:block;margin-left:1.2em}.english{font-size:11px;letter-spacing:.25em;color:#e2d6bc;margin:25px 0 0}.title-menu{display:flex;flex-direction:column;align-items:flex-start;margin-bottom:auto;gap:5px;min-width:240px}.title-menu button{font-family:var(--serif);font-size:18px;padding:10px 2px;min-width:210px;text-align:left;transition:padding .25s,color .25s;display:flex;justify-content:space-between}.title-menu button:hover:not(:disabled){padding-left:13px;color:var(--gold)}.title-menu button.primary{border-bottom:1px solid #e6c18570;color:#f5deb0}.title-menu small{font-family:var(--sans);font-size:9px;letter-spacing:.2em;opacity:.6;margin-left:22px;align-self:center}.title-bottom{width:100%;display:flex;justify-content:space-between;align-items:end;color:#d1cec3;font-size:10px;letter-spacing:.1em;line-height:1.8}.title-bottom p{margin:0}.title-caption{position:absolute;right:8vw;bottom:21vh;font-family:var(--serif);font-size:14px;line-height:2;text-align:right;text-shadow:0 2px 10px #000}.chapter-bar{position:absolute;left:2.5vw;right:2.5vw;top:3.2vh;display:flex;align-items:center;justify-content:space-between;z-index:2}.chapter-tag{font-family:var(--serif);font-size:12px;letter-spacing:.09em;padding:11px 18px;background:#0b1818b8;border:1px solid #c8a77580;border-radius:40px}.top-menu{font-family:var(--serif);letter-spacing:.17em;font-size:11px;background:#07191973;border:1px solid #ffffff38;padding:11px 16px}.dialogue{position:absolute;bottom:7.5vh;left:4.5vw;right:4.5vw;min-height:20vh;border:1px solid #cfad78ad;background:#0c1515df;border-radius:6px;padding:22px 3.4vw 35px;cursor:pointer;box-shadow:0 12px 30px #05090940}.speaker{font-family:var(--serif);font-size:22px;font-weight:600;color:var(--gold);margin:0 0 14px}.line{font-family:var(--serif);font-size:clamp(17px,2vw,29px);font-weight:400;line-height:1.75;max-width:90%;min-height:1.8em;margin:0;word-break:keep-all}.continue{position:absolute;right:2.2vw;bottom:13px;color:#d2c8b7;font-size:10px;letter-spacing:.06em}.quick-menu{position:absolute;bottom:2.25vh;left:0;right:0;display:flex;justify-content:center;gap:23px}.quick-menu button{font-size:11px;letter-spacing:.09em;padding:7px 1px;text-shadow:0 1px 6px #000}.quick-menu button:hover,.quick-menu button.active{color:var(--gold)}.quick-menu kbd{font-size:8px;opacity:.55;margin-left:5px;font-family:var(--sans)}.choice-panel{position:absolute;top:25%;left:12%;width:min(500px,76%);display:grid;gap:12px}.choice-intro{font-size:11px;letter-spacing:.22em;color:#f0d8b5;margin-bottom:8px;text-shadow:0 2px 8px #000}.choice-btn{border:1px solid #bca781b5;background:#0c2222eb;padding:19px 24px;text-align:left;font-family:var(--serif);font-size:17px;line-height:1.6;transition:background .2s,transform .2s}.choice-btn:hover{background:#32504bf5;transform:translateX(7px)}.choice-btn small{display:block;font-family:var(--sans);font-size:10px;color:#b5c3bb;margin-top:6px}.memory-note{position:absolute;top:14%;right:3%;font-family:var(--serif);font-size:12px;padding:12px 18px;background:#10211dd9;color:var(--gold);border-right:2px solid var(--gold);animation:appear .5s}.shade{position:absolute;inset:0;background:#061414b3;z-index:5;display:flex;align-items:center;justify-content:center;padding:4vh 4vw;backdrop-filter:blur(8px)}.modal{width:min(740px,100%);max-height:90vh;overflow:auto;background:#132624f5;border:1px solid #8e86644d;padding:35px 40px;box-shadow:0 24px 100px #0009}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px}.modal-head h2{font-family:var(--serif);font-size:24px;font-weight:500;margin:0}.close{font-size:12px;color:#c2baa9;border-bottom:1px solid #918a7755;padding:5px 0}.modal-description{font-size:12px;color:#b4bcb3;line-height:1.8}.modal-nav{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:25px}.small-button{font-size:12px;padding:11px 17px;border:1px solid #9e9c794b;background:#ffffff06}.small-button:hover,.small-button.selected{border-color:var(--gold);color:var(--gold)}.slots{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.slot{text-align:left;border:1px solid #889d8157;background:#0c1c1b;padding:0;overflow:hidden;min-height:150px}.slot:hover{border-color:var(--gold)}.slot img{width:100%;height:92px;object-fit:cover;object-position:center 32%;filter:brightness(.75)}.slot .empty-preview{height:92px;display:grid;place-items:center;color:#86958b;font-family:var(--serif);font-size:14px}.slot-info{padding:12px 16px;display:block;font-size:12px}.slot-info small{display:block;font-size:9px;color:#99a699;margin-top:6px}.settings-row{padding:21px 0;border-bottom:1px solid #c9c6a21e;display:flex;align-items:center;justify-content:space-between;gap:25px;font-size:14px}.settings-row small{display:block;color:#94a69a;font-size:10px;margin-top:8px}.settings-row input[type=range]{width:190px;accent-color:var(--gold)}.settings-row input[type=checkbox]{width:18px;height:18px;accent-color:var(--gold)}.log{max-height:50vh;overflow:auto;scrollbar-width:thin;scrollbar-color:#6a7c68 transparent}.log-entry{padding:15px 0;border-bottom:1px solid #c9c6a21e}.log-entry strong{font-size:12px;color:var(--gold);font-weight:500}.log-entry p{font-family:var(--serif);font-size:14px;line-height:1.9;margin:8px 0;color:#dddccd}.puzzle-wrap{position:absolute;inset:0;z-index:3;background:#08181555;display:flex;align-items:center;padding:7vh 7vw 12vh}.notebook{background:#f2e9d6;color:#344139;width:min(470px,90vw);padding:28px 32px;box-shadow:5px 9px 35px #0007;max-height:80vh;overflow:auto;border-left:7px solid #a59e7d;transform:rotate(-.6deg)}.notebook .eyebrow{color:#677663;font-size:9px;letter-spacing:.2em;margin:0 0 13px}.notebook h2{font-family:var(--serif);font-size:26px;font-weight:600;margin:0 0 13px;letter-spacing:-.04em}.notebook .story-context{font-size:12px;line-height:1.9;color:#6d7261}.receipt{margin:22px 0 20px;border-top:1px solid #8a947d50;border-bottom:1px solid #8a947d50;padding:12px 0;display:grid;gap:10px}.receipt div{display:flex;justify-content:space-between;font-size:12px}.receipt b{font-weight:500}.math-question{font-size:15px;font-weight:600;line-height:1.7;margin:20px 0 13px;word-break:keep-all}.answer-list{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.answer{border:1px solid #69795d65;padding:12px 5px;color:#36483c;font-size:13px;background:#fff8ec}.answer:hover{background:#d8dfc9}.answer.wrong{border-color:#986654;background:#e9d1be}.feedback{font-size:12px;line-height:1.9;margin-top:15px;color:#5b634f;white-space:pre-line}.feedback.success{background:#dce4ce;padding:16px;border-left:2px solid #738862}.hint{color:#6c775f;font-size:10px;margin-top:18px;text-decoration:underline;text-underline-offset:3px}.paper-next{width:100%;padding:13px;margin-top:16px;background:#3c5849;color:#fff7e2;font-size:13px}.puzzle-side{align-self:flex-start;margin:9vh 0 0 4vw;text-shadow:0 2px 12px #000;max-width:230px;font-family:var(--serif);font-size:16px;line-height:2;color:#fff0d4}.ending{position:absolute;inset:0;display:flex;align-items:center;padding:7vw;background:#05151545}.ending-card{width:410px;padding:36px;background:#0d2222ed;border:1px solid #c6ad786e}.ending-card h2{font-family:var(--serif);font-size:33px;line-height:1.5;font-weight:500;margin:18px 0}.ending-card p{font-size:12px;line-height:2;color:#cad2c6}.ending-card .result{border-top:1px solid #c9c6a22e;border-bottom:1px solid #c9c6a22e;padding:15px 0;margin:24px 0;font-size:11px;line-height:2;color:var(--gold)}.ending-card button{display:block;margin-top:13px}.toast{position:absolute;top:13%;left:50%;transform:translateX(-50%);z-index:20;background:#132e2eee;border:1px solid #e2c58c99;color:#eadcc3;padding:12px 23px;font-size:12px;opacity:0;pointer-events:none;transition:opacity .2s;white-space:nowrap}.toast.show{opacity:1}.reduced *{animation:none!important;transition:none!important}.credit-copy{font-size:13px;line-height:2;color:#c4cebd}.keys{font-size:11px;line-height:2.1;color:#b0beae;padding-top:20px}.keys kbd{color:var(--gold)}@keyframes appear{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@media(min-aspect-ratio:2/1){#game{max-width:177.78vh;max-height:100vh;margin:auto}.title-copy h1{font-size:8vh}.line{font-size:3vh}}@media(max-width:700px){.scene{background-position:62% center}.title-screen{padding:5vh 8vw}.title-copy{margin-top:12vh}.title-copy h1{font-size:44px}.title-caption{display:none}.title-menu button{font-size:17px}.title-bottom{font-size:8px}.title-bottom p:last-child{max-width:100px;text-align:right}.chapter-bar{top:2vh;left:4vw;right:4vw}.chapter-tag{font-size:9px;padding:10px 12px}.top-menu{font-size:9px;padding:10px}.dialogue{left:4vw;right:4vw;bottom:9vh;min-height:24vh;padding:20px 20px 36px}.speaker{font-size:17px;margin-bottom:10px}.line{font-size:17px;line-height:1.8;max-width:100%}.quick-menu{gap:15px;bottom:2.7vh}.quick-menu button{font-size:10px}.quick-menu kbd{display:none}.continue{font-size:9px;right:18px}.choice-panel{left:7%;width:86%;top:26%}.choice-btn{font-size:15px;padding:16px 18px}.modal{padding:25px 22px}.modal-head h2{font-size:21px}.slots{gap:10px}.settings-row{font-size:12px}.settings-row input[type=range]{width:115px}.puzzle-wrap{padding:11vh 5vw 12vh;align-items:flex-start}.notebook{width:100%;max-height:77vh;padding:23px;transform:none}.notebook h2{font-size:23px}.puzzle-side{display:none}.ending{padding:6vw;align-items:center}.ending-card{width:100%;padding:28px}.memory-note{top:10%;font-size:10px}.answer{font-size:12px}.line.large{font-size:21px}}@media(max-height:520px){.title-copy{margin-top:2vh;margin-bottom:2vh}.title-copy h1{font-size:35px}.title-menu{gap:0}.title-menu button{font-size:14px;padding:5px 0}.english{margin-top:8px;font-size:8px}.eyebrow{margin-bottom:6px;font-size:9px}.dialogue{min-height:27vh;padding-top:12px}.speaker{font-size:16px;margin-bottom:5px}.line{font-size:16px}.choice-panel{top:19%;gap:6px}.choice-btn{padding:9px 17px;font-size:13px}.choice-btn small{display:none}.choice-intro{margin-bottom:0}.notebook{max-height:83vh}.puzzle-wrap{padding-top:5vh}.modal{max-height:94vh}.title-bottom{font-size:8px}}

.line.large{font-size:clamp(22px,2.4vw,34px)}
@media(max-width:700px){.line.large{font-size:21px}}

.ending-card h2{word-break:keep-all}@media(max-width:700px){.ending-card h2{font-size:29px}}
