/* Resident pages share a quiet visual language; the playable world has its own HUD. */
.game-content:not(.view-world){max-width:1120px;padding-bottom:28px}
.game-content:not(.view-world) .page-heading{padding:18px 0 30px}
.game-content:not(.view-world) .page-heading h1{font-size:clamp(28px,3.4vw,40px);line-height:1.14;letter-spacing:-1.4px;margin:9px 0 13px;color:#213f34}
.game-content:not(.view-world) .page-heading p{font-size:14px;line-height:1.65;color:#69786d;max-width:610px}
.game-content:not(.view-world) :is(button,a,input,select,summary):focus-visible{outline:3px solid #b48345;outline-offset:3px}
.game-content:not(.view-world) :is(button,input,select){transition:background-color .16s,border-color .16s,box-shadow .16s}

/* Jobs are readable choices, with the next decision grouped separately. */
.view-work .job-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;border:0}
.view-work .job-row{min-width:0;min-height:108px;padding:20px;gap:16px;border:1px solid #dce4d9;border-radius:17px;background:#fbfcf7;color:#233f32}
.view-work .job-row:hover{background:#f0f4e9;border-color:#b8cbb3}
.view-work .job-row.chosen,.view-work .job-row[aria-pressed="true"]{background:#e9f0e2;border-color:#a2b99c;box-shadow:inset 3px 0 #52764d}
.view-work .job-monogram{background:#edf1e5;color:#5d7454;font-size:25px;width:48px;height:52px;border-radius:12px}
.view-work .job-row>span:nth-child(2){min-width:0}
.view-work .job-row strong{font-size:15px;line-height:1.4}
.view-work .job-row small{font-size:11px;line-height:1.6;color:#697b6d;margin-top:5px}
.view-work .job-salary{flex-shrink:0;font-size:17px;font-variant-numeric:tabular-nums;color:#31543c}
.view-work .job-row>svg{flex-shrink:0;width:17px}
.view-work :is(.job-detail,.work-challenge){margin:30px auto 0;max-width:760px;padding:30px;border:1px solid #dbe4d6;border-radius:20px;background:#fffef9;box-shadow:0 8px 24px #1b382505;scroll-margin-top:25px}
.view-work :is(.job-detail,.work-challenge) h2{font-size:27px;line-height:1.2;margin:10px 0 16px;color:#274634}
.view-work .work-challenge fieldset{padding:14px 0 24px;margin:0 0 24px}
.view-work .work-challenge legend{font-size:16px;line-height:1.65;color:#2a4436}
.view-work .task-option{min-height:54px;padding:14px 16px;border-color:#dde5d7;background:#fbfcf7;cursor:pointer}
.view-work .task-option:has(input:checked){border-color:#96b589;background:#edf4e6}
.view-work .task-option:has(input:focus-visible){outline:3px solid #b48345;outline-offset:3px}
.view-work .detail-line{font-size:13px;padding:18px 0;color:#6a786a}
.view-work .detail-line strong{color:#2e4d37;font-size:15px}

/* Product and property pages retain one consistent card rhythm. */
.view-market .filter-row{gap:8px;scrollbar-width:none;padding:3px 3px 7px;margin-left:-3px;margin-bottom:20px}
.view-market .filter-row button{min-height:44px;padding:10px 18px;flex-shrink:0;font-size:12px;border-radius:11px;color:#617361;background:#fafcf5;border-color:#dbe4d4}
.view-market .filter-row button.active{background:#2c523c;border-color:#2c523c;color:#fff}
.view-market .market-grid{gap:20px}
.view-market .market-row{border-radius:19px;border-color:#dce4d5;background:#fffef9;box-shadow:0 5px 17px #233b2304}
.view-market .market-product-art{height:210px;background:radial-gradient(ellipse at 50% 60%,#e0e8d5,#f2f5eb 78%);border-bottom:1px solid #e8ecdf;overflow:hidden}
.view-market .market-row>div:nth-child(2){padding:21px 22px 0}
.view-market .market-row h2{font-size:19px;line-height:1.35;color:#294b35;margin:8px 0 10px}
.view-market .market-row p{font-size:12px;line-height:1.7;color:#6c7c65;min-height:41px;margin-bottom:14px}
.view-market .market-buy{padding:8px 22px 22px;margin-top:auto;gap:12px}
.view-market .market-buy strong{font-size:16px;font-variant-numeric:tabular-nums;color:#294d33}
.view-market .market-buy button{min-height:44px;padding:11px 18px;font-size:12px;border-radius:11px;background:#e9f0e0;color:#33552f}
.view-market .market-buy button:disabled{opacity:1;background:#eef0e8;color:#7b8774}

.view-property .property-tabs{max-width:390px;border:1px solid #dde5d6;padding:5px;margin:4px 0 13px;background:#e9eee2}
.view-property .property-tabs button{min-height:43px;font-size:12px;color:#637659}
.view-property .property-tabs button.active{background:#fffef8;color:#304e2c;box-shadow:0 2px 8px #273f240a}
.view-property .home-price-note{padding:17px 20px;border:1px solid #e4e1d3;background:#f2eee2;gap:23px;border-radius:13px;color:#766744}
.view-property .home-price-note strong{color:#74623e;font-size:12px}
.view-property .home-price-note span{color:#7b725c;font-size:12px;line-height:1.65}
.view-property .home-hunt{gap:24px}
.view-property .home-listing{border:1px solid #dbe3d3;background:#fffef8;border-radius:20px;box-shadow:0 5px 18px #22362105}
.view-property .home-listing-body{padding:24px}
.view-property .home-listing h2{font-size:24px;line-height:1.25;margin:11px 0;color:#2b4934}
.view-property .home-listing p{font-size:12px;line-height:1.6;color:#738069;margin:0 0 11px}
.view-property .home-listing-place .eyebrow{font-size:9px;letter-spacing:1.3px;color:#718160}
.view-property .home-owned{font-size:10px;line-height:1.3;color:#496c37;padding:6px 9px;background:#eaf1dd;border-radius:7px}
.view-property .home-prices{gap:30px;padding:15px 0 1px;border-top:1px solid #e6ebdc;margin-top:15px}
.view-property .home-prices small{font-size:9px;letter-spacing:.6px;color:#778365;margin-bottom:7px;line-height:1.5}
.view-property .home-prices strong{font-size:20px;font-weight:650;color:#335236;letter-spacing:-.3px;font-variant-numeric:tabular-nums}
.view-property .home-listing .full{min-height:46px;padding:12px 16px;font-size:12px;border-radius:11px;margin-top:21px}
.view-property .investment-summary{border-radius:16px;background:#eaf0e1;border-color:#d6e3cb;gap:38px;padding:23px 26px}
.view-property .investment-summary small{color:#617555;font-size:9px;line-height:1.4}
.view-property .investment-summary strong{color:#38562f;font-size:24px}
.view-property .investment-summary>.text-button{min-height:44px;font-size:12px;color:#3b612f}
.view-property .investment-explainer{font-size:12px;line-height:1.75;color:#6e7e64;margin:17px 0 26px;max-width:760px}

/* The portrait owns a bounded canvas so it cannot obscure form fields. */
.view-profile .page-heading p{overflow-wrap:anywhere}
.view-profile .profile-studio{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);max-width:950px;gap:40px;align-items:start}
.view-profile .profile-portrait{position:sticky;top:24px;isolation:isolate;overflow:hidden;min-height:0;height:500px;width:100%;max-width:390px;background:radial-gradient(ellipse at 50% 70%,#e6edd9,#d6e2cc);border:1px solid #d5e0ca;border-radius:22px}
.view-profile .profile-portrait .resident-avatar-3d{position:absolute;inset:0;width:100%;height:100%;max-width:100%;max-height:100%;display:block}
.view-profile .profile-portrait>svg{max-height:88%;width:auto;max-width:90%;object-fit:contain}
.view-profile #profile-form{padding:25px;background:#fffef9;border:1px solid #dfe5d8;border-radius:20px;min-width:0}
.view-profile #profile-form>label{font-size:12px;color:#46623f}
.view-profile #profile-form :is(input,select){min-height:48px;font-size:14px;border-color:#d6dfce;background:#fffefa}
.view-profile .profile-choices{margin:26px 0}
.view-profile .profile-choices .appearance-choice{padding:0;border:0;margin:0 0 25px}
.view-profile .profile-choices .appearance-choice legend{font-size:12px;color:#66785c;margin-bottom:11px}
.view-profile .profile-choices .choice-options{gap:8px}
.view-profile .profile-choices .choice-chip{min-height:44px;padding:10px 13px;line-height:1.3;font-size:12px;color:#65765b;background:#fcfdf7;border-color:#dbe3d1}
.view-profile .profile-choices .choice-chip:has(input:checked){background:#eaf1de;border-color:#91af7c;color:#3b6030}
.view-profile .profile-choices .choice-chip:has(input:focus-visible){outline:3px solid #b48345;outline-offset:3px}
.view-profile .profile-choices .choice-chip input{min-height:0}
.view-profile .appearance-extras{padding:16px;border:1px solid #dfe6d5;background:#f8faf1;border-radius:12px}
.view-profile .appearance-extras summary{font-size:12px;min-height:20px;color:#667953;cursor:pointer}
.view-profile .appearance-extras[open]>.appearance-choice:first-of-type{margin-top:24px}
.view-profile #profile-form>.full{margin-top:21px;min-height:48px;font-size:13px}
.view-profile .profile-actions{max-width:950px;gap:20px;padding-top:23px;margin-top:30px}
.view-profile .profile-actions button{min-height:44px;font-size:12px}

/* The map fills its own stage, with the destination chooser always reachable. */
.view-map .map-stage{height:clamp(540px,70dvh,750px);min-height:0;background:#e9eee6;border:1px solid #d6e0d2;border-radius:20px;overflow:hidden}
.view-map .abuja-map{height:100%;min-height:0;border:0;border-radius:0}
.view-map .abuja-map-viewport{min-height:230px}
.view-map .abuja-map-panel{border-top:1px solid #d8e1d2;background:#fffef9}
.view-map .abuja-map-search{padding:14px 16px 8px}
.view-map .abuja-map-search input{border-radius:11px;background:#f5f7ee;border-color:#dbe3d4;height:46px;font-size:14px}
.view-map .abuja-map-place-list{gap:8px;padding:4px 16px 13px;scrollbar-width:thin}
.view-map .abuja-map-place{min-height:55px;border-color:#dce5d6;background:#fffefa;padding:10px 13px}
.view-map .abuja-map-place strong{font-size:13px}
.view-map .abuja-map-place small{font-size:10px;color:#708167}
.view-map .abuja-map-place.is-selected{background:#eaf2e2;border-color:#8daa7e}
.view-map .abuja-map-selected{padding:13px 16px 15px;min-height:75px}
.view-map .abuja-map-selected-info strong{font-size:14px;color:#30502e}
.view-map .abuja-map-selected-info small{font-size:11px;line-height:1.4;color:#6f8163}
.view-map .abuja-map-selected-info .abuja-map-pin-note{font-size:10px;color:#7f8066}
.view-map .abuja-map-travel{min-height:45px;font-size:12px!important;padding:12px 16px;border-radius:11px;background:#34582f}
.view-map .abuja-map-source-state{background:#ecf1e8f5;color:#5a7352;line-height:1.7}

@media(min-width:1200px){.view-market .market-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:820px){.view-work .job-list{grid-template-columns:1fr}.view-profile .profile-studio{gap:25px;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr)}.view-profile #profile-form{padding:21px}.view-profile .profile-portrait{height:430px}}
@media(max-width:650px){
 .game-content:not(.view-world){padding-bottom:18px}
 .game-content:not(.view-world) .page-heading{padding:10px 0 26px}
 .game-content:not(.view-world) .page-heading h1{font-size:29px;letter-spacing:-1px}
 .game-content:not(.view-world) .page-heading p{font-size:12px;line-height:1.7}
 .view-work .job-list{gap:10px}
 .view-work .job-row{padding:16px 14px;gap:12px;min-height:98px;border-radius:14px}
 .view-work .job-monogram{width:41px;height:46px;font-size:24px;border-radius:10px}
 .view-work .job-row strong{font-size:13px}
 .view-work .job-row small{font-size:10px;line-height:1.6;max-width:175px}
 .view-work .job-salary{font-size:14px}
 .view-work .job-salary small{font-size:9px}
 .view-work .job-row>svg{width:15px}
 .view-work :is(.job-detail,.work-challenge){padding:22px 18px;margin-top:25px;border-radius:17px}
 .view-work :is(.job-detail,.work-challenge) h2{font-size:23px}
 .view-work .work-challenge legend{font-size:14px}
 .view-work .task-option{font-size:12px;padding:13px;min-height:51px}
 .view-work .detail-line{font-size:12px}.view-work .detail-line strong{font-size:14px}
 .view-market .filter-row{margin-bottom:17px}.view-market .filter-row button{font-size:11px;padding-inline:15px}
 .view-market .market-grid{gap:13px}
 .view-market .market-product-art{height:170px}
 .view-market .market-row>div:nth-child(2){padding:17px 14px 0}
 .view-market .market-row h2{font-size:16px;line-height:1.35}
 .view-market .market-row p{font-size:11px;line-height:1.7;min-height:56px}
 .view-market .market-buy{padding:8px 14px 17px;gap:8px;flex-wrap:wrap}
 .view-market .market-buy strong{font-size:14px}.view-market .market-buy button{min-height:43px;padding:10px 15px;font-size:11px}
 .view-property .property-tabs{max-width:none;margin-top:1px;margin-bottom:9px}.view-property .property-tabs button{font-size:11px}
 .view-property .home-price-note{padding:14px 16px;margin-bottom:19px}.view-property .home-price-note strong{font-size:11px;margin-bottom:7px}.view-property .home-price-note span{font-size:11px}
 .view-property .home-hunt{gap:21px}.view-property .home-listing-body{padding:21px}.view-property .home-listing h2{font-size:22px}.view-property .home-listing p{font-size:11px}
 .view-property .home-prices{gap:24px;padding-top:14px}.view-property .home-prices strong{font-size:18px}.view-property .home-prices small{font-size:8px}
 .view-property .investment-summary{gap:26px;padding:21px}.view-property .investment-summary small{font-size:8px}.view-property .investment-summary strong{font-size:21px}.view-property .investment-summary>.text-button{margin-left:0;width:100%;padding:0;min-height:25px;font-size:11px}.view-property .investment-explainer{font-size:11px}
 .view-profile .profile-studio{display:flex;flex-direction:column;gap:21px}
 .view-profile .profile-portrait{position:relative;top:auto;height:300px;min-height:0;width:100%;max-width:none;margin:0;border-radius:18px}
 .view-profile #profile-form{width:100%;padding:20px;border-radius:18px}
 .view-profile #profile-form :is(input,select){font-size:16px;min-height:47px}
 .view-profile .profile-choices{margin-top:24px}.view-profile .profile-choices .choice-chip{padding:9px 11px;min-height:44px;font-size:11px}.view-profile .profile-choices .choice-chip input{min-height:0}.view-profile .profile-choices .appearance-choice legend{font-size:11px}
 .view-profile .profile-actions{margin-top:24px;padding-top:22px}.view-profile .profile-actions button{font-size:11px}
 .view-map .map-stage{height:clamp(510px,69dvh,620px);border-radius:17px}
 .view-map .abuja-map-search{padding:12px 12px 8px}.view-map .abuja-map-search input{font-size:16px}
 .view-map .abuja-map-place-list{padding:3px 12px 12px}.view-map .abuja-map-place{min-width:133px;padding:9px 11px}.view-map .abuja-map-place strong{font-size:12px}.view-map .abuja-map-place small{font-size:9px}
 .view-map .abuja-map-selected{padding:12px;gap:10px}.view-map .abuja-map-selected-info strong{font-size:13px}.view-map .abuja-map-selected-info small{font-size:10px}.view-map .abuja-map-selected-info .abuja-map-pin-note{font-size:9px}.view-map .abuja-map-travel{font-size:11px!important;padding:12px;max-width:142px}
}
@media(max-width:360px){.view-work .job-row{gap:9px;padding:14px 11px}.view-work .job-row strong{font-size:12px}.view-work .job-row small{font-size:9px}.view-work .job-salary{font-size:13px}.view-work .job-row>svg{display:none}.view-work .job-monogram{width:36px}.view-market .market-grid{grid-template-columns:1fr}.view-market .market-product-art{height:200px}.view-market .market-row p{min-height:0}.view-market .market-buy{flex-wrap:nowrap}.view-profile #profile-form{padding:18px}.view-property .home-prices{gap:17px}.view-property .home-prices strong{font-size:16px}.view-map .abuja-map-selected{gap:8px}.view-map .abuja-map-travel{font-size:10px!important;padding-inline:10px;max-width:128px}}
@media(prefers-reduced-motion:reduce){.game-content:not(.view-world) :is(button,input,select){transition:none}}
