@font-face{font-family:Galmuri14;src:url(./Galmuri14-BIHuh8Vm.woff2)format("woff2");font-display:swap}@font-face{font-family:Galmuri11;src:url(./Galmuri11-DfQIlyDK.woff2)format("woff2");font-display:swap}:root{--ink:#3d2628;--ink-soft:#6b4436;--paper:#fbf0d4;--paper-deep:#f2deb5;--wood:#8a5433;--wood-light:#c98e58;--wood-dark:#5e3724;--green:#5f7b5a;--red:#c95d5a;--font:Galmuri11, "Malgun Gothic", "Apple SD Gothic Neo", sans-serif;--font-korean:Galmuri14, "Malgun Gothic", "Apple SD Gothic Neo", sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{background:var(--wood-dark);overscroll-behavior:none;height:100%;margin:0}body{color:var(--ink);font-family:var(--font);-webkit-text-size-adjust:100%;font-size:14px}.clean-font{--font:"Malgun Gothic", "Apple SD Gothic Neo", system-ui, sans-serif;--font-korean:"Malgun Gothic", "Apple SD Gothic Neo", system-ui, sans-serif}.app{height:100%;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);font-family:var(--font);flex-direction:column;align-items:center;gap:8px;display:flex;overflow:hidden}.app-wide{flex-direction:row;justify-content:center;gap:16px}.stage{touch-action:manipulation;-webkit-user-select:none;user-select:none;flex:none}.stage canvas{image-rendering:pixelated;display:block}.panel{background:var(--paper);border:4px solid var(--wood);outline:2px solid var(--ink);outline-offset:-2px;width:100%;max-width:560px;min-height:0;box-shadow:inset 0 0 0 2px var(--wood-light);flex-direction:column;flex:1 1 0;gap:8px;margin-bottom:4px;padding:8px;display:flex;overflow-y:auto}.app-wide .panel{flex:0 520px;align-self:center;max-height:100%}.hud{border-bottom:2px solid var(--paper-deep);color:var(--ink-soft);justify-content:space-between;gap:8px;padding-bottom:6px;display:flex}.idle{flex:1;line-height:1.5}.idle p{margin:0 0 8px}.settings{flex-wrap:wrap;gap:6px;margin-top:auto;display:flex}.dialogue{flex-direction:column;gap:8px;display:flex}.dialogue-head{gap:10px;display:flex}.portrait{flex:none;width:96px}.portrait-image{background-color:var(--paper-deep);border:2px solid var(--wood);width:96px;height:96px;image-rendering:pixelated;background-position-y:0;background-repeat:no-repeat;background-size:300% 100%}.portrait-name{text-align:center;color:var(--ink-soft);margin-top:2px}.dialogue-body{flex:1;min-width:0}.speaker{color:var(--green);margin-bottom:4px}.korean{font-family:var(--font-korean);word-break:keep-all;flex-wrap:wrap;gap:2px 8px;margin:0 0 4px;font-size:28px;line-height:1.3;display:flex}.word{all:unset;cursor:pointer;border-bottom:2px dotted var(--wood-light)}.word-open{background:var(--paper-deep);border-bottom-color:var(--red)}.gloss,.english{color:var(--ink-soft);margin:0;line-height:1.4}.choices{flex-direction:column;gap:6px;display:flex}.choice,.next,.tool{font:inherit;color:var(--ink);cursor:pointer;background:var(--paper-deep);border:2px solid var(--wood);box-shadow:inset 0 -2px 0 var(--wood-light);text-decoration:none}.choice{font-family:var(--font-korean);text-align:left;padding:6px 8px;font-size:20px}.choice:disabled{opacity:.45;cursor:default}.tools{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.tool{min-height:36px;padding:8px 10px}.panel-title{color:var(--green);margin:0 0 4px;font-size:18px;font-weight:400}.next-wide{width:100%;margin-top:4px}.toast{color:var(--green)}.narration,.listen-only{margin:0 0 6px;line-height:1.45}.narration{color:var(--ink-soft);font-style:italic}.portrait-single{background-size:100% 100%}.shop{background:var(--paper-deep);border:2px solid var(--wood-light);justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;padding:6px 8px;line-height:1.35;display:flex}.shop .tool{flex:none}.tool:disabled{opacity:.55;cursor:default}.review-title{color:var(--ink-soft);margin:0 0 4px!important}.review{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:4px;margin-bottom:6px;display:grid}.review-word{all:unset;cursor:pointer;background:var(--paper-deep);font-family:var(--font-korean);flex-direction:column;padding:3px 6px;font-size:18px;display:flex}.review-word small{font-family:var(--font);color:var(--ink-soft);font-size:11px;line-height:1.2}.station{flex-direction:column;gap:6px;display:flex}.ticket{background:var(--paper-deep);border:2px dashed var(--wood-light);flex-wrap:wrap;align-items:center;gap:4px 6px;padding:4px 6px;display:flex}.ticket-text{font-family:var(--font-korean);flex:100%;font-size:20px}.station-main{gap:8px;display:flex}.tiles{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.tile-row{gap:4px;display:flex}.tile{min-height:38px;font-family:var(--font-korean);color:var(--ink);cursor:pointer;background:var(--paper-deep);border:2px solid var(--wood);box-shadow:inset 0 -2px 0 var(--wood-light);flex:auto;padding:4px 6px;font-size:18px}.tile-on{color:var(--paper);background:var(--green);box-shadow:none}.station-side{flex-direction:column;flex:none;gap:4px;width:104px;display:flex}.cups{flex:1;justify-content:center;align-items:flex-end;min-height:72px;display:flex}.cups-empty{text-align:center;color:var(--ink-soft);border:2px dashed var(--wood-light);align-items:center}.cups-making{animation:.16s linear infinite alternate cups-shake}@keyframes cups-shake{0%{transform:translate(-1px)}to{transform:translate(1px)}}.cup{width:48px;height:60px;image-rendering:pixelated;background-image:url(../assets/sprites/drinks.png);background-repeat:no-repeat;background-size:600% 100%}.next:disabled{opacity:.5;cursor:default}.tool-live{color:var(--paper);background:var(--red)}.tool-note{color:var(--red)}.next{min-height:36px;color:var(--paper);background:var(--green);flex:64px;padding:8px 10px}.choice:active,.next:active,.tool:active{box-shadow:none;transform:translateY(1px)}button:focus-visible,a:focus-visible{outline:2px solid var(--red);outline-offset:1px}.test-page{height:auto;min-height:100%;padding:calc(env(safe-area-inset-top) + 12px) 16px calc(env(safe-area-inset-bottom) + 24px);background:var(--paper);line-height:1.5}.test-page #root{background:0 0;height:auto}.test-page h1{margin:0 0 4px;font-size:22px;font-weight:400}.test-page h2{color:var(--green);margin:20px 0 4px;font-size:16px;font-weight:400}.test-page p{margin:0 0 8px}.row{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px;display:flex}.row .label{flex:100%}.test-page textarea{width:100%;height:180px;font:12px monospace}.tool-on{color:var(--paper);background:var(--green)}.sample{background:var(--paper-deep);border:2px solid var(--wood-light);margin-bottom:8px;padding:8px}.sample .korean{font-size:22px;display:block}
