
:root{--bg:#132a3a;--deep:#0e202d;--ink:#f4efdf;--muted:#abbac2;--gold:#efc65d;--line:#ffffff20}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.8 -apple-system,BlinkMacSystemFont,"PingFang TC",sans-serif}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:5px}.wrap{width:min(1120px,88%);margin:auto}.demo{background:var(--gold);color:var(--deep);text-align:center;font-size:12px;letter-spacing:.12em;padding:5px}header{border-bottom:1px solid var(--line)}nav{display:flex;align-items:center;justify-content:space-between;padding:22px 0}.brand{font-weight:750;letter-spacing:.08em}.brand small{color:var(--muted);font-weight:400;margin-left:14px}nav .links{display:flex;gap:28px;font-size:14px;color:var(--muted)}nav a:hover{color:var(--gold)}.hero{padding:78px 0 74px;position:relative}.eyebrow{font-size:12px;color:var(--gold);letter-spacing:.24em;margin:0 0 22px}.hero h1{margin:0;font-family:"Songti TC",serif;font-size:clamp(58px,9vw,112px);font-weight:900;line-height:1.15;letter-spacing:.08em;color:transparent;background:radial-gradient(circle,var(--ink) 1.25px,transparent 1.55px) 0 0/4px 4px;background-clip:text;-webkit-background-clip:text}.stamp{display:inline-block;margin-top:26px;background:var(--gold);color:var(--deep);border:4px double var(--deep);outline:1px solid var(--gold);padding:0 22px;font:bold 35px/1.55 "Songti TC",serif;letter-spacing:.3em;transform:rotate(-2deg)}.intro{font-size:19px;max-width:650px;margin:32px 0 25px;color:#e0e6e8}.actions{display:flex;gap:12px;flex-wrap:wrap}.btn{display:inline-flex;justify-content:center;align-items:center;padding:11px 23px;border:1px solid var(--gold);border-radius:4px;color:var(--gold);font-weight:650;font-size:14px}.btn.primary{background:var(--gold);color:var(--deep)}.btn:hover{filter:brightness(1.1);transform:translateY(-1px)}.hero-note{position:absolute;right:0;bottom:90px;color:var(--muted);font:italic 18px/1.6 "Songti TC",serif;border-left:1px solid var(--gold);padding-left:22px}.shelf{background:var(--deep);padding:56px 0 70px}.section-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:28px}h2{font:700 32px/1.4 "Songti TC",serif;margin:0} .section-head span{color:var(--muted);font-size:13px}.product{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);background:#172f40;border-radius:8px;overflow:hidden}.art{margin:0;background:#081e30}.art img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain}.art figcaption{padding:8px 16px;color:var(--muted);font-size:11px}.copy{padding:38px 38px 30px;display:flex;flex-direction:column;justify-content:center}.tag{color:var(--gold);font-size:11px;letter-spacing:.16em}.copy h3{font-size:clamp(25px,3vw,37px);letter-spacing:-.04em;margin:12px 0 5px}.lead{font-family:"Songti TC",serif;font-size:25px;margin:0 0 16px}.desc{color:var(--muted);font-size:14px;margin:0 0 20px}.specs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:24px}.specs span{border:1px solid var(--line);padding:3px 9px;font-size:11px;color:#ccd5d9}.purchase-note{font-size:12px;color:var(--muted);margin:14px 0 0}.next{display:flex;gap:20px;align-items:center;border-bottom:1px solid var(--line);padding:25px 3px;color:var(--muted);font-size:14px}.next .plus{font:30px serif;color:var(--gold)}.next strong{color:var(--ink);font-weight:500}.info{padding:70px 0 80px;display:grid;grid-template-columns:1fr 1.65fr;gap:70px}.info p{color:var(--muted);font-size:14px}.faq details{border-bottom:1px solid var(--line);padding:17px 0}.faq details:first-child{padding-top:0}summary{cursor:pointer;list-style:none;font-weight:550;display:flex;justify-content:space-between;gap:20px}summary::after{content:'＋';color:var(--gold)}details[open] summary::after{content:'−'}footer{border-top:1px solid var(--line);padding:25px 0;font-size:12px;color:var(--muted)}footer .wrap{display:flex;justify-content:space-between;gap:20px}footer a{color:var(--gold)}@media(max-width:760px){.wrap{width:88%}.brand small{display:none}nav .links{gap:17px}.hero{padding:48px 0}.hero-note{display:none}.intro{font-size:16px}.stamp{font-size:28px}.product{grid-template-columns:1fr}.copy{padding:26px}.info{grid-template-columns:1fr;gap:22px;padding:45px 0}.section-head{align-items:center}.section-head span{font-size:11px}footer .wrap{flex-direction:column;gap:6px}.shelf{padding-top:35px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.privacy{display:block;width:min(1120px,88%);margin:8px auto 0;color:var(--muted);font-size:12px}
.product + .product{margin-top:22px}

/* Compact catalog heading; product layout and image sizes retain the original design. */
.hero{padding:38px 0 36px}
.shop-title{display:flex;align-items:center;gap:26px;flex-wrap:wrap}
.hero .eyebrow{margin-bottom:18px}
.hero h1{font-size:clamp(48px,6vw,76px);line-height:1.2}
.hero .stamp{margin-top:0;padding:0 17px;font-size:27px;letter-spacing:.22em}
@media(max-width:760px){.hero{padding:28px 0}.shop-title{gap:16px}.hero h1{font-size:46px}.hero .stamp{font-size:20px;padding:0 11px}}

.hero h1.particle-heading{position:relative;width:min(680px,100%);aspect-ratio:4.3;flex:none;display:flex;align-items:center;background:none;color:var(--ink)}
#particle-sign{display:block;position:absolute;inset:0;width:100%;height:100%;cursor:pointer;touch-action:pan-y}
#particle-sign[hidden]{display:none}
#particle-sign:focus-visible{outline:2px solid var(--gold);outline-offset:5px;border-radius:4px}
.sign-ready .sign-fallback{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* 外掛版本管理 免費下載區塊（2026-10-12） */
.manager-band{display:grid;grid-template-columns:96px 1fr auto;gap:28px;align-items:center;margin-top:40px;padding:30px 34px;border:1px solid #efc65d55;border-radius:8px;background:linear-gradient(135deg,#1b3a50,#10263a)}
.manager-band img{width:96px;height:96px;display:block}
.manager-band .eyebrow{margin:0 0 8px}
.manager-band h2{font-size:26px}
.manager-band p:not(.eyebrow){color:var(--muted);font-size:14px;margin:8px 0 0;max-width:560px}
.manager-band .btn{white-space:nowrap}
.faq a{color:var(--gold)}
@media(max-width:760px){.manager-band{grid-template-columns:64px 1fr;gap:16px 18px;padding:22px 20px}.manager-band img{width:64px;height:64px}.manager-band h2{font-size:21px}.manager-band .btn{grid-column:1/-1}}

/* 黃金通行證卡片（2026-10-12） */
.gp-product{border-color:#efc65d77;background:linear-gradient(135deg,#1f3a4c,#172f40 60%)}
.gp-product .art{background:radial-gradient(circle at 50% 45%,#2c4a5e,#10263a 70%)}
.gp-product .art img{object-fit:contain;padding:6%}
.gp-en-line{font-size:12px;letter-spacing:.08em;color:var(--muted);margin:0 0 6px}

/* 2026-10-12 版面：通行證大橫幅＋單買外掛格子 */
.shelf .section-head{margin-bottom:22px}
.gp-banner{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);border-color:#efc65d99;box-shadow:0 0 0 1px #efc65d22,0 24px 60px #0007}
.gp-banner .art img{max-height:640px}
.gp-banner .gp-price strong{font-size:1.15em}
.gp-includes{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 20px}
.gp-includes span{font-size:11px;letter-spacing:.16em;color:var(--gold);margin-right:4px}
.gp-includes a{border:1px solid #efc65d55;background:#efc65d14;padding:3px 11px;border-radius:99px;font-size:12px;color:var(--ink)}
.gp-includes a:hover{background:#efc65d33}
.gp-includes em{font-size:12px;color:var(--muted);font-style:normal}
.or-divider{display:flex;align-items:center;gap:18px;margin:54px 0 36px;color:var(--muted);font:italic 17px/1.6 "Songti TC",serif}
.or-divider::before,.or-divider::after{content:"";flex:1;border-top:1px solid var(--line)}
.grid-specs{margin:-8px 0 22px;font-size:12px;color:var(--muted)}
.plugin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.pcard{display:flex;flex-direction:column;border:1px solid var(--line);background:#172f40;border-radius:8px;overflow:hidden;transition:border-color .2s,transform .2s}
.pcard:hover{border-color:#efc65d66;transform:translateY(-2px)}
.pc-art{position:relative;display:block;background:#081e30}
.pc-art img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain}
.pc-badge{position:absolute;top:12px;right:12px;background:#efc65dee;color:var(--deep);font-size:11px;font-weight:700;letter-spacing:.06em;padding:2px 10px;border-radius:99px}
.pc-body{padding:20px 22px 22px;display:flex;flex-direction:column;flex:1}
.pc-body h3{margin:0 0 4px;font-size:21px;letter-spacing:-.02em}
.pc-lead{font-family:"Songti TC",serif;font-size:16px;line-height:1.6;margin:0 0 14px;color:#e3e9eb;min-height:3.2em}
.pc-price{margin:0 0 16px;display:flex;align-items:baseline;gap:10px;margin-top:auto}
.pc-price strong{font:700 22px/1 "Songti TC",serif;color:var(--gold)}
.pc-price span{font-size:12px;color:var(--muted)}
.pc-actions{display:flex;gap:10px;flex-wrap:wrap}
.pc-actions .btn{flex:1;padding:10px 12px;white-space:nowrap}
.pc-activate{margin-top:12px;font-size:12px;color:var(--muted);text-align:center;text-decoration:underline;text-underline-offset:3px}
.pc-activate:hover{color:var(--gold)}
.grid-note{margin-top:22px}
@media(max-width:980px){.plugin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gp-banner{grid-template-columns:1fr}}
@media(max-width:620px){.plugin-grid{grid-template-columns:1fr}.or-divider{margin:40px 0 26px;font-size:15px}}

/* 2026-10-12 通行證為主角：頁首標題縮成一條 */
.hero{padding:16px 0 14px}
.hero .eyebrow{margin-bottom:6px}
.shop-title{gap:14px}
.hero h1{font-size:34px}
.hero h1.particle-heading{width:min(250px,60%);aspect-ratio:4.3}
.hero .stamp{font-size:15px;padding:0 10px;letter-spacing:.18em;border-width:3px}
.shelf{padding-top:34px}
.gp-banner{margin-top:0}
.gp-tag{display:inline-block;background:var(--gold);color:var(--deep);padding:2px 12px;border-radius:99px;font-weight:700;letter-spacing:.1em;align-self:flex-start}
.gp-headline{font-size:clamp(32px,4.2vw,50px);line-height:1.25;margin:10px 0 18px}
.gp-headline em{font-style:normal;color:var(--gold)}
.gp-banner .desc{font-size:15px;color:#d3dde1}
.gp-banner .gp-price{font-size:30px}
.gp-banner .actions .btn.primary{padding:14px 30px;font-size:16px}
@media(max-width:760px){.hero{padding:12px 0}.hero h1.particle-heading{width:min(200px,55%)}.hero .stamp{font-size:13px}}
.gp-banner .art{display:flex;flex-direction:column;justify-content:center}.gp-banner .art figcaption{text-align:center}

/* 查詢 NFT 通行證（2026-10-16） */
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.pass-form{display:flex;gap:10px;margin:14px 0 0}
.pass-form input{flex:1;min-width:0;padding:11px 14px;border-radius:6px;border:1px solid #ffffff33;background:#0e202d;color:var(--ink);font:15px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace}
.pass-form input:focus{outline:2px solid var(--gold);outline-offset:1px}
.pass-form .btn{white-space:nowrap;cursor:pointer;border:0;font:inherit;padding:11px 22px}
.pass-form .btn[disabled]{opacity:.6;cursor:wait}
.pass-result{margin-top:16px}
.pass-note{margin:0;color:var(--muted);font-size:14px}
.pass-note.err{color:#ffb4a8}
.pass-summary{margin:0 0 12px;color:var(--ink);font-size:15px}
.pass-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.pass-item{display:flex;gap:14px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:#0e202d99}
.pass-item img{width:64px;height:64px;border-radius:6px;object-fit:cover;flex:none;background:#0e202d}
.pass-body{min-width:0;flex:1}
.pass-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.pass-head strong{font-size:15px;color:var(--ink);word-break:break-word}
.pass-badge{font-size:12px;padding:1px 9px;border-radius:99px;border:1px solid}
.pass-badge.ok{color:#7be0a4;border-color:#7be0a477}
.pass-badge.off{color:#ffb4a8;border-color:#ffb4a877}
.pass-left{margin-top:2px;color:var(--gold);font-size:15px}
.pass-date{color:var(--muted);font-size:13px}
.pass-foot{margin:12px 0 0;color:var(--muted);font-size:13px}
@media(max-width:560px){.pass-form{flex-direction:column}.pass-item img{width:52px;height:52px}}

/* 手機版選單：連結不拆字，放不下就換行（參考外掛頁選單 product-page.css） */
nav .links a,.brand a{white-space:nowrap}
@media(max-width:640px){nav.wrap{flex-wrap:wrap;row-gap:10px}.brand{flex-basis:100%}nav .links{flex-wrap:wrap;gap:8px 18px}}
