/* Pentacles / Cabinet of small questions. 2026-10-01 */
:root{--paper:#eeeae0;--paper-2:#e5dfd2;--sheet:#f6f2e9;--ink:#352b2b;--ink-2:#554948;--mute:#736461;--rule:#cec3b4;--rule-strong:#7f6458;--copper:#745443;--copper-soft:#d2bba5;--seal:#5a2833;--seal-hover:#793645;--seal-ink:#fff9ed;--wine:#542b35;--wine-dark:#332028;--gold:#a48961;--sage:#c7cabc;--display:'Cormorant Garamond',Georgia,serif;--maxw:1380px;--shadow:none}
:root[data-theme=dark]{--paper:#262426;--paper-2:#302d30;--sheet:#353032;--ink:#eee7d8;--ink-2:#d3c7b9;--mute:#b6a998;--rule:#595050;--rule-strong:#c1a58b;--copper:#cdb099;--copper-soft:#665343;--seal:#d6b3a9;--seal-hover:#efd1c5;--seal-ink:#38232c;--sage:#353d36}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#262426;--paper-2:#302d30;--sheet:#353032;--ink:#eee7d8;--ink-2:#d3c7b9;--mute:#b6a998;--rule:#595050;--rule-strong:#c1a58b;--copper:#cdb099;--copper-soft:#665343;--seal:#d6b3a9;--seal-hover:#efd1c5;--seal-ink:#38232c;--sage:#353d36}}
body{font-size:16px;line-height:1.9}body:has(.salon-hero){overflow-x:clip}.wrap{padding-inline:clamp(22px,5.6vw,90px)}h1,h2,h3{font-weight:500;text-wrap:balance;letter-spacing:.03em}h1{line-height:1.4}h2{line-height:1.55}p{max-width:100%}a,button,summary{-webkit-tap-highlight-color:transparent;touch-action:manipulation}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--copper);outline-offset:6px}img{color:var(--ink-2)}[id]{scroll-margin-top:105px}.site-header{position:sticky;background:var(--paper);border-bottom:1px solid var(--rule);backdrop-filter:none;z-index:30}.site-header .bar{min-height:86px;gap:28px;max-width:1600px}.brand .mark{width:40px;height:40px;border-radius:50%;mix-blend-mode:multiply}.brand .zh{font-size:23px;letter-spacing:.17em}.brand .en{font-family:var(--display);font-size:11px;letter-spacing:.2em}.nav{gap:28px}.nav a{font-size:13px;position:relative}.nav a[aria-current=page]{border-bottom:1px solid var(--copper)}.btn{min-height:48px;border-radius:2px;display:inline-flex;gap:24px;align-items:center;justify-content:center;padding:12px 25px;font-size:14px;letter-spacing:.06em;border:1px solid transparent}.btn-seal{background:var(--seal);color:var(--seal-ink)}.btn-seal:hover{background:var(--seal-hover);color:var(--seal-ink)}.btn-line{border-color:var(--rule-strong)}.btn-paper{background:#ede8db;color:#42272d}.btn-paper:hover{background:#fff8e8;color:#42272d}.btn span{transition:transform .25s}.btn:hover span{transform:translate(3px,-2px)}.btn-sm{min-height:44px}.textlink:after{content:none}.salon-textlink{display:inline-flex;gap:22px;align-items:center;min-height:44px;padding-bottom:3px;border-bottom:1px solid currentColor;color:inherit;text-decoration:none;font-size:14px}.salon-textlink:hover{color:var(--copper)}.section-overline{font-size:13px;letter-spacing:.1em;margin-bottom:24px;color:var(--mute)}.eyebrow{font-size:12px;text-transform:none;letter-spacing:.08em}.fine{font-size:13px}.actions{gap:26px}
/* The opening is a printed frontispiece, with one framed artwork. */
.salon-hero{max-width:1600px;margin:auto;padding:0 clamp(24px,5.6vw,90px);position:relative}.salon-topline{display:flex;justify-content:space-between;padding-top:27px;font-size:12px;letter-spacing:.13em;color:var(--mute)}.salon-layout{display:grid;grid-template-columns:1.05fr 1fr;gap:8%;align-items:center;padding:45px 0 42px}.salon-copy{padding:0 0 15px}.salon-script{font-family:var(--display);font-style:italic;font-size:25px;letter-spacing:.01em;color:var(--copper);margin:0 0 25px}.salon-copy h1{font-size:clamp(56px,5.8vw,90px);letter-spacing:.055em;line-height:1.36;color:var(--ink);margin-bottom:27px}.salon-intro{font-size:16px;line-height:2.05;margin:0 0 15px;color:var(--ink-2)}.salon-invite{font-size:15px;margin:0 0 29px;color:var(--ink-2)}.salon-copy .actions{margin:0}.salon-price{font-size:12px;letter-spacing:.06em;color:var(--mute);margin-top:19px}.salon-painting{margin:0 0 0 0;position:relative;padding:10px 14px 0 0;max-width:540px;width:100%;justify-self:end}.painting-frame{padding:9px;border:1px solid var(--gold);outline:1px solid var(--gold);outline-offset:5px;background:var(--paper-2);position:relative}.painting-frame:after{content:'';position:absolute;inset:4px;border:1px solid var(--rule);pointer-events:none}.painting-frame img{width:100%;aspect-ratio:4/4.75;height:auto;object-fit:cover}.salon-painting figcaption{font-size:10px;display:flex;justify-content:space-between;gap:10px;color:var(--mute);padding:18px 0 0}.salon-painting figcaption span{font-family:var(--display);font-size:15px;font-style:italic}.salon-painting figcaption a{color:inherit;text-underline-offset:4px}.painting-seal{position:absolute;right:-18px;bottom:78px;width:78px;height:78px;border-radius:50%;transform:rotate(-9deg);box-shadow:0 0 0 3px var(--paper-2),0 0 0 4px var(--gold),3px 6px 14px #352b2b45}.salon-bottom{padding:17px 0 22px;border-top:1px solid var(--rule);display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:12px;color:var(--mute)}.salon-bottom a{color:inherit;text-decoration:none;min-height:44px;display:flex;align-items:center;gap:20px}.salon-bottom p{display:flex;gap:20px;margin:0}.salon-bottom p span{font-family:var(--display);font-size:17px;font-style:italic}.salon-flower{font-size:26px;color:var(--copper)}
/* Engraved astronomical plate and a conversational text column. */
.conversation{display:grid;grid-template-columns:1fr 1.04fr;gap:10%;align-items:center;padding:110px clamp(24px,8vw,135px);max-width:1480px;margin:auto}.conversation-art{position:relative;max-width:460px;justify-self:center;width:100%;text-align:center}.orrery-mount{aspect-ratio:1;position:relative;color:var(--copper)}.orrery-fallback{width:100%;height:100%;opacity:.55}.orrery-mount canvas{position:absolute;inset:0;width:100%!important;height:100%!important}.orrery-mount[data-ready] .orrery-fallback{visibility:hidden}.motion-control{background:transparent;border:0;border-bottom:1px solid var(--rule-strong);font-size:12px;color:var(--ink-2);min-height:44px;padding:5px 12px;cursor:pointer}.motion-control[hidden]{display:none}.plate-caption{font-family:var(--serif);font-size:13px;color:var(--mute);margin:16px 0 0}.conversation-copy{max-width:520px}.conversation-copy h2{font-size:clamp(34px,3.2vw,49px);margin-bottom:26px}.conversation-copy p:not(.section-overline){margin-bottom:18px;line-height:2.05;color:var(--ink-2)}.conversation-copy .salon-textlink{margin-top:10px}
/* Service information lives on a celadon sheet, with generous disclosure rows. */
.reading-room{background:var(--sage);padding:90px clamp(24px,7vw,112px);display:grid;grid-template-columns:.85fr 1.3fr;gap:10%;border-block:1px solid var(--rule)}.reading-room-heading h2{font-size:clamp(32px,3vw,46px);margin-bottom:32px}.reading-room-heading .section-overline{color:var(--ink-2)}.reading-option{border-top:1px solid var(--rule-strong)}.reading-option:last-of-type{border-bottom:1px solid var(--rule-strong)}.reading-option summary{list-style:none;display:grid;grid-template-columns:1fr auto 24px;align-items:center;gap:20px;cursor:pointer;padding:24px 0}.reading-option summary::-webkit-details-marker{display:none}.reading-option summary>span:first-child{font-family:var(--serif);font-size:25px}.reading-option summary small{font-size:12px;color:var(--ink-2)}.expand-symbol{font-family:var(--sans);font-size:20px;text-align:center;transition:transform .35s}.reading-option[open] .expand-symbol{transform:rotate(45deg)}.reading-option-body{display:grid;grid-template-columns:160px 1fr;gap:27px;padding:10px 0 32px;animation:folio-open .45s ease}.reading-option-body img{width:160px;height:210px;object-fit:cover;border:1px solid var(--rule);padding:4px}.reading-option-body p{font-size:14px;margin:0 0 16px}.reading-option-body .service-rate{font-family:var(--serif);font-size:17px;line-height:1.8}.reading-help{font-size:13px;margin-top:24px}.reading-help a{color:inherit;text-underline-offset:5px}
/* Magazine spread: one landscape, a small portrait, an intentionally uneven rhythm. */
.journal-spread{display:grid;grid-template-columns:1.7fr .8fr;gap:0 8%;max-width:1480px;margin:auto;padding:105px clamp(24px,6.6vw,105px) 115px}.journal-spread-title{grid-column:1/-1;display:grid;grid-template-columns:1fr 2fr 1fr;align-items:end;margin-bottom:45px;border-bottom:1px solid var(--rule);padding-bottom:25px}.journal-spread-title .section-overline{margin:0}.journal-spread-title h2{font-size:clamp(40px,4.5vw,65px)}.journal-spread-title>p:last-child{font-family:var(--display);font-style:italic;font-size:23px;color:var(--copper);text-align:right;line-height:1.2;margin:0}.journal-main{text-decoration:none;color:inherit}.journal-main figure{margin:0;overflow:hidden}.journal-main img{width:100%;aspect-ratio:1.32;object-fit:cover}.journal-main-caption{display:grid;grid-template-columns:1fr 2.3fr;gap:16px 25px;padding-top:30px}.journal-main-caption>span{font-size:12px;padding-top:10px;color:var(--mute)}.journal-main-caption h3{font-size:clamp(29px,3vw,44px);line-height:1.5}.journal-main-caption>p{grid-column:2;font-size:15px;line-height:2;color:var(--ink-2);margin:0}.journal-margin{padding-top:60px}.journal-vignette{width:72%;margin:0 0 36px auto;overflow:hidden}.journal-vignette img{width:100%;aspect-ratio:.83;object-fit:cover}.journal-margin>a:not(.salon-textlink){display:block;color:inherit;text-decoration:none;border-top:1px solid var(--rule);padding:22px 0}.journal-margin small{font-size:12px;color:var(--mute)}.journal-margin h3{font-size:23px;margin:10px 0 0}.journal-margin .salon-textlink{margin-top:15px}.journal-main:hover h3,.journal-margin>a:hover h3{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:7px}
/* A real change of room: dark plum cabinet, large cards, small reference shelf. */
.tarot-cabinet{background:var(--wine-dark);color:#efe6d5;display:grid;grid-template-columns:.9fr 1.2fr;gap:30px 6%;padding:95px clamp(24px,7vw,112px) 0;overflow:hidden}.cabinet-title .section-overline{color:#c7b59a}.cabinet-title h2{font-size:clamp(38px,4vw,59px);margin-bottom:22px}.cabinet-title>p:not(.section-overline){color:#d1c4b2;font-size:16px;line-height:2;margin-bottom:30px}.cabinet-cards{display:flex;position:relative;align-items:center;justify-content:center;min-height:445px;padding:30px 25px 45px}.cabinet-card{margin:0;width:36%;position:relative;flex-shrink:0;transition:transform .6s cubic-bezier(.2,.7,.2,1)}.cabinet-card img{width:100%;height:auto;aspect-ratio:.59;object-fit:cover;border:6px solid #d9cdb7;box-shadow:0 20px 30px #130b1260}.cabinet-card figcaption{font-size:12px;letter-spacing:.15em;text-align:center;padding-top:12px;color:#dcc7a4}.card-left{transform:rotate(-13deg) translateY(15px);z-index:1;margin-right:-12%}.card-middle{transform:translateY(-18px);z-index:3}.card-right{transform:rotate(13deg) translateY(15px);z-index:2;margin-left:-12%}.cabinet-cards:hover .card-left{transform:rotate(-18deg) translate(-12px,8px)}.cabinet-cards:hover .card-right{transform:rotate(18deg) translate(12px,8px)}.cabinet-index{grid-column:1/-1;display:flex;justify-content:space-between;gap:20px;border-top:1px solid #7e6b65;padding:28px 0}.cabinet-index a{color:#efe6d5;text-decoration:none;font-size:14px;min-height:44px;display:flex;align-items:center}.cabinet-index a:hover{text-decoration:underline;text-underline-offset:6px}.salon-review{padding:85px 24px 95px;text-align:center;border-bottom:1px solid var(--rule)}.review-mark{font-family:var(--display);font-size:85px;line-height:.8;color:var(--copper)}.salon-review blockquote{font-family:var(--serif);font-size:clamp(21px,2.1vw,30px);line-height:1.9;margin:20px auto 24px;max-width:900px}.salon-review>a{font-size:12px;color:var(--mute);text-underline-offset:5px}.salon-invitation{display:grid;grid-template-columns:1.3fr .8fr;gap:13%;align-items:center;max-width:1240px;margin:0 auto;padding:90px clamp(24px,6vw,85px)}.salon-invitation h2{font-size:clamp(40px,4.4vw,64px);margin-bottom:33px}.invitation-art{margin:0;transform:rotate(3deg)}.invitation-art img{width:100%;aspect-ratio:1;object-fit:cover;padding:10px;border:1px solid var(--rule);background:var(--sheet)}.invitation-art figcaption{font-size:12px;margin-top:10px;color:var(--mute)}
/* Shared page and article furniture, with legible long-form reading. */
.site-footer{background:#382730;color:#efe4d2;padding-top:65px}.footer-name{font-size:32px}.site-footer .fine{color:#d6c5b3}.site-footer a{color:#f1e4d1}.site-footer .bottom{border-color:#715b5c}.footer-signature{font-family:var(--display);font-size:clamp(42px,10.3vw,170px);font-weight:400;line-height:1.1;letter-spacing:.055em;border-top:1px solid #715b5c;padding:35px 0 20px;margin-top:35px;text-align:center;overflow:hidden}.site-footer .theme-toggle{color:#f1e4d1;border-color:#a2897b;min-height:44px}.page-head{padding-block:55px 45px}.page-head h1{font-size:clamp(34px,4.4vw,62px);line-height:1.4;max-width:19em}.page-head .lead{font-size:17px;max-width:43em;color:var(--ink-2)}.page-ribbon{height:220px}.page-head.prose{max-width:850px}.prose{max-width:750px;line-height:2.12}.prose>h2{margin-top:52px;color:var(--ink);font-size:28px}.prose>.article-deck{font-size:21px}.prose .essay-photo img{max-height:480px}.section{padding-block:80px}.prose .source-note{color:var(--mute)}.faq-item{border-bottom:1px solid var(--rule)}.faq-item summary{padding-block:18px}.page-home .reveal{opacity:1;transform:none}.reading-progress{position:fixed;top:0;left:0;height:2px;width:100%;background:var(--copper);z-index:50;transform-origin:left;transform:scaleX(0)}.prose .library-static details{content-visibility:auto;contain-intrinsic-size:auto 72px}
/* Interior layouts */
.page-sessions .page-head{border-bottom:1px solid var(--rule)}.service-ledger{border-top:1px solid var(--rule-strong)}.service-row{display:grid;grid-template-columns:.7fr 1.5fr auto;gap:30px;padding:32px 0;border-bottom:1px solid var(--rule);align-items:start}.service-row h3{font-size:26px}.service-row p{font-size:15px;margin-bottom:12px}.service-row .price{font-family:var(--display);font-size:42px;line-height:1.2}.service-meta{color:var(--mute);font-size:13px}.session-itinerary{padding-left:24px;max-width:780px}.session-itinerary li{padding:16px 0 18px 15px;border-bottom:1px solid var(--rule)}.booking-facts{display:grid;grid-template-columns:1fr 2fr;border-top:1px solid var(--rule);gap:0}.booking-facts dt,.booking-facts dd{padding:18px 0;margin:0;border-bottom:1px solid var(--rule)}.journal-masthead{position:relative}.journal-cover{display:grid;grid-template-columns:1.4fr 1fr;gap:60px;align-items:center}.journal-cover img{width:100%;aspect-ratio:1.2;object-fit:cover}.journal-cover h2{font-size:42px}.journal-columns{display:grid;grid-template-columns:1fr 1fr;gap:60px}.journal-index{list-style:none;margin:0;padding:0}.journal-index li{border-top:1px solid var(--rule);padding:22px 0}.journal-index a{color:inherit;text-decoration:none}.journal-index h3{font-size:23px;margin-bottom:10px}.journal-index p{color:var(--ink-2);font-size:14px}.archive-details{border-top:1px solid var(--rule);margin-top:28px}.archive-details>summary{cursor:pointer;padding:20px 0;font-family:var(--serif);font-size:22px}.monthly-ledger{list-style:none;padding:0}.monthly-ledger li{padding:20px 0;border-bottom:1px solid var(--rule)}.lesson-frontispiece{display:grid;grid-template-columns:.7fr 1fr;align-items:center;gap:10%;max-width:1040px;margin:auto}.lesson-frontispiece figure{margin:0;background:var(--paper-2);padding:35px;border:1px solid var(--rule)}.lesson-frontispiece img{max-height:380px;width:auto;margin:auto}.lesson-caption{font-size:12px;color:var(--mute);margin-top:18px}.learning-path{list-style:none;padding:0;counter-reset:lesson;max-width:1000px}.learning-path li{counter-increment:lesson;display:grid;grid-template-columns:70px 1fr;border-top:1px solid var(--rule);padding:25px 0;gap:24px}.learning-path li:before{content:counter(lesson,upper-roman);font:36px var(--display);color:var(--copper)}.learning-path a{text-decoration:none;color:inherit}.reference-desk{display:grid;grid-template-columns:1fr 1fr;gap:45px}.book-shelf{display:flex;gap:20px;flex-wrap:wrap}.book-shelf a{padding:20px;border:1px solid var(--rule);color:inherit;text-decoration:none;flex:1 1 180px}.study-directory{border-top:1px solid var(--rule)}.directory-row{display:grid;grid-template-columns:80px 1fr auto;gap:25px;padding:30px 0;border-bottom:1px solid var(--rule);align-items:center;text-decoration:none;color:inherit}.study-number{font:42px var(--display);color:var(--copper)}
@keyframes folio-open{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}
@media(min-width:1700px){.salon-layout{gap:12%}.salon-copy h1{font-size:94px}.salon-painting{max-width:580px}}
@media(max-width:1050px){.nav{gap:18px}.site-header .bar{gap:20px}.salon-layout{gap:6%}.salon-copy h1{font-size:62px}.salon-script{font-size:23px}.salon-intro br{display:none}.salon-intro{max-width:25em}.conversation{gap:7%;padding-inline:6vw}.reading-room{gap:6%;grid-template-columns:.8fr 1.2fr}.reading-option summary>span:first-child{font-size:22px}.reading-option-body{grid-template-columns:110px 1fr;gap:20px}.reading-option-body img{width:110px;height:160px}.journal-spread-title{grid-template-columns:1fr 2fr}.journal-spread-title>p:last-child{display:none}.cabinet-cards{min-height:365px}.service-row{grid-template-columns:.7fr 1.5fr}.service-row>.actions,.service-row>.btn{grid-column:2}.journal-cover{gap:35px}}
@media(max-width:760px){.site-header .bar{min-height:74px;gap:12px}.site-header .wrap{padding-inline:18px}.brand .mark{width:30px;height:30px}.brand .zh{font-size:19px}.brand .en{font-size:9px}.header-book{padding:8px 12px;font-size:12px!important}.menu summary{min-height:44px;min-width:44px;display:flex;align-items:center;justify-content:center}.salon-topline{font-size:10px;letter-spacing:.07em;padding-top:20px}.salon-layout{grid-template-columns:1fr;gap:39px;padding:32px 0 28px}.salon-copy{padding:0}.salon-script{font-size:21px;margin-bottom:18px}.salon-copy h1{font-size:clamp(48px,12.8vw,78px);line-height:1.35;margin-bottom:21px}.salon-intro{font-size:15px;line-height:1.95;max-width:28em}.salon-invite{font-size:14px;margin-bottom:25px}.salon-price{font-size:11px;margin-top:14px}.salon-copy .actions{gap:24px}.salon-painting{max-width:470px;width:88%;justify-self:end;margin-right:5px;padding-right:10px}.painting-frame img{aspect-ratio:1.02;object-position:50% 46%}.painting-seal{width:56px;height:56px;right:-12px;bottom:58px}.salon-painting figcaption{font-size:9px}.salon-painting figcaption span{font-size:13px}.salon-bottom{padding:10px 0 15px;font-size:11px}.salon-bottom p{display:block;text-align:right}.salon-bottom p span{display:block;font-size:13px}.salon-flower{display:none}.conversation{grid-template-columns:1fr;gap:40px;padding:65px 26px 75px}.conversation-art{max-width:270px;order:2}.conversation-copy h2{font-size:36px}.conversation-copy p:not(.section-overline){font-size:15px}.conversation-copy{max-width:540px;margin:auto}.reading-room{grid-template-columns:1fr;gap:35px;padding:60px 26px}.reading-room-heading h2{font-size:34px;margin-bottom:18px}.reading-room-heading .section-overline{margin-bottom:18px}.reading-option summary{gap:14px;padding:22px 0;grid-template-columns:1fr auto 22px}.reading-option summary>span:first-child{font-size:22px}.reading-option summary small{font-size:11px}.reading-option-body{grid-template-columns:95px 1fr;gap:18px}.reading-option-body img{width:95px;height:160px}.reading-option-body p{font-size:14px}.reading-option-body .service-rate{font-size:16px}.journal-spread{grid-template-columns:1fr;gap:40px;padding:65px 26px}.journal-spread-title{display:block;margin-bottom:0;padding-bottom:24px}.journal-spread-title .section-overline{margin-bottom:12px}.journal-spread-title h2{font-size:42px}.journal-main img{aspect-ratio:1.13}.journal-main-caption{grid-template-columns:1fr;gap:12px;padding-top:23px}.journal-main-caption>span{padding-top:0}.journal-main-caption h3{font-size:34px}.journal-main-caption>p{grid-column:1;font-size:14px}.journal-margin{padding:0;display:grid;grid-template-columns:1fr 1.3fr;gap:0 25px}.journal-vignette{width:100%;margin:0;grid-row:1/4;align-self:center}.journal-margin>a:not(.salon-textlink){padding:17px 0}.journal-margin h3{font-size:20px}.journal-margin small{font-size:11px}.journal-margin .salon-textlink{font-size:12px;gap:8px;margin-top:5px}.tarot-cabinet{grid-template-columns:1fr;gap:15px;padding:60px 26px 0}.cabinet-title h2{font-size:40px}.cabinet-cards{min-height:370px;max-width:470px;width:100%;margin:auto;padding:40px 25px}.cabinet-card{width:37%}.cabinet-index{display:grid;grid-template-columns:1fr 1fr;padding:18px 0;gap:5px 22px}.cabinet-index a{font-size:13px}.salon-review{padding:60px 22px}.salon-review blockquote{font-size:21px}.salon-invitation{padding:65px 26px;grid-template-columns:1fr;gap:40px}.salon-invitation h2{font-size:44px;margin-bottom:25px}.invitation-art{max-width:230px;justify-self:end;margin-right:15px}.salon-invitation .actions{gap:20px}.salon-invitation .salon-textlink{font-size:13px}.section{padding-block:60px}.page-head{padding-block:38px 30px}.page-head h1{font-size:34px}.page-head .lead{font-size:16px}.page-ribbon{height:165px}.prose{font-size:16px}.prose>h2{font-size:25px}.footer-signature{font-size:10.2vw;letter-spacing:.015em;margin-top:28px;padding-block:25px}.footer-top{gap:26px}.footer-name{font-size:29px}.service-row{grid-template-columns:1fr;gap:14px}.service-row>.actions,.service-row>.btn{grid-column:1}.service-row .price{font-size:35px}.booking-facts{grid-template-columns:1fr}.booking-facts dt{border-bottom:0;padding-bottom:0;font-weight:700}.booking-facts dd{padding-top:7px}.journal-cover,.journal-columns,.lesson-frontispiece,.reference-desk{grid-template-columns:1fr;gap:30px}.journal-cover h2{font-size:34px}.lesson-frontispiece figure{max-width:290px;justify-self:center;padding:22px}.lesson-frontispiece img{max-height:290px}.learning-path li{grid-template-columns:40px 1fr;gap:16px}.directory-row{grid-template-columns:50px 1fr;gap:15px}.directory-row>:last-child{grid-column:2}.study-number{font-size:34px}}
@media(max-width:360px){.brand .mark{display:none}.salon-hero{padding-inline:20px}.salon-copy h1{font-size:46px}.salon-copy .actions{gap:15px}.btn{padding:12px 18px;gap:15px}.reading-option summary{grid-template-columns:1fr 20px}.reading-option summary small{display:none}.cabinet-cards{min-height:320px}.salon-invitation .actions{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.reading-option-body{animation:none}.cabinet-card,.cabinet-cards:hover .cabinet-card{transition:none}.art-reveal img{transform:none!important}.reveal{opacity:1!important;transform:none!important}.motion-control{display:none!important}}
/* Interior pass: actual content topology, rather than matching boxes. */
.service-ledger{display:grid;grid-template-columns:.8fr 1.6fr;gap:70px;padding-top:32px}.service-label{max-width:340px}.service-label h2{font-size:34px;margin-bottom:22px}.service-label p{font-size:15px;margin-bottom:20px}.service-row{grid-template-columns:.85fr 1.2fr;gap:35px;padding-block:30px}.service-row:first-child{padding-top:0}.service-meta{color:var(--ink)}.service-row .price{font-size:35px;margin:13px 0}.service-row .fine{font-size:12px}.service-note{padding:25px 0;font-size:14px;line-height:1.9}.service-note h3{font-size:23px;margin-bottom:15px}.service-written{background:var(--paper-2)}.service-business{background:var(--wine-dark);color:#ede4d7}.service-business .service-ledger{border-color:#8d7971}.service-business .service-row{border-color:#8d7971}.service-business .service-meta{color:#ede4d7}.service-business .eyebrow,.service-business .fine{color:#d4c2b1}.service-business a{color:#e4c9aa}.session-itinerary{display:grid;grid-template-columns:.8fr 1.6fr;gap:70px;max-width:1380px;padding-left:clamp(22px,5.6vw,90px)}.itinerary-list{list-style:decimal;padding-left:22px;margin:0}.itinerary-list h3{font-size:23px;margin-bottom:10px}.itinerary-list p{font-size:15px;color:var(--ink-2)}.session-practical{background:var(--paper-2)}.booking-facts{grid-template-columns:.8fr 1.6fr;gap:70px;border:0}.booking-facts .facts{margin:0}.booking-facts .facts>div{display:grid;grid-template-columns:110px 1fr;gap:22px;border-top:1px solid var(--rule)}.booking-facts dt,.booking-facts dd{border:0;padding-block:20px;font-size:14px}.service-jumps a{min-height:44px;display:flex;align-items:center}.service-heading{padding-bottom:25px}.journal-feature{padding-top:20px}.journal-cover-copy h2{margin-bottom:22px}.journal-cover-copy h2 a{color:inherit;text-decoration:none}.journal-cover-copy p{font-size:15px;margin-bottom:22px}.journal-cover-image{text-decoration:none;color:var(--mute)}.journal-cover-image>span{display:block;font-size:11px;margin-top:8px}.journal-columns{grid-template-columns:.7fr 1.4fr;gap:9%}.journal-side-note h2{font-size:36px;margin-bottom:22px}.journal-side-note>p:not(.eyebrow){font-size:15px;color:var(--ink-2)}.journal-still{margin:35px 0 0;max-width:300px}.journal-still img{width:100%;aspect-ratio:1;object-fit:cover}.journal-still figcaption{font-size:12px;margin-top:10px;color:var(--mute)}.journal-index li>a{display:grid;grid-template-columns:1fr 24px;gap:6px 24px}.journal-entry-kind{font-size:11px;color:var(--mute);grid-column:1}.journal-entry-copy{grid-column:1}.journal-entry-arrow{grid-column:2;grid-row:1/3;align-self:center;color:var(--copper)}.journal-index li a:hover h3{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}.journal-before{background:var(--sage)}.journal-before .editorial-heading{align-items:start}.journal-before .editorial-heading>p{max-width:25em;font-size:15px}.journal-compact li>a{grid-template-columns:100px 1fr 25px;align-items:center;gap:25px}.journal-compact .journal-entry-kind{grid-column:1;grid-row:1}.journal-compact .journal-entry-copy{grid-column:2}.journal-compact .journal-entry-arrow{grid-column:3;grid-row:1}.journal-compact h3{font-size:22px}.journal-compact p{margin:8px 0 0}.journal-monthly{background:var(--paper-2)}.monthly-ledger{display:grid;grid-template-columns:150px 1fr;gap:30px;margin-top:30px}.monthly-ledger>h3{font:60px var(--display);color:var(--copper)}.month-list{list-style:none;margin:0;padding:0}.month-list li{display:grid;grid-template-columns:100px 1fr;gap:30px}.month-number{font-family:var(--display);font-size:30px}.month-list a{font-family:var(--serif);text-decoration:none;font-size:20px;color:inherit;display:inline-block;margin-bottom:10px}.lesson-opening{padding-top:20px}.lesson-caption{font-size:16px;color:var(--ink-2);margin:0}.lesson-caption h2{font-size:38px;margin-bottom:22px;color:var(--ink)}.lesson-caption>p{margin-bottom:20px}.lesson-caption .fine{margin-top:17px}.lesson-card-plate figcaption{text-align:center;margin-top:18px;font-size:12px;color:var(--mute)}.learning-path{display:grid;grid-template-columns:.8fr 1.6fr;gap:70px;max-width:1380px}.learning-path-list{padding:0;margin:0;list-style:none}.learning-path-list li:before{content:none}.path-number{font:35px var(--display);color:var(--copper)}.learning-path-list li{padding:25px 0;grid-template-columns:50px 1fr;gap:22px}.learning-path-list h3{font-size:24px}.learning-path-list p{font-size:15px;margin-top:12px;color:var(--ink-2)}.learn-path{background:var(--paper-2)}.learn-course{background:var(--wine-dark);color:#f1e6d7}.course-invitation{display:grid;grid-template-columns:.7fr 1.4fr;gap:9%;align-items:center}.course-number{font-family:var(--display);font-size:clamp(130px,18vw,260px);line-height:1;justify-self:center;color:#d2b896}.learn-course .eyebrow,.learn-course .fine{color:#d6c2ad}.learn-course h2{font-size:36px;margin-bottom:20px}.learn-course p{margin-bottom:22px}.learn-course .btn{color:#f1e6d7;border-color:#a28d80}.reference-desk{grid-template-columns:.8fr 1.6fr;gap:70px}.reference-index{margin:0}.reference-index>div{display:grid;grid-template-columns:.8fr 1.4fr;gap:30px;padding:24px 0;border-top:1px solid var(--rule)}.reference-index dt a{font-family:var(--serif);font-size:24px;color:inherit;text-decoration:none}.reference-index dd{margin:0;font-size:15px;color:var(--ink-2)}.reference-index dd>a{display:block;margin-top:10px}.learning-columns{display:grid;grid-template-columns:1.1fr 1fr;gap:70px;align-items:center}.learning-deck-photo{margin:0}.learning-deck-photo img{width:100%;aspect-ratio:1.1;object-fit:cover;padding:7px;border:1px solid var(--rule)}.learning-deck-photo figcaption{font-size:12px;margin-top:12px;color:var(--mute)}.reading-links{list-style:none;padding:0;margin-top:30px}.reading-links li{padding:20px 0;border-bottom:1px solid var(--rule)}.reading-links a{font-family:var(--serif);font-size:22px;text-decoration:none;color:inherit}.reading-links p{font-size:14px;margin-top:10px;color:var(--ink-2)}.learn-books{background:var(--sage)}.book-shelf{display:block}.book-shelf header{max-width:650px;margin-bottom:35px}.book-shelf header p{margin-top:18px}.book-shelf-links{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-block:1px solid var(--rule-strong)}.book-shelf-links a{border:0;border-right:1px solid var(--rule-strong);padding:30px;display:grid;gap:18px}.book-shelf-links a:last-child{border:0}.book-shelf-links span{font-size:12px}.book-shelf-links strong{font-family:var(--serif);font-weight:500;font-size:25px}.book-shelf-links small{font-size:14px}.directory-row{grid-template-columns:80px 1fr 165px;gap:45px;padding-block:40px}.directory-row h2{font-size:32px;margin-bottom:20px}.directory-copy{max-width:720px}.directory-copy p{font-size:15px;margin-bottom:22px}.directory-copy .fine{margin-top:18px;font-size:12px}.directory-card{margin:0;text-align:center}.directory-card img{max-height:240px;width:auto;margin:auto}.directory-card figcaption{font-size:12px;color:var(--mute);margin-top:10px}.study-tool-links{display:grid;grid-template-columns:1fr 1fr;gap:30px 70px;list-style:none;padding:0;margin-top:35px}.study-tool-links a{display:block;border-top:1px solid var(--rule);padding-top:22px;text-decoration:none;color:inherit}.study-tool-links h3{font-size:25px}.study-tool-links p{font-size:15px;margin-top:15px}.brand .mark{mix-blend-mode:normal}.tarot-hub .answer-box{font-size:17px}.tarot-topic{margin-bottom:40px}
@media(max-width:1050px){.service-ledger,.session-itinerary,.booking-facts,.learning-path,.reference-desk{gap:40px;grid-template-columns:.75fr 1.4fr}.service-row{grid-template-columns:1fr;gap:16px}.service-row>.actions,.service-row>.btn{grid-column:auto}.journal-cover-copy h2{font-size:34px}.journal-columns{gap:50px}.reference-index>div{grid-template-columns:1fr;gap:12px}.directory-row{grid-template-columns:60px 1fr 120px;gap:25px}}
@media(max-width:760px){.service-ledger,.session-itinerary,.booking-facts,.learning-path,.reference-desk,.journal-columns,.course-invitation,.learning-columns{grid-template-columns:1fr;gap:32px}.service-ledger{padding-top:25px}.service-label{max-width:none}.service-label h2{font-size:31px}.service-row{grid-template-columns:1fr;padding:25px 0;gap:13px}.service-row h3{font-size:25px}.service-meta .price{margin:10px 0}.service-label p:last-child{margin-bottom:0}.service-note{padding-bottom:0}.service-entries .service-row:first-child{border-top:1px solid var(--rule);padding-top:25px}.service-business .service-row{border-top:1px solid #8d7971;padding-top:25px}.session-itinerary{max-width:none;padding-inline:26px}.booking-facts .facts>div{grid-template-columns:1fr;gap:0}.booking-facts dt{padding:18px 0 0}.booking-facts dd{padding:8px 0 18px}.journal-cover{gap:26px}.journal-cover-copy h2{font-size:34px}.journal-cover-image img{aspect-ratio:1.3}.journal-still{max-width:230px;margin-left:auto}.journal-compact li>a{grid-template-columns:1fr 24px;gap:8px 15px}.journal-compact .journal-entry-kind{grid-column:1;grid-row:1}.journal-compact .journal-entry-copy{grid-column:1}.journal-compact .journal-entry-arrow{grid-column:2;grid-row:1/3}.journal-index h3{font-size:22px}.monthly-ledger{grid-template-columns:1fr;gap:10px}.month-list li{grid-template-columns:50px 1fr;gap:22px}.month-number{font-size:24px}.month-list a{font-size:18px}.lesson-caption h2{font-size:30px}.lesson-caption{font-size:15px}.learning-path{padding-inline:26px}.course-number{font-size:115px;justify-self:start;line-height:.85}.course-invitation{gap:30px}.learn-course h2{font-size:30px}.reference-index>div{grid-template-columns:1fr;gap:10px}.learning-columns{gap:35px}.learning-deck-photo{max-width:360px}.book-shelf-links{grid-template-columns:1fr}.book-shelf-links a{border-right:0;border-bottom:1px solid var(--rule-strong);padding:24px 0;gap:14px}.directory-row{grid-template-columns:45px 1fr;gap:20px}.directory-row>:last-child{grid-column:2}.directory-row h2{font-size:27px}.directory-card{max-width:130px;margin:10px 0 0 auto}.study-tool-links{grid-template-columns:1fr;gap:24px}.journal-monthly .editorial-heading>p{font-size:14px}}
.service-quick-price{font-family:var(--serif);font-size:17px;line-height:1.9;margin-top:22px;color:var(--ink)}
@media(max-width:760px){.service-heading .lead{margin-top:12px}.service-heading .service-quick-price{font-size:16px;margin-top:14px}.service-heading .service-jumps{margin-top:16px}.service-heading .eyebrow{margin-bottom:5px}.service-heading h1{margin-bottom:4px}}
.learn-front-door{display:grid;grid-template-columns:1.15fr .8fr;gap:20px 12%;padding-block:50px 65px;align-items:start}.learn-front-door .learn-heading{grid-column:1;grid-row:1}.learn-front-door .learn-heading h1{font-size:clamp(40px,4vw,58px);margin-bottom:15px}.learn-front-door .learn-heading .lead{font-size:16px;margin-top:20px}.learn-front-door .lesson-caption{grid-column:1;grid-row:2}.learn-front-door .lesson-caption h2{font-size:23px;margin-bottom:15px}.learn-front-door .lesson-caption>.eyebrow{display:none}.learn-front-door .lesson-caption p{font-size:15px;max-width:36em;margin-bottom:16px}.learn-front-door .lesson-card-plate{grid-column:2;grid-row:1/3;margin:40px 0 0;padding:40px;border:1px solid var(--rule-strong);background:var(--paper-2);align-self:center}.learn-front-door .lesson-card-plate img{height:410px;width:auto;margin:auto;box-shadow:0 12px 22px #352b2b18}.learn-front-door .lesson-card-plate figcaption{margin-top:22px}.journal-masthead{display:grid;grid-template-columns:1fr 1fr;gap:15px 60px;align-items:center}.journal-masthead .crumbs{grid-column:1/-1;margin-bottom:15px}.journal-masthead .eyebrow{grid-column:1;margin-bottom:0}.journal-masthead h1{grid-column:1;grid-row:3}.journal-masthead .lead{grid-column:2;grid-row:2/4;margin:0;padding-top:10px}.journal-masthead .category-nav{grid-column:1/-1;margin-top:20px}.page-sessions .page-head{display:block}.page-sessions .page-head h1{margin-block:15px}.page-sessions .page-head .eyebrow{margin-bottom:10px}
@media(max-width:760px){.learn-front-door{grid-template-columns:1fr;gap:28px;padding-block:36px 55px}.learn-front-door .learn-heading{grid-column:1;grid-row:1}.learn-front-door .learn-heading h1{font-size:36px}.learn-front-door .lesson-card-plate{grid-column:1;grid-row:2;margin:0;max-width:250px;padding:25px;justify-self:center}.learn-front-door .lesson-card-plate img{height:285px;max-width:100%}.learn-front-door .lesson-caption{grid-column:1;grid-row:3}.journal-masthead{display:block}.journal-masthead .eyebrow{margin:12px 0}.journal-masthead .lead{margin-top:20px}.journal-masthead .category-nav{margin-top:25px}.page-sessions .page-head{padding-top:30px}.page-sessions .page-head .crumbs{margin-bottom:15px}.page-sessions .page-head h1{margin-block:10px}}

.work-decisions-title{font-size:clamp(32px,3.6vw,50px)!important}

/* ---- 2026-10-01 合併版：全站畫作動態、頁首橫幅、服務插畫、關於我的航海圖與海 ---- */
.page-ribbon{position:relative;margin:0;overflow:hidden}
.motion-ok .page-ribbon img{animation:ribbon-breathe 26s ease-in-out infinite alternate;transform-origin:50% 62%}
@keyframes ribbon-breathe{from{transform:scale(1)}to{transform:scale(1.06)}}
.painting-frame,.service-art,.about-chart,.essay-photo.is-painting{position:relative}
.motes{position:absolute;left:0;top:0;pointer-events:none;mix-blend-mode:screen;z-index:1}
.motion-ok .will-reveal img{clip-path:inset(0 0 100% 0);transform:scale(1.07);transition:clip-path 1.25s cubic-bezier(.22,.7,.12,1),transform 1.9s cubic-bezier(.22,.7,.12,1)}
.motion-ok .will-reveal.is-revealed img{clip-path:inset(0);transform:none}
.service-art{margin:30px 0 0;max-width:430px;padding:7px;border:1px solid var(--gold);background:var(--paper-2)}
.service-art img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover}
.service-art figcaption{font-size:11px;color:var(--mute);padding-top:8px}
.about-chart{margin:0;padding:8px;border:1px solid var(--gold);outline:1px solid var(--gold);outline-offset:5px;background:var(--paper-2)}
.about-chart img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover}
.about-head{display:grid;grid-template-columns:1.1fr 1fr;gap:6%;align-items:center}
.about-split{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(28px,6vw,90px);align-items:center}
.sea-stage{position:relative;width:100%;aspect-ratio:5/4;display:grid;place-items:center}
.sea-stage canvas{position:absolute;inset:0;width:100%!important;height:100%!important}
.sea-stage .sea-fallback{width:120px;height:120px;border-radius:50%;opacity:.85}
.sea-stage.is-live .sea-fallback{display:none}
.compass-stage{position:relative;width:min(280px,80%);aspect-ratio:1;margin-top:26px;display:grid;place-items:center}
.compass-stage canvas{position:absolute;inset:0;width:100%!important;height:100%!important}
.compass-stage .sea-fallback{width:96px;height:96px;border-radius:50%;opacity:.85}
.compass-stage.is-live .sea-fallback{display:none}
@media(max-width:760px){.about-head,.about-split{grid-template-columns:1fr}.service-art{max-width:none}.sea-stage{aspect-ratio:4/3}}
@media(prefers-reduced-motion:reduce){.page-ribbon img{animation:none!important}}

.review-wall{margin:46px auto 0;max-width:1320px}
.review-wall .section-overline{margin-bottom:18px}
.review-strip{list-style:none;margin:0;padding:6px 4px 18px;display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin}
.review-strip li{flex:0 0 clamp(220px,24vw,300px);scroll-snap-align:center;padding:6px;border:1px solid var(--gold);background:var(--paper-2);transition:transform .5s cubic-bezier(.22,.7,.12,1)}
.review-strip img{display:block;width:100%;height:auto}
.motion-ok .review-strip li:hover{transform:translateY(-6px) rotate(-.6deg)}
.review-wall .fine{margin-top:10px}
@media(max-width:760px){.review-strip li{flex-basis:70vw}}

.comment-wall{margin:42px auto 0;max-width:1180px;text-align:left}
.comment-wall .section-overline{text-align:center;margin-bottom:20px}
.comment-list{list-style:none;margin:0;padding:0;columns:3 260px;column-gap:18px}
.comment-list li{break-inside:avoid;margin:0 0 18px}
.comment-list a{display:block;padding:18px 20px 14px;border:1px solid var(--rule);background:var(--paper-2);color:var(--ink);text-decoration:none;font-family:var(--serif);font-size:16px;line-height:1.85;transition:border-color .3s,transform .4s cubic-bezier(.22,.7,.12,1)}
.comment-list a small{display:block;margin-top:8px;font-family:inherit;font-size:11px;letter-spacing:.06em;color:var(--mute)}
.comment-list a:hover{border-color:var(--gold)}
.motion-ok .comment-list a:hover{transform:translateY(-3px)}
.comment-more{margin-top:4px}
.comment-more summary{cursor:pointer;text-align:center;font-size:13px;color:var(--mute);padding:10px 0 22px;list-style:none}
.comment-more summary::-webkit-details-marker{display:none}
.comment-more summary::after{content:' ＋'}
.comment-more[open] summary::after{content:' －'}
.review-strip a{display:block}
@media(max-width:760px){.comment-list a{font-size:15px}}

/* ---- 精緻動態（2026-10-01）：換頁淡入、頁首進場、清單依序浮現、細金線、視差、牌的立體感、按鈕光澤、手記縮圖 ---- */
@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){animation-duration:.42s;animation-timing-function:cubic-bezier(.22,.7,.12,1)}
.motion-ok{scroll-behavior:smooth}
@keyframes rise-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes rule-grow{from{background-size:0 1px}to{background-size:30px 1px}}
.motion-ok .page-head>:not(figure),.motion-ok .page-head>div>*{animation:rise-in .95s cubic-bezier(.22,.7,.12,1) both}
.motion-ok .page-head>:nth-child(2),.motion-ok .page-head>div>:nth-child(2){animation-delay:.07s}
.motion-ok .page-head>:nth-child(3),.motion-ok .page-head>div>:nth-child(3){animation-delay:.14s}
.motion-ok .page-head>:nth-child(4),.motion-ok .page-head>div>:nth-child(4){animation-delay:.21s}
.motion-ok .page-head>:nth-child(n+5),.motion-ok .page-head>div>:nth-child(n+5){animation-delay:.28s}
.motion-ok .page-head .eyebrow{background:linear-gradient(var(--gold),var(--gold)) 0 100%/30px 1px no-repeat;padding-bottom:7px;animation:rise-in .95s cubic-bezier(.22,.7,.12,1) both,rule-grow 1.4s .35s cubic-bezier(.22,.7,.12,1) both}
/* 捲進畫面時依序浮現（atelier.js 加上 .rise 與延遲） */
.motion-ok .rise{opacity:0;transform:translateY(18px);transition:opacity .9s ease,transform 1.15s cubic-bezier(.22,.7,.12,1)}
.motion-ok .rise.is-in{opacity:1;transform:none}
.motion-ok .eyebrow.draw{background:linear-gradient(var(--gold),var(--gold)) 0 100%/0 1px no-repeat;padding-bottom:7px;transition:background-size 1.3s .2s cubic-bezier(.22,.7,.12,1)}
.motion-ok .eyebrow.draw.is-in{background-size:30px 1px}
/* 視差：用獨立的 translate，不跟其他動畫的 transform 打架 */
.motion-ok .parallax img{translate:0 var(--py,0px);will-change:translate}
/* 按鈕：滑過時一道很淡的光澤 */
.btn-seal{background-image:linear-gradient(110deg,transparent 38%,rgba(255,238,205,.26) 50%,transparent 62%);background-size:260% 100%;background-position:130% 0;background-repeat:no-repeat;transition:background-color .3s,background-position 1s cubic-bezier(.22,.7,.12,1)}
.motion-ok .btn-seal:hover{background-position:-30% 0}
/* 文字連結：滑過時底線由左畫到右 */
.textlink{background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .6s cubic-bezier(.22,.7,.12,1)}
.motion-ok .textlink:hover{background-size:100% 1px}
/* 牌：滑過時微微立體 */
.tilt{transition:transform .6s cubic-bezier(.22,.7,.12,1),box-shadow .6s;transform-origin:50% 50%}
.tilt.is-tilting{transition:transform .12s linear,box-shadow .6s;box-shadow:0 18px 30px -18px #352b2b80}
/* 頁尾簽名：古典式進場，只播一次（atelier.js 第 4b 段）。沒播或播過都停在完成的樣子 */
.footer-signature.is-classic{font-weight:500;text-transform:uppercase;font-size:clamp(28px,7.4vw,124px);letter-spacing:.09em;line-height:1;padding:34px 0 38px;color:#efe4d2}
.sig-ornament{display:flex;align-items:center;justify-content:center;gap:clamp(6px,1.2vw,16px);margin:0 auto clamp(16px,2.2vw,30px);max-width:980px}
.sig-rule{flex:1 1 0;height:1px;background:linear-gradient(90deg,transparent,#c8a978)}
.sig-rule:last-child{background:linear-gradient(90deg,#c8a978,transparent)}
.sig-laurel{width:clamp(56px,8.5vw,118px);height:auto;flex:none;fill:none;stroke:#c8a978;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round;overflow:visible}
.sig-laurel-r{transform:scaleX(-1)}
.sig-rosette{width:clamp(24px,2.8vw,38px);height:auto;flex:none;fill:none;stroke:#e2c995;stroke-width:1.15;stroke-linejoin:round}
.sig-word{display:block;white-space:nowrap}
.sig-ch{display:inline-block}
.sig-sp{display:inline-block;width:.3em}
.sig-ready .sig-rule{transform:scaleX(0);transform-origin:100% 50%}
.sig-ready .sig-rule:last-child{transform-origin:0 50%}
.sig-ready .sig-laurel path{stroke-dasharray:1;stroke-dashoffset:1}
.sig-ready .sig-rosette{opacity:0;transform:rotate(-72deg) scale(.55)}
.sig-ready .sig-ch{opacity:0;transform:translateY(.3em) scale(1.04);filter:blur(9px)}
.sig-play .sig-rule{animation:sig-rule 1.5s cubic-bezier(.22,.7,.12,1) forwards}
.sig-play .sig-rosette{animation:sig-rosette 1.6s .15s cubic-bezier(.22,.7,.12,1) forwards}
.sig-play .sig-laurel path{animation:sig-draw 1.1s cubic-bezier(.45,.05,.2,1) forwards;animation-delay:calc(.35s + var(--i,0) * .12s)}
.sig-play .sig-ch{animation:sig-carve 1.4s var(--d,.5s) cubic-bezier(.22,.7,.12,1) forwards,sig-gild 1.2s var(--g,1.9s) ease-in-out}
@keyframes sig-rule{to{transform:scaleX(1)}}
@keyframes sig-rosette{to{opacity:1;transform:none}}
@keyframes sig-draw{to{stroke-dashoffset:0}}
@keyframes sig-carve{to{opacity:1;transform:none;filter:blur(0)}}
@keyframes sig-gild{0%,100%{color:#efe4d2;text-shadow:none}45%{color:#f4dba4;text-shadow:0 0 .32em rgba(226,190,120,.5)}}
@media(max-width:760px){.footer-signature.is-classic{font-size:8.6vw;letter-spacing:.06em;padding:26px 0 30px}.sig-laurel{width:46px}}
/* 手記縮圖 */
.journal-index li>a,.journal-compact li>a{grid-template-columns:132px 1fr 24px;gap:6px 24px;align-items:start}
.journal-thumb{grid-column:1;grid-row:1/3;display:block;aspect-ratio:3/2;overflow:hidden;padding:4px;border:1px solid var(--rule);background:var(--paper-2);transition:border-color .5s}
.journal-thumb img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 1.4s cubic-bezier(.22,.7,.12,1)}
.journal-thumb.is-card img{object-position:50% 28%}
.journal-index .journal-entry-kind,.journal-compact .journal-entry-kind{grid-column:2;grid-row:1}
.journal-index .journal-entry-copy,.journal-compact .journal-entry-copy{grid-column:2;grid-row:2}
.journal-index .journal-entry-arrow,.journal-compact .journal-entry-arrow{grid-column:3;grid-row:1/3;transition:transform .5s cubic-bezier(.22,.7,.12,1)}
.journal-index li a:hover .journal-thumb{border-color:var(--gold)}
.journal-index li a:hover .journal-thumb img{transform:scale(1.07)}
.journal-index li a:hover .journal-entry-arrow{transform:translate(3px,-3px)}
.journal-cover-image{overflow:hidden;display:block}
.journal-cover-image img{transition:transform 1.6s cubic-bezier(.22,.7,.12,1)}
.journal-cover-image:hover img{transform:scale(1.04)}
/* 手記頁首的星座：只在桌機旁邊畫，手機淡淡放在背景 */
.journal-masthead{position:relative}
.constellation{position:absolute;right:0;top:10px;width:min(420px,38%);aspect-ratio:1;pointer-events:none;z-index:0}
.journal-masthead>*{position:relative;z-index:1}
@media(max-width:760px){.journal-index li>a,.journal-compact li>a{grid-template-columns:94px 1fr 16px;gap:4px 14px}.constellation{width:70%;opacity:.45;top:40px}}
@media(prefers-reduced-motion:reduce){.motion-ok .rise{opacity:1;transform:none}}

/* 動畫畫布只負責畫，不接手勢：p5 2.x 會在畫布設 touch-action:none，手機上手指按在星圖上就捲不動 */
#orrery-mount canvas,.sea-stage canvas,.compass-stage canvas,.constellation,.motes{pointer-events:none!important;touch-action:auto!important}

/* 牌圖：直式的牌不裁切；流年計算 */
.essay-photo.card-figure{text-align:center}
.prose .essay-photo.card-figure img,.essay-photo.card-figure img{width:auto;max-width:240px;max-height:420px;height:auto;object-fit:contain;margin:0 auto;border-radius:10px;box-shadow:0 14px 28px -18px #352b2b90}
.year-calc{margin:28px 0 34px;padding:22px 24px;border:1px solid var(--gold);background:var(--paper-2)}
.year-calc .eyebrow{margin-bottom:12px}
.year-calc-fields{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:16px}
.year-calc-fields label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--ink-2)}
.year-calc-fields input{width:110px;padding:9px 10px;border:1px solid var(--rule-strong);background:var(--sheet);color:var(--ink);font:inherit;font-size:16px}
.year-calc-result{margin:16px 0 0;font-family:var(--serif);font-size:18px;line-height:1.8;min-height:1.8em}
.year-calc-result a{color:var(--seal);font-weight:700}
.motion-ok .year-calc-result.is-shown{animation:rise-in .7s cubic-bezier(.22,.7,.12,1) both}

/* 不裁掉圖：縮圖裡的牌整張顯示；頁首橫幅加高 */
.journal-thumb.is-card{background:var(--wine-dark)}
.journal-thumb.is-card img{object-fit:contain;object-position:center}
.page-ribbon{height:auto!important;aspect-ratio:2/1;max-height:480px}
.page-ribbon img{object-position:50% 55%}
@media(max-width:760px){.page-ribbon{aspect-ratio:16/10;max-height:none}}

.reading-voice{margin:26px 0 8px;padding:16px 0 0 18px;border-left:2px solid var(--gold)}
.reading-voice p{font-family:var(--serif);font-size:16px;line-height:1.85;margin:0 0 6px;color:var(--ink)}
.reading-voice a{font-size:11px;color:var(--mute);text-underline-offset:4px}
/* 頁首：中英切換與夜讀切換，桌機手機都放在頁首看得到的地方 */
.header-tools{display:flex;align-items:center;gap:8px;flex:none}
.lang-switch,.head-theme{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:0 12px;border:1px solid var(--rule-strong);border-radius:2px;background:transparent;color:var(--ink);font:500 12.5px/1 var(--sans);letter-spacing:.06em;text-decoration:none;cursor:pointer;transition:border-color .3s,background-color .3s,color .3s}
.lang-switch:hover,.head-theme:hover{border-color:var(--ink);background:var(--paper-2)}
.lang-switch{font-family:var(--display);font-size:14px;letter-spacing:.12em;min-width:42px}
.tt-icon{width:13px;height:13px;border-radius:50%;flex:none;box-shadow:inset -4px -3px 0 0 currentColor;transform:rotate(-25deg);transition:box-shadow .4s,transform .4s,background-color .4s}
[data-theme=dark] .tt-icon{width:9px;height:9px;background:currentColor;box-shadow:0 0 0 2px var(--paper),0 0 0 3.2px currentColor;transform:none}
@media(max-width:760px){.header-tools{gap:6px}.lang-switch,.head-theme{min-height:40px;padding:0 9px}.lang-switch{min-width:38px;font-size:13px}.head-theme .tt-label{display:none}.head-theme{width:40px}.site-header .bar{gap:8px}}
@media(max-width:360px){.header-book{padding:8px 8px}}
@media(max-width:430px){.brand,.header-book,.menu summary{white-space:nowrap}.brand{gap:7px}.brand .mark{width:28px;height:28px}.brand .zh{font-size:17px;letter-spacing:.06em}.lang-switch,.head-theme{min-height:38px;padding:0 7px}.lang-switch{min-width:36px;font-size:12.5px}.head-theme{width:38px}.header-book{padding:8px 9px;font-size:12px!important}.menu summary{min-width:42px;padding:6px 8px}.site-header .bar{gap:7px}.site-header .wrap{padding-inline:14px}}
/* 英文頁：標題換成古典襯線字，字距照拉丁字母的習慣收回來 */
html[lang=en] :is(h1,h2,h3,h4,.salon-script,.footer-name,blockquote){font-family:var(--display);letter-spacing:.005em;font-weight:500}
html[lang=en] :is(h1,h2){line-height:1.12}
html[lang=en] .salon-copy h1{font-size:clamp(52px,7.6vw,104px);line-height:1.02;letter-spacing:-.005em}
html[lang=en] .page-head h1{font-size:clamp(38px,4.8vw,68px)}
html[lang=en] .prose{line-height:1.85;hyphens:auto}
html[lang=en] .prose>h2{font-size:32px}
html[lang=en] .eyebrow,html[lang=en] .section-overline{letter-spacing:.14em}
@media(max-width:760px){html[lang=en] .salon-copy h1{font-size:clamp(44px,12vw,64px)}html[lang=en] .page-head h1{font-size:36px}html[lang=en] .prose>h2{font-size:27px}}
