/* Coastal RPG stage: authored image-space blocking, physical contact, compact game HUD. */
:root{--world-cream:#f3edda;--world-ink:#102b35;--world-mint:#d8efb6;--world-ground-x:50%;--world-ground-y:82%;--world-person-height:330px;--world-shadow-angle:15deg}
body{background:#091d26}main{height:100svh;min-height:730px;max-height:none;isolation:isolate}.world-grain{opacity:.035;pointer-events:none}.game-grid,.map-card,.map{inset:0}.city-background{background-image:var(--world-image)!important;background-position:var(--world-camera,50%) 100%!important;background-size:var(--world-image-size,cover);transform:none;animation:none;filter:saturate(.93) brightness(.92);transition:filter .35s ease}.city-light{background:linear-gradient(180deg,#051b2799,transparent 28%,transparent 78%,#071c2ad9);pointer-events:none;opacity:1}.sea-shimmer{opacity:.13;mix-blend-mode:screen}.map:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#071f2740,transparent 35%,transparent 75%,#071f2740);pointer-events:none;z-index:1}.world-scene-vignette{position:absolute;inset:0;pointer-events:none;z-index:1;background:radial-gradient(ellipse at 50% 48%,transparent 43%,#06202b22 100%)}
header{height:105px;z-index:7;background:linear-gradient(#081d2a99,transparent);border:0;pointer-events:none}.brand{position:absolute;left:50%;top:25px;transform:translateX(-50%);gap:10px;pointer-events:auto}.brand-mark{font-size:27px;width:37px;letter-spacing:-8px}.brand>span:last-child{font-size:10px;letter-spacing:2px}.brand small{font-size:6px;letter-spacing:1.4px;margin-top:5px}.balances{position:absolute;right:28px;top:23px;gap:7px;pointer-events:auto}.balances>span{border:1px solid #e2ecd735;background:#102a36;padding:11px 14px;border-radius:8px;font-size:12px;box-shadow:0 3px 0 #06172055}.balances>span:first-child{color:#f4e4b8}.quests-button,.icon{background:#102a36;border:1px solid #c6d5ba33;color:#e2ebd0;backdrop-filter:none}.quests-button{font-size:10px;min-height:44px;padding:10px 13px}.icon{width:44px;height:44px}
.intro{left:30px;top:132px;z-index:3;max-width:70%;pointer-events:none}.intro h1,.intro p,.intro .season{display:none}.intro .eyebrow{font-size:10px;letter-spacing:1.5px;font-weight:800;color:#fcf4db;text-shadow:0 2px 8px #072332;display:inline-flex;align-items:center;max-width:100%;line-height:1.7;border-left:3px solid #e1dba6;padding:4px 0 4px 12px}.intro .eyebrow:before{content:'ГЕЛЕНДЖИК';font-size:8px;background:#eee8ce;color:#173441;padding:5px 8px;letter-spacing:1px;margin-right:12px;border-radius:2px;flex-shrink:0}.map-heading{display:none}.map-note{left:30px;bottom:112px;right:auto;max-width:320px;color:#e1e7d4;font-size:9px;line-height:1.5;text-shadow:0 1px 5px #001724;z-index:3;background:none;padding:0}
.profile{position:absolute;left:var(--world-ground-x);top:calc(var(--world-ground-y) - var(--world-person-height));right:auto;bottom:auto;width:calc(var(--world-person-height)*.52);height:var(--world-person-height);margin-left:calc(var(--world-person-height)*-.26);z-index:2;text-align:center;pointer-events:none;filter:none;transition:left .45s ease,top .45s ease}.profile #avatar{position:absolute;inset:0;width:100%;height:100%;margin:0;animation:none;filter:brightness(var(--world-person-light,.92)) saturate(.87) drop-shadow(-2px 0 1px #f1d4a254);transform-origin:50% 100%;z-index:3}.profile #avatar svg{width:100%;height:100%;max-width:100%;position:relative;z-index:2}.profile #avatar:before{display:none}.character-halo{display:none}.world-contact-shadow{position:absolute;left:22%;right:18%;bottom:-2px;height:12px;background:radial-gradient(ellipse,#0c1c1dde 0%,#13292aaa 25%,transparent 73%);filter:blur(2px);z-index:1;transform:scaleX(1.2);pointer-events:none}.world-cast-shadow{position:absolute;left:39%;bottom:-5px;width:90%;height:22px;transform:rotate(var(--world-shadow-angle)) skewX(-28deg);transform-origin:0 50%;border-radius:50%;background:linear-gradient(90deg,#122b30a3,#16313815);filter:blur(5px);z-index:0;pointer-events:none}.world-foot-occlusion{position:absolute;left:20%;right:12%;bottom:-2px;height:5px;border-radius:50%;background:linear-gradient(0deg,var(--world-ground-color,#917a62),transparent);opacity:.6;z-index:4;pointer-events:none}.profile-top{position:fixed;left:28px;top:20px;right:auto;bottom:auto;transform:none;width:240px;z-index:8;pointer-events:auto}.identity-button{padding:8px 12px 8px 8px;border-radius:10px;background:#102a35;backdrop-filter:none;border:1px solid #d5e4c538;box-shadow:0 3px 0 #06172066;gap:11px;text-align:left}.profile-pic{width:42px;height:42px;border:2px solid #d9e3b3;background:#c3d8b5;color:#1b3e3e;font-size:23px}.identity-button small{font-size:8px;color:#b9cab9;letter-spacing:1.3px}.identity-button b{font-size:14px;color:#faf5e3}.edit-icon{color:#c5d4ba;font-size:12px;margin-left:auto}.profile-name{position:fixed;left:81px;top:78px;right:auto;bottom:auto;z-index:7}.profile-name>span{padding:0;border:0;border-radius:0;background:none;font-size:8px;letter-spacing:1.4px;color:#e4e7c9;text-shadow:0 1px 4px #082633}.stats{position:fixed;right:28px;bottom:124px;left:auto;width:auto;display:flex;gap:22px;padding:12px 0;border:0;border-radius:0;background:none;backdrop-filter:none;text-align:right;z-index:4}.stats>div{border:0;padding:0}.stats b{font-size:16px;color:#f8f0dc;text-shadow:0 2px 6px #102d35}.stats small{font-size:8px;color:#d9e2d0;letter-spacing:1px;text-shadow:0 1px 4px #102d35}
.goal{top:204px;left:30px;bottom:auto;right:auto;width:310px;max-width:310px;padding:21px 22px;display:block;background:#102d37;border:0;border-left:3px solid #d7e5b8;border-radius:3px 13px 13px 3px;box-shadow:0 12px 25px #071b3138;backdrop-filter:none;z-index:5}.goal-icon{display:none}.goal .eyebrow{font-size:8px;letter-spacing:1.6px;color:#c6d6b4}.goal h3{font-size:20px;font-weight:700;line-height:1.35;margin:11px 0 9px;color:#f7f1dd}.goal p{font-size:12px;line-height:1.65;color:#bacdc4;max-width:none}.goal .progress{height:3px;margin:16px 0;background:#c5d5b323}.goal .progress span{background:#d8edb6}.goal .primary{margin:0;max-width:none;width:100%;padding:13px 16px;min-height:46px;font-size:12px;letter-spacing:.1px;border-radius:7px;background:#e0edba;color:#163b35;border:0;box-shadow:0 3px 0 #9fb88c}
.game-modes{position:absolute;top:auto;bottom:22px;left:50%;right:auto;transform:translateX(-50%);width:min(610px,calc(100% - 48px));max-width:none;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;padding:8px;background:#102b35;border:1px solid #e2ecd03b;border-radius:14px;box-shadow:0 5px 0 #06182077,0 15px 35px #061a3144;z-index:6;overflow:visible}.game-modes button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-width:0;min-height:58px;padding:7px 5px;border:0;border-radius:8px;backdrop-filter:none;background:none!important;font-size:10px!important;font-weight:700;line-height:1.1;color:#d8e2ce;box-shadow:none;white-space:normal}.game-modes button:hover{background:#d5e8b814!important;color:#eff9d4}
.pin{position:absolute;left:auto!important;right:30px!important;width:200px;min-height:64px;border:0;border-radius:9px;background:#f1ecdc;color:#163640;padding:9px 13px;gap:11px;box-shadow:0 4px 0 #a6afa08c,0 9px 17px #06223a33;backdrop-filter:none;z-index:4;transform:none}.pin:hover{transform:translateX(-4px);background:#fff8e5}.pin>i{width:40px;height:40px;display:grid;place-items:center;border:1px solid #23434026;border-radius:50%;background:#133a3a0b;font-size:20px;color:#244742;font-style:normal;box-shadow:none}.pin span{font-size:11px;color:#1b3f41;font-weight:800;letter-spacing:.3px;text-align:left}.pin small{font-size:8px;color:#5c7775;letter-spacing:.3px;margin-top:5px}.pin>b{color:#547269;font-size:15px;margin-left:auto}.p-work{top:200px!important}.p-style{top:279px!important}.p-home{top:358px!important}.p-pier{top:437px!important}.daily-btn{position:absolute;right:28px;bottom:198px;width:200px;padding:12px 14px;background:#17343b;border:1px solid #dce4bc3d;border-radius:9px;backdrop-filter:none;color:#e7ebce;font-size:10px;z-index:4}.daily-btn>span{font-size:24px;color:#e5dfac}.daily-btn small{font-size:9px;color:#b6c9bd}.journal{position:absolute;bottom:119px;left:30px;right:auto;width:330px;color:#d0d9c5;font-size:9px;opacity:.8;z-index:4}.journal .eyebrow{display:none}.journal #journal>div:not(:first-child){display:none}.journal #journal>div{border:0;background:none;padding:0}.map-note{bottom:145px}.city-scene-action{top:440px!important;left:30px!important;right:auto!important;width:310px;max-width:310px;background:#f0ead6;color:#21413e;backdrop-filter:none;border:0;border-left:3px solid #bdcc9f;padding:19px 20px;border-radius:4px 10px 10px 4px;box-shadow:0 4px 0 #a1b19577;font-size:12px;line-height:1.5;z-index:5}
footer{background:#091e29;min-height:45px;border-top:1px solid #c7d8b519;color:#b0c7be;font-size:9px;gap:14px}.city-reference{background:#091e29}.world-arrival .city-background{animation:worldArrival .55s ease-out}.world-arrival .profile #avatar{animation:worldHumanArrival .5s ease-out}.world-outfit-change{animation:worldOutfitLight .38s ease-out}.world-tap{position:fixed;width:18px;height:18px;pointer-events:none;border:1px solid #e4f2b5;border-radius:50%;z-index:100;animation:worldTap .5s ease-out forwards}.world-pulse{animation:worldReward .5s ease-out}#toast{background:#eef0d4;color:#153c36;border:1px solid #fff5d7;box-shadow:0 6px 0 #7f9c7f55,0 18px 35px #071b3155;border-radius:8px;font-size:13px;padding:14px 20px}
@keyframes worldArrival{from{filter:brightness(.65) saturate(.75)}to{filter:brightness(.92) saturate(.93)}}@keyframes worldHumanArrival{from{opacity:0;filter:brightness(1.2)}to{opacity:1}}@keyframes worldOutfitLight{50%{filter:brightness(1.15)}}@keyframes worldTap{to{transform:scale(2.8);opacity:0}}@keyframes worldReward{50%{box-shadow:0 0 20px #e2ecac66}}
@media(min-width:1500px){.goal{left:4vw;top:215px}.pin{right:4vw!important}.intro{left:4vw}.city-scene-action{left:4vw!important}.profile-top{left:4vw}}
@media(max-width:1050px) and (min-width:721px){.brand>span:last-child{display:none}.goal{width:270px;max-width:270px}.pin{width:172px}.city-scene-action{width:270px;max-width:270px;top:470px!important}.stats{gap:15px}.profile-top{width:218px}.balances>span{padding:11px}.quests-button{font-size:9px}}
@media(max-width:720px){main{height:100svh;min-height:740px}.profile-top{top:14px;left:14px;width:205px}.identity-button{padding:7px;gap:9px;border-radius:10px}.identity-button b{font-size:13px}.identity-button small{font-size:8px}.profile-pic{width:39px;height:39px}.profile-name{top:73px;left:65px}.profile-name>span{font-size:8px}.brand{left:auto;right:17px;top:19px;transform:none}.brand>span:last-child{display:none}.brand-mark{font-size:30px}.balances{top:101px;left:15px;right:15px;justify-content:flex-end;gap:6px}.balances>span{padding:9px 11px;font-size:11px;min-height:37px;display:flex;align-items:center}.balances #level{margin-right:auto;font-size:10px}.quests-button{min-height:44px;font-size:9px;padding:9px}.icon{height:44px;width:44px;min-height:44px}.intro{top:154px;left:15px;max-width:calc(100% - 30px)}.intro .eyebrow{font-size:9px;letter-spacing:.7px;line-height:1.6;padding:1px 0 1px 9px;border-width:2px}.intro .eyebrow:before{display:none}.goal{top:194px;left:15px;right:15px;width:auto;max-width:none;display:grid;grid-template-columns:minmax(0,1fr) 105px;gap:10px;padding:14px 15px;border-radius:3px 10px 10px 3px}.goal .eyebrow{font-size:7px}.goal h3{font-size:15px;margin:6px 0}.goal p{font-size:10px;line-height:1.55}.goal .progress{height:2px;margin:9px 0 0}.goal .primary{font-size:10px;line-height:1.35;min-height:46px;padding:11px 9px;align-self:center;box-shadow:0 3px 0 #9fb88c}.goal-copy{min-width:0}.pin{right:14px!important;left:auto!important;width:62px;min-height:65px;padding:7px 4px;display:flex;flex-direction:column;gap:3px;border-radius:10px;box-shadow:0 3px 0 #8ba494a1,0 5px 13px #051d3933}.pin>i{width:30px;height:30px;font-size:18px;border:0;background:none}.pin span{font-size:8px;text-align:center;letter-spacing:0;line-height:1.2}.pin small,.pin>b{display:none}.pin:hover{transform:none}.p-work{top:345px!important}.p-style{top:420px!important}.p-home{top:495px!important}.p-pier{top:570px!important}.stats{right:16px;left:auto;bottom:118px;gap:13px;padding:0;text-align:right}.stats b{font-size:12px}.stats small{font-size:7px;letter-spacing:.2px}.game-modes{left:12px;right:12px;bottom:18px;transform:none;width:auto;max-width:none;padding:7px 4px;gap:1px;border-radius:13px;overflow:visible}.game-modes button{min-height:56px;min-width:0;padding:6px 1px;gap:6px}.map-note{left:15px;bottom:159px;max-width:154px;font-size:8px;color:#e2e4d2;line-height:1.4}.journal{display:none}.daily-btn{left:15px;right:auto;bottom:116px;width:auto;min-width:145px;padding:8px 10px;gap:8px;font-size:9px;min-height:42px}.daily-btn small{font-size:8px}.daily-btn>span{font-size:20px}.daily-btn>b{display:none}.city-scene-action{top:334px!important;left:15px!important;right:auto!important;width:205px;max-width:calc(100% - 100px);font-size:11px;padding:14px 15px;line-height:1.5}.profile{z-index:2}.world-cast-shadow{height:16px}.world-contact-shadow{height:10px}footer{padding:15px;flex-wrap:wrap;font-size:8px}.city-reference{padding:0 15px 20px}.city-reference summary{min-height:44px;padding-top:10px}body[data-city]:not([data-city=center]) .map-note{max-width:220px}}
@media(max-width:360px){.profile-top{width:185px}.goal{grid-template-columns:minmax(0,1fr) 92px;gap:8px;padding:12px}.goal h3{font-size:14px}.goal p{font-size:10px}.balances>span{padding:8px 9px}.quests-button{font-size:8px}.stats{gap:9px}.pin{width:56px}.city-scene-action{width:190px}}
@media(prefers-reduced-motion:reduce){.city-background,.profile,.profile #avatar,.world-tap,.world-pulse{animation:none!important;transition:none!important}.world-tap{display:none}.sea-shimmer{animation:none!important}}

/* Grounding clearance and compact viewport spacing. */
@media(min-width:721px){.goal{padding:15px 20px}.goal h3{margin:7px 0}.goal .progress{margin:10px 0}.goal .primary{padding:10px 14px}.daily-btn{bottom:104px;min-width:0;width:200px}.stats{bottom:179px}.map-note{bottom:130px}}
.map-footer{position:static!important;inset:auto;transform:none;pointer-events:none}.map-footer .daily-btn{pointer-events:auto}

main>.profile-top,main>.profile-name,main>.stats{position:absolute}
@media(max-width:720px){.goal{right:90px;grid-template-columns:minmax(0,1fr);gap:8px;padding:12px 14px}.goal .primary{min-height:44px;padding:8px 10px;font-size:11px}.goal p{font-size:11px}.goal .progress{margin-top:7px}.goal h3{font-size:15px}.city-scene-action{top:380px!important}.daily-btn{max-width:145px}.stats{gap:9px;right:13px}.map-note{max-width:145px;bottom:176px}#toast{bottom:100px;max-width:calc(100vw - 48px);pointer-events:none}}
@media(max-width:720px){.daily-btn{top:98px;bottom:auto;left:15px;min-width:138px;width:138px;max-width:138px;min-height:44px;padding:7px 9px}.daily-btn small{display:none}.daily-btn div{font-size:9px;letter-spacing:.3px}.map-note{bottom:105px;max-width:160px}.stats{bottom:115px}}
@media(min-width:721px){.city-scene-action{left:auto!important;right:30px!important;top:204px!important;width:250px;max-width:250px}}
@media(max-width:720px){.map-note{display:none}.pin span{font-size:9px}.stats small{font-size:8px}.profile-name>span{font-size:9px}.identity-button small{font-size:9px}}
@media(max-width:720px){.pin span{font-size:10px}.stats small{font-size:9px}.intro .eyebrow{font-size:10px}.goal .eyebrow{font-size:9px;letter-spacing:.8px}}
.pin>i svg{width:24px;height:24px;display:block}.pin>b{font-size:0;width:16px;height:16px;border:0;transform:none;flex:0 0 16px}.pin>b svg{width:16px;height:16px;display:block}.daily-btn>b svg{width:13px;height:13px;display:block}.daily-btn>b{border:0;transform:none}
@media(max-width:720px){.pin>i svg{width:23px;height:23px}.goal{right:15px;display:grid;grid-template-columns:minmax(0,1fr) 105px;gap:10px;padding:11px 13px}.goal p,.goal .progress,.goal .eyebrow{display:none}.goal h3{font-size:14px;margin:0;line-height:1.35}.goal .primary{font-size:11px;min-height:44px;padding:8px;align-self:center}.goal-copy{align-self:center}.stats{left:15px;right:15px;bottom:97px;display:flex;justify-content:center;gap:18px;min-height:33px;padding:7px 12px;background:#102b35;border:1px solid #e2ecd026;border-radius:6px}.stats>div{display:flex;gap:5px;align-items:baseline}.stats b{font-size:11px}.stats small{font-size:9px;letter-spacing:0}.city-scene-action{top:286px!important}}
/* Detailed style / shift / housing stats stay in profile and story panels on phones. */
@media(max-width:720px){main>.stats{display:none}}
@media(max-width:720px){.goal{right:90px;grid-template-columns:minmax(0,1fr) 90px}.goal h3{font-size:13px}.goal .primary{font-size:10px}}

/* One real text label; consistent vector masks are decorative, never OS emoji. */
.game-modes button:after{content:none!important}.game-modes button:before{content:"";display:block;flex:0 0 24px;width:24px;height:24px;background:currentColor;-webkit-mask:var(--dock-icon) center/contain no-repeat;mask:var(--dock-icon) center/contain no-repeat}
.game-modes #locations{--dock-icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.65%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m3%205%206-2%206%202%206-2v16l-6%202-6-2-6%202V5Zm6-2v16m6-14v16%22%2F%3E%3C%2Fsvg%3E")}
.game-modes #cloudStory{--dock-icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.65%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%227%22%20r%3D%224%22%2F%3E%3Cpath%20d%3D%22M4%2021v-2a8%208%200%200%201%2016%200v2%22%2F%3E%3C%2Fsvg%3E")}
.game-modes #business{--dock-icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.65%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%227%22%20width%3D%2218%22%20height%3D%2214%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22M8%207V3h8v4M3%2012a22%2022%200%200%200%2018%200M10%2012v3h4v-3%22%2F%3E%3C%2Fsvg%3E")}
.game-modes #arena{--dock-icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.65%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%203%203%207v5c0%205%209%209%209%209s9-4%209-9V7l-9-4Z%20M8%2012l3%203%205-6%22%2F%3E%3C%2Fsvg%3E")}
.game-modes #pvp{--dock-icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.65%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m4%203%207%207-3%203-5-5%201-5Zm16%200-7%207%203%203%205-5-1-5ZM9%2014l-6%206m12-6%206%206M3%2015l6%206m6%200%206-6%22%2F%3E%3C%2Fsvg%3E")}
.game-modes #vip{--dock-icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.65%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m3%207%204%204%205-7%205%207%204-4-2%2012H5L3%207Zm3%208h12%22%2F%3E%3C%2Fsvg%3E")}
@media(max-width:720px){.game-modes button{font-size:10px!important;min-height:56px}.game-modes button:before{width:23px;height:23px;flex-basis:23px}}
/* Whole-body rig at the authored scene ground point; hide only the old hub illustration once ready. */
.profile.world-rig-ready>#avatar{visibility:hidden;pointer-events:none}.profile.world-rig-ready>.world-contact-shadow{opacity:0}.profile.world-rig-ready>.world-foot-occlusion{opacity:0}
.world-character{position:absolute;left:50%;bottom:-24px;width:calc(var(--world-person-height)*1);height:calc(var(--world-person-height)*1.2);transform:translateX(-50%);z-index:4;pointer-events:none}.world-character[hidden]{display:none}.world-character-button{position:absolute;inset:0;border:0;padding:0;margin:0;width:100%;height:100%;background:none;box-shadow:none;border-radius:24%;pointer-events:auto;cursor:pointer;color:inherit;touch-action:manipulation}.world-character-button:hover,.world-character-button:active{background:none;transform:none;box-shadow:none}.world-character-button:focus-visible{outline:2px solid #f1dba1;outline-offset:-12px;background:#f5e5af09}.world-character canvas{display:block;width:100%;height:100%;pointer-events:none;filter:brightness(var(--world-person-light,.97));padding:0;max-width:none}.world-character-bubble{position:absolute;bottom:95%;left:50%;transform:translateX(-50%);width:max-content;max-width:230px;padding:10px 14px;background:#132f38f2;color:#f8f0d8;border:1px solid #d3d8b65c;border-radius:12px;font-size:12px;line-height:1.5;text-align:center;box-shadow:0 6px 18px #061c2940;opacity:0;pointer-events:none;transition:opacity .15s ease}.world-character-speaking .world-character-bubble{opacity:1}.world-character-bubble:after{content:'';position:absolute;left:calc(50% - 5px);bottom:-5px;width:10px;height:10px;transform:rotate(45deg);background:#132f38;border-right:1px solid #d3d8b65c;border-bottom:1px solid #d3d8b65c}
@media(prefers-reduced-motion:reduce){.world-character-bubble{transition:none}.world-character-button{transition:none;animation:none}}
.profile.world-rig-error>#avatar{visibility:hidden}.world-character-error .world-character-button{inset:auto 22% 20%;width:56%;height:45%;background:#17333be6;border:1px solid #d2d9b45c;border-radius:12px}.world-character-error .world-character-button:after{content:'↻';font-size:32px;color:#f3dfad}.world-character-error .world-character-bubble{bottom:62%;opacity:1}
.world-character-load-error{position:absolute;left:50%;top:45%;transform:translateX(-50%);width:190px;padding:14px;min-height:48px;background:#17333bf2;color:#f4e7c5;border:1px solid #cbd7b46b;border-radius:10px;pointer-events:auto;font-size:12px;line-height:1.5;z-index:5}.world-character-load-error:active{transform:translateX(-50%)}

.profile.world-rig-loading>#avatar{visibility:hidden}.world-character-loading{position:absolute;left:50%;top:48%;transform:translateX(-50%);width:max-content;max-width:210px;padding:9px 13px;border-radius:10px;background:#17333bd9;color:#f4e7c5;font-size:12px;line-height:1.5;pointer-events:none;z-index:5}.world-character-loading[hidden]{display:none}

.profile.world-rig-suspended>#avatar{visibility:hidden}
/* Direct in-scene 24-angle inspection. Same foot pivot as the living hub actor. */
.world-character-button{touch-action:pan-y;cursor:grab}
.world-rotation{position:absolute;left:50%;bottom:-24px;width:calc(var(--world-person-height)*1);height:calc(var(--world-person-height)*1.2);transform:translateX(-50%);z-index:7;pointer-events:none}
.world-rotation[hidden]{display:none}
.world-rotation canvas{display:block;width:100%;height:100%;max-width:none;padding:0;pointer-events:auto;touch-action:pan-y;cursor:grab;filter:brightness(var(--world-person-light,.97))}
.world-rotation canvas:focus-visible{outline:2px solid #f1dba1;outline-offset:-12px}.world-rotation canvas:active{cursor:grabbing}
.world-rotation>button{position:absolute;right:0;bottom:24px;min-width:90px;min-height:44px;pointer-events:auto;background:#18363ee8;color:#f3ead7;border:1px solid #d7d4b866;border-radius:12px;font-size:12px;padding:8px}
.world-rotation-status{position:absolute;left:0;bottom:28px;top:auto;transform:none;width:max-content;max-width:140px;font-size:11px;line-height:1.4;color:#f4ead7;background:#15343ce8;padding:6px 9px;border-radius:8px;pointer-events:none}
.world-rotating #avatar,.world-rotating .world-character,.world-rotating .world-character-loading{visibility:hidden!important}
.world-rotation-portrait{inset:0;left:0;bottom:0;width:100%;height:100%;transform:none;border-radius:inherit}.world-rotation-portrait canvas{filter:none}.world-rotation-portrait>button{right:2px;bottom:2px;min-width:44px;font-size:10px;padding:4px}.world-rotation-portrait .world-rotation-status{clip-path:inset(50%);width:1px;height:1px;overflow:hidden;padding:0}.rotation-portrait-host{position:relative}.rotation-portrait-host.world-rotating>svg[data-portrait]{visibility:hidden}.rotation-portrait-host>svg[data-portrait]{touch-action:pan-y;cursor:grab}
/* One-look H3.1 DOM atlas: real articulated frames, no animated canvas presentation. */
.h31-character{overflow:visible}.h31-atlas-sprite{position:absolute;transform-origin:0 0;background-repeat:no-repeat;pointer-events:none;filter:brightness(var(--world-person-light,1));z-index:1}.h31-atlas-sprite[hidden],.h31-ground-shadow[hidden]{display:none}.h31-ground-shadow{position:absolute;border-radius:50%;background:#142c27;filter:blur(2px);pointer-events:none;z-index:0}.h31-character .h31-actor-button{z-index:2;touch-action:pan-y}.h31-character .world-character-bubble{z-index:3}.h31-flipping .world-character-bubble{opacity:0}.h31-inspect{inset:0!important;left:0!important;bottom:0!important;width:100%!important;height:100%!important;transform:none!important;overflow:hidden}.h31-inspect .world-character-bubble{bottom:12%;}.h31-character.world-character-error .world-character-bubble{opacity:1}.h31-character.world-character-error .h31-actor-button{z-index:4}
.profile.world-h31>.world-cast-shadow{display:none}.h31-landing-dust{position:absolute;pointer-events:none;z-index:0;border-radius:50%;opacity:0;background:radial-gradient(ellipse,#c6b29175 0%,#b99d7440 35%,transparent 70%)}.h31-dust-burst{animation:h31-dust-impact .42s ease-out both}@keyframes h31-dust-impact{0%{opacity:0;transform:scale(.5,.6)}20%{opacity:.55}100%{opacity:0;transform:scale(1.6,1.4)}}@media(prefers-reduced-motion:reduce){.h31-dust-burst{animation:none;opacity:0}}

/* A brief cosmetic stunt gets a clear stage; the persistent dock remains usable. */
main.world-stunt .goal,main.world-stunt .pin,main.world-stunt .city-scene-action{opacity:0;visibility:hidden;pointer-events:none}main.world-h31 .goal,main.world-h31 .pin,main.world-h31 .city-scene-action{transition:opacity .12s ease}
@media(prefers-reduced-motion:reduce){main.world-h31 .goal,main.world-h31 .pin,main.world-h31 .city-scene-action{transition:none}}
/* Travel notices must not cover the landing hand; they return after the stunt. */
body:has(main.world-stunt) #toast{visibility:hidden;opacity:0}
/* Inspection hides only the original actor, never its replacement inside the viewer. */
.world-rotating .world-rotation .h31-character{visibility:visible!important}
