:root{--ink:#17221c;--line:#e1e4df;--soft:#f3f5f1;--orange:#f45b3e;--lime:#d8ff48;--muted:#738078}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:#fff;font-family:'Noto Sans SC',sans-serif}a{text-decoration:none;color:inherit}.top{height:68px;display:flex;align-items:center;gap:22px;padding:0 4.2vw;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:8px;font:800 14px Arial;letter-spacing:-.8px}.brand>span{width:24px;height:24px;display:grid;place-items:center;color:white;background:var(--orange);transform:skewY(-8deg)}.notice{flex:1;text-align:center;font-size:11px}.notice b{color:var(--orange);margin-right:10px}.notice a{margin-left:9px;font-weight:700;text-decoration:underline}.top-search{width:205px;height:33px;background:var(--soft);display:flex;align-items:center;padding:0 9px;gap:6px}.top-search input{min-width:0;width:100%;border:0;outline:0;background:transparent;font:11px 'Noto Sans SC'}.top-search span{font-size:17px}.top-search kbd{font:9px 'DM Mono';color:var(--muted)}.account{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600}.account a,.cart{padding:8px 10px;border:1px solid var(--line);background:#fff;font:600 13px 'Noto Sans SC'}.account .credit{background:var(--lime);border-color:var(--lime)}.cart{cursor:pointer;background:var(--ink);color:white}.cart i{font:500 9px 'DM Mono';font-style:normal;background:var(--orange);border-radius:50%;padding:2px 5px;margin-left:3px}.category-nav{height:43px;display:flex;align-items:center;gap:23px;padding:0 4.2vw;border-bottom:1px solid var(--line);overflow:auto;white-space:nowrap;font-size:11px;font-weight:600}.category-nav a{height:43px;display:flex;align-items:center;border-bottom:2px solid transparent}.category-nav a:hover,.category-nav .active{color:var(--orange);border-color:var(--orange)}.spotlight{max-width:1280px;margin:auto;min-height:348px;display:grid;grid-template-columns:45% 55%}.spot-copy{padding:60px 5vw}.spot-copy p,.mono{font:500 10px 'DM Mono';letter-spacing:.6px;color:var(--orange)}.spot-copy h1{font-size:clamp(38px,4vw,62px);line-height:1.05;letter-spacing:-3.5px;margin:13px 0}.spot-copy em{font-family:Georgia,serif;font-weight:400}.spot-copy span{display:block;font-size:12px;color:var(--muted);margin-bottom:21px}.dark-btn{display:inline-block;background:var(--ink);color:white;padding:12px 15px;font-size:11px;font-weight:700}.spot-art{position:relative;overflow:hidden;background:#d9e3da;background-image:radial-gradient(#a4b3a9 1px,transparent 1px);background-size:10px 10px}.trend-label{position:absolute;z-index:5;top:23px;left:25px;font:500 10px 'DM Mono';color:var(--orange)}.trend-slide{position:absolute;inset:0;opacity:0;transition:.4s;pointer-events:none}.trend-slide.active{opacity:1;pointer-events:auto}.spot-rack{position:absolute;width:45%;height:62%;left:28%;top:18%;background:#edf0ea;border:7px solid #33483c;box-shadow:12px 13px rgba(23,34,28,.2);background-image:linear-gradient(90deg,transparent 48%,#91a298 49%,transparent 50%),linear-gradient(0deg,transparent 48%,#91a298 49%,transparent 50%)}.spot-tool.one{position:absolute;width:17px;height:101px;left:39%;top:29%;background:var(--orange);border-radius:8px;transform:rotate(27deg)}.spot-tool.one:before{content:"";position:absolute;width:34px;height:27px;top:-12px;left:-9px;border-radius:50%;background:var(--orange)}.trend-slide h3{position:absolute;left:25px;bottom:38px;font-size:18px;margin:0}.trend-slide p{position:absolute;left:25px;bottom:20px;font:500 9px 'DM Mono';margin:0;color:var(--muted)}.trend-keychain{position:absolute;left:42%;top:76px;width:130px;height:130px;border:18px solid var(--orange);border-radius:50%;display:grid;place-items:center;color:#33483c;font:700 48px Georgia;box-shadow:10px 10px rgba(23,34,28,.17)}.trend-keychain:after{content:"";position:absolute;top:8px;width:18px;height:18px;border-radius:50%;background:#33483c}.trend-toy{position:absolute;left:43%;top:82px;width:110px;height:112px;border-radius:45% 45% 35% 35%;background:#efa13d;box-shadow:12px 12px rgba(23,34,28,.17)}.trend-toy:before,.trend-toy:after{content:"";position:absolute;top:-15px;width:28px;height:28px;border-radius:50%;background:#33483c}.trend-toy:before{left:8px}.trend-toy:after{right:8px}.slide-controls{position:absolute;z-index:5;right:22px;bottom:19px;display:flex;gap:5px}.slide-controls button{width:25px;height:25px;border:1px solid #88968d;background:#eef2ec;font:500 10px 'DM Mono';cursor:pointer}.slide-controls .active{background:var(--ink);color:white;border-color:var(--ink)}.page-section{max-width:1280px;margin:auto;padding:50px 4.2vw}.muted-section{max-width:none;background:var(--soft);padding-left:max(4.2vw,calc((100% - 1280px)/2 + 4.2vw));padding-right:max(4.2vw,calc((100% - 1280px)/2 + 4.2vw))}.title-line{display:flex;align-items:end;justify-content:space-between;margin-bottom:19px}.title-line h2,.coupon-section h2{font-size:25px;letter-spacing:-1.4px;margin:0}.title-line p{margin:5px 0 0;color:var(--muted);font-size:11px}.title-line>a{font-size:11px;font-weight:600}.model-grid{display:grid;gap:11px}.eight{grid-template-columns:repeat(4,1fr)}.four{grid-template-columns:repeat(4,1fr)}.model-card{border:1px solid var(--line);background:#fff;cursor:pointer;transition:.2s}.model-card:hover{transform:translateY(-3px);border-color:var(--ink);box-shadow:4px 5px 0 var(--lime)}.model-art{height:150px;position:relative;overflow:hidden;background:#d9e2da;background-image:radial-gradient(rgba(23,34,28,.12) 1px,transparent 1px);background-size:9px 9px}.shape,.shape-alt{position:absolute;background:var(--orange);box-shadow:6px 6px rgba(23,34,28,.18)}.rack .shape{width:126px;height:18px;top:72px;left:50%;transform:translateX(-50%);background:#33483c}.rack .shape:after{content:"";position:absolute;width:8px;height:61px;top:15px;left:25px;background:#33483c;box-shadow:34px 0 #33483c,68px 0 #33483c}.rack .shape-alt{width:15px;height:80px;top:37px;left:43%;transform:rotate(27deg)}.bin .shape{width:118px;height:74px;top:55px;left:50%;transform:translateX(-50%)}.bin .shape:after{content:"";position:absolute;inset:17px 14px 11px;border:2px solid #ae3829}.bin .shape-alt{width:120px;height:27px;top:43px;left:50%;transform:translateX(-50%) skewY(-12deg);background:#ff896b}.drawer .shape{width:128px;height:82px;top:42px;left:50%;transform:translateX(-50%);background:#e4a23b}.drawer .shape:after{content:"";position:absolute;width:5px;height:100%;left:41px;background:#f7d684;box-shadow:42px 0 #f7d684}.drawer .shape-alt{width:138px;height:12px;top:33px;left:50%;transform:translateX(-50%);background:#684c36}.headphone .shape{width:63px;height:87px;left:50%;top:35px;transform:translateX(-50%);border:14px solid #33483c;border-bottom:0;border-radius:48px 48px 0 0;background:transparent;box-shadow:none}.headphone .shape-alt{width:115px;height:11px;left:50%;top:117px;transform:translateX(-50%)}.cable .shape{width:86px;height:86px;left:50%;top:31px;transform:translateX(-50%);border:14px solid var(--orange);border-radius:50%;background:transparent;box-shadow:none}.battery .shape{width:62px;height:99px;left:30%;top:30px;background:#354b3f}.battery .shape-alt{width:62px;height:99px;left:53%;top:30px}.socket .shape{width:130px;height:17px;left:50%;top:75px;transform:translateX(-50%);background:#33483c}.socket .shape-alt{width:17px;height:44px;left:35%;top:55px;background:#efa13d;box-shadow:43px 0 #efa13d,86px 0 #efa13d}.caliper .shape{width:16px;height:110px;left:48%;top:25px;transform:rotate(30deg);background:#efa13d}.caliper .shape-alt{width:64px;height:17px;left:35%;top:40px;transform:rotate(30deg);background:#efa13d}.spool .shape{width:110px;height:110px;left:50%;top:20px;transform:translateX(-50%);border:19px solid var(--orange);border-radius:50%;background:transparent;box-shadow:none}.hook .shape{width:60px;height:74px;left:50%;top:35px;transform:translateX(-50%);border:14px solid #33483c;border-top:0;border-radius:0 0 40px 40px;background:transparent;box-shadow:none}.shelf .shape{width:142px;height:13px;left:50%;top:101px;transform:translateX(-50%);background:#33483c}.shelf .shape-alt{width:15px;height:80px;left:41%;top:38px;transform:rotate(30deg)}.tray .shape{width:130px;height:64px;left:50%;top:58px;transform:translateX(-50%);border:10px solid #efa13d;background:transparent;box-shadow:none}.model-info{padding:11px 12px}.model-info h3{font-size:13px;letter-spacing:-.3px;margin:0 0 10px}.metrics{border-top:1px solid var(--line);padding-top:8px;display:flex;align-items:center;gap:7px;font:9px 'DM Mono';color:var(--muted)}.metrics b{margin-left:auto;color:var(--ink);font:600 10px 'Noto Sans SC';white-space:nowrap}.ranked{counter-reset:rank}.ranked .model-card{position:relative}.ranked .model-card:before{counter-increment:rank;content:counter(rank,decimal-leading-zero);position:absolute;z-index:2;padding:5px;background:var(--ink);color:white;font:10px 'DM Mono'}.category-block{border-top:1px solid var(--line)}.coupon-section{display:grid;grid-template-columns:26% 74%;gap:35px;background:var(--ink);color:#fff;padding:61px max(4.2vw,calc((100% - 1200px)/2))}.coupon-section h2{font-size:31px;line-height:1.15}.coupon-section>div>p:not(.mono){font-size:11px;line-height:1.7;color:#c7cec8;max-width:260px}.coupon-list{display:grid;grid-template-columns:repeat(5,1fr);gap:9px}.coupon{text-align:left;border:1px solid #56655b;background:transparent;color:#fff;padding:17px;cursor:pointer}.coupon small{font:500 9px 'DM Mono';color:var(--lime)}.coupon strong{display:block;font-size:28px;margin:6px 0;letter-spacing:-1px}.coupon span{font-size:10px;line-height:1.5}.coupon em{display:block;margin-top:9px;font-style:normal;font-size:9px;color:var(--lime)}.coupon.featured{background:var(--lime);color:var(--ink);border-color:var(--lime)}.coupon.featured small,.coupon.featured em{color:var(--orange)}footer{background:linear-gradient(115deg,#061015,#315e86);color:#eef5f4;padding:58px 5vw 27px}.footer-main{display:grid;grid-template-columns:2.3fr repeat(3,1fr);gap:70px;max-width:1360px;margin:auto}.footer-brand p{font-size:12px;line-height:1.7;color:#c9d9dd;margin:22px 0}.footer-main h3{font-size:18px;margin:0 0 15px}.footer-main>div:not(.footer-brand){display:flex;flex-direction:column;gap:8px;font-size:12px;color:#d4e0e2}.social{display:flex;gap:10px}.social a{border:1px solid #a5bec6;border-radius:50%;width:26px;height:26px;display:grid;place-items:center;font-size:12px}.copyright{max-width:1360px;margin:60px auto 0;font-size:10px;color:#bdcbd0}@media(max-width:900px){.notice{display:none}.top-search{margin-left:auto}.spotlight{grid-template-columns:1fr}.spot-art{height:280px}.eight,.four{grid-template-columns:repeat(2,1fr)}.coupon-section{grid-template-columns:1fr}.coupon-list{grid-template-columns:repeat(3,1fr)}.footer-main{grid-template-columns:repeat(2,1fr);gap:40px}}@media(max-width:560px){.top{padding:0 5vw}.top-search{width:120px}.top-search kbd,.login{display:none}.account{gap:3px}.account a,.cart{font-size:11px;padding:7px}.category-nav{padding:0 5vw;gap:18px}.spot-copy{padding:48px 7vw}.spot-copy h1{font-size:40px;letter-spacing:-2.5px}.page-section{padding:42px 5vw}.model-art{height:125px}.model-info h3{font-size:11px;min-height:31px}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.metrics b{grid-column:1/-1;margin:2px 0 0}.coupon-section{padding:44px 5vw}.coupon-list{grid-template-columns:1fr 1fr}.footer-main{grid-template-columns:1fr 1fr;gap:30px}.footer-brand{grid-column:1/-1}.copyright{margin-top:40px}}
/* 顶部强化与模块分界 */.notice{font-size:12px!important;background:#fff0c8;padding:7px 12px}.top-search{width:255px!important;padding:0 5px 0 9px}.top-search button{border:0;background:var(--ink);color:#fff;padding:6px 8px;font:600 10px 'Noto Sans SC';cursor:pointer}.account .login{background:var(--ink);color:#fff;border-color:var(--ink)}.cart{background:#fff!important;color:var(--ink)!important}.cart i{font:700 10px 'DM Mono'!important;color:#fff;padding:3px 6px!important;margin-left:4px!important}.page-section+.page-section{border-top:1px solid var(--line)}.muted-section{background:#fff!important}.model-card[hidden]{display:none}
/* 推荐、捐赠与媒体图标 */.spot-copy>p,.trend-label{display:none}.art-toy{background:#ad79db}.donate{display:inline-block;margin-top:8px;padding:9px 12px;border:1px solid var(--lime);color:var(--lime);font-size:11px;font-weight:700}.donate:hover{background:var(--lime);color:var(--ink)}.media-links p{display:flex;gap:12px;flex-wrap:wrap;margin:0}.media-links p a{width:38px;height:38px;border:1px solid #a5bec6;border-radius:50%;display:grid;place-items:center;font-size:19px;font-weight:700}.media-links p a:hover{background:var(--lime);color:var(--ink);border-color:var(--lime)}
/* 语言选择和捐赠 */.language{height:31px;border:1px solid var(--line);background:#fff;color:var(--ink);font:10px 'Noto Sans SC';padding:0 4px;cursor:pointer}.donate{cursor:pointer;background:transparent}.donation-modal{position:fixed;z-index:50;inset:0;background:rgba(5,14,10,.6);display:grid;place-items:center;padding:20px}.donation-card{position:relative;width:min(420px,100%);background:#fff;padding:34px;color:var(--ink);box-shadow:10px 10px 0 var(--lime)}.donation-card h2{font-size:28px;line-height:1.2;letter-spacing:-1px;margin:8px 0 13px}.donation-card>p:not(.mono){font-size:12px;line-height:1.7;color:var(--muted)}.modal-close{position:absolute;right:12px;top:9px;border:0;background:transparent;font-size:25px;cursor:pointer}.donation-options{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:22px 0}.donation-options button{border:1px solid var(--line);background:var(--soft);padding:10px;font:600 11px 'Noto Sans SC';cursor:pointer}.donation-options button:last-child{grid-column:span 3}.donation-confirm{width:100%;border:0;background:var(--ink);color:white;padding:12px;font:700 12px 'Noto Sans SC';cursor:pointer}
/* 顶部捐赠入口 */.account .donate-header{background:#fff0c8;border-color:#f3d783;color:#8a4d15;white-space:nowrap}.account .donate-header:hover{background:var(--orange);border-color:var(--orange);color:white}
/* 确保顶部按钮的整块背景均可点击 */.account .login{display:inline-flex!important;align-items:center;justify-content:center;min-height:35px;cursor:pointer}.account .credit,.account .donate-header{display:inline-flex;align-items:center;justify-content:center;min-height:35px}

/* Supabase Auth Navbar */
.auth-guest-area,
.auth-user-area{
  align-items:center;
  gap:8px;
  min-width:0;
}

.auth-guest-area:not([hidden]),
.auth-user-area:not([hidden]){
  display:flex;
}

.auth-guest-area .login,
.auth-guest-area .register,
.auth-account-link,
.auth-logout-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:35px;
  padding:8px 10px;
  border:1px solid var(--line);
  background:#fff;
  color:var(--ink);
  font:600 13px 'Noto Sans SC';
  white-space:nowrap;
}

.auth-guest-area .login{
  background:var(--ink);
  border-color:var(--ink);
  color:#fff;
}

.auth-guest-area .register{
  background:var(--lime);
  border-color:var(--lime);
}

.auth-user-area{
  font-size:12px;
  font-weight:600;
  white-space:nowrap;
}

.auth-wallet{
  color:var(--muted);
}

.auth-wallet #auth-balance{
  color:var(--ink);
  font-family:'DM Mono',monospace;
}

.auth-display-name{
  max-width:100px;
  overflow:hidden;
  text-overflow:ellipsis;
}

.auth-account-link:hover,
.auth-logout-button:hover{
  border-color:var(--ink);
}

.auth-logout-button{
  cursor:pointer;
}

.auth-status{
  max-width:130px;
  overflow:hidden;
  color:var(--muted);
  font-size:11px;
  line-height:1.35;
}

@media(max-width:560px){
  .top-search,
  .account .donate-header,
  .account .credit{
    display:none;
  }

  .account{
    margin-left:auto;
  }

  .auth-guest-area,
  .auth-user-area{
    gap:4px;
  }

  .auth-guest-area .login,
  .auth-guest-area .register,
  .auth-account-link,
  .auth-logout-button{
    min-height:31px;
    padding:6px 7px;
    font-size:10px;
  }

  .auth-wallet,
  .auth-account-link,
  .auth-status{
    display:none;
  }

  .auth-display-name{
    max-width:54px;
    font-size:10px;
  }
}

/* I18N UI TEMPORARILY HIDDEN. DO NOT DELETE. Restore after core features are complete. */
#languageSelect{
  display:none !important;
}

/* Catalog modes and real-model read-only states. */
.catalog-mode-notice,
.catalog-status{
  max-width:1190px;
  margin:0 auto;
  padding:10px 4.2vw;
  font-size:11px;
  line-height:1.6;
}

.catalog-mode-notice{
  color:#536159;
  background:#f3f5f1;
  border-block:1px solid var(--line);
}

.catalog-status{
  color:var(--muted);
}

.catalog-status.is-error{
  color:#a84332;
}

.catalog-module-state,
.catalog-search-status{
  color:var(--muted);
  font-size:11px;
  line-height:1.6;
}

.catalog-module-state{
  display:flex;
  align-items:center;
  min-height:54px;
  margin:0;
  padding:12px;
  border:1px dashed var(--line);
  background:var(--soft);
}

.catalog-module-state.is-error{
  color:#a84332;
}

.catalog-search-status{
  max-width:1190px;
  margin:0 auto;
  padding:0 4.2vw 14px;
}

.catalog-real-art{
  display:grid;
  place-items:center;
}

.catalog-real-art img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.catalog-placeholder{
  color:var(--muted);
  font:500 10px 'DM Mono';
}

.catalog-real-card{
  cursor:default;
}

.catalog-real-card h3{
  overflow-wrap:anywhere;
}

.catalog-real-category{
  color:var(--muted);
  font:500 10px 'DM Mono',monospace;
  margin:0;
  overflow-wrap:anywhere;
}

.catalog-real-card .metrics{
  align-items:center;
  flex-wrap:wrap;
}

.catalog-customize-link{
  border:1px solid var(--ink);
  color:var(--ink);
  font:600 10px 'Noto Sans SC',sans-serif;
  margin-left:0;
  padding:6px 8px;
  white-space:nowrap;
}

.catalog-customize-link:hover{
  background:var(--ink);
  color:#fff;
}

.catalog-customize-link:focus-visible{
  outline:2px solid var(--orange);
  outline-offset:3px;
}

@media(max-width:560px){
  .catalog-mode-notice,
  .catalog-status,
  .catalog-search-status{
    padding-inline:5vw;
  }

  .catalog-customize-link{
    margin-left:0;
  }

  .catalog-real-card .metrics{
    display:flex;
    gap:7px;
  }

  .catalog-real-card .metrics b{
    margin-left:auto;
  }
}
