@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@600;700&display=swap');
:root{--ink:#243b3b;--orange:#c65732;--line:#d4d4c3}*{box-sizing:border-box}body{margin:0;background:#000;color:var(--ink);font:15px 'DM Sans',sans-serif}[hidden]{display:none!important}button,input{font:inherit}button{cursor:pointer;color:var(--ink);border:1px solid var(--line);border-radius:5px;background:#fffaf0;padding:11px 17px}button:hover{background:#eee7d5}button:focus-visible,input:focus-visible{outline:3px solid #df9b44;outline-offset:3px}button:disabled{opacity:.55;cursor:wait}main{margin:0;padding:0}.stage{position:relative}#scene{display:block;width:100%;height:100%;touch-action:none}h2{font:700 30px/1.13 'Playfair Display',Georgia,serif;margin:13px 0}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;color:#9a6b4d}p{line-height:1.65}label{display:block;font-size:11px;font-weight:700;margin:10px 0 8px}input{display:block;width:100%;padding:10px;margin-top:7px;border:1px solid #c7cabf;background:#fffdf7;border-radius:4px;min-width:0}.primary{background:var(--orange);color:white;border-color:var(--orange);width:100%;font-weight:700;margin-top:9px}.primary:hover{background:#ad4727}.account-panel{width:min(850px,100%);display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,1fr);gap:30px;padding:26px;background:#fffcf2;border:2px solid #344845;border-radius:4px;margin:auto}.account-panel p{font-size:12px;color:#6a756b;margin:10px 0}.portrait-picker{text-align:center;align-self:center;min-width:0}.portrait-stage{display:flex;align-items:center;justify-content:center;gap:8px}.portrait-stage img{object-fit:contain;width:calc(100% - 88px);height:390px;min-width:0}.portrait-stage button{padding:10px;width:40px;flex-shrink:0}.portrait-picker strong{display:block;margin-top:16px}.account-fields{align-self:center;min-width:0}.account-panel.login-panel{display:block;width:min(400px,100%)}#auth-status{color:#a0442d}.small{font-size:9px!important;text-align:center}.auth-tabs{display:flex;margin:20px 0;border-bottom:1px solid var(--line)}.auth-tabs button{flex:1;border:0;border-radius:0;background:none;padding:13px 8px}.auth-tabs button[aria-pressed=true]{color:var(--orange);border-bottom:2px solid var(--orange);font-weight:700}.gender-choice{display:flex;justify-content:center;gap:8px;margin-top:14px}.gender-choice button{padding:9px 14px;font-size:12px}.gender-choice button[aria-pressed=true]{border-color:var(--orange);background:#f8e8ce;color:#9d4225}#toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#243b3b;color:white;padding:14px 20px;max-width:85%;border-radius:6px;font-size:13px;z-index:5}.auth-screen #scene{display:none}.auth-screen .stage{display:flex;align-items:center;justify-content:center;min-height:100vh;min-height:100dvh;padding:24px 16px}.play-screen .stage{width:100%;height:100vh;height:100dvh;overflow:hidden}@media(max-width:620px){.account-panel{gap:14px;padding:18px;grid-template-columns:1fr}.portrait-stage img{height:220px;width:130px}.portrait-picker strong{margin-top:5px}.account-panel h2{font-size:25px}}

.play-screen #toast{bottom:85px}

#game-hud{position:absolute;inset:20px 24px auto;display:flex;justify-content:space-between;align-items:flex-start;gap:16px;pointer-events:none;z-index:2}#home-address{margin:0;padding:10px 16px;background:#fffaf0;border:2px solid var(--ink);border-radius:5px;box-shadow:3px 3px 0 #243b3b;font-weight:700;font-size:14px}.pill-button{position:relative;pointer-events:auto;background:#fffaf0;border:2px solid var(--ink);border-radius:22px;padding:12px 18px;box-shadow:3px 3px 0 #243b3b40;font-weight:700;font-size:13px}.pill-button:hover{background:#fff0ad}@media(max-width:620px){#game-hud{inset:14px 12px auto;gap:12px}#home-address{font-size:12px;padding:9px 10px;max-width:50%}.pill-button{padding:10px;font-size:11px}}

#apartment-style{position:fixed;left:20px;bottom:22px;z-index:4}@media(max-width:620px){#apartment-style{left:12px;bottom:18px;max-width:28%;padding:10px;font-size:11px}}
#balance{position:fixed;right:24px;bottom:22px;margin:0;padding:10px 16px;background:#fffaf0;border:2px solid var(--ink);border-radius:5px;box-shadow:3px 3px 0 #243b3b;font-size:20px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}@media(max-width:620px){#balance{right:12px;bottom:18px;padding:9px 12px;font-size:17px}}

#apartment-controls{position:fixed;left:20px;bottom:22px;z-index:4;display:flex;gap:10px;align-items:center}#apartment-controls #apartment-style{position:static;max-width:none}#apartment-lock{order:2;background:#a52e29;color:#fff;border-color:#70211e}#apartment-lock:hover{background:#8e2420}#apartment-lock.door-open{background:#267342;border-color:#194d2d}#apartment-lock.door-open:hover{background:#1e6036}@media(max-width:620px){#apartment-controls{left:12px;bottom:18px;max-width:58%;gap:6px;flex-wrap:wrap}#apartment-controls .pill-button{font-size:10px;padding:8px}}


#chat-form{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);pointer-events:auto;display:flex;gap:6px;width:min(440px,40vw);padding:5px;background:#fffaf0;border:2px solid var(--ink);border-radius:7px;box-shadow:3px 3px 0 #243b3b40}#chat-input{margin:0;flex:1;width:0;border:0;background:transparent;padding:6px;font-size:14px}#chat-send{padding:6px 10px;font-weight:700}
#speech-layer{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:hidden}.speech-bubble{position:absolute;transform:translate(-50%,-100%);max-width:min(290px,80vw);width:max-content;padding:12px 17px;border:2px solid var(--ink);border-radius:22px;background:#fffdf7;color:var(--ink);box-shadow:3px 3px 0 #243b3b30;font:600 16px/1.35 'DM Sans',sans-serif;overflow-wrap:anywhere;text-align:center;white-space:pre-wrap}.speech-bubble::before,.speech-bubble::after{content:'';position:absolute;left:50%;width:0;height:0;border-style:solid;transform:translateX(-50%)}.speech-bubble::before{bottom:-25px;border-width:25px 11px 0;border-color:var(--ink) transparent transparent}.speech-bubble::after{bottom:-20px;border-width:22px 8px 0;border-color:#fffdf7 transparent transparent}
@media(max-width:620px){.speech-bubble{font-size:14px;padding:10px 14px}}

.play-screen #toast{bottom:155px}@media(max-width:620px){.play-screen #toast{bottom:195px}}

#player-actions{position:fixed;left:20px;bottom:22px;z-index:4;display:flex;gap:8px;flex-wrap:wrap;max-width:calc(100vw - 24px)}#player-actions button{background:#fffcf2ed;border:2px solid #344845;box-shadow:3px 3px 0 #34484540;font-size:13px}
@media(max-width:1000px){#chat-form{bottom:18px;width:calc(100vw - 24px)}#player-actions{left:12px;bottom:80px}#player-actions button{font-size:12px}#apartment-controls{bottom:80px}#balance{bottom:80px}.play-screen #toast{bottom:150px}}

#phone-action[aria-pressed="true"]{background:#fff0ad}

#housing-balance{position:fixed;right:24px;bottom:22px;display:flex;align-items:center;gap:12px;pointer-events:auto;z-index:4}
#housing-balance #apartment-controls{position:static;max-width:none;flex-wrap:nowrap}
#housing-balance #balance{position:static;flex-shrink:0}
@media(max-width:1300px){body:has(#apartment-controls:not([hidden])) #chat-form{bottom:145px}}
@media(max-width:1000px){#housing-balance{right:12px;bottom:80px;gap:8px;max-width:calc(100vw - 24px)}#housing-balance #apartment-controls{gap:6px;flex-wrap:wrap}#housing-balance #balance{font-size:17px}}

#phone-panel{position:fixed;right:22px;top:50%;transform:translateY(-50%);width:min(360px,90vw);height:min(680px,85dvh);aspect-ratio:360/680;background:url('assets/phone.svg') center/100% 100% no-repeat;filter:drop-shadow(8px 10px 12px #10252660);z-index:6;padding:62px 32px 48px}
.phone-screen{height:100%;overflow:auto}.phone-screen header,.contact-card header{display:flex;align-items:center;justify-content:space-between;gap:8px}.phone-screen header span{font-size:11px;font-weight:700}.phone-screen header button,.contact-card header button{padding:2px 9px;font-size:24px;border:0;background:transparent}.phone-screen h2{font-size:27px;margin:22px 0 10px}.phone-screen ul,.contact-card ul{list-style:none;margin:0;padding:0}.phone-contact{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #d9d5c7;overflow-wrap:anywhere}.contact-portrait{width:54px;height:62px;border-radius:14px;background:#e4e9db;object-fit:cover;object-position:top;flex-shrink:0}.phone-contact strong{font-size:15px}.contact-card{position:fixed;left:20px;bottom:150px;z-index:7;background:#fff9eb;border:2px solid var(--ink);border-radius:12px;padding:16px;width:min(360px,calc(100vw - 24px));box-shadow:5px 5px 0 #243b3b40;max-height:55dvh;overflow:auto}.contact-card p{font-size:13px;margin:8px 0}.contact-card .phone-contact{flex-wrap:wrap}.contact-card button{padding:7px 10px;font-size:13px}.contact-reply{display:flex;gap:8px;margin:8px 0 16px}#contact-invitations{left:50%;top:50%;right:auto;bottom:auto;transform:translate(-50%,-50%)}#phone-status{font-size:13px;color:#64726b}
@media(max-width:1000px){#apartment-controls{bottom:132px}#player-actions{max-width:calc(100vw - 120px)}#phone-panel{right:12px}}


@media(min-width:1001px) and (max-width:1400px){#chat-form{bottom:18px;width:calc(100vw - 24px)}#player-actions{bottom:80px;max-width:calc(100vw - 150px)}#apartment-controls{bottom:132px}#balance{bottom:80px}}

@media(min-width:1001px) and (max-width:1400px){body:has(#apartment-controls:not([hidden])) #player-actions{bottom:22px}body:has(#apartment-controls:not([hidden])) #chat-form{bottom:80px}}

#phone-contacts .phone-contact{cursor:pointer}#phone-contacts .phone-contact:hover{background:#eee8d5}#phone-contacts .phone-contact:focus-visible{outline:3px solid #df9b44}.message-badge{font-size:11px;color:#a04428;margin-left:auto}#phone-conversation{height:100%;display:flex;flex-direction:column;min-height:0}#phone-conversation h2{font-size:21px;margin:10px 0;overflow-wrap:anywhere}#messages-back,#messages-older{font-size:12px;padding:6px;align-self:flex-start}#message-history{list-style:none;padding:6px 0;margin:6px 0;overflow:auto;flex:1;min-height:90px}.private-message{max-width:92%;padding:8px 10px;margin:8px 0;border-radius:10px;background:#e3e8db;overflow-wrap:anywhere}.private-message.outgoing{margin-left:auto;background:#f5d9ae}.private-message p{white-space:pre-wrap;font-size:13px;line-height:1.4;margin:0}.private-message small{display:block;font-size:9px;color:#61716b;margin-top:5px}#message-form{flex-shrink:0}#message-form label{margin:3px 0;font-size:11px}#message-input{width:100%;resize:vertical;max-height:90px;min-height:45px;border:1px solid #b5bcae;border-radius:6px;padding:7px;font:13px 'DM Sans',sans-serif}#message-send{width:100%;padding:7px;background:#243b3b;color:#fff;font-size:13px}#message-status{font-size:11px;line-height:1.3;margin:6px 0 0}#phone-panel:has(#phone-conversation:not([hidden])) .phone-screen{overflow:hidden}

.phone-screen{display:flex;flex-direction:column;min-height:0}.phone-screen>header{flex-shrink:0}#phone-directory{overflow:auto;min-height:0;flex:1}#phone-conversation{height:auto;flex:1}

#bank-open{width:100%;margin-top:16px;background:#243b3b;color:#fff;font-weight:700}#bank-panel{position:fixed;z-index:9;left:50%;top:50%;transform:translate(-50%,-50%);width:min(850px,calc(100vw - 28px));max-height:90dvh;display:flex;flex-direction:column;background:#fffaf0;border:3px solid #243b3b;border-radius:16px;padding:22px;box-shadow:0 0 0 100vmax #10262670,8px 10px 0 #10262640}#bank-panel header{display:flex;justify-content:space-between;align-items:center;gap:12px}#bank-panel h2{font-size:26px;margin:6px 0 16px}#bank-close{font-size:24px;padding:4px 12px}#bank-panel p{font-size:12px;margin:10px 0}.bank-summary{display:flex;flex-wrap:wrap;gap:14px}.bank-summary>div{flex:1;min-width:130px;background:#e8edde;padding:12px;border-radius:8px;font-size:12px}.bank-summary strong{display:block;margin-top:5px;font-size:21px;white-space:nowrap}.bank-table-scroll{overflow:auto;min-height:80px;max-height:47dvh}#bank-panel table{width:100%;border-collapse:collapse;font-size:12px}#bank-panel th{position:sticky;top:0;background:#243b3b;color:white;text-align:left;padding:10px}#bank-panel td{padding:11px 9px;border-bottom:1px solid #d6d9cc}#bank-panel td:nth-child(n+3),#bank-panel th:nth-child(n+3){text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}#bank-panel td:first-child{min-width:125px}#bank-panel td:nth-child(2){min-width:130px}#bank-panel footer{padding-top:12px;flex-shrink:0}#bank-panel footer button{font-size:12px;padding:8px 10px}@media(max-width:620px){#bank-panel{padding:14px}.bank-summary{gap:6px}.bank-summary>div{min-width:85px;padding:8px;font-size:10px}.bank-summary strong{font-size:15px}#bank-panel h2{font-size:21px}}

/* Larger account window, readable type, and single-line welcome titles. */
.auth-screen .account-panel{width:min(1200px,100%);min-height:780px;padding:48px;gap:44px;grid-template-columns:minmax(240px,320px) minmax(0,1fr)}
.auth-screen .account-panel.login-panel{width:min(820px,100%);min-height:650px;padding:56px;display:flex;align-items:center}
.auth-screen .account-panel.login-panel .account-fields{width:100%}
.auth-screen #auth-title{font-size:clamp(22px,3.1vw,40px);white-space:nowrap;letter-spacing:-.8px;line-height:1.2;margin:20px 0}
.auth-screen .account-panel p{font-size:16px}.auth-screen .eyebrow{font-size:13px}
.auth-screen .account-fields label{font-size:15px;margin-top:18px}.auth-screen .account-fields input{font-size:18px;padding:14px}
.auth-screen .auth-tabs button,.auth-screen .primary{font-size:18px;padding:16px}
.auth-screen .gender-choice button{font-size:15px}.auth-screen .portrait-picker strong{font-size:18px}
.auth-screen .portrait-stage img{height:460px}.auth-screen .account-panel .small{font-size:12px!important}
@media(max-width:1000px){.auth-screen .account-panel{padding:30px;gap:26px;grid-template-columns:240px minmax(0,1fr)}.auth-screen #auth-title{font-size:clamp(18px,2.8vw,32px)}}
@media(max-width:700px){.auth-screen .account-panel{grid-template-columns:1fr;min-height:0;padding:24px;gap:20px}.auth-screen .account-panel.login-panel{min-height:590px;padding:28px}.auth-screen #auth-title{font-size:clamp(13px,4.2vw,28px);letter-spacing:-.4px}.auth-screen .portrait-stage img{height:280px}.auth-screen .account-panel p{font-size:15px}}

/* Validated SimBD welcome illustration. */
.auth-screen{background:#88bedb url('assets/welcome/rue-simbd-v1.png') center center / cover no-repeat fixed}
.auth-screen .stage{background:transparent}
.auth-screen .account-panel{box-shadow:0 18px 65px #132f3d55}
