@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500&family=Noto+Serif+KR:wght@400;500&display=swap');
:root{--cream:#eee5d7;--ink:#4b403b;--muted:#8b7b70}*{box-sizing:border-box}body{margin:0;background:#594448;color:var(--cream);font:12px 'Noto Sans KR',sans-serif;overflow:hidden}button,input{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .25s,opacity .25s;border:0}button:hover{background-color:#ffffff24}button:focus-visible,a:focus-visible{outline:2px solid #eac496;outline-offset:4px}button:disabled{opacity:.4;cursor:default}button[hidden],[hidden]{display:none!important}#scene{position:fixed;inset:0}canvas{display:block;width:100%;height:100%;touch-action:none}.shade{position:fixed;inset:0;pointer-events:none;background:linear-gradient(rgba(248,202,109,.065),rgba(248,202,109,.065)),linear-gradient(#17111145,transparent 12%,transparent 86%,#17111135)}header{position:fixed;top:24px;left:30px;right:30px;display:flex;align-items:center;justify-content:space-between;z-index:2;pointer-events:none}.brand{font:500 16px 'Noto Serif KR',serif;text-decoration:none;color:#f6e8d7;letter-spacing:1px;text-shadow:0 1px 8px #0007;pointer-events:auto}.brand small{font:10px 'Noto Sans KR';opacity:.65;letter-spacing:.4px;margin-left:15px}nav{display:flex;gap:7px;pointer-events:auto}.icon-btn{height:32px;width:32px;border-radius:50%;color:#f4dfca;background:#251c1a45;border:1px solid #e5c8a52b;font-size:16px;backdrop-filter:blur(8px)}main{position:fixed;inset:0;pointer-events:none}main button{pointer-events:auto}.view-switch{position:absolute;bottom:26px;left:30px;display:flex;gap:2px;border:1px solid #e5c8a526;border-radius:20px;padding:3px;background:#2f242346;backdrop-filter:blur(10px)}.view-switch button{font-size:11px;border-radius:17px;background:transparent;color:#f3e0c8a0;padding:8px 13px}.view-switch .active{color:#f5e7d2;background:#e9ccb224}.action-dock{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:6px;pointer-events:auto}#controlsToggle{background:#3226226b;backdrop-filter:blur(12px);border:1px solid #efd4b52e;border-radius:20px;color:#f1dfc9;padding:10px 16px;font-size:11px;white-space:nowrap}#controlsToggle span{margin-left:9px;color:#dac0a0}.actions{display:none;gap:3px;border-radius:22px;background:#32262299;border:1px solid #efd4b526;backdrop-filter:blur(12px);padding:4px}.controls-open .actions{display:flex}.controls-open #controlsToggle span{display:inline-block;transform:rotate(45deg)}.action{border-radius:18px;color:#f0dfca;background:transparent;padding:8px 12px;white-space:nowrap;font-size:11px}.action>span{display:none}kbd{font:8px sans-serif;margin-left:5px;opacity:.45}.quiet-toggle{position:absolute;right:30px;bottom:32px;background:transparent;color:#f0ddc5a0;font-size:10px;padding:7px;text-shadow:0 1px 5px #0007}.quiet header,.quiet .view-switch,.quiet .action-dock,.quiet .walk-controls{opacity:0;visibility:hidden;pointer-events:none}.quiet-toggle:hover{color:#fff1df}.walk-controls{position:absolute;left:28px;bottom:90px;text-align:center;pointer-events:auto}.walk-controls button{background:#3529278f;color:#f3ddc2;width:36px;height:36px;margin:2px;border:1px solid #d5b89633;border-radius:50%;touch-action:none}dialog{width:370px;max-width:calc(100% - 32px);max-height:calc(100dvh - 48px);overflow:auto;border:1px solid #d3c3b4;border-radius:10px;background:#eee7dc;color:var(--ink);padding:30px;box-shadow:0 20px 80px #0005}dialog::backdrop{background:#241b224f;backdrop-filter:blur(5px)}.close{position:absolute;top:8px;right:12px;background:none;color:#8c7c6b;font-size:24px}h2{font:400 23px 'Noto Serif KR',serif;margin:14px 0 18px}dialog p{font-size:11px;line-height:1.9;color:#8a7d70}.eyebrow{font-size:8px;letter-spacing:1.5px;color:#9b8e7f}.menu-item{display:flex;gap:20px;align-items:center;padding:22px 14px;margin:24px 0;background:#e4ddcf;border-radius:6px}.food-icon{font-size:38px}.menu-item strong{font-family:'Noto Serif KR';font-size:17px}.menu-item small{display:block;font-size:10px;line-height:1.9;color:#938473;margin-top:7px}.primary{background:#6b6352!important;color:#f3e7d3!important}.big{width:100%;padding:13px 16px;display:flex;justify-content:space-between;border-radius:5px}.subtle{font-size:10px!important}.text-button{display:block;font-size:11px;color:#86745f;background:transparent;border-top:1px solid #d8cdbd;text-align:left;width:100%;padding:13px 0}dialog label{display:flex;justify-content:space-between;margin:18px 0 8px;font-size:11px}input[type=range]{width:100%;accent-color:#9c8667}dialog ul{padding-left:16px;font-size:11px;line-height:2;color:#8c7c6b}.legend{display:inline-block;font-size:9px;background:#dfd7c7;padding:4px 7px;margin-top:10px}.welcome{position:fixed;bottom:85px;left:30px;z-index:10;width:260px;max-width:calc(100% - 60px);border:1px solid #d8c0a333;background:#332925b8;backdrop-filter:blur(16px);padding:22px;border-radius:9px;box-shadow:0 8px 40px #0002}.welcome h2{font-size:21px;margin:0 0 18px;color:#f3e3cf}.welcome input{width:100%;border:0;border-bottom:1px solid #dcc6aa40;background:transparent;color:#f3e3cf;padding:8px 0;outline-color:#d5b28b;font-size:11px}.welcome input::placeholder{color:#bba994}.color-row{display:flex;gap:13px;margin:16px 0 20px}.color-row button{width:16px;height:16px;border-radius:50%;background:var(--swatch);border:2px solid #504437}.color-row .selected{outline:1px solid #c3b292}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#toast{position:fixed;bottom:90px;left:50%;transform:translate(-50%,8px);opacity:0;pointer-events:none;color:#f0dfc8;background:#352927b0;backdrop-filter:blur(10px);border:1px solid #d2b99a22;padding:9px 14px;border-radius:16px;font-size:10px;white-space:nowrap;transition:.3s;z-index:12}#toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:760px){header{top:18px;left:18px;right:18px}.brand{font-size:14px}.brand small{display:none}.icon-btn{width:30px;height:30px}.view-switch{left:16px;bottom:20px}.view-switch button{font-size:10px;padding:8px 10px}.action-dock{left:auto;right:18px;bottom:20px;transform:none;flex-direction:column-reverse;align-items:flex-end}.actions{position:absolute;right:0;bottom:45px;white-space:nowrap}.action{font-size:10px;padding:9px 11px}kbd{display:none}.quiet-toggle{bottom:72px;right:16px;font-size:9px}.walk-controls{left:16px;bottom:85px}.welcome{left:18px;bottom:85px;width:230px;padding:20px}.welcome h2{font-size:20px}#toast{bottom:140px;max-width:90%;white-space:normal;text-align:center;font-size:9px}.quiet .quiet-toggle{bottom:22px}.controls-open .quiet-toggle{bottom:124px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
/* Quiet entry screen, before the carriage is revealed. */
#scene{transition:opacity .65s ease}.at-entry #scene{opacity:0;pointer-events:none}.at-entry header,.at-entry main,.at-entry .shade{visibility:hidden}.entry-screen{position:fixed;inset:0;z-index:30;background:#efede4;color:#53594b;display:grid;place-items:center;padding:28px}.entry-content{width:280px;max-width:100%;text-align:center;transform:translateY(-12px)}.entry-symbol{width:43px;height:43px;stroke:#9e967e;stroke-width:1.25;margin-bottom:25px}.entry-content h1{font:400 33px 'Noto Serif KR',serif;letter-spacing:10px;padding-left:10px;margin:0 0 22px}.entry-content>p{font-size:12px;color:#989b8b;letter-spacing:.2px;margin:0 0 35px}.loading-dot{width:5px;height:5px;background:#b6a383;border-radius:50%;margin:42px auto 0;animation:entryBreath 1.8s ease-in-out infinite}.entry-form{animation:entryReveal .7s ease both}.entry-form input{display:block;width:100%;background:transparent;border:0;border-bottom:1px solid #d6d7c8;text-align:center;color:#606755;outline-color:#b5b59c;font-size:12px;padding:12px 0}.entry-form input::placeholder{color:#a8ab98}.entry-form .color-row{justify-content:center;margin:23px 0 28px}.entry-form .color-row button{width:21px;height:21px;border:3px solid #efede4}.entry-form .color-row .selected{outline-color:#8f967d}.entry-form .primary{background:#65705c!important;font-size:12px;padding:15px 20px;letter-spacing:.3px}.entry-form small{display:block;margin-top:15px;font-size:9px;color:#a1a591}.move-status{position:fixed;top:87px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:15px;pointer-events:auto;background:#332a25a6;backdrop-filter:blur(12px);border:1px solid #e6d5b940;border-radius:25px;padding:11px 17px;font-size:11px;color:#efe2cb}.move-status button{background:transparent;color:#f3e6d1;padding:0;border-left:1px solid #d7c5aa55;padding-left:15px}.name-tag{position:fixed;transform:translate(-50%,-100%);pointer-events:none;border-radius:20px;background:#efebdcde;border:1px solid #ffffff45;color:#626b55;padding:5px 10px;font-size:9px;white-space:nowrap;box-shadow:0 2px 12px #0002}.seat-prompt{position:absolute;bottom:57px;left:50%;transform:translateX(-50%);color:#e5d9c4c2;text-shadow:0 1px 7px #0009;font-size:9px;white-space:nowrap;pointer-events:none}.actions{display:flex;padding:5px 7px;border-radius:28px;background:#32262298}.action-dock{left:50%;right:auto;transform:translateX(-50%);bottom:26px}.action{font-size:11px;padding:11px 16px}.action:disabled{opacity:.35}.quiet .move-status,.quiet .name-tag{visibility:hidden}.quiet .action-dock{visibility:hidden}.entry-symbol path,.entry-symbol rect,.entry-symbol circle{stroke-linecap:round;stroke-linejoin:round}
/* Printed menu: meals, a drink, then one explicit order confirmation. */
dialog.menu-panel{width:440px;padding:32px;max-height:calc(100dvh - 30px);background:#f2eee3}.menu-heading{text-align:center;padding-bottom:18px;border-bottom:1px solid #d8d1bf}.menu-heading>svg{display:block;width:29px;height:29px;margin:0 auto 13px;fill:none;stroke:#9c8966;stroke-width:1.2;stroke-linecap:round}.menu-heading h2{font-size:25px;margin:12px 0 9px}.menu-heading p{font-size:10px;margin:0}.meal-choices{display:grid;gap:9px;margin:22px 0}.meal-choice{display:flex;align-items:center;gap:13px;text-align:left;border:1px solid #ded8c9;border-radius:7px;background:#f7f4ec;padding:14px 12px;color:#504c40;min-height:94px}.meal-choice.selected{background:#e6eadc;border-color:#889276}.meal-art{display:grid;place-items:center;width:58px;height:58px;flex-shrink:0;background:#fffdf6;border-radius:50%;font-size:31px;box-shadow:inset 0 0 0 4px #eee9dc}.meal-copy{flex:1}.meal-copy small{display:block;font-size:8px;color:#9b927b;margin-bottom:5px}.meal-copy strong{display:block;font:500 16px 'Noto Serif KR',serif;margin-bottom:6px}.meal-copy>span{font-size:9px;color:#979383;line-height:1.6;display:block}.meal-choice i{width:14px;height:14px;border:1px solid #b7baa8;border-radius:50%;flex-shrink:0}.meal-choice.selected i{border:4px solid #6b785c;background:#eff0e4}.drink-title{font-size:10px;color:#9e947d;margin:0 0 10px}.drink-choices{display:flex;gap:8px;margin-bottom:22px}.drink-choices button{flex:1;padding:10px;border:1px solid #d6d3c3;border-radius:5px;color:#9c947e;background:transparent;font-size:11px}.drink-choices .selected{background:#e3e8d8;border-color:#a6ae92;color:#69745b}.menu-panel .primary{background:#69745c!important;font-size:12px;padding:14px 16px}.menu-footnote{font-size:9px!important;text-align:center;color:#a5a18e!important;margin:15px 0 0!important}
@keyframes entryBreath{50%{opacity:.2;transform:scale(.7)}}@keyframes entryReveal{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:760px){.action-dock{left:50%;right:auto;bottom:20px;transform:translateX(-50%);align-items:center;flex-direction:row}.actions{position:static;padding:5px;bottom:auto;right:auto}.action{font-size:11px;padding:11px 13px}.view-switch{bottom:83px}.quiet-toggle{bottom:87px;right:15px}.controls-open .quiet-toggle{bottom:87px}.seat-prompt{bottom:56px;font-size:8px}.entry-content{width:258px}.entry-symbol{margin-bottom:24px}.entry-content h1{font-size:32px}.move-status{top:78px;font-size:10px;padding:10px 14px}.name-tag{font-size:8px;padding:4px 8px}dialog.menu-panel{padding:26px 21px;width:calc(100% - 24px);border-radius:13px;max-height:calc(100dvh - 24px)}.menu-heading{padding-bottom:15px}.menu-heading h2{font-size:24px}.meal-choices{margin:16px 0;gap:8px}.meal-choice{min-height:87px;padding:11px;gap:11px}.meal-art{width:48px;height:48px;font-size:27px}.meal-copy strong{font-size:15px}.meal-copy>span{font-size:8px}.menu-panel .drink-choices{margin-bottom:18px}}
@media(prefers-reduced-motion:reduce){.loading-dot,.entry-form{animation:none!important}}
/* Reveal the already-rendered carriage immediately; avoid a blank compositor fade on entry. */
#scene{transition:none}.entry-form{animation:none}
/* Two complete, matching 3D characters can be compared before entering. */
.entry-content{width:320px;max-height:calc(100dvh - 54px);overflow:auto;scrollbar-width:none;transform:none}.entry-symbol{width:32px;height:32px;margin-bottom:14px}.entry-content h1{font-size:29px;margin-bottom:14px}.entry-content>p{margin-bottom:6px;font-size:11px}.avatar-preview{height:190px;display:flex;align-items:center;justify-content:center;margin:4px 0 0}.avatar-preview canvas{width:280px!important;height:190px!important;max-width:100%;touch-action:auto}.gender-choices{display:flex;gap:10px;margin:1px 0 15px}.gender-choices button{flex:1;background:transparent;border:1px solid #d9d9ca;border-radius:7px;padding:9px 7px;color:#9a9e8d}.gender-choices button.selected{background:#e0e5d7;border-color:#99a58a;color:#5d6c51}.gender-choices strong{display:block;font-size:11px;font-weight:500;margin-bottom:4px}.gender-choices span{display:block;font-size:8px;letter-spacing:.2px}.entry-form .color-row{margin:15px 0 19px}.entry-form input{padding:10px 0}.entry-form small{font-size:8px;margin-top:12px}.meal-art{background:#f9f6ed;overflow:hidden}.meal-art img{display:block;width:100%;height:100%;object-fit:cover}.entry-content .entry-form{opacity:1}
@media(max-width:760px){.entry-content{width:286px;max-height:calc(100dvh - 42px)}.entry-symbol{margin-bottom:11px}.entry-content h1{font-size:28px}.entry-content>p{margin-bottom:3px}.avatar-preview{height:180px}.avatar-preview canvas{width:265px!important;height:180px!important}.gender-choices{gap:8px;margin-bottom:13px}.entry-form .color-row{margin:14px 0 17px}.entry-form .primary{padding:14px 18px}}

.meal-art{width:68px;height:68px}.gender-choices button:hover{background:#e7eadf}@media(max-width:760px){.meal-art{width:56px;height:56px}.view-switch button{padding:8px 9px;font-size:9px}}
/* Optional, quiet group chat. The carriage remains the primary view. */
.chat-toggle{display:flex;align-items:center;gap:6px;position:relative;background:#302a25a8;color:#efe3ce;border:1px solid #d8c3a339;border-radius:22px;padding:8px 12px;font-size:11px;backdrop-filter:blur(12px)}.chat-toggle svg{width:16px;height:16px}.chat-toggle b{position:absolute;right:-5px;top:-5px;min-width:16px;height:16px;padding:2px 4px;border-radius:12px;background:#d9bc81;color:#3c392a;font-size:9px;font-weight:500}.train-chat{position:fixed;z-index:18;right:24px;top:78px;width:330px;max-width:calc(100vw - 28px);max-height:calc(100dvh - 200px);height:390px;display:flex;flex-direction:column;background:#eee9dddF;color:#565747;border:1px solid #d8d0bda8;border-radius:17px;box-shadow:0 12px 40px #1c211d30;backdrop-filter:blur(18px);overflow:hidden}.train-chat[hidden]{display:none}.chat-head{display:flex;align-items:center;justify-content:space-between;padding:16px 17px 13px;border-bottom:1px solid #ccc6b870}.chat-head strong{font-size:12px;font-weight:500}.chat-head small{display:block;font-size:9px;color:#8c907e;margin-top:5px}.chat-head button{font-size:23px;color:#7c7c68;background:transparent;padding:3px 8px}.chat-messages{flex:1;min-height:0;overflow-y:auto;padding:16px;overscroll-behavior:contain;scrollbar-width:thin}.chat-empty{font-size:11px;line-height:1.9;color:#92937f;margin:35px 10px;text-align:center}.chat-message{margin:0 0 15px;max-width:93%}.chat-message>div{display:flex;align-items:center;gap:8px;margin-bottom:5px}.chat-message strong{font-size:10px;font-weight:500;color:#737963}.chat-message time{font-size:8px;color:#9b9c8a}.chat-message p{display:inline-block;margin:0;padding:9px 11px;background:#fbf8f0a6;border-radius:2px 12px 12px 12px;font-size:12px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}.chat-message.mine{margin-left:auto;text-align:right}.chat-message.mine>div{justify-content:flex-end}.chat-message.mine p{background:#dce3ce;border-radius:12px 2px 12px 12px;text-align:left}#chatForm{display:grid;grid-template-columns:1fr 32px;gap:7px;padding:12px 13px 11px;border-top:1px solid #ccc6b870}#chatInput{resize:none;min-height:38px;max-height:80px;width:100%;border:1px solid #cbcdbb;border-radius:10px;background:#faf7ef;color:#515a46;font-family:inherit;font-size:12px;line-height:1.5;padding:10px;outline-color:#899672}#chatInput::placeholder{color:#9b9d8d;font-size:11px}#chatSend{height:34px;align-self:center;border-radius:50%;background:#68765d;color:#f3eedf;font-size:21px;padding:2px}#chatSend:disabled{opacity:.5}#chatFeedback{grid-column:1/-1;font-size:9px;line-height:1.5;color:#888c77;padding:0 3px}.quiet .train-chat{display:none}.at-entry .train-chat{display:none}@media(max-width:760px){.chat-toggle{padding:7px 10px;font-size:10px}.train-chat{top:66px;right:14px;width:310px;height:min(370px,calc(100dvh - 175px));max-height:calc(100dvh - 90px)}#chatInput{font-size:16px}.chat-head{padding:13px 15px}.chat-messages{padding:13px}.chat-message p{font-size:12px}}
/* Small camera helpers and a walking route, kept away from the scenery. */
.camera-pad{position:absolute;right:28px;bottom:77px;display:flex;gap:3px;padding:4px;border-radius:24px;border:1px solid #dfc8a62e;background:#302a25a3;backdrop-filter:blur(12px);pointer-events:auto}.camera-pad button{min-width:38px;height:38px;border-radius:20px;background:transparent;color:#eadfc9;font-size:22px}.camera-pad #lookBehind{font-size:10px;padding:0 9px}.camera-pad #lookReset{font-size:18px}.coach-route{position:absolute;left:30px;top:69px;border-radius:20px;padding:9px 13px;background:#302a2599;border:1px solid #dfc8a630;backdrop-filter:blur(10px);color:#e9ddc6;font-size:10px}.quiet .camera-pad,.quiet .coach-route{visibility:hidden}.hair-label{display:flex;justify-content:space-between;font-size:10px;color:#858d76;margin:13px 0 8px}.hair-label span{font-size:9px;color:#a4a48e}.hair-choices{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-bottom:8px}.hair-choices button{min-height:36px;border:1px solid #d4d8c7;border-radius:7px;background:transparent;color:#939b83;font-size:10px;padding:8px 4px}.hair-choices .selected{background:#dfe5d5;border-color:#95a381;color:#5c6c4e}.entry-form .gender-choices{margin-bottom:9px}.gender-choices strong{margin:0}.entry-content .avatar-preview{height:174px}.entry-content .avatar-preview canvas{height:174px!important;width:257px!important}.entry-content{width:310px}.entry-form .color-row{margin:14px 0 16px}.entry-content .entry-symbol{margin-bottom:9px}.entry-content>h1{margin-bottom:9px}@media(max-width:760px){.camera-pad{right:15px;bottom:130px;gap:1px;padding:3px}.camera-pad button{min-width:36px;height:36px}.coach-route{left:18px;top:66px;padding:9px 11px;font-size:9px}.move-status{top:113px}.entry-content{width:286px}.entry-content .avatar-preview{height:151px}.entry-content .avatar-preview canvas{height:151px!important;width:222px!important}.hair-label{margin-top:10px}.hair-choices button{font-size:9px}.entry-form .gender-choices{margin-bottom:6px}}@media(max-height:680px){.entry-content .avatar-preview{height:125px}.entry-content .avatar-preview canvas{height:125px!important;width:184px!important}.entry-content .entry-symbol{width:24px;height:24px;margin-bottom:4px}.entry-content>h1{font-size:24px;margin-bottom:5px}.entry-form .color-row{margin:10px 0 12px}}

/* A closer portrait makes the actual 3D hair shape legible before boarding. */
.entry-content .avatar-preview{height:190px}.entry-content .avatar-preview canvas{height:190px!important;width:280px!important;touch-action:pan-y;cursor:grab}.entry-content .avatar-preview canvas:active{cursor:grabbing}.preview-views{display:flex;justify-content:center;gap:3px;margin:0 auto 13px;padding:3px;border:1px solid #d8dccf;border-radius:18px;width:max-content}.preview-views button{background:transparent;color:#929b83;font-size:9px;padding:7px 15px;border-radius:14px;min-height:29px}.preview-views [aria-pressed=true]{background:#dfe5d5;color:#5c6c4e}.avatar-preview canvas:focus-visible{outline:1px solid #98a581;outline-offset:2px;border-radius:12px}@media(max-width:760px){.entry-content .avatar-preview{height:180px}.entry-content .avatar-preview canvas{height:180px!important;width:265px!important}.preview-views{margin-bottom:10px}.preview-views button{padding:6px 14px}}@media(max-height:680px){.entry-content .avatar-preview{height:145px}.entry-content .avatar-preview canvas{height:145px!important;width:214px!important}.preview-views{margin-bottom:8px}.preview-views button{padding:5px 12px;min-height:27px}}
/* Printed bar menu: a drink and a small snack plate, opened only on request. */
dialog.bar-menu-panel{width:440px;background:#f2eee3;padding:30px}.bar-menu-heading{text-align:center;border-bottom:1px solid #d6cbb8;padding-bottom:12px}.bar-menu-heading h2{margin:10px 0;font-size:24px}.bar-menu-heading p{font-size:10px;margin:0}.bar-wines,.bar-snacks{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0}.bar-wines button,.bar-snacks button{position:relative;border:1px solid #d8d2c2;background:#f8f5ec;color:#7e7a65;border-radius:9px;padding:12px 5px;text-align:center}.bar-wines .selected,.bar-snacks .selected{background:#e6eadb;border-color:#919c7f;color:#5e6d51}.bar-wines svg,.bar-snacks svg{display:block;width:44px;height:44px;margin:0 auto 7px}.bar-wines strong,.bar-snacks strong{font-size:11px;font-weight:500;display:block}.bar-wines small,.bar-snacks small{font-size:8px;line-height:1.5;display:block;margin-top:6px;color:#9c9683}.bar-snacks i{position:absolute;right:6px;top:5px;display:none;font-style:normal;font-size:10px}.bar-snacks .selected i{display:block}.bar-section-label{font-size:10px!important;margin:22px 0 0!important}.bar-snacks{margin-top:10px;margin-bottom:23px}.bar-eat-options{display:grid;gap:8px}.bar-eat-options button{display:flex;align-items:center;gap:12px;border:1px solid #d6d3c2;background:#f6f3e9;border-radius:9px;padding:12px;color:#657157}.bar-eat-options svg{height:35px;width:35px}.bar-eat-options strong{font-size:12px;font-weight:500}.bar-eat-options small{margin-left:auto;font-size:9px;color:#93967d}@media(max-width:760px){dialog.bar-menu-panel{padding:25px 20px;width:calc(100% - 24px)}.bar-seat .action{padding:10px 10px;font-size:10px}.bar-wines,.bar-snacks{gap:6px}.bar-wines button,.bar-snacks button{padding:11px 3px}.bar-wines strong,.bar-snacks strong{font-size:10px}}

@media(min-width:761px) and (max-width:1000px){.bar-seat .view-switch{bottom:84px}}
.juice-art svg{height:100%;width:100%;padding:9px}.meal-choices{max-height:min(390px,48dvh);overflow-y:auto;scrollbar-width:thin;overscroll-behavior:contain}@media(max-width:760px){.meal-choices{max-height:43dvh}.bar-seat .action,.action-dock .action{padding:10px 9px}}
/* Small personal controls; customization stays inside deliberate dialogs. */
.my-room-route,.room-decor{position:absolute;left:138px;top:69px;pointer-events:auto;border:1px solid #dfc8a630;border-radius:20px;padding:9px 13px;background:#302a2599;color:#e9ddc6;backdrop-filter:blur(10px);font-size:10px}.room-decor{left:250px}.quiet .my-room-route,.quiet .room-decor{visibility:hidden}.entry-pet{display:flex;justify-content:space-between;align-items:center;width:100%;border:1px solid #cdd3bf;background:#e6e9dc;color:#68765b;padding:11px 12px;border-radius:8px;font-size:11px;margin:8px 0}.profile-status{font-size:9px!important;line-height:1.6;margin:9px 0!important;color:#8c947c}.profile-status[data-state=error]{color:#a16e57}.entry-content{overflow-y:auto;scrollbar-width:thin;max-height:calc(100dvh - 30px);padding:14px 5px}.hair-choices{grid-template-columns:repeat(4,1fr);gap:4px}.hair-choices button{min-height:29px;padding:6px 3px}.entry-content .entry-form .color-row{margin:10px 0}.entry-content .entry-form small{line-height:1.5}.dog-panel,.cabin-panel{width:470px;background:#f3eee3;color:#626b56;padding:28px}.dog-panel h2,.cabin-panel h2{font-size:25px;margin:10px 0}.dog-panel>div>p,.cabin-panel>div>p{font-size:11px;line-height:1.8}.dog-preview{height:170px;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse,#e3dfce99,transparent 70%)}.dog-preview canvas{max-width:100%}.dog-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;max-height:230px;overflow-y:auto;scrollbar-width:thin}.dog-choices button{border:1px solid #d8d4c4;border-radius:7px;padding:10px 3px;background:#f8f4eb;color:#888b77;font-size:10px;min-height:37px;display:flex;justify-content:center;align-items:center;gap:5px}.dog-choices i{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--coat);border:1px solid #9997}.dog-choices .selected,.room-layouts .selected,.room-swatches .selected{border-color:#8c9b79;background:#e1e7d7;color:#5b6e4e}.pet-name-label{font-size:11px;margin-top:17px;display:block}.pet-name-label small{font-size:9px;margin-left:8px;color:#969c87}#dogName{width:100%;border:0;border-bottom:1px solid #c9cdbb;padding:11px 2px;background:transparent;outline-color:#899673;color:#626d55;font:inherit;font-size:13px}.save-feedback{font-size:10px!important;line-height:1.8;min-height:19px;color:#859074}.room-layouts{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:18px 0}.room-layouts button{border:1px solid #d4d1c0;border-radius:9px;padding:10px 4px;background:#f8f4eb;color:#989b86}.room-layouts svg{height:92px;width:65px}.room-layouts strong{display:block;font-size:11px;font-weight:500}.room-layouts small{display:block;font-size:8px;line-height:1.6;margin-top:5px}.cabin-panel h3{font-size:11px;font-weight:500;margin:16px 0 8px}.room-swatches{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.room-swatches button{display:flex;align-items:center;justify-content:center;gap:7px;border:1px solid #d4d1c0;background:#f8f4eb;color:#8c937f;border-radius:8px;padding:10px 6px;font-size:10px}.room-swatches i{width:19px;height:19px;border-radius:50%;border:1px solid #a29d8850}.room-upgrades{border-top:1px solid #d7cfba;margin-top:19px;padding-top:14px;font-size:11px;color:#93957f}.room-upgrades summary{cursor:pointer}.room-upgrades p{font-size:10px;line-height:1.8}.room-upgrades span{display:block;font-size:10px}.room-upgrades small{display:block;font-size:9px;line-height:1.8;margin-top:8px}a.text-button{display:block;text-decoration:none;padding:10px 0;font-size:12px;color:#758362}
@media(max-width:760px){.my-room-route{top:66px;left:127px;font-size:9px;padding:9px 11px}.room-decor{top:104px;left:18px;font-size:9px}.dog-panel,.cabin-panel{width:calc(100% - 24px);padding:24px 18px}.dog-panel h2,.cabin-panel h2{font-size:23px}.dog-preview{height:145px}.dog-preview canvas{height:145px!important;width:239px!important}.dog-choices{max-height:200px}.dog-choices button{font-size:9px}#dogName{font-size:16px}.room-layouts svg{height:80px}.room-layouts small{font-size:7px}.entry-content .avatar-preview{height:146px}.entry-content .avatar-preview canvas{height:146px!important;width:215px!important}.profile-status{font-size:8px!important}.entry-content .entry-symbol{width:29px;height:29px}}
.in-cabin .my-room-route{left:30px}.in-cabin .room-decor{left:153px;top:69px}@media(max-width:760px){.in-cabin .my-room-route{left:18px}.in-cabin .room-decor{left:136px;top:66px}}

/* Photo controls stay separate from the scene exported to PNG. */
.icon-btn svg{width:19px;height:19px;vertical-align:middle}.photo-mode header,.photo-mode main,.photo-mode #nameTag,.photo-mode #toast,.photo-mode .train-chat,.photo-mode .shade{visibility:hidden!important;pointer-events:none!important}.photo-controls{position:fixed;inset:0;z-index:20;pointer-events:none}.photo-controls button{position:absolute;pointer-events:auto;color:#fff7e8;border:1px solid #f2e6cf70;background:#302a2570;backdrop-filter:blur(8px);border-radius:50%;width:42px;height:42px;font-size:26px}.photo-exit{right:20px;top:20px}.photo-controls .photo-shutter{bottom:max(22px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:62px;height:62px;padding:5px;background:#f6efe42b;border:2px solid #fff4df}.photo-shutter span{display:block;width:100%;height:100%;border-radius:50%;background:#fff4df}.photo-frame{right:20px;bottom:32px}.photo-preview{padding:0;border:0;background:#211b17;width:min(620px,calc(100vw - 20px));max-height:calc(100dvh - 24px);overflow:auto;border-radius:12px}.photo-preview::backdrop{background:#18130ff0}.photo-preview img{display:block;max-height:calc(100dvh - 96px);width:100%;object-fit:contain}.photo-preview-close{position:absolute;right:10px;top:10px;color:#fff4df;background:#211b17a0;border-radius:50%;height:36px;width:36px;font-size:25px}.photo-save-actions{display:flex;justify-content:center;gap:14px;padding:12px}.photo-save-actions button{background:#eee5d7;color:#5c624f;padding:10px 24px;border-radius:20px;font-size:12px}

/* Gestures affect only the scene; sheets retain ordinary vertical scrolling. */
body{overscroll-behavior:none}dialog,.entry-content,.chat-messages,.dog-choices{overscroll-behavior:contain;touch-action:pan-y pinch-zoom}.camera-pad{max-width:calc(100vw - 28px);gap:1px}.camera-pad button{min-width:40px;height:40px}.camera-pad #zoomIn,.camera-pad #zoomOut{font-size:23px}.icon-btn{min-width:36px;min-height:36px}#renderQuality{width:100%;border:1px solid #bdc6ae;background:#f6f1e7;border-radius:7px;color:#58644c;padding:10px}#npcEnabled{accent-color:#798c69}#recovery{position:fixed;z-index:80;left:50%;bottom:18px;transform:translateX(-50%);width:min(340px,calc(100vw - 30px));border:1px solid #d2c6ad;border-radius:12px;padding:14px;background:#efeadf;color:#58604c;box-shadow:0 8px 35px #211a1744}#recovery p{font-size:12px;line-height:1.8;margin:0 0 9px}#recovery button{padding:10px 15px;border-radius:8px;background:#63735b;color:#fff9eb}.npc-label{position:fixed;top:0;left:0;z-index:3;background:#eee8d7d9;color:#626d53;border:1px solid #f7efdd99;border-radius:18px;padding:6px 9px;font-size:9px;min-height:32px;white-space:nowrap}.npc-speech{position:fixed;top:0;left:0;z-index:4;max-width:min(245px,calc(100vw - 36px));padding:10px 12px;background:#ede7d6ee;color:#5d684f;border:1px solid #faf3e299;border-radius:12px;box-shadow:0 3px 12px #211b1730;font-size:11px;line-height:1.7;pointer-events:none}.npc-topics{display:grid;gap:9px}.npc-topics button{padding:14px;border-radius:8px;background:#e0e5d7;color:#5e6e50;text-align:left}.photo-mode .npc-label,.photo-mode .npc-speech{visibility:hidden!important}@media(max-width:760px){.camera-pad{right:12px}.camera-pad button{min-width:38px;height:40px}.camera-pad #lookBehind{padding:0 6px}.npc-label{font-size:8px;padding:5px 8px}.icon-btn{min-width:34px;min-height:34px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
