:root{--cream:#fffdf7;--ink:#29443d;--muted:#7a8980;--line:#e5e8dd;--green:#42775c;--blue:#dcecf2;--yellow:#f2cc71;--shadow:0 10px 40px #3559520e}*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:'DM Sans',sans-serif;font-size:14px;background:#e6f0ed}button,input,textarea{font:inherit}button{cursor:pointer;color:inherit}button:disabled{opacity:.55;cursor:wait}button,a,input,textarea{ -webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid #ceaa4b;outline-offset:3px}button{border:0}button:hover{filter:brightness(.97)}h1,h2,h3,.brand{font-family:Outfit,'Trebuchet MS',sans-serif}h1,h2,h3,p{margin:0}#world{height:100dvh;min-height:620px;overflow:hidden;position:relative}#town{position:absolute;inset:0;width:100%;height:100%;touch-action:none}.grain{position:absolute;inset:0;pointer-events:none;opacity:.1;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23000' filter='url(%23n)' opacity='.2' d='M0 0h160v160H0z'/%3E%3C/svg%3E")}.topbar{position:absolute;top:27px;left:34px;right:34px;display:flex;justify-content:space-between;align-items:center}.brand{display:flex;align-items:center;gap:10px;font-size:33px;font-weight:700;text-decoration:none;color:var(--ink);letter-spacing:-1.5px}.brand-mark{width:36px;height:38px;background:var(--green);color:#fff9e9;display:grid;place-items:center;font-size:36px;line-height:1;border-radius:11px 11px 13px 4px;transform:rotate(-7deg)}.brand-caption{font-family:'DM Sans',sans-serif;font-size:11px;letter-spacing:.2px;font-weight:500;margin-left:14px;padding-left:20px;border-left:1px solid #cddcd3}.top-actions{display:flex;gap:12px;align-items:center}.online{font-size:12px;padding:10px}.online i,.eyebrow i,.chat-head i,.live-dot{display:inline-block;width:7px;height:7px;border-radius:100%;background:#71a781;margin-right:6px}.wallet{height:43px;background:var(--cream);border-radius:13px;display:flex;gap:9px;align-items:center;padding:0 16px;box-shadow:var(--shadow)}.wallet span:last-child{color:var(--muted);font-size:12px}.coin{background:#f5d788;border:2px solid #e4b956;border-radius:50%;color:#aa7926;font-size:15px;width:23px;height:23px;display:grid;place-items:center}.avatar-button{height:43px;width:43px;border:4px solid #fffdf7;background:#bdd2b5;font-size:24px;border-radius:15px}.town-heading{position:absolute;left:45px;top:130px;pointer-events:none}.eyebrow{font-size:9px;font-weight:700;letter-spacing:2px;color:#718778;margin-bottom:12px}.town-heading h1{font-size:44px;font-weight:500;line-height:1.08;letter-spacing:-1.6px}.town-heading p{font-size:12px;color:#7c9085;margin-top:14px}.weather{display:flex;align-items:center;gap:8px;color:#bc9d50;font-size:20px;margin-top:25px}.weather span{font-size:10px;color:#7c9085}.parks-panel{position:absolute;right:32px;top:115px;width:282px;padding:23px 20px 13px;border-radius:20px;background:#fffdf7f5;border:1px solid #fff;box-shadow:var(--shadow)}.section-head{display:flex;justify-content:space-between}.section-head h2{font-weight:500;font-size:21px;letter-spacing:-.6px}.section-head .eyebrow{font-size:8px;letter-spacing:1.5px;margin-bottom:8px}.spark{color:#94ac7b;font-size:31px}.park-list{margin:20px 0 12px;max-height:310px;overflow:auto}.park-card{padding:14px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:45px 1fr;gap:11px}.park-icon{width:45px;height:48px;border-radius:12px;background:#e9e9d4;display:grid;place-items:center;font-size:24px;color:#739365}.park-card:nth-child(even) .park-icon{background:#e2ecf1;color:#6e94a5}.park-card h3{font-size:14px;font-weight:600;margin:1px 0 5px}.park-meta{font-size:10px;color:var(--muted);line-height:1.8}.park-card-foot{display:flex;justify-content:space-between;align-items:center;margin-top:9px}.park-card-foot span{font-size:10px;font-weight:600;color:#aa8a43}.join-button{background:#edf1e7;font-size:10px;font-weight:700;padding:7px 12px;border-radius:7px}.edit-button{font-size:10px;background:none;text-decoration:underline;padding:4px}.build-button{width:100%;background:#426b53;color:#fffdf7;border-radius:10px;padding:13px 12px;font-weight:500;font-size:12px;display:flex;align-items:center;gap:7px}.build-button span:last-child{margin-left:auto}.panel-foot{font-size:9px;text-align:center;color:#97a292;margin-top:11px}.chat-panel{position:absolute;left:32px;bottom:59px;width:300px;background:#fffdf7f2;border:1px solid #fff;border-radius:15px;box-shadow:var(--shadow);overflow:hidden}.chat-head{width:100%;display:flex;align-items:center;justify-content:space-between;padding:16px 17px;background:transparent;font-size:11px;font-weight:600;text-align:left}.chat-head small{display:block;font-size:7px;letter-spacing:1.4px;color:#9aa392;margin:5px 0 0 14px}.chat-messages{padding:0 17px 12px;max-height:140px;overflow:auto;scrollbar-width:thin}.chat-intro{color:#97a08e;font-size:10px;line-height:1.6}.chat-line{font-size:11px;line-height:1.6;margin:6px 0;overflow-wrap:anywhere}.chat-line b{color:#608365;margin-right:7px}#chat-form{display:flex;border-top:1px solid var(--line);padding:10px 12px}#chat-input{border:0;background:none;font-size:11px;min-width:0;flex:1;outline:none}#chat-form button{background:#edf0e5;border-radius:7px;width:28px;height:28px;font-size:18px}.world-footer{position:absolute;left:35px;bottom:23px;display:flex;align-items:center;color:#83978b;font-size:9px;gap:3px}.footer-rule{height:12px;width:1px;background:#c5d5ca;margin:0 10px}.movement-hint{position:absolute;bottom:68px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:4px;flex-direction:column}.movement-hint kbd{background:#fffdf7ae;border:1px solid #c6d7c8;box-shadow:0 2px #b9cfc0;border-radius:4px;display:inline-grid;place-items:center;width:21px;height:21px;font-size:9px;color:#78917c}.movement-hint small{font-size:9px;color:#78917c;margin-top:7px}.zoom-controls{position:absolute;right:33px;bottom:31px;display:flex;background:var(--cream);padding:5px;border-radius:11px;align-items:center;box-shadow:var(--shadow)}.zoom-controls button{background:none;width:34px;height:32px;font-size:19px}.zoom-controls span{font-size:10px;color:#819180;padding:0 8px}.zoom-controls button:last-child{border-left:1px solid var(--line);margin-left:4px}.place-tag{position:absolute;font-size:8px;font-weight:700;letter-spacing:1.5px;color:#6b826b;pointer-events:none;background:#fffdf7b0;border:1px solid #fffdf7;border-radius:5px;padding:7px 10px}.cafe-tag{left:35%;top:38%;transform:rotate(-5deg)}.cafe-tag span{font-size:13px;margin-left:6px}.fountain-tag{left:48%;top:69%;font-size:7px}.muted{color:var(--muted);font-size:12px;line-height:1.7}dialog{border:1px solid #fff;border-radius:25px;color:var(--ink);background:var(--cream);padding:0;max-height:92dvh;box-shadow:0 30px 100px #163c4540;width:420px}dialog::backdrop{background:#2c484449;backdrop-filter:blur(5px)}.entry-content{padding:32px 37px 25px}.mini-logo{font-family:Outfit,sans-serif;font-size:12px;font-weight:600;color:#7f9480}.entry-art{height:93px;position:relative;display:flex;justify-content:center;align-items:center}.entry-person{background:#d4bdb3;color:#795f53;width:48px;height:52px;border-radius:19px 19px 12px 12px;display:grid;place-items:center;font-size:30px;box-shadow:0 10px 0 #7d9c83;z-index:1}.entry-art i{position:absolute;width:50px;height:40px;border-radius:50%;background:#d9e4cb;left:55px;bottom:10px;transform:rotate(-30deg)}.entry-art i:last-child{left:auto;right:45px;background:#e9dfb3;width:35px;height:30px;bottom:30px}.entry-content h2{font-size:35px;letter-spacing:-1px;line-height:1.1;font-weight:500}.entry-content>p:not(.error){font-size:12px;line-height:1.7;color:#829080;margin-top:12px}.entry-content label{margin-top:25px}label{display:block;font-size:11px;font-weight:600}input,textarea{color:var(--ink)}label input{width:100%;display:block;margin-top:8px;border:1px solid #dce1d4;background:#fffefb;border-radius:9px;padding:12px;outline:none}fieldset{border:0;padding:0;margin:22px 0}legend{font-size:11px;font-weight:600;margin-bottom:11px}#color-picker{display:flex;gap:13px}.color-choice{width:30px;height:30px;border-radius:50%;border:3px solid var(--cream);box-shadow:0 0 0 1px #e3e5d9}.color-choice.selected{box-shadow:0 0 0 2px var(--green)}.primary,.secondary{border-radius:10px;padding:13px 18px;font-size:12px;font-weight:600}.primary{background:var(--green);color:var(--cream)}.entry-content .primary{width:100%;display:flex;justify-content:space-between}.secondary{background:#edf0e5}.entry-content .entry-disclaimer{font-size:9px!important;text-align:center;margin-top:18px!important}.error{color:#a64d3e;font-size:12px;line-height:1.6;margin-top:10px;white-space:pre-wrap}.wide-dialog{width:730px;padding:28px}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.modal-header h2{font-size:29px;font-weight:500;letter-spacing:-.7px}.close{width:36px;height:36px;border-radius:50%;background:#edf0e5;font-size:24px}.wide-dialog .muted{margin-bottom:20px}.form-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0}.reserve-note{background:#f0f1e5;border-radius:9px;padding:13px;font-size:11px;display:flex;gap:15px;flex-wrap:wrap}.reserve-note b{margin-left:auto}.reserve-note span{display:block;width:100%;font-size:10px;color:#7e8b74}.editor-tabs{display:flex;border-bottom:1px solid var(--line);margin:20px 0 10px}.editor-tabs button{font-size:11px;background:none;padding:12px}.editor-tabs button.active{border-bottom:2px solid var(--green);font-weight:700}.editor-tabs>span{margin:auto 0 auto auto;font-size:8px;color:#98a08d;letter-spacing:1px}.code-help{font-size:10px;color:#829080;line-height:1.5;margin:10px 0}textarea{width:100%;min-height:220px;border:1px solid #d8e0d1;background:#edf2e9;font:11px/1.7 monospace;border-radius:9px;padding:15px;resize:vertical;tab-size:2}.warning{font-size:10px;line-height:1.7;color:#9b8758;background:#faf3df;padding:11px;border-radius:8px;margin-top:12px}.modal-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:20px}.modal-footer small{font-size:10px;color:#8c9981}.game-dialog{width:650px;padding:25px}.trust-badge{font-size:8px;color:#618c6a;background:#e9f0e2;border-radius:5px;padding:7px}.game-stats{display:grid;grid-template-columns:repeat(4,1fr);background:#edf1e6;border-radius:12px;padding:15px;gap:10px}.game-stats span{font-size:9px;color:#7e9079}.game-stats b{display:block;margin-top:5px;font-size:18px;color:var(--ink);font-weight:500}.game-stats span:nth-child(3) b{color:#8f9f50}#game-status{font-size:12px;padding:15px 2px;color:#819074}#game-content{min-height:240px;border-radius:12px;background:#f4f4e9;overflow:hidden}#game-content iframe{width:100%;height:320px;border:0;background:#f4f4e9}#toast{position:absolute;bottom:155px;left:50%;transform:translateX(-50%);max-width:85vw;background:#29483e;color:#fffdf7;border-radius:12px;padding:13px 20px;font-size:12px;box-shadow:var(--shadow);z-index:10}#joystick{display:none}body.chat-collapsed .chat-messages,body.chat-collapsed #chat-form{display:none}@media(min-width:1600px){.town-heading{left:60px;top:155px}.parks-panel{right:45px;top:135px;width:305px}.chat-panel{left:45px;bottom:70px;width:320px}.town-heading h1{font-size:52px}}@media(max-width:1000px){.brand-caption{display:none}.town-heading h1{font-size:34px}.town-heading{top:120px;left:28px}.parks-panel{width:245px;right:22px;padding:18px 15px}.chat-panel{left:22px;width:265px}.cafe-tag{left:30%}.fountain-tag{display:none}}@media(max-width:650px){#world{min-height:560px}.topbar{top:19px;left:20px;right:20px}.brand{font-size:28px;gap:8px}.brand-mark{width:29px;height:32px;font-size:30px}.top-actions{gap:7px}.online{font-size:0;padding:0}.online b{font-size:11px}.online i{width:5px;height:5px}.wallet{height:37px;padding:0 10px;gap:6px}.wallet span:last-child{display:none}.avatar-button{width:37px;height:37px;font-size:20px}.town-heading{top:92px;left:23px}.town-heading h1{font-size:29px}.town-heading .eyebrow{font-size:7px;letter-spacing:1.7px}.town-heading p,.weather{display:none}.parks-panel{right:15px;top:auto;bottom:84px;width:210px;padding:14px 13px 10px;border-radius:15px}.section-head h2{font-size:17px}.section-head .eyebrow{font-size:6px;margin-bottom:5px}.spark{font-size:22px}.park-list{margin:9px 0;max-height:143px}.park-card{padding:9px 0;grid-template-columns:32px 1fr;gap:8px}.park-icon{width:32px;height:39px;border-radius:8px;font-size:18px}.park-card h3{font-size:11px}.park-meta{font-size:8px}.park-card-foot{margin-top:4px}.park-card-foot span{font-size:8px}.join-button{padding:6px 9px;font-size:9px}.build-button{font-size:10px;padding:11px 8px}.panel-foot{font-size:7px}.chat-panel{left:15px;bottom:21px;width:calc(100% - 150px);max-width:290px}.chat-head{padding:12px;font-size:10px}.chat-head small{display:none}.chat-messages{max-height:83px;padding:0 12px 7px}.chat-intro{font-size:9px}#chat-form{padding:7px}#chat-input{font-size:10px}.world-footer{bottom:8px;left:20px;font-size:7px}.world-footer .footer-rule,.world-footer span:last-child{display:none}.zoom-controls{right:15px;bottom:25px;padding:3px}.zoom-controls button{width:30px}.zoom-controls span{display:none}.zoom-controls button:last-child{display:none}.movement-hint,.place-tag{display:none}#joystick{display:grid;place-items:center;position:absolute;bottom:190px;left:30px;width:80px;height:80px;border:1px solid #ffffffa0;background:#fffdf75e;border-radius:50%;touch-action:none}#joystick span{width:33px;height:33px;border-radius:50%;background:#62836f88;border:2px solid #ffffff8c;pointer-events:none}dialog{width:calc(100% - 30px);border-radius:20px}.entry-content{padding:27px}.entry-art{height:75px}.entry-content h2{font-size:31px}.wide-dialog,.game-dialog{padding:20px}.form-grid{grid-template-columns:repeat(2,1fr)}.modal-header h2{font-size:25px}.game-stats{padding:12px;gap:7px}.game-stats b{font-size:15px}.trust-badge{font-size:6px}.game-dialog .modal-footer small{max-width:140px}.game-dialog iframe{height:280px!important}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
.lobby-message{padding:90px 20px;text-align:center;color:#819579;font-size:13px}.town-heading h1{font-weight:500;line-height:1.25}.entry-content h2{font-weight:500;line-height:1.3}button,input{touch-action:manipulation}

.manage-button{display:block;width:100%;margin-top:9px;padding:10px;background:transparent;border:1px solid #cfdbce;border-radius:10px;color:var(--green);font-size:12px}.card-controls{display:flex;gap:14px;flex-wrap:wrap}.management-note{color:var(--muted);line-height:1.8;margin:16px 0 22px}.managed-park{padding:20px 0;border-top:1px solid var(--line)}.managed-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.managed-head h3{font-size:18px;font-weight:500;overflow-wrap:anywhere}.status-badge{white-space:nowrap;font-size:11px;border-radius:20px;padding:5px 10px;background:#e2efdf;color:#42775c}.status-paused{background:#f8edcd;color:#8b6b29}.status-archived{background:#ecece7;color:#797d76}.version-label{color:var(--muted);font-size:12px;margin-top:7px}.management-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:15px 0;color:#617867;font-size:12px}.management-stats span{background:#f0f3e9;padding:10px;border-radius:9px}.manage-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.manage-controls .secondary{padding:10px 14px}.archive-button{padding:10px 14px;border-radius:9px;background:#f6e9e0;color:#996550}.empty-management{padding:35px 10px;color:var(--muted);text-align:center}#managed-parks{margin-top:16px}#code-dialog label{display:block;margin-top:18px}#code-dialog textarea{display:block;width:100%;min-height:170px;max-height:260px;resize:vertical;margin-top:9px;border:1px solid var(--line);border-radius:10px;padding:14px;background:#f2f4ec;color:#3e5b49;font:12px/1.7 monospace;overflow-wrap:anywhere}#manage-dialog,#code-dialog{width:min(760px,calc(100vw - 32px))}#manage-dialog .modal-header h2,#code-dialog .modal-header h2{font-size:26px;overflow-wrap:anywhere}#code-dialog .warning{line-height:1.8}#manage-error:empty,#code-error:empty{display:none}
@media(max-width:600px){.management-stats{grid-template-columns:repeat(2,1fr)}.managed-head{align-items:flex-start}.manage-controls{gap:8px}.manage-controls button{font-size:12px}.management-note{font-size:12px}#manage-dialog,#code-dialog{padding:22px 18px}#manage-dialog .modal-header h2,#code-dialog .modal-header h2{font-size:22px}.card-controls{gap:12px}}

.management-summary{background:#edf2e5;border-radius:10px;padding:13px 15px;font-size:12px;color:#577554;line-height:1.8}
