html:has(.dedicated-client){background:#08130e}
html:has(body.dedicated-client){height:100%;overflow:hidden;overscroll-behavior:none}
body.dedicated-client{position:fixed;inset:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}
.dedicated-client #client-surface{position:fixed;left:0;top:var(--client-top,0px);width:var(--client-width,100vw);height:var(--client-height,100dvh);overflow:hidden;overscroll-behavior:none}
.client-viewport-probe{position:fixed;inset:0 auto auto 0;width:100vw;height:100dvh;visibility:hidden;pointer-events:none}
.client-edge-to-edge .dedicated-client #client-surface{inset:0;width:100vw;height:100dvh}
.dedicated-client #title-screen{position:absolute;inset:0;min-height:0!important;height:100%;overflow:hidden!important;touch-action:none}
.dedicated-client #client-fit{position:absolute;left:50%;top:0;width:100%;transform:translateX(-50%) scale(var(--client-lobby-scale,1));transform-origin:top center}
body.dedicated-client.client-playing #play{position:absolute;inset:0;width:100%;height:100%;min-height:0;overflow:hidden;overscroll-behavior:none;touch-action:none}
.dedicated-client #play :is(.game-layout,.stage){min-height:0;overflow:hidden}
.dedicated-client :is(dialog,#roster-list){overscroll-behavior:contain;touch-action:pan-y}
.dedicated-client :is(button,a,input,select){touch-action:manipulation}
@media(orientation:landscape) and (pointer:coarse){.dedicated-client .game-toolbar{left:calc(8px + env(safe-area-inset-left))}.dedicated-client .vitals{right:max(10px,env(safe-area-inset-right))}.dedicated-client .touch-controls{left:calc(20px + env(safe-area-inset-left));right:calc(13px + env(safe-area-inset-right));bottom:max(15px,env(safe-area-inset-bottom))}.dedicated-client .action-bar{right:calc(115px + env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom))}}
.dedicated-client{background:#08130e;color:#e5dec5}
.dedicated-client #title-screen{min-height:100svh;background:linear-gradient(#08140ee8,#08140ed9),url('landing/aldoria-town.webp') center/cover fixed}
.client-header{display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:1240px;width:calc(100% - 48px);height:108px;margin:auto;border-bottom:1px solid #c2a56333}
.client-logo{width:190px;height:auto;max-height:92px;object-fit:contain}.client-home{font:13px Karla,sans-serif;color:#b9c3a8}.client-home:hover{color:#efd28a}
.client-header-actions{display:flex;gap:14px}.dedicated-client .client-header-actions .quiet{font:12px Karla,sans-serif;color:#d7c48e;border:1px solid #8b815444;padding:10px 13px}
.client-lobby{width:min(1100px,calc(100% - 48px));margin:25px auto 0;padding-bottom:35px}
#title-screen .client-lobby>.home-kicker{text-align:center;font-size:8px;margin:0 0 8px}
#title-screen .client-lobby>h1{font:500 30px Cinzel,Georgia,serif;text-align:center;margin:0 0 25px;color:#e5c47e}
.dedicated-client #title-screen .title-layout{padding:22px}
.dedicated-client .client-lobby #character-maker{max-width:870px}
.dedicated-client .client-lobby .roster-preview-stage{min-height:235px}
.dedicated-client .client-lobby .roster-preview-stage canvas{width:180px;height:216px}
.dedicated-client .client-play-tools{display:none;position:fixed;left:max(12px,env(safe-area-inset-left));bottom:max(10px,env(safe-area-inset-bottom));z-index:25;gap:7px}
.client-playing .client-play-tools{display:flex}
.client-play-tools button{min-width:36px;height:32px;padding:5px 8px;border:1px solid #9c8c56;background:#19261de8;color:#dfc487;font:12px Karla,sans-serif;border-radius:3px}
#client-status{position:fixed;left:50%;bottom:90px;transform:translateX(-50%);z-index:220;width:min(500px,90%);padding:13px 18px;background:#17251cf2;border:1px solid #b39c62;color:#e5d5ab;text-align:center;font:14px/1.5 Karla,sans-serif}
.install-guide{width:min(530px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow-y:auto;padding:25px 28px 20px;border:1px solid #b9a36a;outline:1px solid #5e583e;border-radius:15px;background:radial-gradient(ellipse at 50% 0,#29533466,transparent 55%),linear-gradient(145deg,#13281b,#0d1711 75%);box-shadow:0 0 35px #65af5c18,0 20px 70px #0009;color:#e0ddc8;text-align:center;font:16px/1.55 Karla,sans-serif}
.install-guide{border-image:none}
.install-guide::backdrop{background:#020805e8;backdrop-filter:blur(5px)}
.install-guide>img{display:block;width:min(290px,80%);height:auto;margin:0 auto 13px}
.install-guide h2{font:700 24px/1.2 Cinzel,Georgia,serif;color:#e5c376;margin:12px 0}
.install-guide>p{font:15px/1.55 Karla,sans-serif;color:#b7c1ab;margin:0 0 19px}
.install-close{position:absolute;right:17px;top:12px;border:0;background:none;color:#b7bd9f;font:27px Arial;cursor:pointer;padding:4px 8px}
.install-guide ol{list-style:none;counter-reset:install;margin:20px 0;padding:0;display:grid;gap:9px;text-align:left}
.install-guide li{counter-increment:install;position:relative;padding:13px 13px 13px 53px;min-height:52px;border:1px solid #8f945139;border-radius:9px;background:#07140c44;font-size:15px;line-height:1.45}
.install-guide li:before{content:counter(install);position:absolute;left:13px;top:12px;width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(#eed58c,#b78c43);color:#293221;font:700 16px Karla,sans-serif;box-shadow:0 0 12px #eac06e22}
.install-primary{width:100%;padding:14px;border:1px solid #c9bd74;border-radius:10px;background:linear-gradient(#638c41,#30522b);color:#f4efd6;font:700 16px Karla,sans-serif;cursor:pointer;box-shadow:inset 0 1px #d2e0a655,0 0 14px #6a9d4022}
.install-secondary{display:flex;gap:10px;margin-top:10px}
.install-secondary button{flex:1;padding:13px 8px;background:#132017;border:1px solid #6a765044;border-radius:9px;color:#c8cdb9;font:14px Karla,sans-serif;cursor:pointer}
.install-guide .install-save-note{font-size:11px;line-height:1.5;color:#94a58b;margin:15px 0 0}
.rotate-screen{position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:20px;border:0;outline:0;border-radius:0;background:#050e09ed;color:#dfe5cc;box-shadow:none;overflow:auto}
.rotate-screen::backdrop{background:#020805eb;backdrop-filter:blur(5px)}
.rotate-content{min-height:calc(100dvh - 40px);display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;gap:16px;max-width:500px;margin:auto}
.rotate-content>img{width:min(270px,75%);height:auto;margin-bottom:20px;opacity:.55}
.rotate-phone{width:43px;height:78px;border:4px solid #c0d28e;border-radius:8px;box-shadow:0 0 28px #73ab5944;position:relative;transform:rotate(-14deg);margin:20px 0 15px}
.rotate-phone:after{content:"";position:absolute;bottom:4px;left:16px;width:5px;height:5px;border-radius:50%;background:#c9d6a3}
.rotate-phone>span{position:absolute;right:-37px;top:8px;color:#e0c17c;font-size:43px}
.rotate-content h2{font:500 23px/1.4 Cinzel,Georgia,serif;color:#e5d4a3;margin:8px 0 0}
.rotate-content p{font:17px Karla,sans-serif;color:#b9c7a8;margin:0}
.rotate-content small{font:12px/1.6 Karla,sans-serif;color:#899d7f;max-width:300px}
.rotate-content a{font:13px Karla,sans-serif;color:#d7bb7c;padding:15px}
.browser-client-cta{display:flex;justify-content:space-between;gap:45px;align-items:center}
.browser-client-cta p:not(.home-kicker){color:#aeb9a1;max-width:590px}
.browser-client-cta .home-button{flex:none}
@media(max-width:700px){.browser-client-cta{display:block}.browser-client-cta .home-button{margin-top:20px}.install-guide{padding:23px 20px 18px}.install-guide h2{font-size:21px}.install-guide li{font-size:14px}.client-header{height:80px}.client-header .client-logo{width:135px}.client-header-actions{gap:7px}.dedicated-client .client-header-actions .quiet{font-size:10px;padding:8px}.client-home{font-size:11px}}
@media(orientation:landscape) and (max-height:600px){.client-header{height:60px;width:calc(100% - 40px)}.client-header .client-logo{width:126px;max-height:54px}.client-lobby{margin-top:10px;width:calc(100% - 40px);padding-bottom:12px}#title-screen .client-lobby>h1,#title-screen .client-lobby>.home-kicker{display:none}.client-lobby .client-topline{padding:7px 12px}.dedicated-client #title-screen .title-layout{padding:12px}.dedicated-client #title-screen #character-maker{display:grid;grid-template-columns:1fr 1fr;column-gap:20px;max-width:100%}.client-lobby #creator-back{grid-column:1/-1;grid-row:1;margin:0 0 7px;justify-self:start}.client-lobby .choose-label{grid-column:1;grid-row:2;margin:0 0 8px}.dedicated-client #title-screen .choose-label h2{font-size:17px}.client-lobby .class-grid{grid-column:1;grid-row:3;gap:7px}.dedicated-client #title-screen .class-card{padding:3px 4px 10px}.dedicated-client #title-screen .class-card canvas{width:56px;height:66px}.dedicated-client #title-screen .class-name{font-size:13px}.dedicated-client #title-screen .class-card small{font-size:7px;margin-top:4px}.client-lobby #class-description{grid-column:1;grid-row:4;font-size:11px!important;line-height:1.5!important;margin:8px 0 10px!important;min-height:0}.client-lobby #creator-appearance{grid-column:2;grid-row:2/6}.client-lobby .creator-preview{display:none}.dedicated-client #title-screen .appearance-fields{margin:0;padding:9px;gap:7px}.dedicated-client #title-screen .appearance-fields legend{font-size:12px}.dedicated-client #title-screen .appearance-fields label{font-size:10px}.dedicated-client #title-screen .appearance-fields select{padding:5px;min-height:30px;font-size:11px}.client-lobby .name-label{grid-column:1;grid-row:5;margin:0 0 5px!important}.client-lobby .begin-row{grid-column:1/-1;grid-row:6;flex-direction:row;margin-top:5px}.dedicated-client #title-screen .begin-row input{width:45%;min-height:36px;padding:8px 11px}.dedicated-client #title-screen .begin-row .gold{min-height:36px;padding:8px 13px}.dedicated-client #title-screen #save-note{font-size:9px;margin-top:9px}.dedicated-client #title-screen #title-import{font-size:10px;padding:5px}.dedicated-client #title-screen .character-lobby{grid-template-columns:.8fr 1.2fr;padding:10px;gap:15px}.dedicated-client #title-screen .roster-preview-panel{border-right:1px solid #67674a;border-bottom:0;padding:0 12px 0 0}.dedicated-client .client-lobby .roster-preview-stage{min-height:145px}.dedicated-client .client-lobby .roster-preview-stage canvas{width:115px;height:138px}.dedicated-client #title-screen .roster-preview-panel h2{font-size:16px;margin:7px 0}.dedicated-client #title-screen #resume-description{font-size:10px}.dedicated-client #title-screen #roster-list{min-height:0;max-height:150px}.dedicated-client #title-screen .roster-entry{min-height:48px}.dedicated-client #title-screen .roster-main-actions{margin-top:9px}.dedicated-client #title-screen .roster-main-actions button{padding:8px;font-size:10px}.install-guide{width:min(630px,calc(100vw - 48px));padding:16px 25px}.install-guide>img{width:170px;margin:0 auto 7px}.install-guide h2{font-size:20px}.install-guide>p{font-size:13px;margin-bottom:12px}.install-guide ol{margin:12px 0;gap:6px}.install-guide li{padding-block:9px;min-height:43px;font-size:13px}.install-guide li:before{top:8px}.install-primary{padding:11px}.install-secondary button{padding:10px}.client-playing .client-play-tools{left:50%;transform:translateX(-50%);bottom:auto;top:max(7px,env(safe-area-inset-top))}.client-play-tools button{height:25px;min-width:30px;font-size:10px;padding:3px 6px}}
