@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Outfit:wght@400;500;600;700;800&family=Noto+Sans+KR:wght@400;500;600;700&display=swap');
:root{--ink:#203b35;--cream:#f9f8ec;--lime:#d4ed95;--line:#ffffff40}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#b7ccbf;color:var(--ink);font:14px 'DM Sans','Noto Sans KR',sans-serif}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid #cfeb8e;outline-offset:4px}#world{position:fixed;inset:0}#world canvas{display:block;width:100%;height:100%;touch-action:none}.hud{position:fixed;top:0;left:0;right:0;padding:28px 36px;display:flex;align-items:center;justify-content:space-between;pointer-events:none;z-index:3}.hud>*{pointer-events:auto}.brand{font:800 39px 'Outfit';letter-spacing:-2.5px;color:#1e3d36;text-decoration:none;text-shadow:0 1px 18px #fff9}.brand span{display:block;font:600 8px 'DM Sans';letter-spacing:3px;text-align:center;margin-top:0}.location{display:flex;align-items:center;gap:10px;background:#f6f8f0a8;border:1px solid #ffffff88;backdrop-filter:blur(15px);padding:14px 19px;border-radius:30px;font-size:10px;letter-spacing:1.5px}.live-dot{width:6px;height:6px;background:#5b846a;border-radius:50%}.location small{font-size:8px;color:#75867a;border-left:1px solid #b8c5b5;padding-left:11px}.top-actions{display:flex;gap:8px}.top-actions button{background:#f6f8f0b8;color:#345448;border:1px solid #fff9;backdrop-filter:blur(15px);border-radius:25px;padding:11px 17px;font-size:11px}.welcome{position:fixed;top:21%;left:7%;z-index:4;width:390px;color:#fdfcf3;text-shadow:0 2px 18px #102c2e25}.eyebrow{font-size:9px;letter-spacing:2px;font-weight:600}.welcome h1{font:600 clamp(54px,5.8vw,90px)/.95 'Outfit';letter-spacing:-3px;margin:23px 0}.welcome h1 em{font-weight:400;font-style:normal;color:#edfacd}.welcome>p{font-size:14px;line-height:1.9;font-weight:400;margin-bottom:26px}.start-panel{width:310px;padding:19px;background:#f8f9f0e8;backdrop-filter:blur(20px);border:1px solid #fff8;border-radius:15px;color:var(--ink);text-shadow:none;box-shadow:0 15px 60px #152a2012}.start-panel label{font-size:10px;display:block;margin-bottom:7px;color:#687e6f}.start-panel input{width:100%;padding:9px 0;border:0;border-bottom:1px solid #bac9b3;background:transparent;color:var(--ink);font-weight:600;outline-offset:1px}.mode-row{display:flex;gap:6px;margin:15px 0}.mode{flex:1;border:1px solid #d2ddca;background:none;border-radius:7px;font-size:11px;padding:9px 4px;color:#7b8e7d}.mode span{font-size:9px;display:block;margin-top:3px}.mode.selected{background:#e2edcf;color:#355a45;border-color:#a2bb8b}.primary{width:100%;border:0;border-radius:8px;background:#284b3f;color:#fbfcf4;padding:14px 16px;font-weight:500;display:flex;justify-content:space-between;align-items:center}.primary:hover{background:#3d6350}.primary:disabled{opacity:.5;cursor:wait}.resume{background:none;border:0;display:block;text-align:center;width:100%;padding:12px 0 0;font-size:11px;color:#54704e}.welcome-fine{font-size:9px;color:#eaf0dfb9;line-height:1.9;margin-top:17px;text-shadow:0 2px 5px #1c3c40}.world-caption{position:fixed;right:40px;bottom:40px;font:500 11px/1.7 'DM Sans';letter-spacing:2.4px;color:#f9fbee;text-align:right;text-shadow:0 1px 6px #243e34}.race-hud{position:fixed;top:122px;left:35px;width:255px;pointer-events:none}.route-card{padding:19px 21px;border:1px solid #ffffff80;border-radius:14px;background:#f9fbf0cf;backdrop-filter:blur(18px);box-shadow:0 5px 40px #2544350c}.route-card .eyebrow{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.2px}.route-card .eyebrow span{font-size:7px;color:#87957c}.distance{display:flex;align-items:baseline;gap:9px;margin:10px 0 13px}.distance b{font:500 42px 'Outfit';letter-spacing:-1.5px}.distance>span{font-size:10px;color:#859180}.route-line{height:4px;border-radius:2px;background:#d9e0cf;position:relative}.route-line i{display:block;height:100%;background:#728d54;width:0}.route-line>span{position:absolute;top:-2px;border:2px solid #f6f8ed;border-radius:50%;width:8px;height:8px;background:#9bb280}.next{display:flex;justify-content:space-between;font-size:9px;margin-top:14px;color:#718065}.next b{font-weight:500;color:#405d39}.stamps{display:flex;gap:7px;margin-top:10px;pointer-events:auto}.stamps button{flex:1;display:flex;align-items:center;flex-direction:column;gap:5px;background:#f5f8efbd;backdrop-filter:blur(16px);border:1px solid #fff7;border-radius:10px;padding:10px 3px;color:#75856b}.stamps span{font:600 13px 'Outfit'}.stamps b{font-size:9px;font-weight:400}.stamps .done{background:#d9ecadeb;color:#395931}.center-hint{position:fixed;bottom:125px;left:50%;transform:translateX(-50%);padding:10px 20px;background:#244333a6;color:#f4f8e9;backdrop-filter:blur(10px);border:1px solid #ffffff22;border-radius:25px;font-size:11px;text-align:center;pointer-events:none;white-space:nowrap;transition:opacity .3s}.runner-label{position:fixed;left:50%;top:55%;transform:translate(-50%,-100%);display:flex;align-items:center;gap:6px;background:#fbfceee8;border:1px solid #fff;padding:5px 10px;border-radius:20px;font-size:10px;pointer-events:none}.runner-label span{font-size:7px;background:#50754e;color:#f7fbe8;padding:4px;border-radius:50%}.runner-label b{font-weight:500}.bottom-hud{position:fixed;left:35px;right:35px;bottom:28px;display:flex;align-items:flex-end;justify-content:space-between;color:#f5f9eb;text-shadow:0 1px 5px #203c35}.stamina{width:190px}.stamina>div:first-child{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.5px;margin-bottom:8px}.stamina b{font-size:8px;font-weight:400}.energy-track{height:5px;background:#fff5;border-radius:5px;overflow:hidden}.energy-track i{width:100%;height:100%;display:block;background:#d9ed9d;transition:width .1s}.keys{display:flex;gap:20px;font-size:10px;align-items:center;padding:10px 18px;border:1px solid #ffffff40;background:#28453354;backdrop-filter:blur(12px);border-radius:25px}.keys span{display:flex;align-items:center;gap:6px}kbd{font:9px 'DM Sans';letter-spacing:1px;background:#ffffff25;padding:5px 7px;border-radius:4px}.subtle{font-size:10px;border:0;border-bottom:1px solid #fff5;background:none;color:#eef4e4;padding:6px 0}.touch{display:none}.hidden{display:none!important}#loading{position:fixed;inset:0;background:#dce5da;z-index:20;display:flex;align-items:center;justify-content:center;flex-direction:column}.loading-brand{font:800 70px 'Outfit';letter-spacing:-5px;color:#365748}#loading p{font-size:12px;color:#6e8474;margin:24px 0}.load-track{height:3px;width:200px;border-radius:3px;background:#becdb6}.load-track span{display:block;background:#4b7055;width:5%;height:100%;transition:width .3s}#loading small{font-size:8px;letter-spacing:3px;margin-top:18px;color:#80947a}#toast{position:fixed;top:105px;left:50%;transform:translateX(-50%);background:#254a3ee8;color:#f3f8e9;border:1px solid #ffffff40;border-radius:25px;padding:12px 20px;font-size:12px;opacity:0;transition:opacity .2s;pointer-events:none;z-index:30;max-width:85vw;text-align:center}#toast.show{opacity:1}dialog{width:min(440px,calc(100% - 28px));background:#f9faf0f5;border:1px solid #fff;border-radius:19px;padding:34px;color:var(--ink);box-shadow:0 30px 100px #14372f40}dialog::backdrop{background:#153a344d;backdrop-filter:blur(9px)}#closeModal{position:absolute;top:15px;right:17px;background:none;border:0;font-size:10px;color:#84947d}dialog h2{font-size:27px;line-height:1.4;font-weight:600;letter-spacing:-1px;margin:17px 0}dialog p{font-size:13px;line-height:1.9;color:#7b8b72}dialog .fine{font-size:10px;color:#8b977f}dialog label{font-size:11px}dialog input{width:100%;padding:12px;border:1px solid #d3dfc5;background:#fff;border-radius:7px;color:#34523e;margin:8px 0 16px}dialog .secondary{width:100%;padding:12px;border:1px solid #bdcdb0;background:none;border-radius:7px;color:#5a7250;margin-top:9px}.look-grid{display:flex;gap:7px;margin:20px 0}.look{flex:1;border:1px solid #d4dfc9;background:#eff3e7;border-radius:10px;padding:18px 7px 14px;font-size:11px;color:#56704d}.look .swatch{display:block;width:33px;height:33px;background:var(--color);border-radius:50%;margin:0 auto 10px;box-shadow:inset -5px -5px 9px #0002,inset 3px 3px 6px #fff4}.look.selected{border:2px solid #6c8d51;background:#e2eccf}.certificate{text-align:center;padding:20px 0}.certificate .eyebrow{font-size:8px}.certificate h2{font:600 45px 'Outfit';margin:25px 0}.certificate strong{font-size:24px}.certificate p{font-size:12px}.bib{display:inline-block;font-size:9px;padding:8px 12px;background:#e8efda;border-radius:20px}.guide-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #dce4d3;font-size:12px}.guide-row kbd{color:#4b6840;background:#e3ebd7}.error-action{margin-top:20px;border:0;border-radius:7px;background:#355c48;color:white;padding:12px 24px}
.touch{display:none;position:fixed;bottom:calc(52px + env(safe-area-inset-bottom,0px));left:max(25px,env(safe-area-inset-left,0px));right:max(25px,env(safe-area-inset-right,0px));z-index:5;align-items:center;justify-content:space-between;pointer-events:none}#stick{width:105px;height:105px;border:1px solid #ffffff88;background:#f6faed30;backdrop-filter:blur(8px);border-radius:50%;position:relative;touch-action:none;pointer-events:auto}#stick>span{display:block;width:43px;height:43px;position:absolute;left:30px;top:30px;border-radius:50%;background:#f8f9e8ac;border:1px solid #fff8;box-shadow:0 5px 15px #223c3020}#stick small{position:absolute;bottom:9px;left:0;right:0;text-align:center;font-size:7px;color:#fff9;letter-spacing:2px}.touch-actions{display:flex;align-items:flex-end;gap:12px;pointer-events:auto}.touch-actions button{touch-action:none;border:1px solid #fff9;border-radius:50%;background:#f5fae8bb;backdrop-filter:blur(12px);color:#42613c;width:56px;height:56px;font:600 9px 'DM Sans';letter-spacing:1px}.touch-actions #jumpButton{width:77px;height:77px;background:#e9f4cddd;font-size:12px}.touch-actions span{display:block;font:9px 'Noto Sans KR';margin-top:5px;color:#7b9064}
@media(max-width:740px){.hud{padding:20px}.brand{font-size:30px}.brand span{font-size:6px;letter-spacing:2px}.location{position:absolute;top:85px;left:20px;font-size:8px;padding:9px 13px;letter-spacing:1px}.location small{display:none}.top-actions{gap:5px}.top-actions button{padding:9px 12px;font-size:10px}.welcome{top:auto;bottom:32px;left:25px;width:calc(100% - 50px)}.welcome h1{font-size:58px;margin:18px 0;letter-spacing:-2px}.welcome>p{font-size:12px;margin-bottom:18px}.welcome .eyebrow{font-size:8px;letter-spacing:1.5px}.start-panel{width:100%;max-width:345px;padding:15px 17px}.welcome-fine{font-size:8px;margin-top:12px}.world-caption{right:20px;bottom:20px;display:none}.race-hud{top:130px;left:20px;width:195px}.route-card{padding:13px 15px;border-radius:11px}.route-card .eyebrow{font-size:7px;letter-spacing:.7px}.route-card .eyebrow span{display:none}.distance b{font-size:31px}.distance>span{font-size:9px}.distance{margin:6px 0 10px}.next{font-size:8px;gap:3px}.stamps{gap:5px;margin-top:7px}.stamps button{padding:8px 2px;border-radius:9px}.stamps span{font-size:10px}.stamps b{font-size:8px}.bottom-hud{left:20px;right:20px;bottom:19px;align-items:center}.stamina{width:140px}.keys{display:none}.center-hint{bottom:195px;white-space:normal;width:85%;max-width:340px;font-size:10px;line-height:1.5;padding:8px 13px}.touch{display:flex}.runner-label{font-size:9px}.runner-label span{font-size:6px}#toast{top:90px;font-size:10px;width:max-content}dialog{padding:30px 25px;max-height:88svh;overflow:auto}dialog h2{font-size:24px}}
@media(max-height:720px) and (min-width:741px){.welcome{top:17%}.welcome h1{font-size:63px;margin:16px 0}.welcome>p{margin:0 0 14px}.start-panel{padding:14px 17px}.welcome-fine{margin-top:10px}}@media(max-height:700px) and (max-width:740px){.welcome h1{font-size:43px;margin:12px 0}.welcome>p{font-size:11px;margin-bottom:12px}.welcome{bottom:16px}.welcome-fine{font-size:7px}.mode-row{margin:10px 0}.start-panel{padding:12px 16px}.race-hud{top:119px}.touch{bottom:53px}}

/* A quiet, readable start card; it disappears completely during the run. */
.welcome{padding:25px;background:#f6f8ecc9;border:1px solid #fff8;border-radius:19px;backdrop-filter:blur(15px);color:#274b3c;text-shadow:none;top:18%;left:40px;width:350px}.welcome h1{font-size:58px;margin:17px 0;letter-spacing:-2px}.welcome h1 em{color:#6a8755}.welcome>p{font-size:12px;margin:0 0 19px;color:#526b4c}.start-panel{width:100%;padding:0;border:0;background:none;backdrop-filter:none;box-shadow:none}.welcome-fine{font-size:8px;color:#728369;text-shadow:none;margin-top:14px}.welcome .eyebrow{font-size:8px;letter-spacing:1.4px}@media(max-width:740px){.welcome{top:auto;bottom:20px;left:20px;width:calc(100% - 40px);max-width:350px;padding:21px}.welcome h1{font-size:47px;margin:14px 0}.welcome>p{font-size:11px;margin-bottom:13px}.welcome-fine{font-size:7px}}@media(max-height:700px){.welcome{top:auto;bottom:18px;padding:20px}.welcome h1{font-size:44px;margin:12px 0}.welcome>p{margin-bottom:12px}}

#world canvas:focus{outline:none}
/* Runner's Square and hybrid workout layer */
.plaza-hud{position:fixed;left:35px;top:122px;width:265px;border:1px solid #fff9;border-radius:16px;padding:21px;background:#f5f8eadc;backdrop-filter:blur(18px);z-index:4}.plaza-hud .eyebrow{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.3px}.plaza-hud .eyebrow span{color:#879b78}.plaza-hud h2{font-size:20px;margin:15px 0 10px;letter-spacing:-.7px}.my-bib{font-size:11px;color:#557343;padding:10px 12px;background:#e3ecd4;border-radius:8px;margin-bottom:12px}.plaza-hud nav{display:grid}.plaza-hud nav button{display:flex;justify-content:space-between;padding:12px 2px;background:none;border:0;border-bottom:1px solid #d6e1ca;color:#45643c;text-align:left;font-size:11px}.plaza-hud nav button:hover{color:#162e20;background:#eef3e3}.plaza-hud nav i{font-style:normal;color:#92a17e}.plaza-hud>p{font-size:9px;color:#7f9270;margin:14px 0 0;line-height:1.6}.social-bar{position:fixed;right:35px;top:100px;display:flex;gap:5px;z-index:6}.social-bar button{background:#f4f8e9db;border:1px solid #fff8;backdrop-filter:blur(12px);padding:9px 13px;border-radius:20px;font-size:10px;color:#4c6a42}.social-bar button:disabled{opacity:.45}.interact{position:fixed;left:50%;bottom:175px;transform:translateX(-50%);padding:13px 23px;background:#ddebafd9;border:1px solid #ffffffa8;backdrop-filter:blur(12px);border-radius:25px;color:#2d513a;font-size:12px;font-weight:600;z-index:5;white-space:nowrap;box-shadow:0 8px 25px #18392522}.pacer-label{position:fixed;transform:translate(-50%,-100%);pointer-events:none;border-radius:20px;background:#e4efcde6;padding:6px 12px;border:1px solid #fff8;z-index:2;display:flex;gap:6px;align-items:center;white-space:nowrap}.pacer-label span{font-size:6px;letter-spacing:.6px;color:#819766}.pacer-label b{font-size:9px;font-weight:500;color:#3e603c}.pacer-options{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:20px 0}.pacer-option{border:1px solid #d7e1ca;border-radius:11px;padding:18px 10px;background:#f1f5e7;color:#3d6044;display:flex;flex-direction:column;gap:7px;align-items:center}.pacer-option.selected{border:2px solid #77965c;background:#e4eecd}.pacer-option b{font-size:12px;font-weight:600}.pacer-option small{font-size:10px;color:#829670}.pacer-dot{height:25px;width:25px;border-radius:50%;display:block;border:2px solid #ffffff88}.crew-colors input[type=color]{width:70px;height:40px;padding:4px;margin-left:15px;vertical-align:middle}.portal-modes{display:grid;gap:0}.portal-modes .chosen{background:#e2edce;border-color:#779b58;color:#325b3c}.activity-panel{position:fixed;right:35px;top:165px;width:325px;padding:25px;background:#f9faeee8;backdrop-filter:blur(18px);border:1px solid #fff;border-radius:17px;z-index:8;box-shadow:0 20px 60px #173a3420}.activity-panel h2{font-size:25px;margin:16px 0 12px;letter-spacing:-.8px}.activity-panel>p{font-size:12px;line-height:1.8;color:#7d8d70}.activity-panel .eyebrow{font-size:8px;letter-spacing:1.5px}.activity-panel .secondary{width:100%;margin-top:13px;background:none;border:1px solid #cedbc0;color:#80916f;border-radius:7px;padding:11px;font-size:10px}.activity-progress{height:9px;background:#e0e7d5;border-radius:10px;overflow:hidden;margin:20px 0 13px}.activity-progress i{display:block;height:100%;background:#98b46b;width:0}.exercise-score{display:flex;align-items:baseline;gap:10px;margin:20px 0}.exercise-score b{font:500 46px 'Outfit';color:#426942}.exercise-score span{font-size:12px;color:#829474}.timing-meter{height:22px;position:relative;background:#e4dcc8;border:2px solid #fff;border-radius:10px;margin:20px 0 25px}.timing-meter div{position:absolute;left:30%;width:45%;height:100%;background:#9dbd70}.timing-meter i{position:absolute;top:-5px;height:28px;width:4px;background:#244f37;border-radius:2px}.activity-panel .fine{font-size:10px;color:#8c987d;line-height:1.7}.heat-label{display:flex;justify-content:space-between;font-size:10px;color:#819171}.heat-meter{height:7px;border-radius:7px;background:#e4e8dc;margin:8px 0 22px;overflow:hidden}.heat-meter i{height:100%;width:0;background:#cda178;display:block}#pushSled{touch-action:none;user-select:none}#pushSled:active{background:#69884d}
@media(max-width:740px){.plaza-hud{left:16px;top:132px;width:188px;padding:14px;border-radius:12px}.plaza-hud .eyebrow{font-size:7px;letter-spacing:.8px}.plaza-hud h2{font-size:15px;margin:12px 0 9px}.my-bib{font-size:9px;padding:8px;margin-bottom:8px}.plaza-hud nav button{font-size:10px;padding:10px 1px}.plaza-hud>p{font-size:8px;margin-top:10px}.social-bar{top:86px;right:16px;gap:4px}.social-bar button{padding:8px 10px;font-size:9px}.location{max-width:145px;font-size:7px;padding:9px 10px;gap:5px}.activity-panel{top:135px;right:15px;width:calc(100% - 30px);max-width:325px;padding:20px}.activity-panel h2{font-size:22px;margin:12px 0}.activity-panel>p{font-size:11px}.exercise-score{margin:12px 0}.exercise-score b{font-size:36px}.activity-panel .primary{padding:13px;font-size:12px}.interact{bottom:191px;font-size:10px;padding:11px 18px}.pacer-label{padding:5px 8px;gap:4px}.pacer-label span{font-size:5px}.pacer-label b{font-size:8px}.pacer-options{gap:7px}.pacer-option{padding:13px 8px}}@media(max-width:380px){.social-bar button{padding:8px}.location{max-width:115px;font-size:6px}.plaza-hud{width:175px}.plaza-hud nav button{padding:9px 0}}
/* v4: creator tools, wardrobe and shareable running moments */
.creator-bar{position:fixed;right:35px;top:143px;display:flex;gap:6px;z-index:7}.creator-bar button{border:1px solid #fff8;background:#254a3ee8;color:#f7f9e9;border-radius:20px;padding:10px 15px;font-size:11px;backdrop-filter:blur(12px)}.creator-bar button span{font-size:9px;background:#d6e5b3;color:#37533b;padding:2px 5px;border-radius:10px;margin-left:3px}.course-mode{position:fixed;top:100px;left:50%;transform:translateX(-50%);background:#f3f7e7e8;border:1px solid white;border-radius:25px;font-size:10px;padding:10px 18px;z-index:3;white-space:nowrap}.banner-near{position:fixed;left:50%;bottom:170px;transform:translateX(-50%);border:1px solid #fff9;border-radius:24px;padding:12px 20px;background:#ddebafd9;color:#325b3c;font-size:11px;z-index:5;white-space:nowrap}.editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.editor-grid label{display:flex;flex-direction:column;min-width:0}dialog select{width:100%;margin:8px 0 14px;padding:11px 8px;border:1px solid #cbd8bf;border-radius:7px;background:white;color:#34523e;font:12px 'Noto Sans KR',sans-serif;min-width:0}dialog input[type=color]{padding:4px;height:40px;margin:8px 0 14px}#bannerPreview{width:100%;height:auto;border-radius:8px;box-shadow:0 8px 20px #183c3322;margin:0 0 20px}#photoPreview{display:block;max-width:100%;max-height:40svh;width:auto;margin:0 auto 20px;border-radius:9px;box-shadow:0 6px 20px #183c3325}.wardrobe-preview{height:220px;background:radial-gradient(ellipse at center,#f4f5e6,#dce5d3);border-radius:12px;overflow:hidden;margin:10px 0}.wardrobe-preview canvas{display:block;max-width:100%;height:220px}.character-options{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:12px 0 20px}.character-options button{border:1px solid #c8d6bf;background:#f3f7eb;color:#456245;padding:12px 5px;border-radius:8px;font-size:10px;line-height:1.6}.character-options .selected{border:2px solid #6b8855;background:#e0eccb}dialog{max-height:92svh;overflow-y:auto}dialog:has(#wardrobePreview),dialog:has(#bannerPreview),dialog:has(#photoPreview){width:min(520px,calc(100% - 28px))}.activity-panel{top:195px}.hud .location{max-width:35vw}.location small{display:none}.social-bar{top:96px}.race-hud{top:150px}#toast{top:190px}.plaza-hud{top:122px}.course-mode:empty{display:none}.creator-bar button:disabled{opacity:.45}
@media(max-width:900px){.course-mode{top:auto;bottom:100px;max-width:90vw;font-size:9px}.location{font-size:8px}.creator-bar{top:140px;right:18px}.creator-bar button{font-size:10px;padding:9px 12px}.social-bar{right:18px}}
@media(max-width:740px){.creator-bar{top:123px;left:16px;right:16px;justify-content:flex-end;gap:5px}.creator-bar button{padding:8px 11px;font-size:10px}.plaza-hud{top:170px;width:172px;padding:12px}.plaza-hud h2{font-size:14px}.plaza-hud nav button{padding:9px 0;font-size:9px}.plaza-hud>p{font-size:7px}.location{top:84px!important;max-width:135px!important}.social-bar{top:85px}.race-hud{top:169px;width:170px}.course-mode{bottom:182px;padding:8px 12px;width:max-content;max-width:95vw;font-size:8px;white-space:normal;text-align:center}.center-hint{display:none}.banner-near{bottom:219px;font-size:10px;padding:10px 15px}.activity-panel{top:170px;max-height:calc(100svh - 200px);overflow:auto}#toast{top:163px}dialog{max-height:92svh}dialog input,dialog select{font-size:16px}.editor-grid{gap:10px}dialog:has(#wardrobePreview){padding:27px 20px}.character-options button{font-size:9px}.wardrobe-preview{height:200px}.wardrobe-preview canvas{height:200px}.bottom-hud{bottom:15px}.touch{bottom:52px}#photoPreview{max-height:35svh}}
@media(max-height:700px){.plaza-hud{max-height:calc(100svh - 240px);overflow:auto}.plaza-hud h2{display:none}.activity-panel{max-height:calc(100svh - 215px);overflow:auto}.activity-panel h2{margin:8px 0}.exercise-score{margin:8px 0}.exercise-score b{font-size:32px}}
/* The plaza opens immediately; activities stay behind a compact disclosure. */
.plaza-hud{width:160px;padding:0;overflow:hidden;max-height:none;transition:width .18s ease}.plaza-hud.is-open{width:265px;max-height:calc(100svh - 230px);overflow-y:auto}.plaza-toggle{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;padding:15px 19px;border:0;background:transparent;color:#294d3c;font-size:15px;font-weight:600;text-align:left}.plaza-toggle:hover{background:#e8efdb}.plaza-toggle #plazaChevron{font-size:18px;color:#6e875d;font-weight:400}.plaza-panel{padding:0 20px 17px}.plaza-panel[hidden]{display:none}.plaza-panel .my-bib{margin-top:0}.plaza-panel>p{font-size:9px;color:#7f9270;margin:14px 0 0;line-height:1.6}.plaza-hud.is-open .plaza-toggle{padding-bottom:14px}@media(max-width:740px){.plaza-hud{width:132px;padding:0;max-height:none}.plaza-hud.is-open{width:188px;max-height:calc(100svh - 345px)}.plaza-toggle{padding:12px 14px;font-size:13px}.plaza-panel{padding:0 13px 13px}.plaza-panel>p{font-size:8px;margin-top:10px}.plaza-hud nav button{padding:10px 0}}@media(prefers-reduced-motion:reduce){.plaza-hud{transition:none}}
/* Race records and recorded runners */
.race-clock{position:fixed;right:34px;top:188px;z-index:7;padding:15px 20px;border:1px solid #ffffff80;border-radius:18px;background:#f1f3e5e8;color:#294b40;display:grid;gap:5px;min-width:185px;pointer-events:none}.race-clock>span{font-size:9px;letter-spacing:2px}.race-clock>b{font-size:28px;font-variant-numeric:tabular-nums}.race-clock small{font-size:10px}.ghost-label{position:fixed;z-index:5;transform:translate(-50%,-100%);padding:5px 9px;max-width:230px;border-radius:20px;background:#f0f3e4c9;color:#355745;font-size:9px;white-space:nowrap;pointer-events:none}.ghost-label[hidden]{display:none}.record-tabs{display:flex;gap:8px}.record-tabs button{flex:1}.record-tabs .chosen{background:#dfedc6;border-color:#91a670}.record-row{display:flex;align-items:center;gap:16px;border-bottom:1px solid #78926430;padding:14px 0}.record-row>strong{width:25px;font-size:20px;color:#7c955c}.record-row>div{flex:1;display:grid;gap:4px}.record-row small{font-size:10px;color:#789080}.record-row time{font-variant-numeric:tabular-nums}.record-result{padding:16px;border-radius:12px;background:#e3edce}.social-bar{top:95px}.creator-bar{top:140px}
@media(max-width:740px){.race-clock{right:16px;top:255px;padding:11px 13px;min-width:145px;max-width:185px}.race-clock>b{font-size:22px}.race-clock small{font-size:9px}.social-bar{top:86px}.creator-bar{top:126px}.ghost-label{font-size:8px;padding:4px 7px}.race-hud{max-width:180px}}
/* A clear running view, certificates, and in-world building controls. */
.is-racing .runner-label{left:35px!important;top:auto!important;bottom:78px;transform:none;max-width:220px;opacity:.8;font-size:9px}.is-racing .runner-label b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.is-racing .center-hint{bottom:110px;font-size:10px;opacity:.75}.placement-panel{position:fixed;z-index:12;bottom:92px;left:50%;transform:translateX(-50%);width:min(430px,calc(100% - 32px));border:1px solid #fff9;border-radius:18px;background:#eef4e5f5;padding:20px;box-shadow:0 12px 55px #193d3330;color:#355743}.placement-panel>b{display:block;font-size:20px;margin:9px 0}.placement-panel p{font-size:12px;margin:9px 0;color:#528149}.placement-panel p.invalid{color:#ad5d4b}.placement-panel small{display:block;font-size:10px;line-height:1.8;color:#7c8c76}.placement-panel>div:last-child{display:flex;gap:8px;margin-top:14px}.placement-panel button{border:1px solid #b5c5a6;border-radius:8px;padding:11px 12px;background:#fff9;color:#355743;flex:1}.placement-panel #confirmBanner{background:#345b43;color:#f6f9e9}.placement-panel button:disabled{opacity:.35;cursor:not-allowed}.is-placing .race-hud,.is-placing .race-clock,.is-placing .course-mode,.is-placing .center-hint,.is-placing .runner-label,.is-placing .touch,.is-placing .creator-bar,.is-placing .social-bar,.is-placing #ghostLabels,.is-placing .bottom-hud{display:none!important}#exportPreview{display:block;max-width:100%;max-height:44svh;margin:0 auto 16px;border-radius:10px;box-shadow:0 6px 22px #284b3f22}#modalBody>a{display:block;text-align:center;text-decoration:none;margin-top:10px}#modalBody>a.secondary{border:1px solid #bdcdb0;border-radius:8px;padding:12px;color:#5a7250;font-size:12px}#exportNotice{font-size:11px}dialog:has(#exportPreview){width:min(520px,calc(100% - 28px))}
@media(max-width:740px){.is-racing .runner-label{left:20px!important;bottom:170px;max-width:165px;font-size:8px}.placement-panel{bottom:18px;padding:16px}.placement-panel>b{font-size:17px}.placement-panel button{font-size:11px;padding:10px 7px}#exportPreview{max-height:38svh}}

.is-placing .plaza-hud,.is-placing .interact,.is-placing .pacer-label{display:none!important}

/* Compact two-line identity and keyboard-first, transparent chat. */
.runner-label{max-width:190px;border-radius:12px;padding:6px 9px;gap:7px}
.runner-id{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;max-width:155px}
.runner-id small{font-size:9px;font-weight:600;color:#61804d;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.runner-id small[hidden]{display:none}.runner-id b{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:1.4}
.is-racing .runner-label{max-width:190px}
.chat-feed{position:fixed;z-index:9;left:35px;bottom:140px;width:min(350px,calc(100vw - 48px));pointer-events:none;color:#fff9e8;text-shadow:0 1px 3px #10251e,0 0 6px #10251e;}
.chat-feed #chatMessages{max-height:min(160px,24vh);overflow:hidden;scrollbar-width:thin;mask-image:linear-gradient(transparent,#000 12px);padding-top:12px}
.chat-feed .chat-line{font-size:12px;line-height:1.55;margin:3px 0;overflow-wrap:anywhere;opacity:1;transition:opacity 2s}
.chat-feed .chat-line[hidden]{display:none}.chat-feed .chat-line.is-fading{opacity:0}.chat-feed .chat-line b{color:#cce6a0;font-weight:600}.chat-feed .chat-line span{color:#fff9e8}
#chatPrompt{pointer-events:auto;display:block;background:transparent;border:0;color:#edf5dfbd;text-shadow:inherit;font-size:10px;padding:7px 0;text-align:left}#chatPrompt[hidden],#chatForm[hidden]{display:none}
.chat-feed.is-typing #chatMessages{pointer-events:auto;overflow-y:auto;max-height:min(240px,32vh);background:linear-gradient(90deg,#173a2735,transparent)}
#chatForm{pointer-events:auto;margin-top:6px}.chat-scope{display:block;font-size:9px;color:#ecf3dfb5;margin-bottom:6px}.chat-compose{display:flex;gap:4px;padding:5px;border:1px solid #c4d8ac70;background:#153528aa;border-radius:5px;backdrop-filter:blur(5px)}
#chatInput{flex:1;min-width:0;border:0;background:transparent;color:#fffde9;padding:7px;font-size:12px;outline-offset:0}#chatInput::placeholder{color:#e4efd0aa}.chat-compose button{border:0;border-radius:4px;background:#7993644d;color:#f5f9e9;font-size:11px;padding:5px 8px}
.is-placing .chat-feed{display:none!important}
.chat-typing .center-hint,.chat-typing .interact,.chat-typing .banner-near{visibility:hidden}
@media(max-width:740px){.runner-label,.is-racing .runner-label{max-width:180px}.runner-id{max-width:145px}.runner-id small{font-size:8px}.runner-id b{font-size:9px}.chat-feed{left:16px;bottom:230px;width:calc(100vw - 32px);max-width:330px}.chat-feed #chatMessages{max-height:100px}.chat-feed .chat-line{font-size:11px}.chat-feed.is-typing{bottom:var(--keyboard-inset,16px);max-width:none;width:calc(100vw - 32px)}#chatInput{font-size:16px}.chat-typing .touch,.chat-typing .bottom-hud,.chat-typing .runner-label,.chat-typing .course-mode{visibility:hidden}}
@media(prefers-reduced-motion:reduce){.chat-feed .chat-line{transition:none}}

.speech-bubble{position:fixed;z-index:8;transform:translate(-50%,-100%);max-width:240px;width:max-content;padding:10px 14px;border-radius:14px;background:#fffef4f2;border:1px solid #c8d9b9;color:#294c3c;font-size:12px;line-height:1.5;overflow-wrap:anywhere;text-align:center;box-shadow:0 5px 20px #17392d22;pointer-events:none}
.speech-bubble:after{content:'';position:absolute;bottom:-7px;left:calc(50% - 7px);width:12px;height:12px;background:#fffef4;transform:rotate(45deg);border-right:1px solid #c8d9b9;border-bottom:1px solid #c8d9b9}.speech-bubble[hidden],.is-placing .speech-bubble{display:none}
.is-wallball .activity-panel{top:auto;bottom:22px;width:310px}.wall-steps{display:flex;gap:6px;font-size:10px;color:#6b8157}.wall-steps span{padding:7px;background:#e6edd9;border-radius:7px}.is-wallball .exercise-score{margin:10px 0;gap:12px}.is-wallball .exercise-score b{font-size:36px}.is-wallball .activity-progress{margin:10px 0 14px}.is-wallball #squatFill.ready{background:#55934c}.is-wallball #throwBall{touch-action:none;user-select:none}.is-wallball .runner-label,.is-wallball .race-hud,.is-wallball .race-clock,.is-wallball .course-mode,.is-wallball .bottom-hud,.is-wallball .chat-feed,.is-wallball .creator-bar,.is-wallball .social-bar{display:none!important}
@media(max-width:740px){.speech-bubble{max-width:195px;font-size:11px;padding:8px 11px}.is-wallball .activity-panel{top:auto;bottom:14px;right:14px;width:calc(100% - 28px);max-width:none;padding:14px}.is-wallball .activity-panel .eyebrow{display:none}.is-wallball .activity-panel h2{font-size:18px;margin:0 0 6px}.is-wallball .activity-panel>p{font-size:10px;line-height:1.5;margin:5px 0 9px}.is-wallball .exercise-score{position:absolute;right:20px;top:6px;margin:0}.is-wallball .exercise-score b{font-size:24px}.is-wallball .exercise-score span{font-size:10px}.is-wallball .activity-panel .fine{margin:7px 0}.is-wallball .activity-panel .secondary{margin-top:6px;padding:8px}.wall-steps{font-size:9px}}

/* A single control guide; the race no longer repeats the same directions in pills. */
.is-racing .center-hint{display:none!important}
.keys{gap:14px;max-width:calc(100vw - 40px)}
@media(min-width:741px) and (max-width:1100px){.keys{position:absolute;left:50%;transform:translateX(-50%);bottom:32px;white-space:nowrap}.bottom-hud{bottom:20px}.is-racing .runner-label{bottom:110px}}
.placement-panel .placement-zoom{position:absolute;right:16px;top:12px;padding:7px 9px;font-size:10px}
#stick small{letter-spacing:0;font:9px 'Noto Sans KR',sans-serif;color:#36533e;bottom:8px}

/* Nearby actions share one layout; independent fixed coordinates caused E/B overlap. */
.context-dock{position:fixed;left:50%;bottom:112px;transform:translateX(-50%);width:min(520px,calc(100vw - 32px));display:flex;flex-direction:column;align-items:center;gap:10px;z-index:6;pointer-events:none}
.context-actions{display:flex;justify-content:center;align-items:stretch;gap:10px;max-width:100%;pointer-events:none}
.context-dock .interact,.context-dock .banner-near{position:static;inset:auto;transform:none;flex:0 1 auto;min-width:0;max-width:100%;min-height:44px;margin:0;padding:11px 17px;font-size:11px;line-height:1.5;white-space:normal;pointer-events:auto}
.context-dock .interact{background:#ddebafeF;font-weight:600}
.context-dock .banner-near{background:#f1f5e6ef;font-weight:500}
.context-dock button:focus-visible{outline:2px solid #456d40;outline-offset:3px}
.context-dock .center-hint{position:static;inset:auto;transform:none;width:auto;max-width:100%;margin:0;white-space:normal}
.context-actions:not(:has(>button:not(.hidden))){display:none}
.context-dock:has(.context-actions>button:not(.hidden)) .center-hint{display:none}
.is-placing .context-dock,.is-wallball .context-dock,.chat-typing .context-dock,body:has(#modal[open]) .context-dock{display:none}
@media(min-width:741px) and (max-width:1100px){.context-dock{bottom:170px}.chat-feed{bottom:244px}}
@media(max-width:740px){.context-dock{bottom:182px}.context-actions{gap:8px}.context-dock .interact,.context-dock .banner-near{padding:10px 13px;font-size:11px}.chat-feed:not(.is-typing){bottom:300px}.is-racing:has(.context-actions>button:not(.hidden)) .runner-label{bottom:242px}}

/* Outfit sets share the existing live 3D fitting preview. */
.running-looks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:16px 0 8px}
.running-looks button{min-width:0;border:1px solid #c7d3bd;border-radius:12px;background:#f4f5e9;color:#304d3d;padding:12px 7px;text-align:center}
.running-looks button.selected{border:2px solid #547849;background:#e4edcf;padding:11px 6px;box-shadow:0 0 0 2px #c7d9ad55}
.running-looks b{display:block;font-size:12px;margin:8px 0 5px}.running-looks small{display:block;font-size:9px;line-height:1.6;word-break:keep-all}
.look-garment{display:block;height:65px;position:relative;margin:auto;width:68px}
.look-garment i{position:absolute;left:0;top:0;width:68px;height:44px;background:var(--look-top);clip-path:polygon(26% 0,38% 5%,62% 5%,74% 0,100% 18%,86% 42%,76% 32%,76% 100%,24% 100%,24% 32%,14% 42%,0 18%)}
.look-garment i:after{content:'nescl';position:absolute;top:17px;left:20px;color:#fff8e8;font:bold italic 10px sans-serif}
.look-garment em{position:absolute;left:18px;bottom:0;width:32px;height:20px;background:var(--look-bottom);clip-path:polygon(0 0,100% 0,100% 100%,56% 100%,50% 40%,44% 100%,0 100%)}
.look-selection{font-size:11px!important;text-align:center;color:#547849!important;margin:8px 0 16px!important}
@media(max-width:740px){.running-looks{gap:6px}.running-looks b{font-size:10px}.running-looks small{font-size:8px}.look-garment{transform:scale(.88)}.plaza-panel{max-height:calc(100svh - 270px);overflow-y:auto}}

.outfit-custom{border-top:1px solid #ced8bf;border-bottom:1px solid #ced8bf;margin:14px 0}.outfit-custom summary{cursor:pointer;padding:13px 0;font-size:12px;color:#456245}.outfit-custom[open]{padding-bottom:8px}dialog:has(#wardrobePreview) #saveOutfit{position:sticky;bottom:0;box-shadow:0 -6px 16px #f4f4e6;z-index:1}

.hazard-status{padding:10px 18px;border:1px solid #ffe9a7;border-radius:18px;background:#533e26ed;color:#fff3cc;font-size:12px;text-align:center;box-shadow:0 5px 16px #33231322}.hazard-status[hidden]{display:none}
.stamps{grid-template-columns:repeat(4,minmax(0,1fr))}.stamps button{min-width:0}.stamps b{font-size:9px}
.is-skierg .context-dock,.is-skierg .touch,.is-skierg .runner-label,.is-skierg #ghostLabels,.is-skierg .creator-bar,.is-skierg .social-bar,.is-skierg .race-hud,.is-skierg .race-clock,.is-skierg .bottom-hud{display:none!important}
.is-skierg .activity-panel{top:auto;bottom:35px;right:35px;width:325px}.is-skierg #toast{display:none}.touch{touch-action:none}.touch-actions button{touch-action:none}
@media(max-width:740px){.is-skierg .activity-panel{bottom:18px;right:16px;width:calc(100% - 32px);max-width:none;max-height:42svh;padding:17px}.is-skierg .activity-panel h2{font-size:20px}.is-skierg .exercise-score{margin:6px 0}.is-skierg .exercise-score b{font-size:28px}.is-skierg .activity-panel p{margin:6px 0}.hazard-status{font-size:10px;padding:9px 12px}.stamps b{font-size:7px}}

.is-skierg .chat-feed{display:none!important}
/* Cafe24 fitting room: four independent wearable slots. */
dialog.fitting-modal:has(#wardrobePreview){width:min(940px,calc(100% - 28px));height:min(790px,92svh);padding:28px;overflow:hidden;background:#f4f5eb}dialog.fitting-modal #modalBody{height:100%;display:flex;flex-direction:column;min-height:0}.shop-heading h2{font-size:30px;margin:8px 0}.shop-heading p{margin:0 0 18px;font-size:12px}.fitting-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:26px;flex:1;min-height:0}.fitting-person{overflow-y:auto;min-height:0}.fitting-modal .wardrobe-preview{height:280px;margin:0;border-radius:16px;background:radial-gradient(ellipse at 50% 55%,#edf2df,#c4d5bf)}.fitting-modal .wardrobe-preview canvas{width:100%;height:100%}.fitting-modal .character-options{margin:10px 0}.equipped-slots{border-top:1px solid #ced8bf}.equipped-slots>div{display:flex;align-items:center;gap:8px;border-bottom:1px solid #dce2d2;padding:10px 0}.equipped-slots span{font-size:10px;line-height:1.6;flex:1;min-width:0}.equipped-slots b{display:block;font-size:9px;color:#7b8d73;margin-bottom:2px}.unequip{font-size:9px;background:none;border:1px solid #c7d2bc;border-radius:20px;padding:6px 9px;color:#586f4b;flex-shrink:0}.fitting-products{display:flex;flex-direction:column;min-height:0}.product-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.product-tabs button{border:1px solid #c9d4bd;background:#e7eddf;color:#536c4d;border-radius:8px;padding:11px 3px;font-size:11px}.product-tabs button.selected{color:#f7faed;background:#294b3f;border-color:#294b3f}.product-search{font-size:0!important}.product-search input{margin:10px 0 0;font-size:12px;padding:11px}#catalogStatus{font-size:9px;line-height:1.5;margin:8px 0 12px;color:#73866d}.product-grid{display:grid;grid-auto-rows:max-content;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;overflow-y:auto;align-content:start;padding:2px 4px 6px 2px;min-height:0;flex:1}.product-card{border:1px solid #d6dece;border-radius:11px;background:#fffef8;overflow:hidden;align-self:start}.product-card.selected{border:2px solid #5b7d4f;box-shadow:0 0 0 1px #5b7d4f}.product-try{border:0;padding:0;background:none;color:#2d493c;width:100%;text-align:left}.product-try img{width:100%;aspect-ratio:1;object-fit:cover;display:block;background:#e5e9dd}.product-try strong{display:block;font-size:10px;line-height:1.55;min-height:48px;margin:9px 9px 3px;word-break:keep-all}.product-try>span{display:block;margin:6px 9px 9px;font-size:10px;color:#5f7c4d}.product-card.selected .product-try>span{font-weight:700}.product-card>a{display:block;font-size:9px;color:#7b8970;border-top:1px solid #e6eadf;padding:8px 9px;text-decoration:none}.catalog-empty{grid-column:1/-1;padding:20px}.fitting-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #d1dbc6;padding-top:16px;margin-top:16px;flex-shrink:0}.fitting-footer>span{font-size:10px;color:#718568}.fitting-modal #saveOutfit{position:static!important;width:240px;box-shadow:none!important;justify-content:center;font-size:12px}.fitting-person>.fine{font-size:9px;line-height:1.7}
@media(max-width:650px){dialog.fitting-modal:has(#wardrobePreview){padding:24px 15px 15px;height:94svh;max-height:94svh}.shop-heading h2{font-size:22px;margin:7px 0}.shop-heading p{font-size:10px;margin-bottom:10px}.fitting-layout{grid-template-columns:1fr;grid-template-rows:180px minmax(0,1fr);gap:10px}.fitting-person{display:grid;grid-template-columns:130px minmax(0,1fr);grid-template-rows:140px 30px;gap:4px 10px;overflow:hidden}.fitting-modal .wardrobe-preview{height:140px;grid-area:1/1}.fitting-modal .character-options{grid-area:2/1;margin:0;gap:2px}.fitting-modal .character-options button{font-size:7px;padding:2px;line-height:1.2}.equipped-slots{grid-area:1/2/3/3;overflow-y:auto}.equipped-slots>div{padding:5px 0}.equipped-slots span{font-size:9px;line-height:1.4}.equipped-slots b{font-size:8px}.unequip{padding:4px 6px;font-size:8px}.fitting-person>.fine{display:none}.product-tabs button{padding:9px 2px;font-size:10px}.product-search input{font-size:16px;margin-top:7px;padding:8px}#catalogStatus{margin:6px 0;font-size:8px}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.product-try strong{font-size:10px;min-height:32px}.fitting-footer{margin-top:10px;padding-top:10px;gap:8px}.fitting-modal #saveOutfit{width:180px;padding:12px;font-size:11px}.fitting-footer>span{font-size:8px}}
.grab-runner{pointer-events:auto;cursor:pointer;border:1px solid #fff9;border-radius:24px;padding:12px 20px;background:#ead4a6ee;color:#55452f;font-size:11px}.trap-choices{display:grid;gap:10px}.trap-choices button{display:flex;justify-content:space-between;gap:14px;border:1px solid #c7d5bd;background:#e9efd9;color:#3d5d42;border-radius:12px;padding:20px 15px}.trap-choices span{font-size:11px;color:#738065}.trap-placement{position:fixed;z-index:9;left:50%;bottom:112px;transform:translateX(-50%);padding:16px 20px;border-radius:16px;background:#f5f6e7f5;color:#345340;border:1px solid #fff;width:min(410px,calc(100% - 30px));box-shadow:0 8px 35px #284b3f22}.trap-placement b{font-size:17px}.trap-placement p{font-size:12px;line-height:1.5;margin:9px 0}.trap-placement small{font-size:10px;color:#77816e}.trap-placement>div{display:flex;gap:8px;margin-top:12px}.trap-placement button{flex:1;padding:10px 8px;border:1px solid #a6b993;border-radius:8px;color:#345340;background:#edf3df;font-size:11px}.trap-placement button:first-child{background:#345340;color:#fff}.trap-placement button:disabled{opacity:.4}.is-trap-placing .context-dock{display:none}.is-trap-placing .runner-label{opacity:.4}
@media(max-width:740px){.grab-runner{font-size:10px;padding:9px 12px}.creator-bar{flex-wrap:wrap}.creator-bar #openTraps{padding:8px 9px}.trap-placement{bottom:175px;padding:13px 15px}.trap-placement p{font-size:11px}.trap-placement small{font-size:9px}}
@media(min-width:741px){.trap-placement{left:auto;right:35px;bottom:95px;transform:none;width:340px}}
.is-trap-placing .race-clock{visibility:hidden}
@media(max-width:740px){.is-trap-placing .race-hud{visibility:hidden}.trap-placement{top:174px;bottom:auto}.is-trap-placing .runner-label{display:none}.trap-placement>div button{min-height:42px}}
@media(max-width:740px){.is-trap-placing #toast{top:343px}}

body:has(#grabRunner[data-carrying="true"]) .runner-label{display:none}

/* Game title stays compact above the plaza controls on desktop and phones. */
.hud .brand{font:700 28px/1.2 'Noto Sans KR',sans-serif;letter-spacing:-1.4px;white-space:nowrap}.hud .brand span{font:600 7px/1.5 'DM Sans',sans-serif;letter-spacing:1.5px;margin-top:5px}.loading-brand{font:700 clamp(30px,6vw,54px)/1.3 'Noto Sans KR',sans-serif;letter-spacing:-2px}
@media(max-width:740px){.hud .brand{font-size:23px;letter-spacing:-1px}.hud .brand span{font-size:6px;letter-spacing:1px}}

.finisher-prize{margin:20px 0;padding:20px;border:1px solid #bed39c;border-radius:16px;background:linear-gradient(130deg,#e8f3d2,#f5f4e7)}.finisher-prize h3{margin:8px 0;font-size:19px;line-height:1.5}.finisher-prize p{font-size:12px;margin:8px 0 16px}.finisher-prize small{display:block;margin-top:10px;color:#65785e;font-size:10px}.prize-card{margin:20px 0;padding:22px;border-radius:15px;background:#e6efd6;border:1px solid #d1dfbd}.prize-card>span{font-size:10px;letter-spacing:1px;color:#637752}.prize-card strong{display:block;margin:9px 0;font-size:22px;line-height:1.5}.prize-card p{font-size:12px;margin:9px 0 0}.giveaway-form>label:not(.entry-consent){display:block;margin:16px 0 7px;font-size:12px;font-weight:600}.giveaway-form>input{width:100%;padding:13px;border:1px solid #becbb1;border-radius:8px;background:#fffdf4;color:#203b35;font-size:16px}.entry-consent{display:flex;align-items:flex-start;gap:10px;font-size:12px;line-height:1.7;padding:12px 0;cursor:pointer}.entry-consent input{width:18px!important;height:18px;flex:0 0 18px;margin:2px 0 0;accent-color:#325844}.entry-consent span{flex:1}.entry-receipt{font-size:11px!important;overflow-wrap:anywhere;color:#65785e}#entryError{color:#953f32;font-size:12px;line-height:1.6}dialog:has(#giveawayForm),dialog:has(#entryContent){max-height:90svh;overflow:auto}

.prize-card strong,.finisher-prize h3{word-break:keep-all}dialog:has(#giveawayForm) h2{font-size:24px;margin:14px 0}dialog:has(#giveawayForm) .prize-card{padding:15px;margin:14px 0}dialog:has(#giveawayForm) .prize-card strong{font-size:19px;margin:6px 0}#entryStatus{font-size:12px;line-height:1.6;margin:12px 0}.giveaway-form>label:not(.entry-consent){margin-top:12px}.giveaway-form>input{padding:10px 12px}.giveaway-form .fine{margin:10px 0;line-height:1.6}.entry-consent{padding:6px 0}

#pacerEvent{position:fixed;z-index:8;right:34px;top:188px;width:285px;padding:20px;border:1px solid #fff9;border-radius:18px;background:#f2f4e6ed;backdrop-filter:blur(12px);color:#294b40;box-shadow:0 8px 30px #233d2220}#pacerEvent[hidden]{display:none}#pacerEvent h3{font-size:21px;line-height:1.35;margin:9px 0}#pacerEvent p{font-size:12px;line-height:1.7;margin:10px 0}#pacerEventProgress{display:block;font-size:12px;line-height:1.6;color:#5c743c}#pacerEventActions{margin-top:12px}#pacerEventActions[hidden]{display:none}#pacerEventActions button{width:100%;padding:12px 9px;margin-top:6px;border:1px solid #a2b88a;border-radius:8px;background:#365d45;color:#fff;font-size:12px}#pacerEventActions button+button{background:transparent;color:#365d45}.has-pacer-event .race-clock,.has-pacer-event .context-dock,.has-pacer-event #toast{display:none!important}body:has(#modal[open]) #pacerEvent{display:none!important}@media(max-width:740px){#pacerEvent{top:170px;left:16px;right:16px;width:auto;padding:14px 16px;max-height:37svh;overflow:auto}#pacerEvent h3{font-size:18px;margin:6px 0}#pacerEvent p{font-size:11px;margin:6px 0;line-height:1.6}#pacerEventProgress{font-size:11px}.has-pacer-event .race-hud{display:none!important}.has-pacer-event .runner-label{opacity:.45}}

/* Shared world: live labels are distinct from translucent replay runners. */
.world-status{position:fixed;left:35px;top:86px;z-index:6;padding:7px 11px;border:1px solid #fff9;background:#eff5e5e8;border-radius:20px;font-size:10px;color:#386344}.world-status.offline{color:#896b4d}.live-label{position:fixed;z-index:4;transform:translate(-50%,-100%);display:grid;text-align:center;gap:2px;max-width:140px;background:#f2f8e8e6;border:1px solid #a8c7a4;border-radius:10px;padding:5px 9px;color:#2d5941;pointer-events:none;font-size:10px}.live-label small{font-size:8px;color:#668857}.live-label b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-label.party-mate{border:2px solid #b4d75e;background:#eff8cfe8}.live-label[hidden],.world-status[hidden]{display:none}.party-code{display:flex;align-items:center;gap:12px;padding:14px;background:#e3edce;border-radius:12px}.party-code span{font-size:10px}.party-code b{font-size:22px;letter-spacing:2px;flex:1}.party-code button,.party-member button{background:transparent;border:1px solid #a3b98f;border-radius:8px;padding:9px;color:#335943}.party-members{margin:12px 0 20px}.party-member{display:flex;align-items:center;gap:10px;padding:12px 2px;border-bottom:1px solid #82977530}.party-member>div{display:grid;flex:1;gap:4px}.party-member small{font-size:10px;color:#6a805c}.online-dot{width:8px;height:8px;border-radius:50%;background:#a8aaa1}.online-dot.on{background:#78a845}.party-notice{padding:12px;background:#e7eedb;border-radius:9px;font-size:12px}.party-join{margin-top:22px;padding-top:18px;border-top:1px solid #c8d8b8}#partyCode{text-transform:uppercase;letter-spacing:3px}#partyFeedback{font-size:12px;color:#9c6241;min-height:18px}#partyCountdown{position:fixed;z-index:11;left:50%;top:42%;transform:translate(-50%,-50%);padding:20px 30px;border:1px solid white;border-radius:22px;background:#234b3be8;color:#fffce9;font-size:24px;font-weight:700;white-space:nowrap;pointer-events:none}#partyCountdown[hidden]{display:none}.is-wallball .world-status,.is-skierg .world-status,.is-placing .world-status,.is-placing #liveLabels{display:none!important}
@media(max-width:740px){.world-status{left:18px;top:62px;font-size:9px;padding:5px 9px}.social-bar{gap:3px}.social-bar button{padding:8px 9px;font-size:9px}.location{max-width:110px!important}.party-code{gap:8px;padding:12px}.party-code b{font-size:20px;letter-spacing:1px}.live-label{font-size:9px;padding:4px 7px}#partyCountdown{font-size:20px;padding:17px 22px}}

.live-grab,.live-invite{position:static!important;transform:none!important}.live-invite{background:#edf5db!important;color:#365a42!important}.live-label{cursor:pointer}#liveGrabHUD{position:fixed;z-index:12;left:50%;bottom:125px;transform:translateX(-50%);width:min(310px,calc(100% - 32px));padding:16px;border:1px solid #fff9;border-radius:16px;background:#243f35ec;color:#fff9dc;text-align:center;display:grid;gap:8px}#liveGrabHUD span{font-size:12px}#escapeGrab{border:1px solid #e0edbb;background:#dcec9d;color:#284d37;padding:12px;border-radius:10px;font-weight:bold;touch-action:manipulation}#liveGrabHUD[hidden],#partyInvite[hidden]{display:none}#partyInvite{position:fixed;z-index:15;left:50%;top:110px;transform:translateX(-50%);width:min(360px,calc(100% - 32px));padding:18px;border:1px solid white;border-radius:16px;background:#f1f5e3f5;color:#2f533c;box-shadow:0 8px 32px #25473735}#partyInvite p{font-size:12px;line-height:1.6;margin:8px 0 12px}#partyInvite>div{display:flex;gap:8px}#partyInvite button{flex:1;border:1px solid #96ac7c;background:#365b42;color:#fff;padding:11px 8px;border-radius:9px}#partyInvite button+button{background:none;color:#365b42}#partyInviteError{font-size:11px;color:#a45f44;display:block;margin-top:6px}.party-join summary{cursor:pointer;font-size:12px;margin-bottom:10px}body:has(#liveGrabHUD:not([hidden])) .context-dock{display:none!important}@media(max-width:740px){#liveGrabHUD{bottom:185px;padding:12px}#partyInvite{top:170px;padding:15px}.live-grab,.live-invite{font-size:10px!important;padding:9px 12px!important}}
.live-label{pointer-events:auto}.live-label:focus-visible{outline:3px solid #edf390;outline-offset:3px}
.live-invite:disabled{opacity:.65;cursor:default}

.invite-options{display:grid;gap:12px;margin:24px 0}.invite-options button{text-align:left;border:1px solid #cbd9bd;background:#edf3e4;border-radius:14px;padding:19px;color:#284b3f}.invite-options b,.invite-options span{display:block}.invite-options b{font-size:15px}.invite-options span{font-size:12px;margin-top:7px;color:#63785b;line-height:1.5}.invite-actions{display:flex;gap:8px}.invite-actions>button{flex:1;min-width:0}#inviteLink{font-size:12px;min-width:0;width:100%;box-sizing:border-box}#inviteStatus{font-size:12px;line-height:1.6;overflow-wrap:anywhere}#inviteTitle,#inviteCopy{overflow-wrap:anywhere}#openInvite{background:#dceabf;color:#2e503a;font-weight:700}@media(max-width:740px){.social-bar{max-width:calc(100vw - 36px)}.social-bar button{padding:8px 8px}.invite-actions{flex-wrap:wrap}.invite-actions>button{flex-basis:120px}}
/* Brief race incidents share the existing event area, never stacking with pacer missions. */
#raceIncident{position:fixed;right:24px;top:188px;width:285px;padding:22px;border:1px solid #e2d9ae;border-radius:22px;background:#f5f3dfed;box-shadow:0 12px 35px #29442b16;backdrop-filter:blur(12px);color:#315441;z-index:24}
#raceIncident[hidden]{display:none}#raceIncident .eyebrow{color:#927243}#raceIncident h3{font-size:21px;line-height:1.4;margin:10px 0}#raceIncident p{font-size:13px;line-height:1.7;margin:0 0 14px}#raceIncident small{display:block;font-size:12px;margin:8px 0 14px}#raceIncident button{width:100%;padding:12px;border:1px solid #789360;border-radius:12px;background:#dce9ba;color:#315441;font-weight:700;cursor:pointer}#raceIncident button:disabled{cursor:default;background:#e8e9d5}.incident-note{display:block;font-size:10px;line-height:1.6;opacity:.7;margin-top:10px}.incident-meter{height:5px;border-radius:4px;overflow:hidden;background:#dfe2cc}.incident-meter i{display:block;height:100%;background:#839c55;width:0}.has-race-incident #raceClock,.has-race-incident .context-dock,.has-race-incident #toast{visibility:hidden}
@media(max-width:740px){#raceIncident{top:126px;right:14px;width:min(270px,calc(100vw - 28px));padding:18px}.has-race-incident #raceHud,.has-race-incident #creatorBar{visibility:hidden}}
/* Plaza classes keep the participant and coach visible while activity controls stay compact. */
.is-plaza-gym .creator-bar,.is-plaza-gym .social-bar,.is-plaza-gym .context-dock,.is-plaza-gym .runner-label,.is-plaza-gym .bottom-hud,.is-plaza-gym #chatPanel,.is-plaza-gym #ghostLabels{display:none!important}.is-plaza-gym .activity-panel{top:120px;right:24px;left:auto;width:285px;padding:20px;max-height:calc(100svh - 155px);overflow:auto}.is-plaza-gym .activity-panel h2{font-size:22px;margin:8px 0}.is-plaza-gym .activity-panel p{font-size:12px;line-height:1.7}.gym-step{font-size:12px;color:#6f8759;margin:16px 0}.tread-stats{display:flex;justify-content:space-between;align-items:center;margin:20px 0}.tread-stats strong{font-size:32px}.tread-stats small{font-size:13px}.tread-controls{display:flex;gap:8px}.tread-controls button{border:1px solid #b5c8a0;background:#e4edcc;color:#365442;padding:12px;border-radius:10px;font-size:14px}.tread-controls button:nth-child(2){flex:1}.tread-controls button:disabled{opacity:.4}.plaza-panel{max-height:calc(100svh - 240px);overflow:auto}
@media(max-width:740px){.is-plaza-gym .activity-panel{top:auto;bottom:16px;left:14px;right:14px;width:auto;padding:16px;max-height:35svh}.is-plaza-gym .activity-panel h2{font-size:18px;margin:5px 0}.is-plaza-gym .activity-panel p{margin:7px 0}.is-plaza-gym .activity-panel .secondary{margin-top:8px;padding:9px}.gym-step{margin:8px 0}.tread-stats{margin:10px 0}}

/* Names stay anchored; overlap is allowed. */
.live-label,.ghost-label,.pacer-label{max-width:min(180px,calc(100vw - 32px))}


#partyDeparture{position:fixed;z-index:16;top:110px;left:50%;transform:translateX(-50%);width:min(370px,calc(100% - 32px));padding:19px;border:1px solid #fff;border-radius:18px;background:#f3f6e8f7;color:#2e533c;box-shadow:0 8px 32px #25473730}#partyDeparture[hidden]{display:none}#partyDeparture .eyebrow{font-size:9px;margin-bottom:9px}#partyDeparture>b{display:block;font-size:17px;line-height:1.5;overflow-wrap:anywhere}#partyDeparture p{font-size:12px;line-height:1.6;margin:8px 0 14px}.departure-actions{display:flex;gap:8px}.departure-actions button{flex:1;border:1px solid #a6b88d;border-radius:10px;padding:12px 8px;background:#315740;color:#fff;font:inherit;font-size:12px;font-weight:700}.departure-actions button+button{flex:0 0 80px;background:transparent;color:#315740}#departureStatus{display:block;margin-top:6px;font-size:11px;color:#9a583c}body:has(#partyInvite:not([hidden])) #partyDeparture{display:none}@media(max-width:740px){#partyDeparture{top:170px;padding:16px}#partyDeparture>b{font-size:16px}}

#modal #partyDeparture{position:relative;top:auto;left:auto;transform:none;width:100%;margin:20px 0 16px;box-shadow:none}
.remote-pacer-label{position:fixed;transform:translate(-50%,-100%);padding:5px 9px;border-radius:20px;background:#eef4dbd9;color:#425d42;font-size:10px;white-space:nowrap;pointer-events:none}.remote-pacer-label[hidden]{display:none}

/* Actual rig portraits are cached stills, not ten live WebGL scenes. */
.pacer-option{position:relative;justify-content:flex-start;padding:9px 9px 15px;overflow:hidden;min-width:0}.pacer-option.selected{padding:8px 8px 14px}.pacer-option.selected:after{content:'선택됨';position:absolute;right:8px;top:8px;padding:4px 7px;border-radius:10px;background:#365a42;color:#fff;font-size:9px}.pacer-portrait{display:block;width:100%;height:130px;border-radius:8px;background:radial-gradient(ellipse at 50% 85%,#9aaf792e,transparent 55%)}.pacer-portrait img{width:100%;height:100%;object-fit:contain;display:block}.pacer-option small{line-height:1.6;color:#627653;text-wrap:balance}.pacer-option:hover{background:#e9f1dc}.pacer-option:focus-visible{outline:3px solid #567c3e;outline-offset:2px}#rapSlow{position:fixed;bottom:225px;left:50%;transform:translateX(-50%);padding:10px 16px;background:#243454e8;color:#edf3ff;border:1px solid #b9ceee;border-radius:24px;font-size:12px;pointer-events:none;z-index:7;white-space:nowrap}#rapSlow[hidden]{display:none}@media(max-width:540px){.pacer-portrait{height:115px}.pacer-option small{font-size:9px}#rapSlow{bottom:240px;font-size:11px}}

.pacer-skill-hint{font-size:9px;line-height:1.5;color:#3d633e;background:#dfeacc;padding:5px 8px;border-radius:7px;margin-top:auto;text-wrap:balance}

/* The final checkpoint pairs the actual product photo with an optional official-store hint. */
dialog:has(.product-quiz){width:min(700px,calc(100% - 28px));padding:28px}.product-quiz h2{font-size:27px;margin:14px 0 8px}.product-quiz .quiz-intro{margin:0 0 22px;font-size:12px}.quiz-layout{display:grid;grid-template-columns:1fr 1fr;gap:25px;align-items:start}.quiz-photo{margin:0;position:relative;border-radius:13px;background:#e7e9e0;overflow:hidden}.quiz-photo img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain}.quiz-photo img[hidden]{display:none}.quiz-photo-tag{position:absolute;left:12px;top:12px;padding:5px 7px;border-radius:4px;background:#f8faf0ce;color:#395643;font-size:7px;letter-spacing:1.1px}.quiz-photo figcaption{padding:10px 12px;color:#677b60;font-size:9px;background:#edf0e5}.quiz-step{font-size:10px;color:#789165}.quiz-question h3{font-size:22px;line-height:1.55;letter-spacing:-.6px;margin:10px 0 16px}.quiz-blank{display:inline-block;color:#52783a;background:#e3edcc;border-bottom:2px solid #8aa567;border-radius:6px 6px 0 0;padding:0 12px;margin-bottom:5px;letter-spacing:4px}.quiz-product-link{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #a5ba91;border-radius:8px;padding:11px 12px;text-decoration:none;color:#365b3d;font-size:12px;font-weight:600}.quiz-product-link:hover{background:#e8efd9}.quiz-product-link:focus-visible{outline:3px solid #77965c;outline-offset:3px}.product-quiz .quiz-link-note{font-size:9px;line-height:1.65;margin:7px 0 20px;color:#718367}.product-quiz label{display:flex;justify-content:space-between;gap:8px;font-size:11px}.product-quiz label span{font-size:9px;color:#849774}.product-quiz input{margin:8px 0 0;font-size:14px}.product-quiz input[aria-invalid=true]{border-color:#ad604e}.product-quiz .quiz-feedback{font-size:11px;color:#a34e3d;line-height:1.6;min-height:18px;margin:7px 0 12px}.product-quiz .primary{font-size:12px;width:100%;padding:14px}.product-quiz .quiz-reward{font-size:9px;color:#829372;text-align:center;margin:10px 0 0}#quizPhotoError{padding:60px 18px;text-align:center}#quizPhotoError[hidden]{display:none}#quizPhotoError p{font-size:11px}#retryQuizPhoto{border:1px solid #a6b694;padding:9px;border-radius:6px;background:#f7f8ef;color:#456242;font-size:11px}@media(max-width:560px){dialog:has(.product-quiz){padding:24px 20px 20px}.product-quiz h2{font-size:24px}.product-quiz .quiz-intro{font-size:11px;margin-bottom:15px}.quiz-layout{grid-template-columns:1fr;gap:16px}.quiz-photo img{height:200px;aspect-ratio:auto}.quiz-photo figcaption{padding:7px 12px}.quiz-question h3{font-size:20px;margin:6px 0 12px}.quiz-question h3 br{display:none}.quiz-blank{margin-right:6px}.product-quiz .quiz-link-note{margin-bottom:14px}.product-quiz input{font-size:16px}}

/* Companion and NPC labels stay legible without floating pills. */
.pacer-label,.remote-pacer-label,.ghost-label{background:none;border:0;border-radius:0;box-shadow:none;backdrop-filter:none;padding:2px 3px;text-shadow:0 1px 2px #fff,0 0 5px #fff,0 0 9px #fff9}.pacer-label b,.remote-pacer-label,.ghost-label{color:#244b3e;font-weight:600}.pacer-label span{color:#48634b}

.is-train .activity-panel{top:auto;right:24px;bottom:95px;width:265px;padding:17px}.is-train .activity-panel h2{font-size:19px;margin:0 0 10px}.is-train #activityTag,.is-train #activityCopy,.is-train #exerciseUI .fine{display:none}.train-status{font-size:12px;line-height:1.6;color:#48644e}.is-train .activity-panel .secondary{margin-top:12px}@media(max-width:740px){.is-train .activity-panel{right:16px;bottom:80px;width:calc(100% - 32px);max-width:none;padding:16px}.is-train .activity-panel h2{font-size:18px}.is-train .bottom-hud{bottom:20px}}
.is-train #activityPanel{inset:auto auto 22px 50%;transform:translateX(-50%);display:flex;align-items:center;gap:14px;width:max-content;max-width:calc(100% - 24px);padding:9px 12px;border-radius:28px;background:#284f40df;color:#faf9e7;box-shadow:none}
.is-train #activityTitle,.is-train #activityCopy,.is-train #activityTag,.is-train .social-bar,.is-train .creator-bar,.is-train .bottom-hud{display:none}
.is-train #exerciseUI{display:flex;align-items:center;gap:12px}.is-train .train-status{color:#f5f6df;font-size:11px}.is-train #activityCancel,.is-train #trainView{margin:0;padding:8px 12px;font-size:11px;border:1px solid #b8d29c;border-radius:20px;background:#f0f3dc;color:#35543e;white-space:nowrap;width:auto}
.is-train .chat-feed:not(.is-typing){bottom:94px}.podium-score{display:flex;justify-content:space-between;gap:14px;border-bottom:1px solid #cfdbc2;padding:9px 0}.podium-score b{font-size:13px}.podium-score span{font-variant-numeric:tabular-nums}
#placeBanner[hidden],#removeBanner[hidden]{display:none}
@media(max-width:740px){.is-train #activityPanel{bottom:18px;gap:8px}.is-train #exerciseUI{gap:8px}.is-train #activityCancel,.is-train #trainView{padding:8px;font-size:10px}.is-train .train-status{font-size:10px}}
.sky-title{position:absolute;bottom:calc(100% + 5px);left:50%;transform:translateX(-50%);white-space:nowrap;color:#fff0b1;font-size:11px;font-weight:800;font-style:normal;text-shadow:0 1px 3px #263f30,0 0 6px #263f30;pointer-events:none}.podium-score small{display:block;color:#587343;font-size:11px;margin-bottom:3px}.podium-score>span{align-self:center;white-space:nowrap}#plantSkyFlag:disabled{opacity:.85}.record-row small{color:#587343}
.sound-toggle{position:fixed;top:30px;right:184px;z-index:9;border:1px solid #ffffff88;border-radius:25px;padding:11px 15px;background:#f6f8f0db;color:#345448;font-size:11px;backdrop-filter:blur(12px)}.sound-sliders{display:grid;gap:22px;margin:25px 0}.sound-sliders label{display:grid!important;grid-template-columns:1fr auto;gap:9px;font-size:13px!important}.sound-sliders input{grid-column:1/-1;width:100%;padding:0!important;accent-color:#496d48;cursor:pointer}.sound-sliders output{font-size:12px;color:#638054}.sound-preview{display:flex;gap:8px}.sound-preview button{flex:1;border:1px solid #b4c5a4;background:#e6eddb;color:#365442;border-radius:9px;padding:12px 8px;font-size:12px}.sound-meter{height:4px;background:#d8e1cc;border-radius:5px;overflow:hidden;margin:16px 0}.sound-meter i{display:block;height:100%;width:0;background:#6e9458;transition:width .1s}#muteSound{width:100%}@media(max-width:740px){.sound-toggle{top:22px;right:18px;padding:9px 12px;font-size:10px}}

#modal #partyInvite{position:sticky;top:0;left:auto;transform:none;width:100%;margin:20px 0 16px;box-shadow:none}
#partyStandings[hidden]{display:none}#partyStandings{border-top:1px solid #7e96743b;margin-top:5px;padding-top:6px;max-width:240px}#partyRankRows{list-style:none;margin:0 0 5px;padding:0;display:grid;gap:3px}#partyRankRows li{display:grid;grid-template-columns:17px minmax(45px,1fr) auto;gap:5px;align-items:center;padding:5px 4px;font-size:10px;border-radius:5px}#partyRankRows li.is-me{background:#dfe9c7}#partyRankRows b{font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#partyRankRows span{font-size:9px;font-variant-numeric:tabular-nums}#partyStandings>small{font-size:8px;color:#65806b}@media(max-width:740px){#partyStandings{max-width:160px}#partyRankRows li{font-size:9px;padding:4px 2px;gap:3px;grid-template-columns:12px minmax(28px,1fr) auto}#partyRankRows span{font-size:8px}.race-clock:has(#partyStandings:not([hidden])){padding:10px;min-width:154px;max-width:170px}}

.prize-photo{display:block;margin:0 0 14px;text-align:center;color:#476440;text-decoration:none}.prize-photo img{display:block;width:100%;height:190px;object-fit:contain;background:#fff;border-radius:10px}.prize-photo span{display:block;margin-top:6px;font-size:10px}.prize-photo:focus-visible{outline:2px solid #345b40;outline-offset:4px;border-radius:10px}@media(max-width:740px){.prize-photo img{height:150px}}

/* Keep the course advertisement visible without covering movement controls. */
.is-course-ad .race-hud{width:170px}.is-course-ad .route-card{padding:11px 14px}.is-course-ad .route-card .next,.is-course-ad .route-line,.is-course-ad .stamps{display:none}.is-course-ad .distance{margin:5px 0 0}.is-course-ad .distance b{font-size:27px}.is-course-ad .route-card .eyebrow span{display:none}@media(max-width:740px){.is-course-ad .race-hud{width:155px}.is-course-ad .race-clock{top:170px;min-width:145px;max-width:160px;padding:10px 12px}.is-course-ad .race-clock>b{font-size:21px}.is-course-ad #ghostCompare{display:none}.is-course-ad #partyRankRows li:not(.is-me){display:none}.is-course-ad #partyStandings>small{display:none}}

.popup-staff-speech{position:fixed;z-index:5;transform:translate(-50%,-100%);padding:12px 16px;border:1px solid #b7c9a2;border-radius:16px;background:#fbfff1f5;color:#254c3b;box-shadow:0 5px 20px #1b3b2720;font-size:13px;line-height:1.65;word-break:keep-all;pointer-events:none}.popup-staff-speech small{display:block;font-size:10px;font-weight:700;color:#70895e;margin-bottom:4px}.popup-staff-speech:after{content:"";position:absolute;bottom:-7px;left:var(--staff-tail,50%);width:12px;height:12px;background:#fbfff1;transform:translateX(-50%) rotate(45deg);border-right:1px solid #b7c9a2;border-bottom:1px solid #b7c9a2}.popup-staff-speech[hidden]{display:none}@media(max-width:740px){.popup-staff-speech{font-size:12px;padding:10px 13px}}

.popup-staff-speech.is-below{transform:translateX(-50%)}.popup-staff-speech.is-below:after{top:-7px;bottom:auto;border-right:0;border-bottom:0;border-left:1px solid #b7c9a2;border-top:1px solid #b7c9a2}
.popup-visit{margin:0 0 14px}.popup-visit-button{display:block;width:100%;padding:13px 18px;border:1px solid #a4b77c;border-radius:10px;background:#e2edc4;color:#264c3d;font-size:13px;font-weight:700;line-height:1.6;word-break:keep-all;text-align:left}.popup-visit-button:hover{background:#d4e5ab}.popup-visit-button:focus-visible{outline:3px solid #6e8c45;outline-offset:2px}.shop-heading .popup-visit p{font-size:10px;margin:6px 0 0;line-height:1.5;color:#627956}@media(max-width:650px){.popup-visit{margin-bottom:10px}.popup-visit-button{font-size:12px;padding:10px 12px}.shop-heading .popup-visit p{font-size:9px}.fitting-modal:has(.popup-visit) .fitting-layout{grid-template-rows:150px minmax(0,1fr)}.fitting-modal:has(.popup-visit) .fitting-person{grid-template-rows:115px 30px}.fitting-modal:has(.popup-visit) .wardrobe-preview{height:115px}}

/* Wide touch devices keep their controls when unfolded or in desktop-site mode. */
.has-touch .touch{display:flex}.has-touch .keys{display:none}body:has(#modal[open]) .touch{visibility:hidden}
@media(min-width:741px){.has-touch .context-dock{bottom:calc(185px + env(safe-area-inset-bottom,0px))}.has-touch .chat-feed:not(.is-typing){bottom:250px}.has-touch #liveGrabHUD{bottom:190px}}

/* Compact gameplay HUD: details are available on demand, not over the runner. */
#mobileMenuToggle,#mobileMenuPanel,#mobileRaceToggle,#mobileRacePanel{display:none}
.compact-ui{--hud-top:env(safe-area-inset-top,0px);--control-bottom:calc(20px + env(safe-area-inset-bottom,0px));-webkit-tap-highlight-color:transparent}
.compact-ui .hud{padding:calc(10px + var(--hud-top)) 14px}.compact-ui .brand{font-size:20px;letter-spacing:-1px;line-height:1.3}.compact-ui .brand span,.compact-ui .location{display:none}
.compact-ui #worldStatus{top:calc(38px + var(--hud-top));left:14px;right:auto;max-width:220px;padding:4px 8px;font-size:9px;border:0;background:#f6f8efe0;min-height:24px}
.compact-ui #mobileMenuToggle{display:block;position:fixed;top:calc(8px + var(--hud-top));right:12px;z-index:10;min-height:44px;padding:8px 14px;border:1px solid #fff9;border-radius:24px;background:#f5f8e9ed;color:#294a3d;font-size:12px;font-weight:600}
.compact-ui.mobile-menu-open #mobileMenuPanel,.compact-ui.mobile-race-open #mobileRacePanel{display:block;position:fixed;z-index:11;top:calc(60px + var(--hud-top));right:12px;left:12px;max-height:calc(100dvh - 90px - var(--hud-top));overflow:auto;background:#f5f8edfa;border:1px solid #fff;border-radius:18px;padding:16px;box-shadow:0 12px 50px #173c3540;pointer-events:auto}
.compact-ui #mobileMenuPanel>header,.compact-ui #mobileRacePanel>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;font-size:14px}
.compact-ui #mobileMenuPanel>header button,.compact-ui #mobileRacePanel>header button{min-height:44px;padding:8px 12px;border:0;border-radius:10px;background:#e4ecd8;color:#365443;font-size:12px}
.compact-ui #mobileMenuTools{display:grid;gap:12px}.compact-ui #mobileMenuTools .social-bar,.compact-ui #mobileMenuTools .creator-bar{position:static;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;transform:none;width:auto;margin:0}
.compact-ui #mobileMenuTools nav button{min-height:46px;padding:9px 4px;border-radius:10px;font-size:11px;white-space:normal}.compact-ui #mobileMenuTools .sound-toggle{position:static;min-height:44px;width:100%;padding:10px;font-size:12px}
.compact-ui .race-hud,.compact-ui.is-course-ad .race-hud{top:calc(72px + var(--hud-top));left:12px;width:calc(50% - 16px);z-index:4}
.compact-ui .route-card,.compact-ui.is-course-ad .route-card{padding:8px 10px;border-radius:12px;background:#f7faebd9;box-shadow:none}.compact-ui .route-card .eyebrow,.compact-ui .route-line{display:none}
.compact-ui .distance,.compact-ui.is-course-ad .distance{margin:0;gap:5px}.compact-ui .distance b,.compact-ui.is-course-ad .distance b{font-size:26px;letter-spacing:-1px}.compact-ui .distance>span{font-size:8px;white-space:nowrap}
.compact-ui .next{display:flex!important;margin-top:3px;font-size:8px;gap:3px}.compact-ui .next>span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.compact-ui .next>b{flex-shrink:0}
.compact-ui .race-clock,.compact-ui .race-clock:has(#partyStandings:not([hidden])),.compact-ui.is-course-ad .race-clock{top:calc(72px + var(--hud-top));left:auto;right:12px;width:calc(50% - 16px);min-width:0;max-width:none;padding:8px 10px;border-radius:12px;background:#f7faebd9}
.compact-ui .race-clock>span{display:none}.compact-ui .race-clock>b,.compact-ui.is-course-ad .race-clock>b{font-size:24px;line-height:1.3;margin:0}.compact-ui #raceRivals{display:block;font-size:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:3px 0 0}
.compact-ui.is-racing #mobileRaceToggle{display:block;position:fixed;top:calc(134px + var(--hud-top));right:12px;z-index:7;min-height:36px;padding:6px 10px;font-size:10px;border:1px solid #fff8;border-radius:16px;background:#f5f8e9d9;color:#294a3d}
.compact-ui #mobileRacePanel{top:calc(174px + var(--hud-top))!important;max-height:calc(100dvh - 210px - var(--hud-top))!important}
.compact-ui #mobileMissionSlots .stamps{display:flex;margin:0 0 14px}.compact-ui #mobileMissionSlots button{min-height:54px}.compact-ui #mobileRankSlots #partyStandings{max-width:none}.compact-ui #mobileRankSlots #partyRankRows li{display:grid;font-size:12px;grid-template-columns:22px 1fr auto;padding:9px}.compact-ui #mobileRankSlots #partyRankRows span{font-size:11px}.compact-ui #mobileRankSlots #partyStandings>small{display:block;font-size:10px}
.compact-ui #plazaHud{top:calc(76px + var(--hud-top));left:12px;width:148px}.compact-ui #plazaHud.is-open{width:min(290px,calc(100vw - 24px));max-height:calc(100dvh - 240px);overflow:auto}.compact-ui .plaza-toggle{min-height:44px;padding:10px 14px;font-size:12px}
.compact-ui .touch{bottom:var(--control-bottom);left:14px;right:14px;align-items:flex-end}.compact-ui #stick{width:104px;height:104px}.compact-ui #stick>span{width:44px;height:44px}.compact-ui #stick small{display:none}.compact-ui .touch-actions{gap:10px;align-items:flex-end}.compact-ui #jumpButton{width:76px;height:76px;font-size:16px}.compact-ui #jumpButton span{font-size:9px}.compact-ui #dashButton{width:54px;height:54px;font-size:10px}
.compact-ui .touch,.compact-ui .touch button,.compact-ui #stick,.compact-ui .hud,.compact-ui #contextDock{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.compact-ui .bottom-hud{left:18px;right:18px;bottom:calc(6px + env(safe-area-inset-bottom,0px));pointer-events:none}.compact-ui .stamina{width:96px}.compact-ui .stamina>div:first-child{display:none}.compact-ui .energy-track{height:3px}.compact-ui #reset{display:none}.compact-ui .keys{display:none}
.compact-ui .context-dock{bottom:calc(134px + env(safe-area-inset-bottom,0px));gap:4px;width:calc(100vw - 24px)}.compact-ui .context-actions{gap:5px}.compact-ui .context-dock .interact,.compact-ui .context-dock .banner-near{padding:7px 10px;font-size:10px;min-height:40px}.compact-ui .center-hint{font-size:10px;padding:6px 10px}
.compact-ui .chat-feed:not(.is-typing){left:12px;bottom:calc(182px + env(safe-area-inset-bottom,0px));max-width:220px;width:60vw;max-height:74px}.compact-ui .chat-feed:not(.is-typing) #chatMessages{max-height:52px}.compact-ui .chat-feed .chat-line{font-size:10px}.compact-ui .chat-feed:not(.is-typing) #chatHint{font-size:9px}
.compact-ui .runner-label{padding:3px 6px;font-size:8px;max-width:150px}.compact-ui .runner-id b{font-size:8px}.compact-ui .runner-id small{font-size:7px}.compact-ui .course-mode{display:none}
.compact-ui #toast{top:calc(175px + var(--hud-top));font-size:12px;max-width:calc(100vw - 32px);width:max-content;line-height:1.6}
.compact-ui.mobile-menu-open .touch,.compact-ui.mobile-race-open .touch{visibility:hidden}
@media(max-height:500px){.compact-ui .race-hud,.compact-ui .race-clock{top:10px!important;left:calc(50% - 145px);right:auto;width:140px!important}.compact-ui .race-clock{left:calc(50% + 5px)}.compact-ui.is-racing #mobileRaceToggle{top:70px}.compact-ui .touch{bottom:12px}.compact-ui #stick{width:86px;height:86px}.compact-ui #jumpButton{width:64px;height:64px}.compact-ui .context-dock{bottom:105px}.compact-ui #mobileRacePanel{top:105px!important;max-height:calc(100dvh - 120px)!important}}

.compact-ui #mobileMenuTools #reset{display:block;pointer-events:auto;min-height:44px;background:#e4ecd8;color:#365443;border:0;border-radius:10px;font-size:12px}.compact-ui.is-racing #mobileRaceToggle{min-height:44px}
#roomList,#roomRoster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:15px 0}#roomList button,#roomRoster button{margin:0;min-height:44px;overflow-wrap:anywhere}#roomFeedback,#roomMoveError{font-size:12px;color:#9c6241}.room-move-notice{position:fixed;z-index:18;left:50%;top:110px;transform:translateX(-50%);width:min(370px,calc(100% - 32px));padding:18px;border:1px solid white;border-radius:16px;background:#f1f5e3f5;color:#2f533c;box-shadow:0 8px 32px #25473735}.room-move-notice[hidden]{display:none}.room-move-notice p{font-size:12px;line-height:1.6}.room-move-notice button{padding:11px;border:1px solid #96ac7c;border-radius:9px;background:#365b42;color:white;margin:4px}#modal .room-move-notice{position:sticky;top:0;left:auto;transform:none;width:100%;box-shadow:none}@media(max-width:740px){.room-move-notice{top:170px}#roomRoster{grid-template-columns:1fr}}
