:root{--bg:#262d38;--panel:#242c3dcc;--ink:#e8ecf4;--muted:#9aa6bd;--accent:#5ee0c2;--warm:#ffb18b;--line:#d2dcf033;--glass:linear-gradient(135deg,#2a3240b8,#3c4250a0)}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:DM Sans,PingFang SC,Microsoft YaHei,system-ui,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}#town-root{position:fixed;inset:0;z-index:0;background:var(--bg);color:var(--ink)}#world{position:absolute;inset:0;z-index:0;overflow:hidden}#world canvas{display:block;touch-action:pan-y}.vignette{z-index:1;background:linear-gradient(#141b2766,transparent 22% 70%,#10161f99),radial-gradient(at 50% 45%,transparent 45%,#121822aa 100%)}.hud,.vignette{pointer-events:none;position:absolute;inset:0}.hud{z-index:2}.hud>*{pointer-events:auto}body.ui-off .hud{opacity:0;pointer-events:none}.hud{transition:opacity .25s ease}.in-town{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--ink);background:var(--glass);border:1px solid var(--line);border-radius:999px;padding:7px 14px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);white-space:nowrap}.in-town i{width:8px;height:8px;border-radius:50%;background:#10b981;box-shadow:0 0 8px #10b981cc}.hud-header{position:absolute;top:0;left:0;right:0;padding:22px 31px 0;display:flex;flex-direction:column;gap:4px}.brand-row{justify-content:space-between;align-items:center}.brand,.brand-row{display:flex;gap:18px}.brand{align-items:flex-start;text-shadow:0 2px 20px #0005;flex-shrink:0}.brand-icon{width:44px;height:44px;border-radius:50%;background:#4f8cff;display:grid;place-items:center;flex-shrink:0;margin-top:4px}.brand h1{margin:0;font-size:40px;font-weight:600;letter-spacing:-1.2px;line-height:1.05}.brand small{display:block;margin-top:6px;color:#d5dceb;font-size:13px;font-weight:400;letter-spacing:.4px}.nav-pills{display:flex;gap:8px;align-items:center;flex-shrink:0}.nav-pills button{border:1px solid var(--line);background:#1c2433cc;color:var(--ink);border-radius:999px;padding:10px 16px;cursor:pointer}.nav-pills button:hover{border-color:#ffffff55}.nav-pills .idx{color:var(--muted);font-size:13px;min-width:56px;text-align:center}.tabs{display:flex;flex-wrap:wrap;justify-content:center;align-content:center;gap:1px 3px;flex:1 1 auto;min-width:0}.tabs button{border:1px solid transparent;background:transparent;color:#c5cede;font-size:11px;padding:3px 7px;border-radius:999px;cursor:pointer;text-shadow:0 1px 10px #0a0f1899;white-space:nowrap}.tabs button:hover{color:#fff;background:#ffffff14}.tabs button.active{background:#ffffff22;border-color:#ffffff33;color:#fff}.details{position:absolute;left:31px;bottom:calc(22px + var(--pb-h, 34px));width:520px;max-width:calc(100vw - 62px);padding:18px 20px 16px;border:1px solid var(--line);background:var(--glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-radius:18px;box-shadow:0 14px 50px #0b101a55}.model-line{display:flex;gap:14px;align-items:center}.lab-mark{width:44px;height:44px;border-radius:50%;background:#5b6af2;display:grid;place-items:center;font-size:11px;font-weight:700;flex-shrink:0}.meta{flex:1 1;min-width:0}.meta .rank{font-size:12px;color:var(--muted)}.meta h2{margin:2px 0 0;font-size:24px;font-weight:700;letter-spacing:-.3px}.badge{font-size:12px;padding:4px 10px;border-radius:999px;background:#ffffff1f;border:1px solid #ffffff2a;align-self:flex-start}.usage{display:flex;align-items:flex-end;gap:16px;margin-top:14px}.usage .big{font-size:40px;font-weight:700;letter-spacing:-1px;line-height:1}.usage .label{display:block;font-size:13px;color:var(--muted);margin-top:6px}.growth{color:#34d399;font-weight:600;font-size:16px;margin-bottom:4px}.growth.down{color:#f87171}.spark{margin-left:auto;display:flex;align-items:flex-end;gap:4px;height:48px}.spark i{display:block;width:10px;border-radius:3px 3px 0 0;background:#5b6af2;opacity:.9}.features{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:10px;gap:10px;margin-top:16px;padding-top:14px;border-top:1px solid #ffffff14}.features .feat{display:flex;flex-direction:column;gap:2px}.features .feat b{font-size:15px;font-weight:600}.features .feat span{font-size:12px;color:var(--muted)}.slogan{position:absolute;right:34px;bottom:72px;text-align:right;text-shadow:0 2px 16px #0008}.slogan p{margin:0;font-size:18px;font-weight:600;line-height:1.35;white-space:pre-line}.slogan .about-btn{margin-top:16px;border:none;background:transparent;color:var(--accent);cursor:pointer;font-size:14px;padding:0}.playback{position:absolute;left:31px;right:34px;bottom:14px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-start;font-size:12px;color:var(--muted)}.playback button,.playback label{border:1px solid var(--line);background:#1c2433aa;color:var(--ink);border-radius:999px;padding:6px 12px;cursor:pointer}.playback button.on{background:var(--accent);border-color:var(--accent);color:#0b1220;font-weight:700}.playback .keys{position:absolute;right:0;bottom:calc(100% + 8px);font-size:11px;color:#cfd6e2;opacity:.75}.foot-links,.playback .swipe-hint{display:none}.foot-links{position:absolute;left:31px;bottom:48px}.toast{position:absolute;top:46%;left:50%;transform:translate(-50%,-50%);background:#0f1520ee;border:1px solid var(--line);padding:10px 16px;border-radius:12px;font-size:14px;opacity:0;transition:opacity .25s;pointer-events:none}.toast.show{opacity:1}.speech{position:absolute;top:28%;left:50%;transform:translateX(-50%);background:#fff;color:#111317;border:2px solid #111317;border-radius:14px;padding:6px 12px 7px;font-size:14px;font-weight:700;white-space:nowrap;opacity:0;transition:opacity .4s;pointer-events:none}.speech.show{opacity:1}#loading{position:absolute;inset:0;display:grid;place-items:center;z-index:5;background:var(--bg);color:var(--muted);font-size:15px}.site-shell{min-height:100vh;display:flex;flex-wrap:wrap;background:var(--bg)}.side-nav{position:fixed;left:0;top:0;bottom:0;width:88px;background:#1b212bd9;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-right:1px solid #ffffff14;display:flex;flex-direction:column;align-items:center;padding:24px 0;gap:8px;z-index:30}.side-nav .logo{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,#5ee0c2,#4f8cff);display:grid;place-items:center;margin-bottom:20px;font-weight:700;color:#0b1220}.side-nav a{writing-mode:horizontal-tb;font-size:11px;color:var(--muted);padding:10px 6px;border-radius:10px;text-align:center;width:72px}.side-nav a.active,.side-nav a:hover{color:#fff;background:#ffffff14}.site-main{margin-left:88px;flex:1 1;min-width:0;padding:40px 32px 64px;max-width:1100px}.site-main h1{font-size:36px;margin:0 0 12px;letter-spacing:-.5px}.lead{color:var(--muted);font-size:16px;line-height:1.7;max-width:640px}.grid-3{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:16px;gap:16px;margin-top:28px}.card{background:#ffffff08;border:1px solid var(--line);border-radius:16px;padding:20px}.card h3{margin:0 0 8px;font-size:18px}.card p{margin:0;color:var(--muted);font-size:14px;line-height:1.6}.card .price{margin-top:12px;color:var(--accent);font-weight:600}.stat-row{display:flex;gap:32px;margin:28px 0;flex-wrap:wrap}.stat b{display:block;font-size:36px;color:var(--warm);letter-spacing:-1px}.stat span{color:var(--muted);font-size:13px}.bar{height:8px;background:#ffffff14;overflow:hidden;margin-top:8px}.bar,.bar>i{border-radius:999px}.bar>i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),#4f8cff)}.site-footer{flex-grow:0;flex-shrink:0;flex-basis:calc(100% - 88px);margin-left:88px;padding:20px 32px;border-top:1px solid #ffffff14;color:var(--muted);font-size:13px;background:#1b212b80}.cta{display:inline-flex;margin-top:24px;background:var(--accent);color:#0b1220;font-weight:700;padding:12px 22px;border-radius:999px;border:none;cursor:pointer}.card h3{display:flex;align-items:center;gap:8px}.card-logo{width:26px;height:26px;border-radius:8px;object-fit:cover;background:#121824;border:1px solid var(--line);flex-shrink:0}.card-intro{margin-top:8px!important}.card-contact{margin-top:10px!important;color:var(--accent)}.case-card{display:block;color:var(--ink);text-decoration:none;transition:transform .16s ease,border-color .16s ease}.case-card:hover{transform:translateY(-3px);border-color:#ffffff2e}.case-tile{height:122px;border-radius:12px;margin-bottom:14px;border:1px solid #ffffff14;display:grid;place-items:center}.case-logo{width:56px;height:56px;border-radius:14px;object-fit:cover;background:#0d1420;box-shadow:0 6px 18px #00000059}.case-short{width:54px;height:54px;border-radius:14px;display:grid;place-items:center;font-weight:700;font-size:20px;color:#0b1220}.stack-block{margin-top:34px;max-width:640px}.stack-block h2{font-size:20px;margin:0 0 14px}.contact-list{margin-top:26px;background:#ffffff08;border:1px solid var(--line);border-radius:16px;padding:6px 18px;max-width:560px}.contact-row{display:flex;gap:16px;padding:12px 0;border-bottom:1px dashed #ffffff14;align-items:baseline}.contact-row:last-child{border-bottom:none}.contact-row .k{color:var(--muted);font-size:13px;width:44px;flex-shrink:0}.contact-row .v{font-size:15px;word-break:break-all}.admin{min-height:100vh;padding:28px;background:#141924}.admin h1{margin:0 0 6px}.admin .sub{color:var(--muted);margin-bottom:22px}.admin-layout{display:grid;grid-template-columns:280px 1fr;grid-gap:20px;gap:20px}.shop-list{background:#1b212b;border:1px solid var(--line);border-radius:16px;padding:10px;max-height:calc(100vh - 140px);overflow:auto}.shop-list button{width:100%;text-align:left;border:none;background:transparent;color:var(--ink);padding:10px 12px;border-radius:10px;cursor:pointer;display:flex;gap:10px;align-items:center}.shop-list button.active,.shop-list button:hover{background:#ffffff14}.dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.panel{background:#1b212b;border:1px solid var(--line);border-radius:16px;padding:22px}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}.form-grid .full{grid-column:1/-1}label.field{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}label.field input,label.field select,label.field textarea{background:#121824;border:1px solid var(--line);color:var(--ink);border-radius:10px;padding:10px 12px;outline:none}label.field input:focus{border-color:var(--accent)}.row-actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}.btn{border:none;border-radius:999px;padding:10px 18px;cursor:pointer;font-weight:600}.btn.primary{background:var(--accent);color:#0b1220}.btn.ghost{background:#ffffff14;color:var(--ink)}.hint{font-size:12px;color:var(--muted);margin-top:8px}.status{font-size:13px;color:var(--accent);min-height:20px}.admin-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:18px}.admin-top .sub{margin-bottom:0}.admin-top-actions{display:flex;gap:8px;flex-wrap:wrap}.admin-bar{align-items:center;gap:14px;margin-bottom:16px}.admin-bar,.admin-tabs{display:flex;flex-wrap:wrap}.admin-tabs{gap:8px}.admin-bar .status{margin-left:auto}.admin.login-card{justify-content:center;align-items:center;text-align:center;gap:4px}.admin.login-card,.login-form{display:flex;flex-direction:column}.login-form{width:100%;max-width:320px;gap:12px;margin-top:14px}.login-form input{background:#121824;border:1px solid var(--line);color:var(--ink);border-radius:10px;padding:11px 13px;outline:none;font-size:15px}.login-form input:focus{border-color:var(--accent)}.login-form .btn{width:100%}.color-line{display:flex;gap:8px;align-items:center}.color-line input[type=color]{width:58px;height:40px;padding:4px}.color-line .btn{padding:8px 12px;font-size:12px}.logo-line{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.logo-line>input:first-child{flex:1 1 190px;min-width:0}.logo-line input[type=file]{flex-basis:100%;font-size:12px;color:var(--muted)}.img-preview{width:72px;height:72px;border-radius:12px;object-fit:cover;border:1px solid var(--line);background:#121824}.sign-card{position:absolute;left:0;top:0;z-index:6;width:372px;padding:14px 16px 16px;border-radius:14px;border:1px solid hsla(0,0%,100%,.26);background:rgba(12,19,29,.15);backdrop-filter:blur(22px) saturate(1.6);-webkit-backdrop-filter:blur(22px) saturate(1.6);box-shadow:0 20px 46px rgba(0,0,0,.42),inset 0 1px 0 hsla(0,0%,100%,.18);color:#f6f9fd;font-size:12.8px;line-height:1.55;transform-origin:50% 100%;will-change:transform}.sign-card:after{content:"";position:absolute;left:50%;top:100%;width:5px;height:18px;margin-left:-2.5px;background:linear-gradient(hsla(0,0%,100%,.28),hsla(0,0%,100%,.05));border-radius:0 0 3px 3px}.sign-card-head{display:flex;align-items:center;gap:9px}.sign-card-mark{flex:0 0 32px;width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:#fff;background-size:cover;background-position:50%;box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.28)}.sign-card-title{flex:1 1;min-width:0}.sign-card-title h3{margin:0;font-size:16.5px;font-weight:700;letter-spacing:.2px}.sign-card-title p{margin:2px 0 0;font-size:11.8px;color:rgba(242,247,252,.8)}.sign-card-badge{flex-shrink:0;font-size:11px;font-weight:700;padding:3px 8px;border-radius:999px;background:var(--accent);color:#0b1220}.sign-card-intro{margin:10px 0 0;color:rgba(246,250,253,.96)}.sign-card-checks{margin:8px 0 0;font-size:11.8px;font-weight:600;color:var(--accent)}.sign-card-rows{margin-top:10px;padding-top:9px;border-top:1px solid hsla(0,0%,100%,.18);display:grid;grid-gap:4px;gap:4px}.sign-card-row{display:flex;gap:10px;font-size:12.3px}.sign-card-row .k{flex:0 0 56px;color:rgba(242,247,252,.62)}.sign-card-row .v{min-width:0;font-weight:600;color:#fff}.sign-card-cta{display:flex;width:max-content;align-items:center;gap:4px;margin-top:9px;margin-left:auto;padding:5px 12px;border-radius:999px;background:var(--accent);color:#0b1220;font-size:11.8px;font-weight:700;text-decoration:none}.sign-card-cta:hover{filter:brightness(1.08)}.sign-card-x{position:absolute;right:10px;top:10px;width:22px;height:22px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid hsla(0,0%,100%,.32);background:hsla(0,0%,100%,.14);color:#fff;font-size:14px;line-height:1;cursor:pointer}@media (max-width:860px){.hud-header{padding:12px 14px 0;gap:2px}.brand-row{flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:8px}.brand{gap:9px;flex-shrink:1;align-items:center}.brand,.brand>span:not(.brand-icon){min-width:0;overflow:hidden}.brand-icon{width:26px;height:26px;margin-top:1px}.brand-icon svg{width:14px;height:14px}.brand h1{font-size:20px;letter-spacing:-.5px}.brand h1,.brand small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand small{font-size:10px;margin-top:1px;letter-spacing:0}.in-town{font-size:11px;gap:5px;padding:4px 9px}.nav-pills{gap:5px;flex-shrink:0;margin-left:auto}.nav-pills button{padding:5px 9px;font-size:11px}.nav-pills .idx{font-size:11px;min-width:40px}.tabs{display:none}.details{left:50%;right:auto;transform:translateX(-50%);width:calc(100% - 24px);max-width:none;bottom:calc(16px + var(--pb-h, 34px));padding:7px 9px 6px;border-radius:11px;background:#10172238;border-color:#ffffff1a;box-shadow:none;display:grid;grid-template-columns:auto minmax(0,1fr);justify-content:center;grid-template-areas:"head head" "usage feat";grid-column-gap:12px;column-gap:12px;align-items:center}.playback{left:14px;right:14px;bottom:10px;gap:5px;font-size:11px}.playback button{padding:4px 9px;font-size:11px}.playback .keys,.playback label{display:none}.playback .swipe-hint{display:block;flex:1 1 100%;order:-1;text-align:center;opacity:.7}.lab-mark{width:23px;height:23px;font-size:8px}.model-line{grid-area:head;gap:8px;justify-content:center}.meta .rank{font-size:9.5px}.meta h2{font-size:13.5px;letter-spacing:-.2px}.badge{font-size:9.5px;padding:2px 6px}.usage{grid-area:usage;gap:8px;margin-top:6px}.usage .big{font-size:18px;letter-spacing:-.5px}.usage .label{font-size:9.5px;margin-top:1px}.growth{font-size:10.5px;margin-bottom:2px}.spark{height:18px;gap:2px}.spark i{width:4px;max-height:18px;border-radius:2px 2px 0 0}.features{grid-area:feat;width:100%;min-width:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 8px;margin-top:6px;padding-top:0;border-top:none;text-align:center}.features .feat{align-items:center;min-width:0}.features .feat b{font-size:11px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.features .feat span{font-size:9.5px}.admin-layout{grid-template-columns:1fr}.shop-list{max-height:260px}.form-grid{grid-template-columns:1fr}.admin{padding:18px 14px 40px}.panel{padding:16px}.admin-bar .status{margin-left:0}.site-shell{flex-direction:column}.side-nav{position:-webkit-sticky;position:sticky;top:0;bottom:auto;left:auto;width:auto;flex-direction:row;align-items:center;gap:4px;padding:8px 10px;border-right:none;border-bottom:1px solid #ffffff14;overflow-x:auto;-webkit-overflow-scrolling:touch}.side-nav .logo{display:none}.side-nav a{width:auto;flex-shrink:0;padding:8px 13px;font-size:13px}.site-footer,.site-main{margin-left:0}.site-main{flex:1 1 auto;padding:24px 16px 44px}.site-footer{flex:0 0 auto;padding:16px}.site-main h1{font-size:26px}.lead{font-size:14.5px}.grid-3{grid-template-columns:1fr;gap:12px;margin-top:20px}.stat-row{gap:22px;margin:22px 0}.stat b{font-size:28px}.contact-list{padding:2px 14px}.contact-row{gap:12px;padding:10px 0}.contact-row .v{font-size:14px}.case-tile{height:104px}.slogan{display:none}.sign-card{position:fixed;left:50%;top:50%;z-index:9;width:min(90vw,400px);max-height:82vh;overflow:auto;padding:18px 18px 20px;background:rgba(12,19,29,.24);transform:translate(-50%,-50%)!important;opacity:1!important;font-size:14.5px}.sign-card:after{display:none}.sign-card-title h3{font-size:19px}.sign-card-x{width:32px;height:32px;right:12px;top:12px;font-size:15px}.sign-card-cta{padding:9px 20px;font-size:14px}}@media (max-width:430px){.brand h1{font-size:18px}.brand small{display:none}.brand-icon{width:22px;height:22px}.in-town{font-size:10px;padding:3px 7px}.nav-pills button{padding:4px 7px;font-size:10px}.nav-pills .idx{min-width:34px;font-size:10px;display:none}.usage .big{font-size:17px}.meta h2{font-size:12.5px}.site-main{padding:20px 12px 36px}.site-main h1{font-size:22px}.side-nav a{padding:7px 10px;font-size:12.5px}.admin .btn{padding:9px 14px;font-size:13px}}