:root{--bg:#fdfcf8;--bg2:#f5f0e8;--white:#ffffff;--ink:#1e1510;--ink2:#4a3828;--ink3:#8a6e58;--line:#e8dfd2;--red:#f55e5a;--red-lt:#fff1f0;--orange:#f59f5a;--yellow:#f6db7e;--mint:#88e7df;--purple:#caa4d9;--brown:#9b5d3f;--deep:#2c1f14;--deep2:#3d2a1a;--serif:'Cormorant Garamond',Georgia,serif;--sans:'Noto Sans TC',sans-serif;--mono:'DM Mono',monospace}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);background:var(--bg);color:var(--ink);min-height:100vh;-webkit-font-smoothing:antialiased;overflow-x:hidden;font-size:18px;line-height:1.75}
body::after{content:'';position:fixed;inset:0;pointer-events:none;z-index:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='0.025'/%3E%3C/svg%3E")}
.page{position:relative;z-index:1}
#hdr{position:sticky;top:0;z-index:200;background:rgba(253,252,248,0.93);backdrop-filter:blur(14px);border-bottom:1.5px solid var(--line)}
.hdr-in{max-width:1060px;margin:0 auto;padding:0 24px;height:74px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.logo{display:flex;align-items:center;gap:10px;cursor:pointer;text-decoration:none;flex-shrink:0}
.logo-sun{width:36px;height:36px;flex-shrink:0}
.logo-words{display:flex;flex-direction:row;align-items:baseline;gap:8px}
.logo-en{font-family:var(--serif);font-size:26px;font-weight:700;color:var(--ink);letter-spacing:0.02em;line-height:1}
.logo-sep{width:1px;height:14px;background:var(--line);align-self:center}
.logo-zh{font-family:var(--sans);font-size:20px;font-weight:700;color:var(--ink2);line-height:1}
.hdr-nav{display:flex;gap:4px;align-items:center;flex-shrink:0}
.nav-btn{background:none;border:none;cursor:pointer;font-family:var(--sans);font-size:17px;font-weight:500;color:var(--ink2);padding:10px 20px;border-radius:99px;transition:all 0.15s;white-space:nowrap}
.nav-btn:hover{background:var(--bg2);color:var(--ink)}.nav-btn.on{background:var(--ink);color:var(--white);font-weight:700}
.hamburger{display:none;background:none;border:none;cursor:pointer;padding:6px;flex-direction:column;gap:5px;flex-shrink:0}
.hamburger span{display:block;width:22px;height:2px;background:var(--ink);border-radius:2px;transition:all 0.25s}
.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobile-menu{display:none;position:fixed;top:64px;left:0;right:0;background:rgba(253,252,248,0.97);backdrop-filter:blur(16px);border-bottom:1.5px solid var(--line);padding:12px 20px 20px;flex-direction:column;gap:4px;z-index:199;box-shadow:0 8px 32px rgba(28,20,16,0.08)}
.mobile-menu.open{display:flex}.mobile-menu .nav-btn{font-size:17px;padding:14px 16px;text-align:left;border-radius:12px}
.hero{max-width:1060px;margin:0 auto;padding:80px 24px 64px;display:grid;grid-template-columns:1fr 340px;gap:56px;align-items:center}
.hero-eyebrow{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:13px;font-weight:500;color:var(--ink3);letter-spacing:0.14em;text-transform:uppercase;margin-bottom:22px}
.hero-eyebrow::before{content:'';width:20px;height:1.5px;background:var(--ink3)}
.hero-h1{font-family:var(--serif);font-size:clamp(46px,5.5vw,72px);font-weight:700;line-height:1.1;color:var(--ink);margin-bottom:22px}
.hero-h1 em{font-style:italic;font-weight:700;color:var(--red)}
.hero-body{font-size:20px;line-height:1.9;color:var(--ink2);font-weight:400;max-width:540px;margin-bottom:36px}
.hero-acts{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.btn-p{display:inline-flex;align-items:center;gap:8px;background:var(--red);color:var(--white);font-family:var(--sans);font-size:18px;font-weight:700;padding:16px 36px;border-radius:99px;border:none;cursor:pointer;box-shadow:3px 3px 0 var(--brown);transition:all 0.18s}
.btn-p:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--brown)}.btn-p:active{transform:translate(1px,1px);box-shadow:1px 1px 0 var(--brown)}
.btn-g{font-family:var(--sans);font-size:18px;font-weight:500;color:var(--ink2);background:none;border:none;cursor:pointer;text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--line);transition:all 0.15s}
.btn-g:hover{color:var(--ink);text-decoration-color:var(--ink2)}
.hero-right{position:relative;height:300px}
.hv{position:absolute;background:var(--white);border:1.5px solid var(--line);border-radius:18px;padding:18px 20px;box-shadow:0 4px 24px rgba(28,20,16,0.07)}
.hv:nth-child(1){width:206px;top:0;left:0;animation:hf 5s ease-in-out infinite 0s}
.hv:nth-child(2){width:192px;top:54px;right:0;animation:hf 5s ease-in-out infinite 1.3s}
.hv:nth-child(3){width:200px;bottom:0;left:20px;animation:hf 5s ease-in-out infinite 2.6s}
@keyframes hf{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.hv-lbl{font-family:var(--mono);font-size:13px;font-weight:500;color:var(--ink3);letter-spacing:0.1em;text-transform:uppercase;margin-bottom:9px}
.hv-kao{font-size:18px;line-height:1.9;color:var(--ink);letter-spacing:1px}
.hv-tag{display:inline-block;font-size:13px;font-weight:700;padding:4px 11px;border-radius:99px;margin-bottom:8px}
.t-live{background:#edf9f4;color:#1a9972}.t-soon{background:var(--bg2);color:var(--ink3)}
.hv-name{font-size:16px;font-weight:700;color:var(--ink)}.hv-desc{font-size:14px;color:var(--ink3);margin-top:4px;line-height:1.5;font-weight:400}
.divider{max-width:1060px;margin:0 auto;padding:0 24px;display:flex;align-items:center;gap:20px}
.divider::before,.divider::after{content:'';flex:1;height:1px;background:var(--line)}
.div-txt{font-family:var(--mono);font-size:13px;font-weight:500;color:var(--ink3);letter-spacing:0.15em;text-transform:uppercase;white-space:nowrap}
.tools-wrap{max-width:1060px;margin:0 auto;padding:52px 24px 76px}
.sec-hd{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:28px;flex-wrap:wrap;gap:8px}
.sec-title{font-family:var(--serif);font-size:38px;font-weight:700;color:var(--ink)}
.sec-note{font-family:var(--mono);font-size:13px;font-weight:500;color:var(--ink3);letter-spacing:0.1em}
.tgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1.5px solid var(--line);border-radius:22px;overflow:hidden}
.tc{background:var(--white);padding:32px 28px;cursor:pointer;transition:background 0.15s;position:relative}
.tc:hover{background:var(--bg)}
.tc-num{font-family:var(--mono);font-size:14px;font-weight:500;color:var(--ink3);margin-bottom:14px}
.tc-icon{font-size:32px;margin-bottom:14px;display:block;line-height:1}
.tc-name{font-size:22px;font-weight:700;color:var(--ink);margin-bottom:12px}
.tc:hover .tc-name{color:var(--red)}
.tc-desc{font-size:17px;line-height:1.8;color:var(--ink2);margin-bottom:24px;font-weight:400}
.tc-foot{display:flex;justify-content:space-between;align-items:center}
.tc-st{font-size:13px;font-weight:700;padding:5px 13px;border-radius:99px;font-family:var(--mono)}
.s-live{background:#edf9f4;color:#1a9972}.s-soon{background:var(--bg2);color:var(--ink3)}
.tc-arr{width:30px;height:30px;border-radius:50%;border:1.5px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:13px;color:var(--ink3);transition:all 0.15s}
.tc:hover .tc-arr{background:var(--red);color:var(--white);border-color:var(--red)}
.brand-strip{background:var(--deep2);padding:72px 24px;text-align:center;position:relative;overflow:hidden}
.brand-strip::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60% 60% at 30% 50%,rgba(245,159,90,0.12),transparent),radial-gradient(ellipse 60% 60% at 70% 50%,rgba(245,94,90,0.10),transparent)}
.bs-in{position:relative;max-width:620px;margin:0 auto}
.bs-eye{font-family:var(--mono);font-size:13px;font-weight:500;color:rgba(255,255,255,0.3);letter-spacing:0.2em;text-transform:uppercase;margin-bottom:20px}
.bs-h{font-family:var(--serif);font-size:clamp(28px,4.2vw,52px);font-weight:700;font-style:italic;color:var(--white);line-height:1.3;margin-bottom:20px}
.bs-sub{font-size:19px;line-height:1.85;color:rgba(255,255,255,0.5);font-weight:400;max-width:480px;margin:0 auto}
.bs-sub em{font-style:normal;font-weight:700;color:var(--yellow)}
.bs-pal{display:flex;justify-content:center;gap:8px;margin-top:32px}
.bp{width:9px;height:9px;border-radius:50%}
.kao-hd{border-bottom:1.5px solid var(--line);padding:40px 32px 28px;background:var(--white)}
.kao-hd-in{max-width:1280px;margin:0 auto}
.breadcrumb{font-family:var(--mono);font-size:13px;font-weight:500;color:var(--ink3);letter-spacing:0.08em;margin-bottom:14px}
.breadcrumb span{cursor:pointer;color:var(--red)}
.kao-h1{font-family:var(--serif);font-size:52px;font-weight:700;color:var(--ink);margin-bottom:8px}
.kao-sub{font-size:19px;color:var(--ink3);font-weight:400}
.kao-mob{display:none;gap:8px;padding:12px 20px;overflow-x:auto;scrollbar-width:none;border-bottom:1.5px solid var(--line);background:var(--white)}
.kao-mob::-webkit-scrollbar{display:none}
.k-mob{flex-shrink:0;padding:8px 18px;border-radius:99px;border:1.5px solid var(--line);background:var(--white);font-family:var(--sans);font-size:14px;font-weight:500;cursor:pointer;color:var(--ink2);white-space:nowrap;transition:all 0.12s}
.k-mob.on{background:var(--ink);color:var(--white);border-color:var(--ink)}
.kao-body{display:flex;gap:0;max-width:1280px;margin:0 auto;padding:36px 32px 80px}
.kao-side{width:210px;flex-shrink:0;border-right:1.5px solid var(--line);padding-right:22px;margin-right:40px;max-height:calc(100vh - 120px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--line) transparent;position:sticky;top:80px;align-self:flex-start}
.kao-side::-webkit-scrollbar{width:3px}
.kao-side::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}
.k-side-t{font-family:var(--mono);font-size:13px;font-weight:500;color:var(--ink3);letter-spacing:0.15em;text-transform:uppercase;margin-bottom:14px}
.k-grp{font-family:var(--mono);font-size:11px;font-weight:500;color:var(--ink3);letter-spacing:0.12em;text-transform:uppercase;padding:14px 0 6px;margin-top:4px;border-top:1px solid var(--line);opacity:0.5}
.k-grp:first-child{border-top:none;padding-top:0;margin-top:0}
.k-cat{width:100%;text-align:left;display:flex;justify-content:space-between;align-items:center;padding:10px 0;border:none;background:none;font-family:var(--sans);font-size:15px;font-weight:400;color:var(--ink2);cursor:pointer;transition:color 0.12s}
.k-cat:hover{color:var(--ink)}.k-cat.on{color:var(--red);font-weight:700}
.k-cnt{font-family:var(--mono);font-size:12px;color:var(--ink3)}.k-cat.on .k-cnt{color:var(--red);opacity:0.6}
.kao-main{flex:1;min-width:0}
.k-sr{margin-bottom:24px;position:relative}
.k-search{width:100%;padding:16px 18px 16px 52px;border:1.5px solid var(--line);border-radius:16px;background:var(--white);font-family:var(--sans);font-size:17px;font-weight:400;color:var(--ink);outline:none;transition:border 0.15s}
.k-search:focus{border-color:var(--ink2)}.k-search::placeholder{color:var(--ink3)}
.k-s-ico{position:absolute;left:18px;top:50%;transform:translateY(-50%);font-size:19px;opacity:0.35}
.k-s-clr{position:absolute;right:18px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;font-size:16px;color:var(--ink3);display:none;font-weight:700}
.k-rr{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}
.k-lbl{font-family:var(--mono);font-size:14px;font-weight:500;color:var(--ink3);letter-spacing:0.1em}
.k-hint{font-size:15px;color:var(--ink3);font-weight:400}
.k-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}
.k-card{background:var(--white);border:1.5px solid var(--line);border-radius:18px;padding:24px 16px 16px;cursor:pointer;position:relative;transition:all 0.16s;text-align:center;user-select:none}
.k-card:hover{border-color:#b8aba0;transform:translateY(-3px);box-shadow:0 8px 28px rgba(28,20,16,0.10)}
.k-card.cp{border-color:var(--red);background:var(--red-lt)}
.k-txt{font-size:17px;word-break:break-all;line-height:1.8;color:var(--ink);margin-bottom:14px;min-height:52px;display:flex;align-items:center;justify-content:center;font-weight:500}
.k-meta{display:flex;justify-content:space-between;align-items:center}
.k-tag{font-size:12px;color:var(--ink3);font-family:var(--mono);font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100px}
.k-fav{background:none;border:none;cursor:pointer;font-size:19px;color:var(--line);transition:color 0.12s;padding:2px;flex-shrink:0}
.k-fav.on{color:var(--orange)}
.k-cpb{position:absolute;top:6px;right:6px;background:var(--red);color:var(--white);font-size:12px;padding:4px 10px;border-radius:8px;font-weight:700;font-family:var(--mono)}
.k-empty{grid-column:1/-1;text-align:center;padding:80px 20px;color:var(--ink3);line-height:3;font-size:19px}
.k-card.dot-art .k-txt{font-family:monospace;font-size:11px;white-space:pre;line-height:1.3;min-height:96px;overflow:hidden}
.sp{max-width:700px;margin:0 auto;padding:64px 24px 96px}
.sp-eye{font-family:var(--mono);font-size:13px;font-weight:500;color:var(--ink3);letter-spacing:0.2em;text-transform:uppercase;margin-bottom:14px}
.sp-h2{font-family:var(--serif);font-size:54px;font-weight:700;color:var(--ink);margin-bottom:44px;line-height:1.1}
.sp-blk{border-top:1.5px solid var(--line);padding:32px 0}
.sp-blk h3{font-size:22px;font-weight:700;color:var(--ink);margin-bottom:14px}
.sp-blk p{font-size:18px;line-height:1.9;color:var(--ink2);font-weight:400;margin-bottom:10px}
.sp-blk p:last-child{margin-bottom:0}
.sp-blk ul{padding-left:22px}
.sp-blk ul li{font-size:18px;line-height:1.9;color:var(--ink2);font-weight:400;margin-bottom:4px}
.sp-tags{display:flex;flex-wrap:wrap;gap:8px}
.sp-tag{font-size:14px;font-weight:500;padding:7px 18px;border-radius:99px;border:1.5px solid var(--line);color:var(--ink2)}
.sp-tag.live{background:#edf9f4;color:#1a9972;border-color:#beecd9}
.a-lnk{color:var(--red);text-decoration:none;font-weight:700}.a-lnk:hover{text-decoration:underline}
footer{background:var(--deep);padding:56px 24px 36px}
.ft-in{max-width:1060px;margin:0 auto}
.ft-top{display:flex;align-items:center;justify-content:space-between;padding-bottom:36px;border-bottom:1px solid rgba(255,255,255,0.07);margin-bottom:40px;flex-wrap:wrap;gap:16px}
.ft-brand{display:flex;align-items:center;gap:10px}
.ft-logo-words{display:flex;flex-direction:row;align-items:baseline;gap:8px}
.ft-logo-en{font-family:var(--serif);font-size:22px;font-weight:700;color:var(--white)}
.ft-logo-sep{width:1px;height:14px;background:rgba(255,255,255,0.18);align-self:center}
.ft-logo-zh{font-family:var(--sans);font-size:16px;font-weight:700;color:rgba(255,255,255,0.55)}
.ft-pal{display:flex;gap:6px}.fp{width:10px;height:10px;border-radius:50%;opacity:0.65}
.ft-cols{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px;margin-bottom:48px}
.ft-about p{font-size:16px;color:rgba(255,255,255,0.38);font-weight:400;line-height:1.85;margin-top:12px;max-width:280px}
.ft-col h4{font-family:var(--mono);font-size:13px;font-weight:500;color:rgba(255,255,255,0.28);letter-spacing:0.2em;text-transform:uppercase;margin-bottom:18px}
.ft-col a,.ft-col span{display:block;font-size:17px;color:rgba(255,255,255,0.52);font-weight:400;margin-bottom:12px;cursor:pointer;text-decoration:none;transition:color 0.12s}
.ft-col a:hover,.ft-col span:hover{color:rgba(255,255,255,0.9)}.ft-col .dim{color:rgba(255,255,255,0.2);cursor:default}
.ft-bot{border-top:1px solid rgba(255,255,255,0.06);padding-top:24px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px}
.ft-copy{font-family:var(--mono);font-size:15px;color:rgba(255,255,255,0.2)}
.ft-tag{font-family:var(--mono);font-size:15px;color:rgba(255,255,255,0.15)}
#toast{position:fixed;top:22px;left:50%;transform:translateX(-50%) translateY(-16px);background:var(--deep);color:var(--white);padding:10px 22px;border-radius:99px;font-family:var(--mono);font-size:14px;font-weight:500;box-shadow:0 4px 20px rgba(28,20,16,0.2),3px 3px 0 var(--brown);z-index:9999;opacity:0;transition:all 0.26s cubic-bezier(0.34,1.56,0.64,1);pointer-events:none;white-space:nowrap}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
@media(max-width:860px){
  .hdr-nav{display:none}.hamburger{display:flex}
  .hero{grid-template-columns:1fr;padding:48px 20px 40px;gap:36px}
  .hero-right{order:-1;height:240px}
  .hv:nth-child(1){width:176px}.hv:nth-child(2){width:164px;top:48px}.hv:nth-child(3){width:170px}
  .tgrid{grid-template-columns:1fr}.tools-wrap{padding:40px 20px 60px}
  .divider{padding:0 20px}.kao-hd{padding:28px 20px 20px}
  .kao-mob{display:flex}.kao-body{padding:24px 20px 52px}.kao-side{display:none}
  .ft-cols{grid-template-columns:1fr 1fr;gap:28px}.ft-about{grid-column:1/-1}
  footer{padding:44px 20px 28px}.sp{padding:44px 20px 64px}.sp-h2{font-size:36px}
  .brand-strip{padding:56px 20px}
}
@media(max-width:480px){.ft-cols{grid-template-columns:1fr}.hero-h1{font-size:40px}.k-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}}