@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&display=swap');
*{box-sizing:border-box}body{margin:0;background:#b6d8dd;color:#152f3d;font-family:'Space Grotesk',system-ui,sans-serif;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;border:0}button:focus-visible,a:focus-visible{outline:3px solid #ef8a43;outline-offset:3px}#world{position:fixed;inset:0}canvas{display:block;touch-action:none}header{position:absolute;top:0;left:0;right:0;padding:26px 32px;display:flex;align-items:center;justify-content:space-between;gap:24px;pointer-events:none}header>*{pointer-events:auto}.brand{font-size:23px;letter-spacing:-1px;font-weight:700;color:#152f3d;text-decoration:none}.brand span{color:#008975}.brand small{display:block;font-size:8px;letter-spacing:2.5px;margin-top:4px}nav{display:flex;gap:5px;padding:5px;border:1px solid #fff9;border-radius:14px;background:#ffffffa8;backdrop-filter:blur(14px)}nav button{background:transparent;padding:10px 19px;border-radius:10px;font-size:12px}nav .active{background:#173c47;color:white}.badge{font-size:10px;letter-spacing:1px;background:#ffffffb8;padding:11px 14px;border-radius:20px;color:#137765}.intro{position:absolute;left:34px;top:132px;pointer-events:none}.eyebrow{font-size:9px;letter-spacing:1.7px;font-weight:700;color:#497073}h1{font-size:36px;letter-spacing:-1.8px;line-height:1.08;margin:15px 0}p{font-size:12px;line-height:1.6;color:#49656e}.intro p{max-width:270px}aside{position:absolute;right:26px;top:120px;width:284px;background:#fcfff5f0;border:1px solid white;border-radius:19px;padding:21px;box-shadow:0 15px 60px #23495322;backdrop-filter:blur(16px)}#close{float:right;background:transparent;font-size:21px;line-height:12px;color:#628080}#building-icon{width:44px;height:44px;margin-top:22px;display:grid;place-items:center;background:#703bf2;color:white;border-radius:12px;font-weight:700;font-size:23px}h2{font-size:25px;letter-spacing:-1px;margin:12px 0 5px}#address{font-size:10px;color:#52767c;border-bottom:1px solid #dce7de;padding:7px 0 17px}.metrics{display:flex;justify-content:space-between;margin:20px 0}.metrics strong{display:block;font-size:22px}.metrics span{display:block;font-size:8px;max-width:62px;line-height:1.5;color:#658078}.primary{background:#16765f;color:white;padding:13px 8px;width:100%;font-size:11px;border-radius:9px}#visit{display:block;text-align:center;font-size:11px;color:#2d695e;margin:15px 0;text-decoration:none}.note{font-size:9px!important;line-height:1.5;color:#72877f}footer{position:absolute;bottom:23px;left:30px;right:30px;display:flex;justify-content:space-between;gap:12px;align-items:center}.help,.view-controls{background:#fafff1e8;border:1px solid #fff;border-radius:11px;padding:12px 16px;font-size:10px}.help b{letter-spacing:2px}.help span{margin-left:16px;color:#607972}.view-controls{padding:5px;display:flex;gap:5px}.view-controls button{background:transparent;padding:9px;border-radius:7px;font-size:12px}.view-controls button:hover{background:#dcebe0}#toast{position:absolute;bottom:88px;left:50%;transform:translateX(-50%);padding:11px 18px;border-radius:9px;background:#173c47e8;color:white;font-size:11px;max-width:85%;text-align:center;pointer-events:none;transition:opacity .4s}#door{position:absolute;bottom:135px;left:50%;transform:translateX(-50%);background:#fffbea;padding:12px 20px;border-radius:10px;font-size:12px;max-width:90%;text-align:center}#stats-panel{position:absolute;z-index:5;top:100px;left:50%;transform:translateX(-50%);width:min(720px,94vw);max-height:76vh;overflow:auto;background:#fbfff6fa;padding:28px;border-radius:20px;box-shadow:0 20px 100px #153d4744}#close-stats{float:right;background:none;font-size:25px}table{border-collapse:collapse;width:100%;font-size:12px;margin:22px 0}td,th{text-align:left;padding:12px 5px;border-bottom:1px solid #dce8db}th{font-size:10px;color:#668375}#ledger{font-size:11px;line-height:1.9}h3{font-size:14px}#touch{display:none}#loading{position:absolute;inset:0;display:grid;place-items:center;background:#c8e0df;z-index:10;font-size:20px}[hidden]{display:none!important}@media(max-width:800px){header{padding:18px;gap:10px}.brand{font-size:18px}.badge{display:none}nav button{padding:8px 10px}.intro{top:95px;left:20px}h1{font-size:25px}.intro p{display:none}aside{top:auto;bottom:96px;right:14px;width:225px;padding:14px}.metrics{margin:12px 0}#building-icon{margin-top:12px;width:30px;height:30px;font-size:18px}h2{font-size:20px}aside .note{display:none}footer{left:14px;right:14px;bottom:17px}.help{display:none}.view-controls{margin-left:auto}#touch{display:block;position:absolute;left:16px;bottom:100px;text-align:center}#touch button{width:42px;height:42px;background:#ffffffdf;border:1px solid white;border-radius:10px;margin:2px;touch-action:none;color:#214e48}#toast{bottom:67px;font-size:10px}#door{bottom:400px}.eyebrow{font-size:8px}}
@media(max-width:800px){aside{bottom:185px;width:215px}aside #description,aside #address,aside #building-icon{display:none}aside h2{margin-top:16px}.intro h1{font-size:21px;max-width:190px}.metrics{margin:12px 0}.metrics strong{font-size:18px}#door{bottom:auto;top:220px;pointer-events:none;font-size:10px;max-width:240px}#touch{bottom:105px}}

#website-panel{position:fixed;z-index:6;right:16px;top:94px;bottom:18px;width:min(58vw,1050px);background:#fff;border:1px solid #d6e5dc;border-radius:18px;box-shadow:0 20px 80px #173c4755;display:flex;flex-direction:column;overflow:hidden}.website-toolbar{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:#f6fbf5;flex-shrink:0}.website-toolbar h2{font-size:21px;margin:5px 0}#website-domain{font-size:11px;color:#58766a}#close-website{font-size:28px;background:#e6eee8;color:#26473a;border-radius:9px;width:36px;height:36px}.website-notice{padding:10px 20px;font-size:11px;line-height:1.5;background:#edf4ee;color:#466052;flex-shrink:0}.website-notice a{color:#126f59;text-decoration:underline;margin-left:5px}#website-frame{width:100%;flex:1;min-height:0;border:0;background:#fff}.preview-open #touch,.preview-open footer,.preview-open #toast{display:none}@media(max-width:800px){#website-panel{top:86px;right:8px;bottom:8px;width:calc(100vw - 16px)}.website-toolbar{padding:12px 16px}.website-notice{padding:8px 16px;font-size:10px}}

/* A small browser window, with more space only when requested. */
#website-panel{width:clamp(330px,30vw,430px);height:min(62vh,620px);top:auto;bottom:88px;right:24px;border-radius:16px;box-shadow:0 12px 40px #173c4730;transition:width .2s ease,height .2s ease}
.website-toolbar{padding:11px 13px;gap:10px}.website-toolbar .eyebrow{display:none}.website-toolbar h2{font-size:15px;margin:0 0 3px;letter-spacing:-.3px}#website-domain{font-size:10px}.website-actions{display:flex;gap:6px}.website-actions button,#close-website{width:30px;height:30px;font-size:21px;border-radius:7px;background:#e6eee8;color:#26473a}.website-notice{padding:7px 13px;font-size:10px}#website-panel.expanded{width:min(66vw,1050px);height:calc(100vh - 120px);bottom:18px}.preview-open .intro{opacity:.35}.preview-open footer{display:flex;pointer-events:none}.preview-open footer .help{display:none}.preview-open footer .view-controls{pointer-events:auto;margin-left:auto}
@media(max-width:800px){#website-panel{width:calc(100vw - 24px);height:43dvh;max-height:420px;right:12px;bottom:76px;top:auto}#website-panel.expanded{width:calc(100vw - 16px);height:calc(100dvh - 100px);max-height:none;bottom:8px;right:8px}.preview-open .intro{opacity:0}.preview-open footer{bottom:15px}}
@media(prefers-reduced-motion:reduce){#website-panel{transition:none}}
/* Property management stays a compact companion to the city. */
#property-panel{position:fixed;z-index:5;right:24px;top:106px;width:350px;max-height:calc(100dvh - 195px);display:flex;flex-direction:column;background:#fbfdf6f5;border:1px solid #fff;border-radius:20px;box-shadow:0 16px 60px #173c4733;backdrop-filter:blur(18px);overflow:hidden}.property-header{display:flex;justify-content:space-between;align-items:flex-start;padding:20px 20px 10px}.property-header h2{font-size:21px;margin-top:8px}.property-header button{background:#e6eee8;border-radius:8px;font-size:22px;width:30px;height:30px;flex-shrink:0}#property-content{overflow:auto;padding:0 20px 18px;overscroll-behavior:contain}.property-disclaimer{padding:12px 20px;background:#eaf0e5;font-size:9px;color:#5b7468}.property-tabs{display:flex;gap:6px;background:#e9eee4;border-radius:10px;padding:4px}.property-tabs button{flex:1;border-radius:7px;padding:9px 5px;background:none;font-size:11px}.property-tabs .selected{background:#fff;box-shadow:0 2px 5px #173c4710}.plot-card{display:grid;grid-template-columns:34px 1fr;gap:4px 10px;width:100%;text-align:left;background:#fff;border:1px solid #dce5d5;border-radius:12px;padding:13px;margin:9px 0;color:#173c47}.plot-card:hover{border-color:#248269;background:#eff7ed}.plot-avatar{grid-row:span 2;background:#d9ebd7;width:34px;height:34px;border-radius:8px;display:grid;place-items:center;font-size:18px}.plot-card>span:nth-child(2){font-size:13px;font-weight:700}.plot-card small{font-size:10px;line-height:1.5;color:#5d7668}.secondary,.back-button{background:#e6eee5;color:#21634f;border-radius:8px;padding:10px;font-size:11px;margin-top:10px;width:100%}.back-button{text-align:left;background:none;padding-left:0;margin-bottom:10px}.property-status{font-size:10px;color:#21835e;letter-spacing:1px;margin:7px 0}.property-price{font-size:30px;font-weight:700;margin-top:20px}.field{display:block;font-size:11px;color:#456153;margin:15px 0}.field input{display:block;width:100%;font:inherit;font-size:13px;border:1px solid #c8d6c7;background:#fff;border-radius:8px;padding:11px;margin-top:6px;color:#173c47}.field input[type=color]{height:43px;padding:4px}.owner-summary{display:flex;justify-content:space-between;align-items:center;padding:15px 0;border-bottom:1px solid #dce5d5}.owner-summary span{font-size:10px;color:#567966}button:disabled{cursor:not-allowed;opacity:.45}.form-error{color:#a03c37;font-size:11px}.receipt{border-bottom:1px solid #dce5d5;padding:7px 0;font-size:10px}.empty-state{padding:25px 10px;text-align:center}hr{border:0;border-top:1px solid #dce5d5;margin:22px 0}.property-open #touch,.property-open #door{display:none!important}.property-open .intro{opacity:.35}#available-count{display:inline-block;background:#c8e5c9;border-radius:5px;padding:1px 5px;margin-left:4px;color:#226746}.intro h1{font-size:30px}.intro{top:125px}.badge{font-size:10px}#toast{max-width:420px}.primary:hover:not(:disabled){background:#115d4b}
@media(max-width:800px){header{flex-wrap:wrap;gap:9px;padding:14px}header .brand{font-size:16px}header nav{order:3;width:100%;justify-content:center;padding:4px}nav button{font-size:11px;padding:8px 12px}.badge{display:block;font-size:8px;padding:8px;letter-spacing:0}.intro{top:135px}.intro h1{font-size:22px}.property-open .intro{display:none}#property-panel{top:auto;bottom:74px;right:10px;width:calc(100% - 20px);max-height:62dvh;border-radius:17px}.property-header{padding:14px 16px 6px}.property-header h2{font-size:19px}#property-content{padding:0 16px 14px}.property-disclaimer{padding:9px 16px;font-size:8px}#toast{bottom:72px;z-index:7}.property-open #toast{bottom:12px;max-width:65%;left:12px;transform:none}.property-open .view-controls{display:none}.preview-open .intro{display:none}#stats-panel{top:115px;max-height:70dvh;padding:20px}#stats-table{overflow-x:auto}}
.property-open .intro{opacity:0}.owner-metrics{display:flex;justify-content:space-between;margin-top:16px}.owner-metrics strong{display:block;font-size:20px}.owner-metrics small{font-size:9px;color:#597265}details{margin-top:18px;border-top:1px solid #dce5d5;padding-top:15px}summary{cursor:pointer;font-size:12px;color:#2d695e}#property-content{scrollbar-width:thin;scrollbar-color:#bbcbb9 transparent}
#open-wallet{cursor:pointer;border:1px solid #fff9}#open-wallet:hover{background:#fff}.wallet-receipt{display:grid;grid-template-columns:1fr auto;gap:6px;padding:13px 0;border-bottom:1px solid #dce5d5;font-size:11px}.wallet-receipt small{grid-column:span 2;color:#718276;font-size:9px}.wallet-receipt strong{font-size:10px}
.billboard-preview{width:100%;height:auto;border-radius:10px;margin-top:14px;border:2px solid #acc9b2}.field input[type=file]{font-size:10px;padding:9px}.view-controls{flex-wrap:wrap;justify-content:center;max-width:100%}@media(max-width:800px){.view-controls button{font-size:10px;padding:7px}.view-controls{gap:1px}.view-controls #rotate-left,.view-controls #rotate-right{display:none}}
.crop-editor{padding:14px;background:#e8eee2;border:1px solid #cad8c6;border-radius:12px;margin:14px 0}.crop-editor canvas{width:100%;height:auto;cursor:grab;touch-action:none;border:2px solid #188064;border-radius:6px}.crop-editor canvas:active{cursor:grabbing}.crop-editor h3{margin:0}.crop-editor p{font-size:10px}.crop-editor .field{margin:10px 0}.crop-editor input[type=range]{padding:0;accent-color:#16765f}.crop-actions{display:flex;gap:6px;flex-wrap:wrap}.crop-actions button{flex:1;width:auto;margin:0}
.auth-dialog{width:min(440px,94vw);max-height:88dvh;overflow:auto;border:1px solid #dce8d7;border-radius:20px;background:#fbfdf6;color:#173c47;padding:28px;box-shadow:0 25px 100px #173c4755}.auth-dialog::backdrop{background:#173c4777;backdrop-filter:blur(5px)}.auth-close{float:right;background:none;font-size:24px}.auth-dialog .field input,.auth-dialog textarea{box-sizing:border-box;width:100%;padding:12px;border:1px solid #bacdbc;border-radius:8px;font:inherit}.auth-dialog textarea{min-height:130px}.consent{display:flex;gap:9px;font-size:11px;line-height:1.6;margin:16px 0}.consent input{width:18px;flex:none}.consent a{color:#16765f}.text-button{display:block;background:none;color:#6e7f73;font-size:10px;margin:16px auto}.intro-actions{display:flex;gap:8px;pointer-events:auto}.intro-actions button{padding:12px 16px;border-radius:9px;background:#f4f8ef;color:#173c47;font-size:12px}.intro-actions .primary{width:auto;background:#16765f;color:white}.beta-label{font-size:10px!important}.property-open .intro,.preview-open .intro{visibility:hidden}.property-disclaimer a{color:#16765f}.property-open #property-panel{max-height:calc(100dvh - 195px)}.admin-report{padding:12px;border:1px solid #dce5d5;margin:8px 0}.admin-report button{padding:8px;margin-right:6px;border-radius:5px}.share-row{display:flex;gap:8px}.field input:focus,.field textarea:focus{outline:2px solid #16765f}#city-mode{display:block}.auth-dialog [hidden]{display:none!important}@media(max-width:800px){.intro{background:#eff7e6e8;border-radius:12px;padding:13px;top:118px;max-width:310px}.intro h1{margin:6px 0;font-size:22px}.intro p{display:block;max-width:280px;font-size:11px}.intro-actions button{font-size:11px;padding:10px}.property-open #property-panel{max-height:65dvh}.auth-dialog{padding:22px}.intro.explored{display:none}}

.live-presence{position:fixed;left:32px;top:94px;z-index:4;padding:9px 12px;border-radius:20px;background:#f6fff0e8;color:#17463f;font-size:11px;pointer-events:none}.invite-room{position:fixed;right:32px;top:78px;z-index:4;border:0;border-radius:20px;background:#f6fff0e8;color:#17463f;padding:8px 12px;font-size:11px;cursor:pointer}
@media(max-width:700px){.live-presence{left:14px;top:109px;font-size:9px;padding:7px 9px}.invite-room{right:14px;top:139px;font-size:10px}.intro{top:175px}}
.wallet-ui{padding-top:12px}.wallet-balance{display:flex;flex-direction:column;gap:5px;padding:18px 20px;border-radius:14px;background:#173f3a;color:#edf9ee}.wallet-eyebrow{font-size:9px;letter-spacing:1.4px;opacity:.7}.wallet-balance strong{font-size:32px;line-height:1.2;font-weight:650;font-variant-numeric:tabular-nums}.wallet-balance>span:last-child{font-size:11px;opacity:.8}.wallet-heading{margin:23px 0 13px}.wallet-heading h3{font-size:17px;margin:0 0 6px}.wallet-heading p{font-size:10px;margin:0;color:#63786e}.wallet-choices{display:grid;grid-template-columns:1fr 1fr;gap:8px}.credit-choice{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid #d5dfd2;background:#fff;border-radius:10px;padding:14px 12px;color:#173f3a;text-align:left}.credit-choice strong{font-size:15px}.credit-choice span{font-size:11px;color:#667c71}.credit-choice[aria-pressed=true]{border:2px solid #16765f;padding:13px 11px;background:#e7f3e5}.credit-choice[aria-pressed=true] span{color:#16765f}.wallet-custom{display:block;margin-top:17px;font-size:11px}.wallet-custom input{display:block;box-sizing:border-box;width:100%;padding:12px 14px;margin:7px 0;border:1px solid #bfcfbe;border-radius:9px;background:#fff;color:#173f3a;font-family:inherit;font-weight:600;font-size:20px;font-variant-numeric:tabular-nums}.wallet-custom input:focus{outline:2px solid #16765f;outline-offset:1px}.wallet-custom small{font-size:9px;color:#708274}.wallet-error{font-size:11px;color:#a03c37;line-height:1.5;margin:8px 0}.wallet-error:empty{display:none}.wallet-summary{border-top:1px solid #dce5d5;margin-top:18px;padding-top:15px}.wallet-summary>div{display:flex;align-items:center;justify-content:space-between;font-size:12px}.wallet-summary strong{font-size:25px;font-variant-numeric:tabular-nums}.wallet-summary>span{display:block;margin-top:6px;color:#68806e;font-size:10px}.wallet-consent{display:flex;align-items:flex-start;gap:9px;font-size:10px;line-height:1.6;margin:16px 0}.wallet-consent input{width:17px;height:17px;margin:2px 0 0;flex-shrink:0;accent-color:#16765f}.wallet-consent a{color:#176b55;text-decoration:underline;text-underline-offset:3px}.wallet-pay{display:block;width:100%;padding:15px 10px;border:0;border-radius:10px;background:#16765f;color:white;font-size:12px;font-weight:650}.wallet-pay:disabled{opacity:1;background:#dce7db;color:#6d8173}.wallet-pay:hover:not(:disabled){background:#105f4c}.wallet-security{text-align:center;color:#738377;font-size:9px;margin:9px 0 4px}.wallet-history{margin-top:20px;padding-top:16px}.wallet-history summary{font-size:11px;color:#56705f}.wallet-empty{font-size:10px;color:#758777;line-height:1.6;padding:8px 0}.credit-choice:focus-visible,.wallet-pay:focus-visible{outline:2px solid #16765f;outline-offset:3px}

.wallet-checkout{flex:none;padding:0 20px 12px;background:#fbfdf6;border-top:1px solid #dce5d5}.wallet-checkout .wallet-consent{margin:12px 0}.wallet-checkout .wallet-security{margin-bottom:0}.wallet-heading{margin-top:18px}.wallet-balance{padding:15px 18px}.wallet-history{margin-top:15px}#property-content{min-height:0}@media(max-width:800px){.wallet-checkout{padding:0 16px 10px}.wallet-balance{padding:12px 15px;gap:2px}.wallet-balance strong{font-size:26px}.wallet-heading{margin:14px 0 10px}.credit-choice{padding:11px}.credit-choice[aria-pressed=true]{padding:10px}}
#building-icon.has-logo{display:flex;align-items:center;justify-content:center;width:100%;height:94px;overflow:hidden;border-radius:10px}#building-icon.has-logo img{display:block;max-width:100%;height:100%;object-fit:contain}.live-presence>span,.live-presence>small{display:block}.live-presence>small{font-size:9px;opacity:.75;margin-top:4px}.intro{top:152px}#audience-stats{display:grid;grid-template-columns:auto 1fr;gap:3px 12px;background:#e8f1e4;padding:14px;border-radius:10px;margin:15px 0}#audience-stats strong{font-size:28px;grid-row:span 2}#audience-stats span{font-size:12px;font-weight:600}#audience-stats small{font-size:10px;color:#61796b}@media(max-width:800px){.intro{top:175px}.live-presence>small{font-size:8px}}

.player-flags{position:fixed;inset:0;pointer-events:none;z-index:1;overflow:hidden}.player-flag{position:absolute;top:0;left:0;display:grid;place-items:center;width:28px;height:23px;padding:2px;border-radius:4px;background:#fff;box-shadow:0 2px 6px #16353c44;font-size:15px}.player-flag img{width:24px;height:18px;object-fit:cover}header,.intro,aside,footer{z-index:2}#stats-panel{width:min(940px,94vw)}.analytics-toolbar{display:flex;align-items:center;gap:6px;margin:24px 0 14px}.analytics-toolbar h3{margin-right:auto}.analytics-toolbar button{padding:8px 12px;border-radius:8px;background:#e5ede4;font-size:11px}.analytics-toolbar button[aria-pressed=true]{background:#173c47;color:white}.analytics-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.analytics-cards>div{border:1px solid #dce8db;border-radius:12px;padding:18px;background:white}.analytics-cards strong{display:block;font-size:30px}.analytics-cards span{font-size:11px;color:#52767c}.analytics-chart{height:120px;display:flex;align-items:end;gap:3px;border-bottom:1px solid #c3d7c6;padding-top:12px}.analytics-chart>div{flex:1;background:#16765f;border-radius:3px 3px 0 0;min-width:1px}.analytics-groups{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin:22px 0}.analytics-row{display:flex;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid #e0e9df;font-size:12px}.analytics-row img{width:20px;height:15px;object-fit:cover}.analytics-row strong{margin-left:auto}#observatory details{font-size:12px;margin:20px 0}#observatory summary{cursor:pointer}@media(max-width:600px){.analytics-cards{gap:5px}.analytics-cards>div{padding:12px 8px}.analytics-cards strong{font-size:23px}.analytics-groups{grid-template-columns:1fr;gap:10px}.analytics-toolbar button{padding:8px}.player-flag{width:24px;height:20px}.player-flag img{width:20px;height:15px}}

.launch-promotion{pointer-events:auto;display:block;max-width:290px;margin-top:14px;padding:13px 15px;border:1px solid #9dbd2c;background:#dfff00;color:#193727;border-radius:12px;font-weight:600;font-size:12px;text-align:left;line-height:1.5}.district-picker{position:absolute;left:32px;bottom:84px;z-index:2;background:#fafff1;border:1px solid #dbe7d9;color:#173c47;padding:10px;border-radius:10px;font:12px inherit}@media(max-width:800px){.launch-promotion{max-width:230px;font-size:10px;padding:9px}.district-picker{left:15px;bottom:67px;max-width:170px}.intro:has(.launch-promotion:not([hidden])) h1{font-size:20px}}
