@font-face{font-family:'Yeopjip Gothic';src:url('./assets/fonts/NanumGothic-Regular.woff') format('woff');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'Yeopjip Gothic';src:url('./assets/fonts/NanumGothic-Bold.woff') format('woff');font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:'Yeopjip Myeongjo';src:url('./assets/fonts/NanumMyeongjo-Bold.woff') format('woff');font-style:normal;font-weight:700;font-display:swap}
/* Preserve the charcoal interface; remove cream/beige from UI accents. */
:root{color-scheme:dark;--paper:#18201e;--ink:#fff;--line:#ffffff24;--rust:#ef8777;--glass:rgba(17,23,21,.93);--muted:#c1c9c5;--selected:#fff;--font-body:'Yeopjip Gothic','Apple SD Gothic Neo','Malgun Gothic',sans-serif;--font-title:'Yeopjip Myeongjo','AppleMyungjo','Batang',serif}
body,#app{font-family:var(--font-body);color:#fff;letter-spacing:-.025em}
button,input,select,textarea{font-family:var(--font-body)}
.brand b,.room-heading h1,dialog h2,#welcome .entry-title h2,#welcome #entry-character,#loading strong{font-family:var(--font-title);font-weight:700;letter-spacing:-.035em;line-height:1.5}
.brand b{color:#fff;text-shadow:none}.brand-mark{color:#ee7667}.brand small{color:#fff}.brand{box-shadow:none}
.brand,.round-btn,.pill,.preview-tag,.small-actions,.room-nav,#chat-panel,#emote-tray,.camera-tools button,#secondary-action,#bath-actions button,#motion-row button,#locker-actions button,#snack-fun button,#private-fun button,#studio-motions button,#studio-angles button{color:#fff;box-shadow:none;border-color:#ffffff26}
.room-heading h1,.room-heading p,.room-heading .eyebrow,#room-population,#branch-open,.room-nav button,.small-actions button,#npc-open,#yardog-btn,.dialog-kicker,dialog h2,dialog h3,dialog label,.help-cards h3{color:#fff}
.room-nav button>small,#room-desc,dialog p,dialog .prototype-note{color:#c1c9c5}
.action-primary,.compact-ui #primary-action,dialog .dialog-action,#party-dialog .dialog-action,.primary-button,#welcome .dialog-action,#entry-choose-done,.room-nav button.selected,.compact-ui .room-nav button.selected,.small-actions button.active,.compact-ui .small-actions button.active,#motion-toggle[aria-expanded=true],#emote-btn[aria-expanded=true]{background:#fff;color:#17392d;border-color:#fff;box-shadow:none}
.action-primary:hover,#welcome .dialog-action:hover{background:#e9eeeb;color:#17392d}.action-primary:disabled{background:#d9e1dc;color:#52655b}.action-primary #action-key{color:#365847;border-color:#9aafa2}.room-nav button.selected>small{color:#456655}
#climate b,.bottom-caption,.bottom-caption button,.bottom-caption a,#my-status,#gesture-hint,#loading strong,#loading>span:last-child{color:#fff}
#chat-panel #chat-input,#quick-chat #chat-input{color:#fff;-webkit-text-fill-color:#fff;caret-color:#fff;font-family:var(--font-body);font-size:16px}#chat-input::placeholder{color:#bcc9c1;opacity:1}
#quick-chat #chat-form button,#chat-form button{background:#fff;color:#17392d}#chat-title,.chat-meta,#chat-close,#chat-info,#chat-panel .chat-line,#chat-panel .chat-line b,#world-bubble,.peer-speech,.peer-emote,.peer-speech b,.peer-speech span{color:#fff}
#party-dialog{background:#18201e;color:#fff}#party-dialog textarea{background:#101815;color:#fff;border-color:#74867d}#roulette-window{background:#101815;border-color:#ffffff30}#roulette-value,#roulette-window>span,#party-copy{color:#fff}#roulette-window small{color:#c1c9c5}
#welcome.branch-dialog,.welcome-panel{background:#18201e}#welcome .entry-title h2,#welcome #entry-character,#welcome .hero-copy h2,.hero-top,.hero-copy,.welcome-photo-note{color:#fff}#welcome .hero-copy h2{font-family:var(--font-title);line-height:1.35}
.hero-top>.welcome-wordmark{display:flex;align-items:center;gap:9px;font-family:var(--font-title);font-size:24px;line-height:1.3;color:#fff}.welcome-wordmark>i{font-style:normal;font-family:serif;font-size:36px;color:#ed5b4e}.hero-top .welcome-wordmark small{margin:5px 0 0;font-family:var(--font-body);font-size:9px;letter-spacing:.25em}
#welcome .entry-title p,#welcome .welcome-footer,.entry-stamp,#entry-live,.entry-bottom>span:first-child,.entry-bottom b,.entry-steps{color:#c1c9c5}.ticket-icon{background:#ffffff08;color:#ef786b}.entry-steps .active{color:#fff}.entry-steps .active b{background:#fff;color:#17392d}
.entry-branch-choice{background:#ffffff05;border-color:#ffffff30}.entry-branch-choice strong{color:#fff}.entry-branch-choice>span,.entry-branch-choice>b,.entry-branch-choice small,#entry-start-room legend{color:#c1c9c5}#entry-start-room span{background:#ffffff05;border-color:#ffffff25;color:#fff}#entry-start-room input:checked+span{background:#fff;color:#17392d;border-color:#fff}
.entry-sound>span,.entry-sound strong{color:#fff}.entry-sound small{color:#c1c9c5}.entry-sound input{background:#4b5b52}.entry-sound input:checked{background:#fff}.entry-sound input:before{background:#142b1f}
.branch-card{color:#fff}.branch-card.selected{background:#fff;color:#17392d;outline-color:#fff}.branch-card.selected .branch-count small,.branch-card.selected .branch-state{color:#456655}.branch-pages button[aria-current=page]{background:#fff;color:#17392d}.entry-ticket strong,.entry-ticket>span,.entry-ticket small,.reveal-eyebrow,.reveal-line{color:#fff!important}.rarity-badge{color:#fff}.branch-summary,.branch-count small,.branch-state{color:#c1c9c5}
button svg{display:block;flex-shrink:0}button{box-sizing:border-box}button:focus-visible,a:focus-visible{outline:2px solid #fff!important;outline-offset:3px}
.round-btn,dialog .close{display:grid;place-items:center;padding:0}.round-btn svg{width:20px;height:20px}dialog .close{width:44px;height:44px;line-height:1;right:14px;top:14px;font-size:26px}
.room-nav{grid-template-columns:repeat(6,minmax(0,1fr))}.room-nav button{min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;text-align:center}.room-nav button>span{display:grid;place-items:center;min-width:24px;height:24px;line-height:1}.room-nav button>b{white-space:nowrap}
#motion-row{justify-content:center;align-items:center}#motion-row button{display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;margin:0;min-height:44px}#motion-row .round-btn{width:44px;padding:0;flex:0 0 44px}
#motion-row #ice-actions{display:flex;gap:6px;flex:1 0 100%;justify-content:center}#motion-row #ice-actions[hidden]{display:none}#ice-actions button{flex:1 1 0;min-width:0}
#shelter-actions button[aria-pressed=true],#motion-row #shelter-actions button[aria-pressed=true]{background:#fff;color:#17392d;border-color:#fff}
#entry-start-room>div{grid-template-columns:repeat(4,minmax(0,1fr))}#entry-start-room label{min-width:0}#entry-start-room span{min-height:66px;justify-content:center}#entry-start-room b{white-space:nowrap}.entry-title>div{min-width:0}.entry-title p{word-break:keep-all;line-height:1.7}
.ladder-scroll{overflow-x:auto;overscroll-behavior-x:contain;touch-action:pan-x pan-y;border:1px solid #ffffff30;border-radius:14px;background:#fff;margin:16px 0}#ladder-grid{--lanes:2;width:100%}#ladder-board{background:#fff;border-radius:0}#ladder-names,#ladder-outcomes{display:grid;grid-template-columns:repeat(var(--lanes),minmax(0,1fr));gap:0;margin:0;color:#17392d;font-size:12px;padding:12px 0}#ladder-names span,#ladder-outcomes span{padding:0 5px;line-height:1.5;min-width:0;word-break:keep-all;overflow-wrap:anywhere}.ladder-rail,.ladder-rung{stroke:#b3c3ba;stroke-width:2}.ladder-help{font-size:12px;line-height:1.7;word-break:keep-all}
@media(max-width:420px){.hero-top>.welcome-wordmark{font-size:21px}#welcome .hero-copy h2{font-size:25px}.entry-topline{flex-wrap:wrap;gap:7px}.entry-stamp{letter-spacing:0;font-size:10px}.entry-title{gap:10px}#welcome .entry-title h2{font-size:23px}.entry-steps{gap:8px;font-size:9px}.entry-steps li{min-width:0;white-space:nowrap}.welcome-panel{padding-left:20px;padding-right:20px}}
#motion-row #shelter-actions{display:flex;flex:1 0 100%;gap:6px;flex-wrap:nowrap;min-width:0}#motion-row #shelter-actions[hidden]{display:none}#shelter-actions button{display:inline-flex;flex:1 1 0;align-items:center;justify-content:center;gap:5px;min-width:0;min-height:44px;padding:8px 5px;white-space:nowrap;font-size:12px}#shelter-actions svg,#shelter-visit svg{width:18px;height:18px;flex-shrink:0}#motion-row #shelter-actions button[aria-pressed=true]{background:#fff;color:#17392d;border-color:#fff}#shelter-visit{display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}#shelter-visit[hidden]{display:none}

#about .visit-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}#about .visit-options button{display:grid;grid-template-columns:24px minmax(0,1fr);grid-template-rows:auto 1fr;align-content:start;align-items:start;gap:7px 8px;min-width:0;min-height:90px;padding:14px 10px;text-align:left}#about .visit-options i{grid-column:1;grid-row:1;font-style:normal;font-size:21px;line-height:1.4;color:#fff}#about .visit-options b{grid-column:2;grid-row:1;min-width:0;font-size:13px;line-height:1.5;word-break:keep-all;overflow-wrap:normal}#about .visit-options span{grid-column:1/-1;grid-row:2;font-size:11px;line-height:1.6;word-break:keep-all;overflow-wrap:anywhere;color:#c1c9c5}@media(max-width:350px){#about .visit-options{grid-template-columns:1fr}#about .visit-options button{min-height:70px}}

.compact-ui .actions button:not(#primary-action),.compact-ui .room-nav button{color:#fff}.compact-ui .small-actions button.active,.compact-ui #motion-toggle[aria-expanded=true],.compact-ui #social-menu-toggle[aria-expanded=true],.compact-ui .room-nav button.selected{background:#fff;color:#17392d}

/* Small scene notices sit above controls, never across the avatar's face. */
#toast{box-sizing:border-box;padding:5px 8px;background:transparent;border:0;border-radius:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;color:#fff;font-family:var(--font-body);font-size:13px;line-height:1.65;letter-spacing:-.015em;word-spacing:.025em;text-align:center;white-space:pre-line;word-break:keep-all;overflow-wrap:normal;text-shadow:0 1px 3px #09140d,0 0 7px #09140dcc;transform:translate(-50%,4px);transition:opacity .2s,transform .2s}
#toast.show{transform:translate(-50%,0)}
.room-heading,#my-status,#gesture-hint{background:transparent;border-color:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;text-shadow:0 1px 4px #0a1918}
.room-heading h1,.room-heading p,dialog p,#room-desc{word-break:keep-all;overflow-wrap:normal}
#locker-open{white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:5px}
/* ID specificity prevents generic white text rules hiding selected labels. */
#app.compact-ui .actions #sit-btn.active,#app.compact-ui .actions #lie-btn.active,.compact-ui .room-nav button.selected,.compact-ui #social-menu-toggle[aria-expanded=true]{color:#17392d;background:#fff}
.compact-ui .room-nav button.selected>b,.compact-ui .room-nav button.selected>span{color:#17392d}
.compact-ui .actions #social-menu-toggle{flex:0 0 44px;min-width:44px;max-width:44px;margin:0;padding:4px;white-space:nowrap;order:5}
.compact-ui .actions #secondary-action{display:none}
#snack-fun:not([hidden]),#private-fun:not([hidden]){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;box-sizing:border-box}
#snack-fun button,#private-fun button{width:100%;min-width:0;white-space:normal;word-break:keep-all;text-align:center;line-height:1.5}
@media(max-width:350px){.compact-ui .actions{gap:3px}.compact-ui #motion-toggle{min-width:44px;width:44px;padding:5px}.compact-ui #primary-text{font-size:10px}}
#loading{gap:0;padding:28px;box-sizing:border-box;text-align:center}
#loading .loading-steam{width:70px;height:70px;color:#ee947a;margin-bottom:22px;overflow:visible;flex:none}
.loading-steam path{transform-origin:center;animation:steam-rise 2.1s ease-in-out infinite}.loading-steam path:nth-of-type(2){animation-delay:.25s}.loading-steam path:nth-of-type(3){animation-delay:.5s}
#loading #loading-title{font-size:clamp(21px,5.7vw,28px);letter-spacing:-.045em;line-height:1.55;word-break:keep-all}
#loading #loading-detail{margin-top:12px;font-size:13px;line-height:1.8;letter-spacing:-.02em;color:#d2dcd6;white-space:pre-line;word-break:keep-all}
#loading .loading-brand{margin-top:26px;font-size:12px;letter-spacing:.07em;color:#bac8bf}
.loading-dots{display:flex;gap:7px;height:10px;margin-top:20px;align-items:center}.loading-dots i{width:5px;height:5px;border-radius:50%;background:#fff;animation:loading-dot 1.35s ease-in-out infinite}.loading-dots i:nth-child(2){animation-delay:.15s}.loading-dots i:nth-child(3){animation-delay:.3s}
#loading-retry{margin-top:24px;min-height:44px;padding:10px 18px;background:transparent;color:#fff;border:1px solid #ffffff55;border-radius:12px}
#loading.loading-error .loading-steam path,#loading.loading-error .loading-dots i{animation:none}.loading-error .loading-dots{display:none}
@keyframes steam-rise{0%,100%{transform:translateY(2px);opacity:.55}50%{transform:translateY(-4px);opacity:1}}
@keyframes loading-dot{0%,80%,100%{transform:translateY(0);opacity:.3}40%{transform:translateY(-4px);opacity:1}}
@media(prefers-reduced-motion:reduce){#loading .loading-steam path,#loading .loading-dots i{animation:none;opacity:.8}#toast{transition:none}}

/* Every action occupies an explicit grid cell; the snack button never spills out. */
#quick-chat #chat-form>button{display:grid;place-items:center;padding:0;line-height:1;min-width:44px;max-width:44px;flex:0 0 44px}
#quick-chat #chat-form>button svg{width:21px;height:21px;display:block}
#app.compact-ui .actions{display:grid;grid-template-columns:44px 44px minmax(0,1fr) 44px;gap:4px;align-items:stretch}
#app.compact-ui.talking .actions{grid-template-columns:44px 44px minmax(0,1fr) 44px 52px}
#app.compact-ui .actions button{width:auto;min-width:0;max-width:none;margin:0;box-sizing:border-box}
#app.compact-ui .actions #sit-btn{grid-column:1;grid-row:1}
#app.compact-ui .actions #lie-btn{grid-column:2;grid-row:1}
#app.compact-ui .actions #primary-action{grid-column:3;grid-row:1;min-width:0;width:100%}
#app.compact-ui .actions #motion-toggle{grid-column:4;grid-row:1;min-width:0;padding:4px}
#app.compact-ui .actions #social-menu-toggle{grid-column:5;grid-row:1;min-width:0;max-width:none;width:100%;padding:4px;font-size:11px;display:flex;align-items:center;justify-content:center;gap:3px}
#social-menu-toggle:after{content:'';width:5px;height:5px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg)}
#social-menu-toggle[aria-expanded=true]:after{transform:translateY(2px) rotate(225deg)}
#app .bottom-ui>#snack-fun,#app .bottom-ui>#private-fun{position:absolute;bottom:calc(100% + 8px);left:0;width:100%;max-width:100%;max-height:min(320px,calc(100dvh - 210px));overflow-y:auto;padding:12px;border:1px solid #ffffff35;border-radius:18px;background:#17241ff7;z-index:60;box-shadow:0 10px 30px #0003}
#app:has(#snack-fun:not([hidden])) #quick-chat,#app:has(#private-fun:not([hidden])) #quick-chat{visibility:hidden;pointer-events:none}
#app .bottom-ui>#snack-fun button,#app .bottom-ui>#private-fun button{min-height:44px;margin:0;line-height:1.45}
@media(max-width:350px){#app.compact-ui .actions{gap:3px}#app.compact-ui #primary-text{font-size:10px}}

#app.compact-ui .actions #social-menu-toggle[aria-expanded=true],#app.compact-ui .actions #motion-toggle[aria-expanded=true]{background:#fff;color:#17392d;-webkit-text-fill-color:#17392d}
