:root{--night:#05070d;--ink:#0d1220;--lamp:#f2cf8e;--gold:#d8b46a;--gold-dim:#8c7646;--paper:#e9e4d6;--mute:#9da1ae;--cinnabar:#e0573f;--rule:rgba(216,180,106,.2);--serif:"Noto Serif TC","Songti TC","PMingLiU",serif;--kai:"LXGW WenKai TC","BiauKai","DFKai-SB","Kaiti TC",serif;--sans:"Noto Sans TC","PingFang TC","Microsoft JhengHei",system-ui,sans-serif;--w:760px;color-scheme:dark}*{box-sizing:border-box}html{background:var(--night)}body{margin:0;min-height:100dvh;color:var(--paper);font-family:var(--sans);font-size:16px;line-height:1.9;padding-inline:max(16px,env(safe-area-inset-left,0px)) max(16px,env(safe-area-inset-right,0px));padding-bottom:env(safe-area-inset-bottom,0px);-webkit-font-smoothing:antialiased}body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(ellipse 46rem 30rem at 50% -8rem,rgba(242,207,142,.2),rgba(242,207,142,.06) 55%,transparent 75%),radial-gradient(ellipse 90rem 50rem at 50% 120%,rgba(40,56,110,.22),transparent 70%);animation:lampOn 1.6s ease-out both}@keyframes lampOn{from{opacity:0}to{opacity:1}}a{color:var(--gold);text-underline-offset:4px;text-decoration-thickness:1px}a:hover{color:var(--lamp)}a:focus-visible{outline:2px solid var(--lamp);outline-offset:3px;border-radius:2px}b,strong{color:#fff6e4;font-weight:700}.top{max-width:var(--w);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:calc(14px + env(safe-area-inset-top,0px)) 14px}.brand{font-family:var(--serif);font-weight:900;font-size:1.05rem;letter-spacing:.28em;color:var(--paper);text-decoration:none;white-space:nowrap}.nav{display:flex;gap:2px 18px;flex-wrap:wrap;justify-content:flex-end;font-size:.84rem}.nav a{color:var(--mute);text-decoration:none;padding-block:4px;white-space:nowrap}.nav a:hover{color:var(--paper)}.nav a[aria-current="page"]{color:var(--gold);box-shadow:inset 0 -1px var(--gold)}main{max-width:var(--w);margin:0 auto;padding-block:28px 56px}.hero{display:flex;flex-direction:row-reverse;align-items:flex-start;gap:clamp(20px,6vw,64px);padding-block:clamp(16px,6vw,56px) clamp(28px,6vw,48px)}.v-title{margin:0;writing-mode:vertical-rl;font-family:var(--serif);font-weight:900;font-size:clamp(3.2rem,11vw,4.4rem);line-height:1;letter-spacing:.18em;color:#fbf2dc;text-shadow:0 0 28px rgba(242,207,142,.45),0 0 2px rgba(242,207,142,.6);flex:none}.hero-txt{flex:1;min-width:0;padding-top:.4em}.hero h1{font-family:var(--serif);font-weight:900;font-size:clamp(1.55rem,5.4vw,2.2rem);line-height:1.35;letter-spacing:.06em;margin:0 0 18px;text-wrap:balance}.hero p{margin:0 0 14px;max-width:34em;color:#d9d4c6}.hero .soon{color:var(--mute);font-size:.88rem;margin-top:22px;padding-left:12px;border-left:1px solid var(--gold-dim)}h2{font-family:var(--serif);font-weight:900;font-size:1.3rem;letter-spacing:.14em;color:var(--gold);margin:64px 0 18px;display:flex;align-items:center;gap:16px;text-wrap:balance}main>.hero+h2{margin-top:24px}h2::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--rule),transparent)}h3{font-family:var(--serif);font-size:1.05rem;letter-spacing:.06em;margin:28px 0 8px;color:var(--paper)}p,li{max-width:40em}ul,ol{padding-left:1.3em;margin:10px 0}li{margin:6px 0}li::marker{color:var(--gold-dim)}.small{font-size:.9rem;color:#cfcabd}.shelf{display:flex;flex-direction:column;gap:22px;margin:22px 0 26px}.book{display:grid;grid-template-columns:clamp(104px,26vw,168px) 1fr;grid-template-areas:"cover info" "cover price";column-gap:clamp(16px,4vw,32px);row-gap:14px;padding:clamp(14px,3vw,22px);background:linear-gradient(180deg,rgba(242,207,142,.05),rgba(242,207,142,0) 60%),var(--ink);border:1px solid var(--rule);border-radius:3px}.cover{grid-area:cover;align-self:start;position:relative;aspect-ratio:3/4.3;border-radius:2px 4px 4px 2px;background:linear-gradient(160deg,rgba(255,240,210,.14),transparent 45%),repeating-linear-gradient(0deg,rgba(255,255,255,.025) 0 1px,transparent 1px 3px),repeating-linear-gradient(90deg,rgba(0,0,0,.08) 0 1px,transparent 1px 4px),var(--c,#1c2645);box-shadow:0 14px 30px -12px rgba(0,0,0,.8),inset -1px 0 rgba(255,255,255,.06)}.cover::before{content:"";position:absolute;top:6%;bottom:6%;right:11%;width:2px;background:repeating-linear-gradient(180deg,rgba(233,228,214,.55) 0 14%,transparent 14% 28.6%)}.cover::after{content:"";position:absolute;top:0;bottom:0;right:0;width:20%;border-left:1px solid rgba(0,0,0,.35);background:rgba(0,0,0,.12)}.slip{position:absolute;top:8%;left:12%;writing-mode:vertical-rl;font-family:var(--kai);font-weight:700;font-size:clamp(.86rem,2.6vw,1.12rem);letter-spacing:.2em;line-height:1;color:#2a2418;background:linear-gradient(#efe6cf,#e2d7bb);padding:.7em .38em;border:1px solid rgba(0,0,0,.25);box-shadow:0 0 0 2px rgba(239,230,207,.25)}.book.year .cover{--c:#163029}.info{grid-area:info;min-width:0}.info h3{margin:0 0 2px;font-size:1.18rem;letter-spacing:.1em}.info .meta{margin:0 0 10px;color:var(--mute);font-size:.84rem}.info ul{margin:0;font-size:.94rem;line-height:1.75}.info li{margin:3px 0}.rates{grid-area:price;align-self:end;display:flex;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none}.rate{display:flex;align-items:baseline;gap:10px;margin:0;max-width:none}.rate .lbl{font-family:var(--serif);font-weight:700;letter-spacing:.04em}.rate .lbl small{font-family:var(--sans);font-weight:400;color:var(--mute);font-size:.8rem;letter-spacing:0;margin-left:4px}.rate i{flex:1;min-width:16px;border-bottom:1px dotted var(--gold-dim);transform:translateY(-.35em)}.rate b{font-family:var(--serif);font-variant-numeric:tabular-nums;color:var(--lamp);white-space:nowrap}.menu{list-style:none;padding:0;margin:18px 0 22px;display:flex;flex-direction:column;gap:16px}.menu li{margin:0;max-width:none}.menu p{margin:2px 0 0;color:var(--mute);font-size:.9rem;max-width:34em}.facts{margin:16px 0;display:grid;grid-template-columns:auto 1fr;column-gap:28px}.facts div{display:contents}.facts dt{font-family:var(--serif);font-weight:700;color:var(--gold);letter-spacing:.08em;white-space:nowrap;padding:12px 0;border-top:1px solid var(--rule)}.facts dd{margin:0;padding:12px 0;border-top:1px solid var(--rule);min-width:0}.mail{user-select:all;word-break:break-all;color:var(--gold)}.shop{display:flex;gap:clamp(18px,5vw,36px);align-items:flex-start}.shop .facts{flex:1;margin-top:0}.seal{flex:none;width:76px;height:76px;margin-top:4px;display:flex;flex-direction:row-reverse;justify-content:center;align-items:center;gap:2px;font-family:var(--serif);font-weight:900;font-size:1.32rem;line-height:1;color:var(--night);background:var(--cinnabar);border-radius:6px;padding:6px;letter-spacing:.04em;box-shadow:inset 0 0 0 2px rgba(5,7,13,.5),inset 0 0 12px rgba(80,10,0,.35)}.seal span{writing-mode:vertical-rl}.doc-head{padding-block:clamp(16px,5vw,40px) 8px}.doc-head h1{font-family:var(--serif);font-weight:900;font-size:clamp(1.8rem,6vw,2.4rem);letter-spacing:.14em;margin:0 0 6px}.updated{margin:0;color:var(--mute);font-size:.84rem}.lead{margin:22px 0 0;font-size:1.02rem;color:#d9d4c6;max-width:38em}.doc h2{font-size:1.12rem;margin-top:44px}.doc ol,.doc ul{font-size:.96rem}.note{border-left:2px solid var(--gold);padding:10px 16px;background:rgba(242,207,142,.06);font-size:.92rem;margin:28px 0;max-width:40em}.ph{background:rgba(224,87,63,.18);color:#ffb3a5;padding:0 4px}.tbl{overflow-x:auto;margin:14px 0}table{width:100%;border-collapse:collapse;font-size:.92rem}th,td{text-align:left;padding:11px 10px 11px 0;border-top:1px solid var(--rule);vertical-align:top}th{color:var(--mute);font-weight:500;font-size:.8rem;letter-spacing:.1em;border-top:0}.tbl td:first-child{white-space:nowrap;padding-right:18px;color:var(--gold);font-family:var(--serif);font-weight:700}footer{max-width:var(--w);margin:0 auto;border-top:1px solid var(--rule);padding-block:26px 34px;display:flex;gap:20px;align-items:flex-start;font-size:.82rem;color:var(--mute);line-height:1.8}footer .seal{width:44px;height:44px;font-size:.8rem;padding:3px;gap:1px;border-radius:4px;margin-top:4px}footer nav{display:flex;flex-wrap:wrap;gap:4px 18px;margin-bottom:6px}footer nav a{color:var(--paper);text-decoration:none}footer nav a:hover{color:var(--gold)}footer p{margin:0}@media (max-width:560px){body{font-size:15px}.nav{gap:0 12px;font-size:.8rem}.book{grid-template-areas:"cover info" "price price"}.info ul{font-size:.88rem}.facts{grid-template-columns:1fr}.facts dt{padding:12px 0 0}.facts dd{border-top:0;padding:2px 0 12px}.shop{flex-direction:column}}@media (prefers-reduced-motion:reduce){body::after{animation:none}}
body{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}
.mail{-webkit-user-select:all;user-select:all}
::selection{background:rgba(216,180,106,.3);color:inherit}
body::after{animation:lampOn 1.6s ease-out both,flicker 7s ease-in-out 1.6s infinite}
@keyframes flicker{0%,100%{opacity:1}42%{opacity:.86}46%{opacity:.97}52%{opacity:.9}}
.v-title span{display:inline-block;animation:ignite 1.5s cubic-bezier(.3,.6,.3,1) calc(.35s + var(--i)*.32s) both}
@keyframes ignite{0%{opacity:0;filter:blur(8px);text-shadow:none}40%{opacity:1;filter:blur(0);text-shadow:0 0 46px rgba(255,214,140,.95),0 0 14px #fff2cf}100%{opacity:1;filter:blur(0);text-shadow:0 0 28px rgba(242,207,142,.45),0 0 2px rgba(242,207,142,.6)}}
.v-title{animation:breathe 6s ease-in-out 3s infinite}
@keyframes breathe{50%{filter:brightness(1.12) drop-shadow(0 0 18px rgba(242,207,142,.25))}}
.hero-txt{animation:rise 1s ease-out 1.5s both}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.cover{transform-origin:100% 50%;transition:transform .7s cubic-bezier(.2,.7,.2,1),box-shadow .7s}
.book:hover .cover,.book:active .cover{transform:perspective(800px) rotateY(-16deg);box-shadow:18px 18px 34px -14px rgba(0,0,0,.9),inset -1px 0 rgba(255,255,255,.06)}
.slip{transition:box-shadow .7s}
.book:hover .slip,.book:active .slip{box-shadow:0 0 0 2px rgba(239,230,207,.25),0 0 22px rgba(242,207,142,.35)}
@media (prefers-reduced-motion:reduce){body::after,.v-title,.v-title span,.hero-txt{animation:none}.cover{transition:none}.book:hover .cover,.book:active .cover{transform:none}}
html::before,html::after{content:"";position:fixed;left:0;top:0;width:3px;height:3px;border-radius:50%;pointer-events:none;z-index:-1;opacity:0}
html::before{box-shadow:46vw 41vh 5px 0px rgba(255,232,180,0.65),76vw 44vh 5px 0px rgba(255,232,180,0.8),17vw 34vh 4px 1px rgba(255,232,180,0.5),40vw 34vh 5px 1px rgba(255,232,180,0.65),66vw 44vh 3px 0px rgba(255,232,180,0.8),35vw 37vh 4px 1px rgba(255,232,180,0.5);animation:driftA 19s ease-in-out 1.2s infinite}
html::after{box-shadow:24vw 14vh 5px 0px rgba(255,232,180,0.65),19vw 21vh 4px 1px rgba(255,232,180,0.8),65vw 31vh 4px 1px rgba(255,232,180,0.8),72vw 12vh 4px 0px rgba(255,232,180,0.5),33vw 35vh 3px 1px rgba(255,232,180,0.8),71vw 44vh 4px 1px rgba(255,232,180,0.8);animation:driftB 23s ease-in-out 2.4s infinite}
@keyframes driftA{0%{opacity:0;transform:translate(0,0)}12%{opacity:.9}30%{opacity:.35}50%{opacity:.85;transform:translate(3vw,-4vh)}72%{opacity:.3}88%{opacity:.8}100%{opacity:0;transform:translate(-2vw,-9vh)}}
@keyframes driftB{0%{opacity:0;transform:translate(0,0)}18%{opacity:.75}40%{opacity:.25;transform:translate(-3vw,3vh)}60%{opacity:.9}82%{opacity:.4}100%{opacity:0;transform:translate(2vw,-6vh)}}
@media (prefers-reduced-motion:reduce){html::before,html::after{display:none}}
