:root{--bg:#111b29;--panel:#192536;--line:#344354;--ink:#f4efe6;--muted:#b2b9c1;--gold:#dcc296;--dark:#0d1520}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.7 system-ui,-apple-system,'Segoe UI',sans-serif}header{height:94px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 5vw;gap:20px}.brand{display:flex;gap:14px;align-items:center;color:var(--ink);letter-spacing:3px;font-size:18px;text-decoration:none}.brand small{display:block;font-size:12px;letter-spacing:2.5px;color:var(--gold)}.brand-mark{font-size:40px;color:var(--gold)}nav{display:flex;gap:22px;align-items:center}a{color:var(--gold);text-decoration:none}button,a{touch-action:manipulation}button{font:inherit;cursor:pointer;border:1px solid var(--line);border-radius:5px;padding:10px 18px;background:transparent;color:var(--ink)}button:hover{border-color:var(--gold);background:#ffffff08}button:disabled{opacity:.4;cursor:wait}button.primary,.primary{background:var(--gold);color:var(--dark);border-color:var(--gold);font-weight:650}button.danger{color:#ffb6a9}main{max-width:1250px;margin:auto;padding:40px 36px 70px;min-height:70vh}h1,h2,h3,p{margin-top:0}h1,h2{font-family:Georgia,'Noto Serif SC',serif;font-weight:400;line-height:1.3}h1{font-size:clamp(36px,4vw,64px);letter-spacing:2px}h2{font-size:32px}h3{font-size:19px;font-weight:500}.eyebrow{color:var(--gold);font-size:12px;letter-spacing:3px;text-transform:uppercase;margin-bottom:24px}.muted,small{color:var(--muted)}.hero{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;min-height:510px;gap:50px}.hero p{max-width:480px;font-size:16px;color:var(--muted);line-height:1.9}.actions{display:flex;gap:12px;flex-wrap:wrap;margin:24px 0}.hero-art{position:relative;min-height:430px;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse,#d5b98812,transparent 68%)}.orbit{width:365px;height:365px;border:1px solid #d5b98838;border-radius:50%;position:absolute}.orbit:after{content:'';position:absolute;inset:24px;border:1px dashed #d5b98829;border-radius:50%}.art-card{width:170px;height:276px;border:1px solid #ac9264;border-radius:80px 80px 7px 7px;background:linear-gradient(150deg,#253444,#101823);position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 24px 55px #0008;color:var(--gold);outline:1px solid #b49b6033;outline-offset:-9px}.art-card:first-of-type{transform:translateX(-90px) rotate(-17deg)}.art-card:last-of-type{transform:translateX(90px) rotate(17deg)}.art-card.center{z-index:2;transform:translateY(-15px)}.art-card b{font:70px Georgia;font-weight:400}.art-card small{letter-spacing:3px;color:var(--gold);font-size:12px;margin-top:30px}.strip{display:flex;justify-content:space-between;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:19px 0;color:var(--muted);gap:15px}.section-head{display:flex;justify-content:space-between;align-items:end;margin:50px 0 22px;gap:20px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:24px}.panel:hover{border-color:#766952}.num{font:32px Georgia;color:var(--gold);margin-bottom:15px}.panel p{color:var(--muted);font-size:14px}.panel button{margin-top:14px}.stack{display:grid;gap:16px}.two{display:grid;grid-template-columns:1fr 1fr;gap:22px}.narrow{max-width:650px;margin:20px auto}.wide{max-width:950px;margin:auto}.back{display:inline-block;margin-bottom:22px}.steps{color:var(--gold);font-size:12px;letter-spacing:2px;margin-bottom:24px}label{display:block;color:var(--muted);font-size:13px;margin:15px 0 6px}input,select,textarea{font:inherit;width:100%;color:var(--ink);background:var(--dark);border:1px solid var(--line);padding:12px;border-radius:5px}input[type=checkbox]{width:auto;margin-right:8px;accent-color:var(--gold)}textarea{min-height:100px;resize:vertical}input:focus,textarea:focus,select:focus,button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:3px}option{background:var(--dark)}.note{padding:14px 18px;border-left:2px solid var(--gold);background:#dcc29608;color:var(--muted);font-size:13px;margin:18px 0}.badge{display:inline-block;border:1px solid var(--line);border-radius:20px;padding:3px 10px;font-size:12px;color:var(--gold)}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:16px;margin:25px 0}.tarot{min-height:215px;border:1px solid #ad9566;padding:16px 10px;text-align:center;border-radius:5px;background:linear-gradient(145deg,#2c3945,#121b29);display:flex;align-items:center;justify-content:space-between;flex-direction:column}.tarot .symbol{font:52px Georgia;color:var(--gold)}.tarot .label{font-size:13px}.tarot small{font-size:12px}.reversed .symbol{transform:rotate(180deg)}.deck{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.deck button{width:58px;height:90px;background:repeating-linear-gradient(45deg,#dcc29608,#dcc29608 1px,transparent 1px,transparent 8px);color:var(--gold);font-size:24px;border-color:#7d6e55}.report{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.95}.tabs{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:24px}.tabs button.active{color:var(--dark);background:var(--gold)}.record{padding:20px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.record p{margin-bottom:8px}footer{border-top:1px solid var(--line);padding:35px 5vw;color:var(--muted);font-size:12px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);max-width:90vw;padding:14px 22px;border-radius:8px;background:var(--gold);color:var(--dark);box-shadow:0 8px 30px #0006;display:none;z-index:50}.contact-list{display:flex;gap:15px;flex-wrap:wrap}.qr{max-width:180px;max-height:180px}.admin-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.admin-grid .panel{padding:16px}.admin-grid b{font:30px Georgia;color:var(--gold);display:block}details{border-bottom:1px solid var(--line);padding:12px 0}summary{cursor:pointer;color:var(--gold)}.error{color:#ffbaab}.inline{display:flex;align-items:center;gap:12px}.check label{margin:0}.empty{text-align:center;padding:55px 20px;color:var(--muted)}@media(max-width:760px){header{height:auto;min-height:85px;flex-wrap:wrap;padding:16px 20px;gap:15px}nav{gap:13px;font-size:12px;flex-wrap:wrap}nav button{padding:5px 10px}main{padding:28px 20px 50px}.hero{grid-template-columns:1fr;gap:0}.hero-art{min-height:340px;order:2}.orbit{width:295px;height:295px}.art-card{width:140px;height:230px}.hero h1{font-size:38px}.grid,.two{grid-template-columns:1fr}.strip{font-size:12px;flex-wrap:wrap}.section-head{margin-top:32px}.cards{grid-template-columns:repeat(2,1fr)}.admin-grid{grid-template-columns:repeat(2,1fr)}h2{font-size:26px}.panel{padding:20px}}@media print{header,footer,button,.deck,.actions{display:none}body{background:white;color:black}.panel{background:white;border:1px solid #ccc}.muted,.report,small{color:black}.tarot{background:white;color:black}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* v0.2: supplied artwork, rule previews and course layouts */
.spread-tile h3{margin-top:18px}.layout-diagram{display:block;width:100%;max-width:480px;height:auto;max-height:70vh;margin:0 auto}.layout-diagram rect{fill:#172534;stroke-width:2}.layout-diagram .major-slot{stroke:var(--gold)}.layout-diagram .minor-slot{stroke:#81b8b5}.layout-diagram text{fill:var(--ink);font:15px system-ui}.layout-diagram .position-caption{font-size:15px;fill:var(--muted)}.layout-diagram .position-num{font:700 24px system-ui;fill:var(--ink)}.card-face{display:block;width:100%;height:100%;object-fit:contain;border-radius:5px}.face-frame{width:100%;aspect-ratio:276/428;max-width:190px;margin:10px auto}.reversed .card-face{transform:rotate(180deg)}.tarot{min-height:0;justify-content:flex-start;padding:12px 8px;background:#182433}.card-position{min-height:32px;color:var(--gold)}.cards.card-list{grid-template-columns:repeat(auto-fill,minmax(155px,1fr))}.empty-position{opacity:.4}.board-scroll{overflow-x:auto;margin:20px 0;border:1px solid var(--line);border-radius:8px}.spread-board{position:relative;margin:0 auto;background:radial-gradient(ellipse,#dcc29608,transparent)}.spread-board .tarot{position:absolute;width:130px;border:0;background:transparent;padding:0}.spread-board .face-frame{width:105px;margin:4px auto;aspect-ratio:276/428}.spread-board .card-position{font-size:12px;line-height:1.4;min-height:28px}.spread-board .label{font-size:12px;line-height:1.3}.spread-board .label small{font-size:12px}.spread-celtic .slot-2{z-index:2}.spread-celtic .slot-2 .face-frame{transform:rotate(90deg)}.spread-celtic .slot-2 .card-position{background:var(--bg)}.deck{justify-content:flex-start;max-height:335px;overflow-y:auto;padding:10px;border:1px solid var(--line);border-radius:6px;margin:18px 0}.deck button{position:relative;flex:0 0 54px;height:84px;padding:0;border:0;background:none}.deck img{width:100%;height:100%;object-fit:contain}.deck button span{position:absolute;bottom:2px;left:0;right:0;background:#111b29cf;font-size:12px;line-height:1.5}.deck button:hover{transform:translateY(-4px);filter:brightness(1.2)}.library-card{display:flex;gap:16px;align-items:flex-start}.library-card>img{width:100px;height:auto;object-fit:contain;border-radius:5px}.library-card h3{margin:8px 0}.library-card p{font-size:12px}.library-card b{color:var(--gold);font-size:12px}.library-card small{overflow-wrap:anywhere}.art-card{overflow:hidden}.art-card img{width:100%;height:100%;object-fit:contain}.card-list .crossed .face-frame{transform:none}@media(max-width:760px){.cards.card-list{grid-template-columns:repeat(2,minmax(0,1fr))}.library-card>img{width:115px}.layout-diagram{max-height:none}.deck button{flex-basis:46px;height:73px}.spread-board{margin:0}.card-position{font-size:12px}}

.spread-cross{width:650px;height:750px;}
.spread-cross .slot-1{left:270px;top:260px;}
.spread-cross .slot-2{left:270px;top:20px;}
.spread-cross .slot-3{left:90px;top:260px;}
.spread-cross .slot-4{left:450px;top:260px;}
.spread-cross .slot-5{left:270px;top:500px;}
.spread-line{width:960px;height:270px;}
.spread-line .slot-1{left:90px;top:20px;}
.spread-line .slot-2{left:270px;top:20px;}
.spread-line .slot-3{left:450px;top:20px;}
.spread-line .slot-4{left:630px;top:20px;}
.spread-line .slot-5{left:810px;top:20px;}
.spread-line{width:960px;height:270px;}
.spread-line .slot-1{left:90px;top:20px;}
.spread-line .slot-2{left:270px;top:20px;}
.spread-line .slot-3{left:450px;top:20px;}
.spread-line .slot-4{left:630px;top:20px;}
.spread-line .slot-5{left:810px;top:20px;}
.spread-pairs{width:650px;height:750px;}
.spread-pairs .slot-1{left:90px;top:20px;}
.spread-pairs .slot-2{left:270px;top:20px;}
.spread-pairs .slot-3{left:90px;top:260px;}
.spread-pairs .slot-4{left:270px;top:260px;}
.spread-pairs .slot-5{left:90px;top:500px;}
.spread-pairs .slot-6{left:270px;top:500px;}
.spread-choice{width:650px;height:990px;}
.spread-choice .slot-1{left:270px;top:20px;}
.spread-choice .slot-2{left:90px;top:260px;}
.spread-choice .slot-3{left:90px;top:500px;}
.spread-choice .slot-4{left:90px;top:740px;}
.spread-choice .slot-5{left:450px;top:260px;}
.spread-choice .slot-6{left:450px;top:500px;}
.spread-choice .slot-7{left:450px;top:740px;}
.spread-horseshoe{width:1005px;height:870px;}
.spread-horseshoe .slot-1{left:68px;top:20px;}
.spread-horseshoe .slot-2{left:202px;top:230px;}
.spread-horseshoe .slot-3{left:338px;top:440px;}
.spread-horseshoe .slot-4{left:472px;top:650px;}
.spread-horseshoe .slot-5{left:608px;top:440px;}
.spread-horseshoe .slot-6{left:742px;top:230px;}
.spread-horseshoe .slot-7{left:878px;top:20px;}
.spread-grid{width:650px;height:750px;}
.spread-grid .slot-1{left:90px;top:20px;}
.spread-grid .slot-2{left:270px;top:20px;}
.spread-grid .slot-3{left:450px;top:20px;}
.spread-grid .slot-4{left:90px;top:260px;}
.spread-grid .slot-5{left:270px;top:260px;}
.spread-grid .slot-6{left:450px;top:260px;}
.spread-grid .slot-7{left:90px;top:500px;}
.spread-grid .slot-8{left:270px;top:500px;}
.spread-grid .slot-9{left:450px;top:500px;}
.spread-celtic{width:780px;height:990px;}
.spread-celtic .slot-1{left:270px;top:260px;}
.spread-celtic .slot-2{left:270px;top:380px;}
.spread-celtic .slot-3{left:90px;top:260px;}
.spread-celtic .slot-4{left:450px;top:260px;}
.spread-celtic .slot-5{left:270px;top:20px;}
.spread-celtic .slot-6{left:270px;top:740px;}
.spread-celtic .slot-7{left:630px;top:740px;}
.spread-celtic .slot-8{left:630px;top:500px;}
.spread-celtic .slot-9{left:630px;top:260px;}
.spread-celtic .slot-10{left:630px;top:20px;}
.spread-annual{width:780px;height:990px;}
.spread-annual .slot-1{left:90px;top:260px;}
.spread-annual .slot-2{left:270px;top:260px;}
.spread-annual .slot-3{left:450px;top:260px;}
.spread-annual .slot-4{left:630px;top:260px;}
.spread-annual .slot-5{left:90px;top:500px;}
.spread-annual .slot-6{left:270px;top:500px;}
.spread-annual .slot-7{left:450px;top:500px;}
.spread-annual .slot-8{left:630px;top:500px;}
.spread-annual .slot-9{left:90px;top:740px;}
.spread-annual .slot-10{left:270px;top:740px;}
.spread-annual .slot-11{left:450px;top:740px;}
.spread-annual .slot-12{left:630px;top:740px;}
.spread-annual .slot-13{left:360px;top:20px;}
.spread-houses{width:990px;height:990px;}
.spread-houses .slot-1{left:465px;top:20px;}
.spread-houses .slot-2{left:659px;top:74px;}
.spread-houses .slot-3{left:801px;top:220px;}
.spread-houses .slot-4{left:852px;top:420px;}
.spread-houses .slot-5{left:801px;top:620px;}
.spread-houses .slot-6{left:659px;top:766px;}
.spread-houses .slot-7{left:465px;top:820px;}
.spread-houses .slot-8{left:271px;top:766px;}
.spread-houses .slot-9{left:129px;top:620px;}
.spread-houses .slot-10{left:78px;top:420px;}
.spread-houses .slot-11{left:129px;top:220px;}
.spread-houses .slot-12{left:271px;top:74px;}
.spread-three_paths{width:650px;height:1230px;}
.spread-three_paths .slot-1{left:270px;top:20px;}
.spread-three_paths .slot-2{left:90px;top:260px;}
.spread-three_paths .slot-3{left:90px;top:500px;}
.spread-three_paths .slot-4{left:90px;top:740px;}
.spread-three_paths .slot-5{left:90px;top:980px;}
.spread-three_paths .slot-6{left:270px;top:260px;}
.spread-three_paths .slot-7{left:270px;top:500px;}
.spread-three_paths .slot-8{left:270px;top:740px;}
.spread-three_paths .slot-9{left:270px;top:980px;}
.spread-three_paths .slot-10{left:450px;top:260px;}
.spread-three_paths .slot-11{left:450px;top:500px;}
.spread-three_paths .slot-12{left:450px;top:740px;}
.spread-three_paths .slot-13{left:450px;top:980px;}
.spread-quarters{width:650px;height:990px;}
.spread-quarters .slot-1{left:90px;top:20px;}
.spread-quarters .slot-2{left:270px;top:20px;}
.spread-quarters .slot-3{left:450px;top:20px;}
.spread-quarters .slot-4{left:90px;top:260px;}
.spread-quarters .slot-5{left:270px;top:260px;}
.spread-quarters .slot-6{left:450px;top:260px;}
.spread-quarters .slot-7{left:90px;top:500px;}
.spread-quarters .slot-8{left:270px;top:500px;}
.spread-quarters .slot-9{left:450px;top:500px;}
.spread-quarters .slot-10{left:90px;top:740px;}
.spread-quarters .slot-11{left:270px;top:740px;}
.spread-quarters .slot-12{left:450px;top:740px;}

/* v0.3: conversion-first pages and compact study library */
html{scroll-behavior:smooth}body{background:radial-gradient(900px 520px at 77% -8%,#33496342,transparent 65%),var(--bg)}header{position:sticky;top:0;z-index:20;background:#111b29eF;backdrop-filter:blur(14px);height:82px}header:after{content:'';position:absolute;bottom:-1px;left:5vw;right:5vw;border-bottom:1px solid #52637966}nav a{font-weight:650;letter-spacing:.2px;position:relative;padding:8px 0}nav a:after{content:'';position:absolute;left:0;right:0;bottom:1px;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .2s ease}nav a:hover:after{transform:scaleX(1)}main{max-width:1180px;padding-top:50px}.hero{min-height:470px}.hero h1{max-width:600px;text-wrap:balance}.hero-art{min-height:390px}.strip{margin-top:4px}.panel{box-shadow:0 12px 34px #060b1220;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.panel:hover{transform:translateY(-2px);box-shadow:0 18px 42px #060b1238}.spread-tile{display:flex;min-height:290px;flex-direction:column}.spread-tile button{margin-top:auto;align-self:flex-start}.spread-tile .note{padding:9px 11px;margin:12px 0}.section-head{margin-top:70px}#recommend-form{max-width:980px;padding:28px 30px;background:linear-gradient(120deg,#1d2b3d,#172332);border-color:#8e795252;box-shadow:0 18px 50px #050a1126}#recommend-form textarea{min-height:116px}.library-hero{display:flex;align-items:end;justify-content:space-between;gap:35px;margin:35px 0 22px}.library-hero h1{margin-bottom:15px}.library-hero p{max-width:720px;margin-bottom:0}.library-count{flex:0 0 155px;border:1px solid #b99f6a75;border-radius:10px;padding:18px 22px;background:#dcc2960c;color:var(--gold);display:flex;align-items:baseline;gap:10px}.library-count b{font:42px Georgia;font-weight:400}.library-count span{font-size:12px;letter-spacing:1px;text-transform:uppercase}.library-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0;margin-bottom:24px}.library-toolbar .tabs{margin:0}.search{display:flex;align-items:center;gap:8px;margin:0;color:var(--gold);border:1px solid var(--line);background:var(--dark);border-radius:6px;padding:0 11px;width:min(330px,100%)}.search input{padding:9px 0;border:0;background:transparent;outline:0}.search:focus-within{border-color:var(--gold)}#card-library{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.library-card{height:100%;gap:14px;padding:18px}.library-card>img{width:88px}.library-card h3{font-size:17px;margin:4px 0}.library-card p{line-height:1.55;margin:5px 0 10px}.library-card .meaning{border-top:1px solid #ffffff12;padding-top:9px}.library-card .meaning p{font-size:12px}.library-card b{display:inline-block;margin-top:2px}@media(max-width:900px){#card-library{grid-template-columns:repeat(2,minmax(0,1fr))}.library-toolbar{align-items:flex-start;flex-direction:column}.search{width:100%}}@media(max-width:760px){header{position:relative;height:auto}.hero{min-height:0}.hero-art{display:none}.hero{padding:18px 0 32px}.hero h1{font-size:42px}.section-head{margin-top:46px}#recommend-form{padding:20px}.library-hero{align-items:flex-start;flex-direction:column;margin-top:10px}.library-count{width:100%}.library-toolbar{gap:12px}.library-toolbar .tabs{overflow-x:auto;flex-wrap:nowrap;width:100%;padding-bottom:2px}.library-toolbar .tabs button{white-space:nowrap}.library-card{padding:13px;gap:10px;flex-direction:column}.library-card>img{width:100%;max-width:145px;align-self:center}.library-card h3{font-size:16px}.library-card .meaning p{font-size:12px}.panel:hover{transform:none}}

/* v0.4: visible studio contact, readable reports and personal-reader booking */
.contact-spotlight{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:26px 0 17px;padding:14px 16px;border:1px solid #b99f6a88;border-radius:9px;background:linear-gradient(110deg,#dcc2961a,#1a293980)}.contact-spotlight .eyebrow{margin:0 0 3px;font-size:12px}.contact-spotlight b{font-size:14px}.contact-pills{display:flex;gap:7px;flex:1;flex-wrap:wrap}.contact-pills a{display:inline-flex;align-items:center;gap:6px;border:1px solid #d6bd8b65;border-radius:999px;padding:6px 10px;color:var(--ink);font-size:12px}.contact-pills a:hover{background:#dcc29618}.contact-pills span{color:var(--gold);font-size:16px}.contact-spotlight>.primary{padding:8px 12px;font-size:12px}.report-panel{max-width:890px;margin:26px auto}.report{white-space:normal;max-width:790px;margin:0 auto;color:#e9e5dc;font-size:16px;line-height:1.95}.report>p{margin:0 0 17px}.report-section{padding:16px 0;border-top:1px solid #ffffff14}.report-section:first-child{border-top:0;padding-top:0}.report-section h3{font:500 20px/1.35 Georgia,'Noto Serif SC',serif;color:var(--gold);margin:0 0 10px}.report ul{margin:0 0 18px;padding-left:1.25em}.report li{padding-left:4px;margin:7px 0}.booking-page{max-width:720px}.booking-context{border-left:3px solid var(--gold);background:#dcc2960c;padding:13px 16px;margin:18px 0 22px;display:grid;gap:3px}.booking-context span,.booking-context small{color:var(--muted);font-size:12px}.reader-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;margin:10px 0 4px}.reader-options>div{padding:10px;border:1px solid #ffffff12;border-radius:6px;background:#ffffff05}.reader-options b,.reader-options small{display:block}.reader-options small{color:var(--muted);font-size:12px;line-height:1.5;margin-top:4px}.reader textarea{min-height:76px}#settings-form[data-tab="readers"]> .actions:last-child{display:none}@media(max-width:760px){.contact-spotlight{align-items:flex-start;flex-direction:column}.contact-pills{width:100%}.contact-spotlight>.primary{width:100%;text-align:center}.report{font-size:15px}.report-section h3{font-size:18px}}

/* v0.5: performance, accessibility and mobile navigation */
.hero-art .orbit{transform:none}.art-card.left{transform:translateX(-96px) translateY(8px) rotate(-15deg)}.art-card.right{transform:translateX(96px) translateY(8px) rotate(15deg)}.art-card.center{transform:translateY(-15px)}
.art-card img{display:block}
a.button{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:5px;padding:10px 18px;color:var(--ink)}a.button:hover{border-color:var(--gold);background:#ffffff08}a.button.primary{color:var(--dark);font-weight:650}
.h3{font-family:inherit;font-size:19px;font-weight:500;line-height:1.5}
.skip-link{position:absolute;left:12px;top:-60px;z-index:100;background:var(--gold);color:var(--dark);padding:10px 16px;border-radius:5px;font-weight:650}.skip-link:focus{top:12px}
main:focus{outline:none}
nav a[aria-current]{color:var(--ink)}nav a[aria-current]:after{transform:scaleX(1)}
.menu-toggle{display:none}
#toast{display:block;opacity:0;visibility:hidden;transform:translate(-50%,12px);transition:opacity .2s ease,transform .2s ease,visibility .2s}#toast.show{opacity:1;visibility:visible;transform:translate(-50%,0)}
.boot-loading{min-height:50vh;display:flex;align-items:center;justify-content:center;color:var(--muted);letter-spacing:2px}
.boot-loading:before{content:'✦';color:var(--gold);margin-right:10px;animation:spin 1.6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.deck button{transition:transform .15s ease,filter .15s ease}.deck button:focus-visible{outline:2px solid var(--gold);outline-offset:2px;transform:translateY(-4px)}
.tarot.fresh .face-frame{animation:reveal .55s cubic-bezier(.2,.7,.2,1)}@keyframes reveal{from{opacity:0;transform:perspective(600px) rotateY(80deg) scale(.92)}to{opacity:1;transform:none}}
.spread-celtic .slot-2.fresh .face-frame{animation:none}
img{max-width:100%;height:auto}.card-face,.deck img,.art-card img{height:100%}
@media(max-width:760px){
 header{position:sticky;top:0;z-index:30;display:flex;flex-wrap:wrap;align-items:center;min-height:64px;padding:10px 16px;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));gap:0;background:#111b29f2}
 .brand{font-size:15px;gap:10px}.brand-mark{font-size:30px}.brand small{font-size:12px}
 .menu-toggle{display:inline-flex;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;padding:0 11px;margin-left:auto;border-color:#ffffff1f}
 .menu-toggle span{display:block;height:2px;background:var(--ink);border-radius:2px;transition:transform .2s ease,opacity .2s ease}
 .menu-open .menu-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}.menu-open .menu-toggle span:nth-child(2){opacity:0}.menu-open .menu-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
 nav{display:none;flex-basis:100%;flex-direction:column;align-items:stretch;gap:0;padding:8px 0 6px;font-size:15px}
 .menu-open nav{display:flex}
 nav a{padding:12px 4px;border-bottom:1px solid #ffffff0f}nav a:after{display:none}nav a[aria-current]{color:var(--ink);border-left:2px solid var(--gold);padding-left:10px}
 nav button{margin-top:10px;padding:11px 14px;min-height:44px}
 main{padding:24px 16px 48px}
 button,a.button,select,input:not([type=checkbox]){min-height:44px}
 .hero{padding:4px 0 24px}.hero h1{font-size:36px}.hero p{font-size:15px}
 .hero-art{display:flex;min-height:250px;order:2;margin-top:8px}.orbit{width:230px;height:230px}.art-card{width:118px;height:183px;border-radius:56px 56px 6px 6px}
 .art-card.left{transform:translateX(-66px) translateY(6px) rotate(-15deg)}.art-card.right{transform:translateX(66px) translateY(6px) rotate(15deg)}
 .actions>*{flex:1 1 auto;justify-content:center;text-align:center}
 .strip{flex-direction:column;gap:6px;padding:14px 0}
 .deck{max-height:300px}
 #toast{bottom:max(18px,env(safe-area-inset-bottom));width:calc(100% - 32px);text-align:center}
 footer{padding:28px 16px calc(28px + env(safe-area-inset-bottom))}
}
@media print{.skip-link,.menu-toggle,#toast{display:none!important}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.boot-loading:before{animation:none}}
.board-scroll:has(.card-list){border:0;overflow:visible}
@media(max-width:760px){.library-count{flex:none;padding:12px 18px}.library-hero{gap:14px}}

/* v0.6: quick ask, pricing, readers, FAQ, guest trial, analytics */
.brand-name{text-transform:uppercase}
.quick-ask{max-width:560px;margin:26px 0 14px;display:grid;gap:10px}
.quick-ask label{margin:0;color:var(--ink);font-size:14px;font-weight:600}
.quick-ask textarea{min-height:78px;font-size:15px;border-color:#5d6d80;background:#0d1520e6}
.quick-ask textarea:focus{border-color:var(--gold)}
.quick-ask .actions{margin:2px 0 0}
.quick-ask small a{white-space:nowrap}
.trust .plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.plan{display:flex;flex-direction:column;gap:6px}
.plan h3{margin:0}
.plan p{margin:0;flex:1}
.plan-price{font:26px/1.3 Georgia,'Noto Serif SC',serif;color:var(--gold);margin-top:8px;font-variant-numeric:tabular-nums}
.plan-ai{border-style:dashed}
.readers{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-top:16px}
.reader-card{display:flex;gap:14px;align-items:flex-start;padding:16px;border:1px solid var(--line);border-radius:8px;background:#ffffff05}
.reader-card img,.reader-mark{width:56px;height:56px;border-radius:50%;flex:0 0 56px;object-fit:cover}
.reader-mark{display:flex;align-items:center;justify-content:center;background:#dcc2961f;color:var(--gold);font:24px Georgia,'Noto Serif SC',serif}
.reader-card b,.reader-card small{display:block}
.reader-card p{margin:6px 0 0;font-size:13px;color:var(--muted)}
.faq{max-width:860px}
.faq details{padding:0;border-bottom:1px solid var(--line)}
.faq summary{padding:16px 0;font-size:16px;color:var(--ink);list-style:none;display:flex;justify-content:space-between;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:'+';color:var(--gold);font-size:20px;line-height:1}
.faq details[open] summary:after{content:'−'}
.faq details p{margin:0 0 18px;color:var(--muted);max-width:70ch}
.guest-note a{font-weight:650}
.limit-panel{margin-top:18px;border-color:#b99f6a}
.limit-panel h3{margin-bottom:6px}
.account-row{margin:0 0 28px;max-width:560px}
.account-row .inline{gap:10px}
.account-row input{flex:1}
.table-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:8px}
.data-table{width:100%;border-collapse:collapse;font-size:14px;font-variant-numeric:tabular-nums}
.data-table th,.data-table td{padding:10px 14px;text-align:right;border-bottom:1px solid #ffffff10;white-space:nowrap}
.data-table th:first-child,.data-table td:first-child{text-align:left}
.data-table th{color:var(--muted);font-weight:500;font-size:12px;letter-spacing:.5px}
.data-table tbody tr:last-child td{border-bottom:0}
@media(max-width:760px){.quick-ask{margin-top:20px}.plan-price{font-size:22px}.faq summary{font-size:15px}}
.account-row+h2{margin-top:8px}

/* ===== v0.7: visual upgrade + reading examples ===== */
:root{color-scheme:dark;--band:#152131;--teal:#8fd0c9;--rose:#e7a6b6;--lavender:#b3aff0;--sage:#a4d1a0;--serif:'Ops Serif',Georgia,'Noto Serif SC','Source Han Serif SC','Songti SC',serif}
@font-face{font-family:'Ops Serif';src:url('/static/fonts/ops-serif.woff') format('woff');font-weight:400;font-style:normal;font-display:swap}
h1,h2,.report-section h3,.plan-price,.library-count b,.admin-grid b,.case-title{font-family:var(--serif)}
.user-text,h1.user-text,h2.user-text{font-family:Georgia,'Noto Serif SC','Source Han Serif SC','Songti SC','STSong',serif}
/* one content column for header, page and footer */
header,footer{padding-left:max(20px,calc((100% - 1180px) / 2 + 36px));padding-right:max(20px,calc((100% - 1180px) / 2 + 36px))}
header:after{left:max(20px,calc((100% - 1180px) / 2 + 36px));right:max(20px,calc((100% - 1180px) / 2 + 36px))}
.brand small{letter-spacing:2px}
/* native controls on the dark palette */
select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%23dcc296' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:40px}
input,select{min-height:46px}
input[type=checkbox],input[type=radio]{min-height:0}
::-webkit-calendar-picker-indicator{filter:invert(.85) sepia(.4);cursor:pointer}
/* navigation hierarchy */
nav a{color:#c9ced6;font-weight:500}
nav a:hover,nav a[aria-current]{color:var(--ink)}
nav .nav-login{border:1px solid #d6bd8b80;border-radius:6px;padding:7px 14px;color:var(--gold);font-weight:600;background:none}
nav .nav-login:after,nav .lang-toggle:after{display:none}
nav .nav-login:hover{background:#dcc29614;border-color:var(--gold)}
nav .lang-toggle{border:0;background:none;padding:6px 2px;color:var(--muted);font-size:13px;min-height:0}
nav .lang-toggle b{color:var(--ink);font-weight:600}
/* hero + ask box */
.hero{margin-top:28px}
.quick-ask{max-width:600px;gap:12px}
.ask-box{display:flex;gap:10px;align-items:flex-end;border:1px solid #5d6d80;border-radius:18px;background:#0d1520e6;padding:10px 10px 10px 18px;transition:border-color .15s ease,box-shadow .15s ease}
.ask-box:focus-within{border-color:var(--gold);box-shadow:0 0 0 3px #dcc2961f}
.ask-box textarea{flex:1;border:0;background:transparent;padding:6px 0;min-height:56px;resize:none;outline:0;font-size:16px}
.ask-box textarea:focus{outline:0}
.ask-submit{border-radius:12px;white-space:nowrap;padding:11px 18px}
.prompt-chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{display:inline-flex;align-items:center;border-radius:999px;padding:6px 14px;font-size:13px;border:1px solid #ffffff24;background:#ffffff08;color:var(--ink);min-height:0;line-height:1.5}
.chip:hover{border-color:var(--gold);background:#dcc29612}
.chip-gold{color:var(--gold);border-color:#dcc29666}
.chip.active{background:var(--gold);border-color:var(--gold);color:var(--dark);font-weight:600}
.chip-quiet{font-size:12px;padding:4px 12px}
.ask-foot{margin:2px 0 0;font-size:13px;color:var(--muted)}
/* pricing / plans */
.plan{position:relative}
.plan-ai{border-style:solid;border-color:#dcc29680}
.plan-badge{position:absolute;top:-11px;right:16px;background:var(--gold);color:var(--dark);font-size:12px;font-weight:650;border-radius:999px;padding:2px 10px}
.plan-price{font-size:22px}
/* spread tiles */
a.spread-tile{display:flex;flex-direction:column;color:var(--ink);min-height:0}
a.spread-tile:hover{border-color:#dcc296a0}
a.spread-tile h3{margin:10px 0 6px}
a.spread-tile p{margin-bottom:14px}
.spread-thumb{height:92px;display:flex;align-items:center;justify-content:center;margin:0 0 14px;background:#0d152080;border-radius:6px}
.mini-layout{height:74px;width:auto;max-width:92%}
.mini-layout rect{fill:#dcc2961a;stroke:#dcc296b0;stroke-width:1.3}
.level-beginner .mini-layout rect{fill:#8fd0c91a;stroke:#8fd0c9b0}
.level-advanced .mini-layout rect{fill:#e7a6b61a;stroke:#e7a6b6b0}
.badge-level{font-weight:600}
.level-beginner .badge-level{color:var(--teal);border-color:#8fd0c966}
.level-intermediate .badge-level{color:var(--gold);border-color:#dcc29666}
.level-advanced .badge-level{color:var(--rose);border-color:#e7a6b666}
.tile-cta{margin-top:auto;color:var(--gold);font-weight:600;font-size:14px}
.grid.spreads{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1100px){.grid.spreads{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.grid.spreads{grid-template-columns:1fr}}
/* booking: dates, slots, time zone */
.chip-radio{position:relative;margin:0;display:block}
.chip-radio input{position:absolute;opacity:0;width:1px;height:1px}
.chip-radio span{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;border:1px solid var(--line);border-radius:10px;background:var(--dark);color:var(--ink);cursor:pointer;transition:border-color .15s ease,background .15s ease;font-variant-numeric:tabular-nums}
.chip-radio span:hover{border-color:#dcc29699}
.chip-radio input:checked+span{background:var(--gold);border-color:var(--gold);color:var(--dark);font-weight:650}
.chip-radio input:checked+span small{color:var(--dark)}
.chip-radio input:focus-visible+span{outline:2px solid var(--gold);outline-offset:2px}
.chip-radio input:disabled+span{opacity:.32;cursor:not-allowed;text-decoration:line-through}
.date-strip{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 10px;scrollbar-width:thin}
.date-chip span{min-width:62px;padding:8px 6px}
.date-chip b{font-size:20px;line-height:1.2}
.date-chip small{font-size:12px}
.slot-group{border:0;padding:0;margin:14px 0 0}
.slot-group legend{color:var(--muted);font-size:13px;padding:0;margin-bottom:8px}
.slot-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:8px}
.slot-chip span{padding:10px 0;font-size:14px}
.tz-line{margin:16px 0 0;font-size:14px;color:var(--muted)}
.tz-line b{color:var(--ink);font-weight:500}
.link-btn{border:0;background:none;color:var(--gold);padding:0;text-decoration:underline;text-underline-offset:3px;min-height:0;font-size:inherit}
.link-btn:hover{background:none}
/* bands for rhythm */
.band{background:var(--band);box-shadow:0 0 0 100vmax var(--band);clip-path:inset(0 -100vmax);padding-block:36px 40px;margin-top:64px}
.band .section-head{margin-top:0}
.faq.band{max-width:none}
.faq.band details,.faq.band .section-head{max-width:860px}
/* example strip + cards */
.section-head .strip-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.icon-btn{width:40px;height:40px;padding:0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:14px;min-height:0}
.strip-controls a{margin-left:8px;font-weight:600;white-space:nowrap}
.case-track{display:flex;gap:16px;overflow-x:auto;scrollbar-width:none;list-style:none;margin:0;padding:4px 2px 12px}
.case-track::-webkit-scrollbar{display:none}
.case-track>li{flex:0 0 300px;display:flex}
@media(hover:none){.case-track{scroll-snap-type:x mandatory}.case-track>li{scroll-snap-align:start}}
.case-card{display:flex;flex-direction:column;gap:10px;width:100%;padding:18px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);transition:border-color .18s ease,transform .18s ease}
.case-card:hover{border-color:#dcc296a0;transform:translateY(-2px)}
.case-tags{display:flex;gap:6px;flex-wrap:wrap}
.tag{display:inline-block;font-size:12px;line-height:1.6;padding:1px 9px;border-radius:999px;border:1px solid var(--line);color:var(--muted)}
.tag-love{color:var(--rose);border-color:#e7a6b666}.tag-career{color:var(--gold);border-color:#dcc29666}.tag-choice{color:var(--teal);border-color:#8fd0c966}.tag-timeline{color:var(--lavender);border-color:#b3aff066}.tag-growth{color:var(--sage);border-color:#a4d1a066}
.case-q{font-size:17px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.case-cards{display:flex;gap:6px}
.case-cards img{width:52px;height:auto;border-radius:3px;box-shadow:0 4px 12px #0006}
img.rev{transform:rotate(180deg)}
.case-meta{font-size:12px;color:var(--gold)}
.case-sum{font-size:13px;color:var(--muted);line-height:1.6;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.case-note{font-size:12px;color:var(--muted);margin:14px 0 0}
.cases-head{margin:20px 0 22px;max-width:760px}
.case-filters{display:grid;gap:10px;margin-bottom:24px}
.case-filters .chips{display:flex;flex-wrap:wrap;gap:8px}
.case-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;list-style:none;margin:0;padding:0}
.case-grid>li{display:flex}
@media(max-width:1000px){.case-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.case-grid{grid-template-columns:1fr}}
.pager{display:flex;gap:8px;margin:24px 0}
.pager a{min-width:40px;text-align:center;padding:8px 10px;border:1px solid var(--line);border-radius:6px}
.pager a[aria-current]{background:var(--gold);color:var(--dark);border-color:var(--gold)}
.case-detail .case-tags{margin-bottom:12px}
.case-title{font-size:clamp(28px,3.4vw,42px);line-height:1.35;margin-bottom:8px;text-wrap:balance}
.case-lead{font-size:17px;color:#e9e5dc;border-left:3px solid var(--gold);padding:4px 0 4px 16px;margin:18px 0}
.case-cta{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin:28px 0 8px}
.case-cta .actions{margin:0}
/* sharing controls */
.share-box{margin:24px 0}
.switch{display:flex;gap:10px;align-items:flex-start;color:var(--ink);font-size:15px;margin:0 0 6px;cursor:pointer}
.switch input{width:18px;height:18px;margin:3px 0 0;flex:0 0 18px}
.share-status{font-size:13px;color:var(--gold);margin:8px 0 0}
.share-inline{margin-top:14px;font-size:14px}
/* admin: examples */
.case-admin{margin:16px 0}
.case-admin:hover{transform:none}
.case-admin-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.case-admin-body{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.case-admin h4{margin:0 0 10px;font-size:14px;color:var(--gold);font-weight:600}
.orig-q{font-size:15px;color:var(--ink)}
.orig-report{white-space:pre-wrap;max-height:380px;overflow:auto;font-size:13px;color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:12px;line-height:1.7}
mark{background:#e8c15a40;color:var(--ink);padding:0 2px;border-radius:2px}
.case-admin-cards{display:flex;gap:4px;margin-top:12px}
.case-admin-cards img{width:44px;height:auto;border-radius:3px}
.case-form label{display:block;margin:12px 0 6px}
.case-form label>input,.case-form label>select,.case-form label>textarea{margin-top:6px}
.note.error{border-left-color:#ffb6a9;color:#ffd1c7}
/* contact icons */
.ico{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;vertical-align:-3px;margin-right:6px;flex:0 0 18px}
.contact-pills a .ico{color:var(--gold);margin-right:0}
.contact-card h3,.contact-card h2{display:flex;align-items:center}
@media(max-width:760px){
 header,footer{padding-left:16px;padding-right:16px}
 header:after{left:16px;right:16px}
 .brand small{letter-spacing:1.2px}
 .hero{margin-top:8px}
 .ask-box{flex-direction:column;align-items:stretch;padding:12px}
 .ask-submit{width:100%}
 .band{padding-block:28px 32px;margin-top:44px}
 .case-track>li{flex-basis:78%}
 .section-head .strip-controls .icon-btn{display:none}
 .case-admin-body{grid-template-columns:1fr}
 .case-cta{flex-direction:column;align-items:stretch}
 nav .nav-login{text-align:center;margin-top:8px}
 nav .lang-toggle{text-align:left;padding:12px 4px}
}
@media(prefers-reduced-motion:reduce){.case-card,.chip-radio span,.ask-box{transition:none}.case-card:hover{transform:none}}
.case-detail .report-panel{margin:28px 0;max-width:none}
.case-track{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 28px,#000 calc(100% - 28px),transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 28px,#000 calc(100% - 28px),transparent 100%);padding-inline:12px}
.case-admin-head small{margin-left:auto}
.case-form label.switch{display:flex;margin-top:16px}

/* ===== v0.7.1: zoomable spread board, cut & draw ritual, print ===== */
.board-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:24px 0 12px}
.zoom{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.zoom button{border:0;border-radius:0;min-height:40px;padding:6px 14px;font-size:16px}
.zoom button+button{border-left:1px solid var(--line)}
.zoom .zoom-level{font-size:13px;min-width:92px;font-variant-numeric:tabular-nums}
.zoom-hint{font-size:12px}
.board-scroll{position:relative;overflow:auto;margin:0 0 20px;max-height:80vh;overscroll-behavior:contain}
.board-scroll[data-board]{padding:8px 0}
.board-zoom{margin:0 auto;position:relative}
.board-scroll .spread-board{position:absolute;left:0;top:0;margin:0;transform-origin:0 0}
.board-scroll.pannable{cursor:grab}
.board-scroll.dragging{cursor:grabbing;user-select:none}
.board-scroll.dragging img{pointer-events:none}
.spread-board .tarot{transition:left .25s ease,top .25s ease}
.next-slot{opacity:1}
.next-slot .face-frame{outline:2px dashed #dcc296b0;outline-offset:5px;border-radius:6px;animation:slotGlow 1.8s ease-in-out infinite}
.next-slot .label{color:var(--gold)}
@keyframes slotGlow{50%{outline-color:#dcc29640}}
/* ritual panel */
.ritual{margin-top:8px}
.ritual:hover{transform:none}
.ritual h3{font-family:var(--serif);font-size:24px;font-weight:400;margin:0 0 6px}
.ritual .eyebrow{margin:18px 0 8px}
.ritual-steps{display:flex;gap:6px;list-style:none;margin:0;padding:0 0 4px;overflow-x:auto}
.ritual-steps li{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:64px;flex:1 1 0;color:var(--muted);position:relative}
.ritual-steps li:not(:last-child):after{content:'';position:absolute;top:14px;left:calc(50% + 18px);right:calc(-50% + 18px);height:1px;background:var(--line)}
.ritual-steps span{width:28px;height:28px;border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:13px;font-variant-numeric:tabular-nums;background:var(--dark)}
.ritual-steps small{font-size:12px;text-align:center;line-height:1.35;max-width:96px}
.ritual-steps .done span{background:#dcc29633;border-color:#dcc29699;color:var(--gold)}
.ritual-steps .now span{background:var(--gold);border-color:var(--gold);color:var(--dark);font-weight:700}
.ritual-steps .now small{color:var(--ink)}
/* cut */
.cut-stage{display:flex;justify-content:center;align-items:flex-end;gap:36px;padding:22px 0 8px;min-height:190px}
.pile{--h:.5;position:relative;width:92px;display:flex;flex-direction:column;align-items:center;transition:transform .6s cubic-bezier(.3,.7,.2,1)}
.pile img{width:92px;height:auto;border-radius:6px;box-shadow:0 10px 24px #0009;position:relative;z-index:1;transform:translateY(calc((1 - var(--h)) * 14px))}
.pile:after{content:'';width:84px;height:calc(var(--h) * 30px + 3px);margin-top:-6px;border-radius:0 0 5px 5px;background:repeating-linear-gradient(0deg,#e8dcc2 0 1px,#7d6b4c 1px 2px);box-shadow:0 8px 16px #0008}
.pile b{margin-top:10px;font:600 14px system-ui;color:var(--gold);font-variant-numeric:tabular-nums}
.cut-stage.cutting .pile-top{transform:translateX(64px) translateY(10px)}
.cut-stage.cutting .pile-bottom{transform:translateX(-64px) translateY(-26px);z-index:2}
.cut-label{text-align:center;color:var(--ink);font-size:14px;margin:10px 0 6px}
.cut-label output{color:var(--gold);font-weight:700;margin:0 4px;font-variant-numeric:tabular-nums}
#cut-at{width:100%;max-width:520px;display:block;margin:0 auto;accent-color:var(--gold);min-height:32px;padding:0;background:none;border:0}
.ritual .actions{justify-content:center}
/* fanned deck */
.deck-fan{display:flex;flex-wrap:wrap;justify-content:center;padding:22px 12px 6px 46px;margin:16px 0 10px;border:1px solid var(--line);border-radius:12px;background:radial-gradient(ellipse at 50% 40%,#dcc29610,transparent 70%)}
.fan-card{position:relative;flex:0 0 60px;height:93px;margin:0 0 14px -34px;padding:0;border:0;background:none;border-radius:6px;box-shadow:-4px 3px 10px #000a;transition:transform .18s ease,filter .18s ease,opacity .2s ease;transform:rotate(-1.4deg)}
.fan-card:nth-child(even){transform:rotate(1.4deg)}
.fan-card:hover{background:none;border:0}
.fan-card img{width:100%;height:100%;object-fit:cover;border-radius:6px;display:block}
.fan-card:hover,.fan-card:focus-visible{transform:translateY(-18px) rotate(0);z-index:5;filter:brightness(1.15)}
.fan-card:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.fan-card.picked{transform:translateY(-44px) scale(1.14);z-index:6;filter:drop-shadow(0 0 14px #dcc296bb) brightness(1.2)}
.deck-fan.busy .fan-card:not(.picked){opacity:.45;pointer-events:none}
.deck-fan.dealing .fan-card{animation:deal .55s cubic-bezier(.2,.7,.2,1) both}
.deck-fan.dealing .fan-card:nth-child(4n+2){animation-delay:.04s}.deck-fan.dealing .fan-card:nth-child(4n+3){animation-delay:.08s}.deck-fan.dealing .fan-card:nth-child(4n){animation-delay:.12s}
@keyframes deal{from{opacity:0;transform:translateY(-36px) rotate(10deg)}}
@media(max-width:760px){.fan-card{flex-basis:48px;height:74px;margin-left:-28px}.deck-fan{padding-left:36px}.cut-stage{gap:22px;min-height:160px}.pile,.pile img{width:76px}.pile:after{width:70px}.zoom-hint{display:none}.ritual-steps li{min-width:54px}}
@media(prefers-reduced-motion:reduce){.deck-fan.dealing .fan-card,.next-slot .face-frame{animation:none}.pile,.fan-card,.spread-board .tarot{transition:none}}
/* print / save as PDF: every card, real formation, no controls */
@media print{
 .board-toolbar,.zoom-hint,.guest-note,.share-box,.ritual,.limit-panel,#followup-form,.case-cta{display:none!important}
 .board-scroll{overflow:visible!important;max-height:none!important;border:0!important}
 .spread-board .tarot{transition:none}
 .tarot,.report-section,.report li{break-inside:avoid}
 .report strong{color:#000}
}
.report strong{color:var(--ink);font-weight:650}
.pile:after{order:1}.pile b{order:2;margin-top:12px}
.just-drawn{display:flex;gap:14px;align-items:center;margin:16px 0 4px;padding:12px 14px;border:1px solid #dcc29655;border-radius:10px;background:#dcc2960d;animation:justIn .5s cubic-bezier(.2,.7,.2,1)}
.just-drawn img{width:48px;height:auto;border-radius:4px;box-shadow:0 6px 14px #0008;animation:flipIn .6s ease}
.just-drawn div{display:grid;gap:1px}
.just-drawn small{color:var(--muted);font-size:12px}
.just-drawn b{font-size:17px;font-weight:600}
.just-drawn span{color:var(--gold);font-size:13px}
@keyframes justIn{from{opacity:0;transform:translateY(-6px)}}
@keyframes flipIn{from{transform:perspective(400px) rotateY(90deg)}}
.just-drawn img.rev{animation:none;transform:rotate(180deg)}
@media(prefers-reduced-motion:reduce){.just-drawn,.just-drawn img{animation:none}}
.board-scroll:not([data-board]){max-height:none;overflow:visible}
/* ---------- v0.7.2: crossed card, case reactions, comments, sharing ---------- */
/* Crossed card (Celtic cross #2) lies across the card it challenges; its caption moves under that card. */
.spread-board .crossed{z-index:2}
.spread-board .crossed .face-frame{transform:rotate(90deg);box-shadow:0 10px 24px #000a;border-radius:6px}
.spread-board .crossed .card-position{visibility:hidden}
.spread-board .crossed .label{position:absolute;left:-10px;right:-10px;top:232px;color:var(--gold)}
.spread-board .crossed .label small{color:var(--muted)}
.cross-pos{display:block;font-size:12px;color:#b89f76}
.card-list .cross-pos{display:none}
.spread-celtic .slot-2 .card-position{background:none}
.case-react{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin:6px 0 4px}
.react-link{display:inline-flex;align-items:center;gap:6px;margin:0;padding:6px 2px;border:0;background:none;color:var(--muted);font-size:14px;min-height:36px}
.react-link:hover{color:var(--ink)}
.react-link .ico{margin:0}
.like-btn{display:inline-flex;align-items:center;gap:6px;margin:0;padding:6px 14px;min-height:36px;border:1px solid #e7a6b655;border-radius:999px;background:#e7a6b60d;color:var(--ink);font-size:14px;line-height:1}
.like-btn .ico{margin:0;color:#e7a6b6;transition:transform .2s ease}
.like-btn:hover{border-color:#e7a6b6}
.like-btn.on{background:#e7a6b61f;border-color:#e7a6b6}
.like-btn.on .heart path{fill:#e7a6b6}
.like-btn.pop .ico{animation:heartPop .45s cubic-bezier(.2,.7,.2,1.4)}
@keyframes heartPop{0%{transform:scale(1)}40%{transform:scale(1.45)}100%{transform:scale(1)}}
.like-btn.big{padding:12px 22px;font-size:16px;gap:8px}
.like-btn.big .ico{width:24px;height:24px;flex-basis:24px}
.like-text{color:var(--muted);font-size:14px}
.case-counts{display:inline-flex;gap:12px;margin-left:10px;color:var(--muted)}
.case-counts>span{display:inline-flex;align-items:center;gap:3px}
.case-counts .ico{width:14px;height:14px;flex-basis:14px;margin:0;color:var(--muted)}
.case-counts .heart{color:#e7a6b6}.case-counts .heart path{fill:#e7a6b688}
.case-feedback{margin:28px 0;max-width:none}
.fb-main{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.fb-main h2{margin:0 0 4px;font-size:22px}
.fb-main p{margin:0}
.share-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}
.share-chip{display:inline-flex;align-items:center;gap:6px;margin:0;padding:7px 14px;min-height:38px;border:1px solid #ffffff24;border-radius:999px;background:#ffffff08;color:var(--ink);font-size:13px;line-height:1.2;text-decoration:none}
.share-chip:hover{border-color:var(--gold);color:var(--ink)}
.share-chip .ico{margin:0;width:16px;height:16px;flex-basis:16px}
.share-chip[hidden]{display:none}
.share-site{margin:14px 0 0;font-size:13px}
.linkish{margin:0;padding:0;border:0;background:none;color:var(--gold);font-size:inherit;text-decoration:underline;text-underline-offset:3px;min-height:0}
.case-comments{margin:36px 0 28px}
.case-comments h2{display:flex;align-items:center;gap:10px;font-size:22px}
.case-comments h2 .count{font:600 13px/1 system-ui,sans-serif;color:var(--bg);background:var(--gold);border-radius:999px;padding:4px 9px}
.comment-list{list-style:none;margin:0 0 18px;padding:0;display:grid;gap:10px}
.comment{padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:#ffffff05}
.comment.is-new{animation:justIn .5s cubic-bezier(.2,.7,.2,1)}
.comment p{margin:6px 0 0;white-space:pre-line;overflow-wrap:anywhere}
.cm-head{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:14px}
.cm-head time{margin-left:auto;color:var(--muted);font-size:12px}
.cm-badge{font-size:12px;line-height:1;padding:4px 8px;border-radius:999px;border:1px solid var(--line);color:var(--muted)}
.cm-studio{border-color:var(--gold);color:var(--gold)}
.cm-asker{border-color:#e7a6b6;color:#e7a6b6}
.comment-empty{padding:6px 2px}
.comment-form{max-width:none;display:grid;gap:8px}
.comment-form textarea{width:100%;min-height:92px}
.comment-row{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}
.comment-row .cm-name{flex:1 1 200px;display:grid;gap:4px;font-size:13px;color:var(--muted)}
.comment-row button{margin:0}
.cm-count{font-size:12px;margin-left:auto}
.cm-note{margin:0;font-size:12px}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.copy-buffer{position:fixed;left:-9999px;top:0;opacity:0}
.comment-admin .user-text{white-space:pre-line}
#comment-review-form{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;max-width:none;margin:16px 0}
#comment-review-form label{display:grid;gap:4px;flex:1 1 280px}
#comment-review-form button{margin:0}
.case-board{margin-top:0}
@media(max-width:760px){.fb-main{flex-direction:column;align-items:flex-start}.cm-count{margin-left:0}}
@media(prefers-reduced-motion:reduce){.like-btn.pop .ico,.comment.is-new{animation:none}}
@media print{
 .case-react,.case-feedback,.comment-form,.cm-note{display:none!important}
 .board-scroll[data-board]{break-inside:avoid;page-break-inside:avoid}
 .spread-board .crossed .label{color:#000}
 .spread-board .crossed .face-frame{box-shadow:none}
}
.share-row .share-chip{height:38px;min-height:0;padding:0 14px;margin:0}
@media print{
 .board-scroll[data-board] .board-zoom{width:var(--pw)!important;height:var(--ph)!important}
 .board-scroll[data-board] .spread-board{transform:none!important;zoom:var(--pz)}
}
/* ---------- v0.7.3: own comments, follow-ups, phone header ---------- */
#case-comments,#case-feedback,.comment{scroll-margin-top:96px}
.cm-mine{border-color:#81b8b5;color:#81b8b5}
.cm-wait{border-style:dashed;color:var(--gold);border-color:#dcc29680}
.comment.is-mine{border-color:#81b8b566;background:#81b8b50a}
.cm-tools{margin-top:6px;text-align:right}
.cm-tools .linkish{font-size:12px;color:var(--muted)}
.cm-tools .linkish:hover{color:#e7a6b6}
.my-comments{margin:6px 0 18px;padding:14px 16px;border:1px dashed #dcc29655;border-radius:10px}
.my-comments[hidden]{display:none}
.my-comments h3{margin:0;font-size:16px}
.my-comments>p{margin:2px 0 10px;font-size:12px}
.my-comments .comment-list{margin:0}
.cm-again{margin:-2px 0 4px;font-size:13px}
/* Phones: sign-in stays visible next to the menu button. */
.header-account{display:none}
@media(max-width:760px){
 .header-account{display:inline-flex;align-items:center;margin-left:auto;margin-right:10px;height:40px;padding:0 16px;border:1px solid var(--gold);border-radius:999px;color:var(--gold);font-size:14px;font-weight:600;line-height:1;white-space:nowrap;text-decoration:none}
 .header-account+.menu-toggle{margin-left:0}
 /* Plain block layout (no flex gap on a <button>): older in-app browsers (WeChat, etc.) collapsed the lines to zero width. */
 .menu-toggle{display:block!important;position:relative;width:44px;height:44px;padding:0!important;flex:0 0 44px}
 .menu-toggle span{position:absolute;left:11px;width:22px;height:2px;margin:0;background:#f4efe6;border-radius:2px}
 .menu-toggle span:nth-child(1){top:14px}.menu-toggle span:nth-child(2){top:21px}.menu-toggle span:nth-child(3){top:28px}
 .menu-open .menu-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
 .menu-open .menu-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
 .brand{min-width:0;flex:0 1 auto}
}
@media(max-width:380px){.brand{gap:8px}.brand-mark{font-size:22px}.brand-name{font-size:12px;letter-spacing:.1em;white-space:nowrap}.brand-name small{font-size:9px;letter-spacing:.12em}.header-account{padding:0 12px;margin-right:6px;height:38px;font-size:13px}.menu-toggle{width:40px;height:40px;flex-basis:40px}.menu-toggle span{left:9px}.menu-toggle span:nth-child(1){top:12px}.menu-toggle span:nth-child(2){top:19px}.menu-toggle span:nth-child(3){top:26px}}
/* Phones: spreads as a compact two-column grid (was eight full-width cards) and stacked section headings. */
@media(max-width:760px){
 .grid.spreads{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .grid.spreads .spread-tile{padding:12px;min-height:0}
 .grid.spreads .spread-thumb{height:64px;min-height:0;padding:6px;margin:0 0 8px}
 .grid.spreads .mini-layout{height:50px}
 .grid.spreads .inline{gap:4px;flex-wrap:wrap}
 .grid.spreads .badge{font-size:11px;padding:2px 7px}
 .grid.spreads h3{font-size:15px;line-height:1.35;margin:8px 0 4px}
 .grid.spreads p{font-size:12px;line-height:1.5;margin:0 0 8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
 .grid.spreads .note{font-size:12px;padding:6px 8px;margin:4px 0 8px}
 .grid.spreads .tile-cta{font-size:13px;margin-top:auto}
 .section-head{flex-direction:column;align-items:flex-start;gap:8px}
 .section-head h2{margin-bottom:0}
}
/* A formation shrunk to fit a phone keeps its captions readable. */
/* v0.9.0: when shrunk (phones), captions give way to big numbers + the legend under the board. */
.spread-board.tiny .card-position,.spread-board.tiny .label{visibility:hidden}
.spread-board.tiny .tarot::after{content:attr(data-n);position:absolute;left:2px;top:26px;min-width:44px;height:44px;padding:0 8px;box-sizing:border-box;border-radius:22px;background:var(--gold);color:#1d1a2b;font:700 28px/44px system-ui,sans-serif;text-align:center;box-shadow:0 2px 10px #000a;z-index:3;pointer-events:none}
.spread-board.tiny .crossed::after{left:auto;right:-30px;top:92px;background:#81b8b5}
.spread-board.tiny .empty-position::after{opacity:.8}
.board-legend{list-style:none;margin:-8px 0 20px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:4px 16px;font-size:14px}
.board-legend li{display:flex;align-items:baseline;gap:8px;padding:6px 0;border-bottom:1px solid var(--line)}
.board-legend b{flex:0 0 24px;height:24px;border-radius:12px;background:var(--gold);color:#1d1a2b;font-size:13px;line-height:24px;text-align:center}
.board-legend .lg-card{margin-left:auto;text-align:right;color:var(--ink)}.board-legend small{color:var(--muted)}
.board-legend[hidden]{display:none}
@media print{.board-legend{break-inside:avoid}}
/* ===== v0.8 analytics dashboard ===== */
.dash-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}.dash-head p{margin:0;max-width:560px;font-size:13px}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.seg button{border:0;border-radius:0;padding:8px 16px;min-height:0}.seg button+button{border-left:1px solid var(--line)}.seg button.active{background:var(--gold);color:var(--dark);font-weight:650}
.kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:18px}
.kpi{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:14px 16px;min-width:0}.kpi small{display:block;font-size:12px;letter-spacing:.3px}.kpi b{display:block;font:32px/1.25 var(--serif);color:var(--ink);font-variant-numeric:tabular-nums;margin:4px 0}
.kpi-foot{display:flex;align-items:center;justify-content:space-between;gap:6px;color:var(--gold)}.spark{width:96px;height:28px;flex:0 1 96px;min-width:40px}
.delta{font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}.delta.up{color:var(--sage)}.delta.down{color:var(--rose)}.delta.flat{color:var(--muted)}
.dash-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.dash-grid .panel{min-width:0}.dash-grid .panel:hover{transform:none}.dash-wide{grid-column:1/-1}
.dash-grid h2.h3,.dash-grid .h3{margin-bottom:6px}.h3.sub{font-size:15px;margin:18px 0 8px;color:var(--muted)}.small{font-size:12px}
.funnel{margin-top:14px}.f-row{display:grid;grid-template-columns:150px minmax(0,1fr) 64px;align-items:center;gap:14px}
.f-label{font-size:14px;text-align:right;color:var(--ink)}.f-pct{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.f-track{position:relative;height:34px;display:flex;justify-content:center;align-items:center;background:#ffffff06;border-radius:4px}
.f-bar{position:absolute;top:0;bottom:0;left:50%;transform:translateX(-50%);min-width:3px;border-radius:4px;background:linear-gradient(90deg,#dcc29655,#dcc296cc,#dcc29655)}
.f-track b{position:relative;font-variant-numeric:tabular-nums;color:var(--ink);font-weight:650;text-shadow:0 1px 3px #000a}
.f-drop{display:grid;grid-template-columns:150px minmax(0,1fr) 64px;gap:14px;font-size:12px;color:var(--muted);padding:3px 0}.f-drop span:first-child{grid-column:2;text-align:center}.f-drop span:last-child:not(:first-child){grid-column:3}
.f-drop.worst{color:var(--rose)}.f-row.worst .f-bar{background:linear-gradient(90deg,#e7a6b655,#e7a6b6cc,#e7a6b655)}
.f-note{margin:16px 0 0;padding:12px 14px;border-left:2px solid var(--rose);background:#e7a6b60d;font-size:13px;color:var(--ink)}.f-note b{color:var(--rose);font-weight:600}
.trend{width:100%;height:auto;display:block;margin-top:8px}.trend text{fill:var(--muted);font-size:11px;font-family:system-ui,sans-serif}.trend .grid{stroke:#ffffff12}
.trend .bar{fill:#dcc2966e}.trend .bar:hover{fill:var(--gold)}.trend polyline.l-start{stroke:var(--teal);stroke-width:2}.trend circle.l-start{fill:var(--teal)}.trend polyline.l-signup{stroke:var(--rose);stroke-width:2;stroke-dasharray:4 3}.trend circle.l-signup{fill:var(--rose)}
.legend{display:flex;gap:18px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-top:6px}.legend span:before{content:'';display:inline-block;width:12px;height:3px;margin-right:6px;vertical-align:middle;border-radius:2px}
.legend .k-bar:before{height:10px;background:#dcc2968c}.legend .k-start:before{background:var(--teal)}.legend .k-signup:before{background:var(--rose)}
.barlist{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:9px}.barlist li{display:grid;grid-template-columns:minmax(90px,38%) minmax(0,1fr) 42px 48px;align-items:center;gap:10px;font-size:13px}
.bl-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bl-track{height:8px;border-radius:4px;background:#ffffff0d;overflow:hidden}.bl-bar{display:block;height:100%;border-radius:4px;background:var(--gold)}
.bl-num{text-align:right;font-variant-numeric:tabular-nums}.bl-pct{text-align:right;color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}
.stack-bar{display:flex;height:14px;border-radius:7px;overflow:hidden;margin:12px 0 10px;background:#ffffff0d}.stack-bar span{display:block;height:100%}
.seg-0{background:var(--gold)}.seg-1{background:var(--teal)}.seg-2{background:var(--lavender)}.seg-3{background:var(--rose)}
.legend-list{list-style:none;padding:0;margin:0;display:flex;gap:16px;flex-wrap:wrap;font-size:13px}.legend-list i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px}
details.daily{margin-top:30px}details.daily .table-scroll{margin-top:12px}
/* ===== v0.8 SEO & marketing consoles ===== */
.checks{list-style:none;padding:0;margin:0;display:grid;gap:8px}.checks li{padding:10px 14px;border-radius:6px;font-size:14px;background:#ffffff06;border-left:3px solid var(--teal)}.checks li.warn{border-left-color:var(--rose);background:#e7a6b60d}
.serp{border:1px solid var(--line);border-radius:8px;padding:12px 14px;background:#0d1520;margin:12px 0;display:grid;gap:3px;font-family:Arial,sans-serif}.serp cite{font-style:normal;font-size:12px;color:#8fd0a0;overflow-wrap:anywhere}.serp b{color:#8ab4f8;font-weight:400;font-size:17px;line-height:1.35}.serp span{font-size:13px;color:#bdc1c6;line-height:1.5}
.cnt{float:right;font-variant-numeric:tabular-nums}.cnt.over{color:var(--rose)}
details.panel{padding:16px 20px;margin-bottom:10px}details.panel>summary{display:flex;gap:10px;align-items:center;flex-wrap:wrap}details.panel:hover{transform:none}
.card-rows{list-style:none;margin:12px 0 0;padding:0}.card-rows li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid #ffffff0d}.card-rows button{margin:0;padding:6px 14px}
.card-rows .chips{display:flex;gap:6px}.tag.ok{color:var(--sage);border-color:#a4d1a066}.tag.warn{color:var(--gold);border-color:#dcc29666}
.card-edit textarea{min-height:170px}
.chip-checks{display:flex;flex-wrap:wrap;gap:8px}.chip-checks label{display:inline-flex;align-items:center;margin:0;padding:6px 12px;border:1px solid var(--line);border-radius:999px;color:var(--ink);cursor:pointer}.chip-checks input{margin-right:6px}
.drafts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.draft{min-width:0}.draft:hover{transform:none}.draft.posted{opacity:.62}
.draft-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.draft h3{margin:4px 0 8px}.draft-text{white-space:pre-wrap;color:var(--ink)!important;font-size:14px;line-height:1.8}.tags-line{color:var(--teal)!important;font-size:13px}.draft .actions{margin:12px 0 0}
.link-list{list-style:none;padding:0;margin:16px 0 0;display:grid;gap:10px}.link-list li{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 0;border-top:1px solid #ffffff0d}.link-list code{font-size:12px;color:var(--muted);overflow-wrap:anywhere}.link-list .actions{margin:0;flex-wrap:nowrap}.link-list button{margin:0;padding:6px 12px}
/* ===== v0.8 card meaning pages ===== */
.breadcrumb{display:flex;gap:8px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin-bottom:22px}.breadcrumb span[aria-hidden]{opacity:.5}
.card-hero{display:grid;grid-template-columns:260px minmax(0,1fr);gap:40px;align-items:start}.card-art img{width:100%;height:auto;border-radius:10px;box-shadow:0 22px 50px #0009}
.card-hero h1{margin-bottom:10px}.card-alt{display:block;font-size:18px;letter-spacing:1px;color:var(--gold);font-family:system-ui,sans-serif;margin-top:6px}
.card-theme{font-size:17px;color:var(--ink)}.card-keys{display:grid;gap:14px;margin:22px 0}.card-keys div{border-left:2px solid var(--gold);padding-left:14px}.card-keys div+div{border-left-color:var(--rose)}
.card-keys dt{font-size:12px;letter-spacing:2px;color:var(--gold);text-transform:uppercase}.card-keys div+div dt{color:var(--rose)}.card-keys dd{margin:4px 0 0;font-size:16px}
.card-intro{margin-top:36px}.card-intro p{color:var(--ink);font-size:16px;line-height:1.95}.card-intro .card-updated{font-size:12px;color:var(--muted)}
.card-howto{margin-top:36px}.card-howto li{margin-bottom:8px;color:var(--muted)}
.card-pager{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0;margin:36px 0}
.card-siblings ul{list-style:none;padding:0;margin:14px 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:12px}
.card-siblings a{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:12px;text-align:center;color:var(--muted)}.card-siblings a:hover{color:var(--gold)}.card-siblings img{width:60px;height:auto;border-radius:4px}
.library-card h2 a,.library-card h3 a{color:var(--ink)}.library-card h2 a:hover,.library-card h3 a:hover{color:var(--gold)}
@media(max-width:1000px){.kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi b{font-size:26px}.spark{display:none}.dash-grid,.drafts{grid-template-columns:1fr}
 .f-row,.f-drop{grid-template-columns:92px minmax(0,1fr) 48px;gap:8px}.f-label{font-size:12px}.barlist li{grid-template-columns:minmax(80px,40%) minmax(0,1fr) 34px 42px;gap:6px}
 .card-hero{grid-template-columns:1fr;gap:22px}.card-art{max-width:220px;margin:0 auto}.card-rows li{grid-template-columns:1fr auto}.card-rows .chips{grid-column:1}.link-list li{flex-direction:column;align-items:flex-start}}
.tabs.section-head{justify-content:flex-start}
/* ===== v0.8.1 scheduled posting ===== */
.tag.bad{color:#ffb6a9;border-color:#ffb6a966}.warn-text{color:#f0c987!important}
.pub-accounts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.pub-account{min-width:0}.pub-account:hover{transform:none}.pub-account h3{margin:0}.pub-account .actions{margin:10px 0}.pub-account .actions button{margin:0;padding:7px 12px}.pub-account details{border-bottom:0;padding:4px 0 0}.pub-account summary{font-size:13px}
.qr-box{text-align:center;padding:12px;border:1px dashed var(--line);border-radius:8px;margin:6px 0 10px}.qr-box img{width:220px;max-width:100%;height:auto;background:#fff;border-radius:6px;padding:6px}.qr-box button{margin-top:6px}
.pub-box{border-top:1px solid #ffffff12;margin-top:12px;padding-top:12px}.pub-box .muted.small{margin-left:8px}
.media-row{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}.media-item{position:relative;margin:0;width:72px;height:96px;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--dark);display:flex;align-items:center;justify-content:center}.media-item img{width:100%;height:100%;object-fit:cover;display:block}.media-video{font-size:11px;padding:4px;text-align:center;overflow-wrap:anywhere;color:var(--gold)}
.media-del{position:absolute;top:2px;right:2px;margin:0!important;padding:0 6px;line-height:20px;font-size:14px;border-radius:50%;background:#0d1520cc;border-color:#ffffff33}
.upload-btn{position:relative;display:inline-flex;align-items:center;margin:0;padding:7px 12px;border:1px dashed var(--gold);border-radius:5px;color:var(--gold);cursor:pointer;font-size:13px}.upload-btn input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.upload-btn:focus-within{outline:2px solid var(--gold);outline-offset:3px}
.pub-sched{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}.pub-sched select,.pub-sched input{width:auto;flex:1 1 150px;padding:8px}.pub-sched button{margin:0;padding:8px 14px}.pub-state{margin:10px 0 0;font-size:13px}
.jobs{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.job{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:14px 16px;min-width:0}.job-manual{border-color:#f0c98799}.job-title{margin:4px 0;color:var(--ink)}.job p{margin-bottom:6px}.job .actions{margin:8px 0 0}.job .actions button{margin:0;padding:6px 12px}.job details{border-bottom:0;padding:4px 0}
@media(max-width:900px){.pub-accounts{grid-template-columns:1fr}}
@media(max-width:760px){.jobs{grid-template-columns:1fr}.pub-sched select,.pub-sched input{flex-basis:100%}}
.section-head .small-btn{font:14px/1.4 system-ui,-apple-system,'Segoe UI',sans-serif;padding:6px 14px;margin:0;flex:none}.draft .small a{overflow-wrap:anywhere}
/* ===== v0.9.0 Easel connection ===== */
.easel-card{margin-bottom:16px}.easel-card .draft-head a.small-btn{margin-left:auto;text-decoration:none}
.setup-steps{margin:10px 0 0;padding-left:22px;display:grid;gap:10px;font-size:14px;line-height:1.6}
pre.cmd{white-space:pre-wrap;word-break:break-all;background:#0d1520;border:1px solid var(--line);border-radius:6px;padding:10px 12px;margin:8px 0;font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--ink)}
.period-picker{border:0;padding:0;margin:0}.period-picker legend{padding:0;margin-bottom:4px;color:var(--ink)}.period-picker .two{gap:12px}.period-preview{margin:6px 0 4px;font-size:13px}
/* ================= v0.9.1 AI tarot readers + topic guides ================= */
.tone-love{--tone:var(--rose)}.tone-career{--tone:var(--gold)}.tone-choice{--tone:var(--teal)}.tone-timeline{--tone:var(--lavender)}.tone-growth{--tone:var(--sage)}
/* topic tiles (home, hub, related) */
.guide-tiles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.guide-tile{display:flex;gap:16px;align-items:center;padding:14px 16px 14px 14px;border:1px solid var(--line);border-left:3px solid var(--tone,var(--gold));border-radius:8px;background:#192536b3;color:var(--ink);height:100%}
.guide-tile:hover{border-color:var(--tone,var(--gold));background:#1d2b3e}
.guide-tile img{width:62px;height:auto;border-radius:4px;flex:none;box-shadow:0 6px 16px #0008}
.gt-text{display:flex;flex-direction:column;gap:3px;min-width:0}.gt-text b{font-family:var(--serif);font-size:19px;font-weight:500;color:var(--tone,var(--gold))}.gt-text span{font-size:13px;color:var(--muted);line-height:1.55}
.guide-tiles.compact img{width:46px}.guide-tiles.compact .gt-text b{font-size:17px}
.guide-band .section-head a{font-size:14px}
.topic-chips{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:18px 0 0;font-size:14px}
/* guide page */
.guide .breadcrumb,.guide-hub .breadcrumb{margin-bottom:10px}
.guide-hero{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:48px;align-items:center;padding:18px 0 8px}
.guide-hero h1{margin:0 0 6px;color:var(--ink)}
.guide-tagline{font-family:var(--serif);font-size:clamp(19px,2vw,24px);color:var(--tone,var(--gold));margin:0 0 18px}
.guide-hero-text>p:not(.guide-tagline):not(.guide-free){max-width:62ch;color:#dfe3e8}
.guide-free{font-size:13px;margin-top:-10px}
.guide-hero-card{margin:0;text-align:center}
.guide-hero-card img{width:100%;max-width:230px;height:auto;border-radius:10px;transform:rotate(3deg);box-shadow:0 0 0 1px #dcc29640,0 24px 60px #000a,0 0 90px color-mix(in srgb,var(--tone,var(--gold)) 22%,transparent)}
.guide-hero-card figcaption{margin-top:18px;font-size:13px}.guide-hero-card figcaption a{color:var(--muted)}
.guide-scenes{margin-top:44px}
.guide-scenes>h2,.guide-ask h2,.guide-steps h2,.guide-readers h2,.guide-cards h2,.guide-related h2,.guide-why h2{font-size:clamp(22px,2.4vw,28px);margin:0 0 18px}
.scene{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:28px;align-items:start;margin-bottom:16px;border-left:3px solid var(--tone,var(--gold))}
.scene h3{margin:0 0 8px;font-size:21px}
.scene p{margin:0 0 10px;max-width:64ch}
.scene-meta{font-size:14px;color:var(--muted)}.scene-meta b{color:var(--ink);font-weight:600}
.scene-example{margin:12px 0 0;padding:10px 14px;border-radius:6px;background:#0d152099;color:#e9e4da;font-size:14px}
.scene .actions{margin:16px 0 0;align-items:center}
.scene-reader{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}.scene-reader img{border-radius:50%;width:28px;height:28px}
.scene-board{margin:0;display:flex;flex-direction:column;align-items:center;gap:10px}
.scene-board figcaption ol{margin:0;padding-left:20px;font-size:12px;color:var(--muted);display:grid;grid-template-columns:repeat(2,auto);column-gap:26px}
.scene-board figcaption ol.short{grid-template-columns:auto}
/* the one memorable element: the spread drawn as a small table of card backs */
.spread-backs{width:100%;max-width:230px;max-height:250px;height:auto;padding:14px;border-radius:10px;background:radial-gradient(circle at 50% 40%,#22324a,#0d1520);box-shadow:inset 0 0 0 1px #dcc29633}
.spread-backs .slot rect{fill:#162338;stroke:color-mix(in srgb,var(--tone,var(--gold)) 80%,transparent);stroke-width:1.4}
.spread-backs .slot rect.inner{fill:none;stroke:#dcc29640;stroke-width:.8}
.spread-backs text{fill:var(--tone,var(--gold));font:600 15px var(--serif)}
.guide-honest{margin:34px 0;padding:20px 24px;border:1px solid #dcc29644;border-radius:8px;background:linear-gradient(115deg,#dcc29612,transparent 70%)}
.guide-honest h2{margin:0 0 6px;color:var(--gold)}.guide-honest p{margin:0;max-width:72ch;color:#dfe3e8}
.guide-ask{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:36px;margin-top:48px}
.h3-like{font-size:clamp(22px,2.4vw,28px);margin:0 0 18px}
.good-qs{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
.good-qs a{display:block;padding:11px 14px;border:1px solid var(--line);border-radius:6px;color:var(--ink);background:#ffffff05}
.good-qs a:hover{border-color:var(--tone,var(--gold));background:#ffffff0a}
.good-qs a:after{content:' ↗';color:var(--tone,var(--gold))}
.rewrites{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:14px}
.rewrites li{padding:12px 0;border-bottom:1px solid var(--line)}
.rewrites p{margin:0 0 4px}
.rw-bad{color:var(--muted);text-decoration:line-through;text-decoration-color:#e7a6b688}
.rw-good{color:var(--ink)}
.rw-tag{display:inline-block;min-width:4.5em;font-size:12px;color:var(--muted);text-decoration:none}
.rw-good .rw-tag{color:var(--tone,var(--gold))}
.rw-why{font-size:13px}
.guide-steps{margin-top:48px}
.steps-list{list-style:none;counter-reset:st;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.steps-list li{counter-increment:st;position:relative;padding:18px 18px 18px 58px;border-top:1px solid var(--line)}
.steps-list li:before{content:counter(st);position:absolute;left:12px;top:14px;width:32px;height:32px;border-radius:50%;border:1px solid var(--gold);display:flex;align-items:center;justify-content:center;color:var(--gold);font-family:var(--serif)}
.steps-list b{display:block;margin-bottom:4px}.steps-list span{color:var(--muted);font-size:14px}
.guide-readers{margin-top:48px}
.persona-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.persona-card{display:flex;gap:16px;padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}
.persona-card>img{width:88px;height:88px;border-radius:50%;object-fit:cover;flex:none;box-shadow:0 0 0 2px #dcc29655}
.persona-card h3{margin:0 0 4px;font-size:20px}.persona-card h3 small{margin-left:8px;font-size:13px;color:var(--gold);font-family:inherit}
.persona-card p{margin:0 0 8px;font-size:14px}
.pc-who{color:var(--muted);font-size:13px!important}
.pc-topics{display:flex;flex-wrap:wrap;gap:6px}.pc-topics .chip{font-size:12px;padding:3px 10px}
.pc-bound{color:var(--muted);font-size:13px!important}
.button.small,a.button.small{padding:6px 14px;font-size:13px}
.guide-daily{display:flex;gap:20px;align-items:center;margin-top:40px}
.guide-daily img{width:80px;height:auto;border-radius:5px;flex:none}
.guide-daily h2{margin:0 0 6px}
.guide-cards{margin-top:48px}
.guide-cards ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.guide-cards a{display:flex;gap:12px;align-items:center;padding:10px;border-radius:8px;border:1px solid transparent;color:var(--ink)}
.guide-cards a:hover{border-color:var(--line);background:#ffffff06}
.guide-cards img{width:52px;height:auto;border-radius:4px;flex:none}
.guide-cards span{display:flex;flex-direction:column}.guide-cards small{color:var(--muted);font-size:13px;line-height:1.5}
.guide-cases{margin-top:10px}
.guide-related{margin-top:48px}
.guide-hub-hero{padding:18px 0 26px}.guide-hub-hero h1{margin:0 0 12px}
.guide-lead{max-width:60ch;color:#dfe3e8;font-size:17px}
.guide-why{margin-top:54px}
.why-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.why-grid h3{margin:0 0 6px;color:var(--gold);font-size:18px}.why-grid p{margin:0;color:var(--muted);font-size:14px}
/* reader badge (reading page, case page) */
.report-head{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:10px}
.report-head .eyebrow{margin-bottom:0}
.reader-badge{display:inline-flex;align-items:center;gap:10px}
.reader-badge img{width:36px;height:36px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 1px #dcc29666}
.reader-badge>span{display:flex;flex-direction:column;line-height:1.3}
.reader-badge small{font-size:11px;color:var(--muted);letter-spacing:.5px}
.reader-badge b{font-weight:600}.reader-badge em{font-style:normal;font-size:12px;color:var(--gold)}
/* question page picker */
.persona-pick{border:1px solid var(--line);border-radius:8px;padding:14px 16px 16px;margin:22px 0 10px}
.persona-pick legend{padding:0 6px;color:var(--gold)}
.persona-pick>p{margin:0 0 12px}
.persona-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px}
.persona-opt{position:relative;display:block;cursor:pointer;margin:0}
.persona-opt input{position:absolute;opacity:0;pointer-events:none}
.persona-opt>span{display:flex;flex-direction:column;align-items:center;text-align:center;gap:2px;padding:10px 6px;border:1px solid var(--line);border-radius:8px;height:100%}
.persona-opt img{width:52px;height:52px;border-radius:50%;object-fit:cover;margin-bottom:4px}
.std-mark{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:1px dashed #dcc29688;color:var(--gold);font-style:normal;margin-bottom:4px}
.persona-opt b{font-size:14px;font-weight:600}.persona-opt small{font-size:11px;color:var(--muted);line-height:1.35}
.persona-opt .rec{font-style:normal;font-size:10.5px;color:var(--dark);background:var(--teal);border-radius:999px;padding:0 7px;margin-top:3px}
.persona-opt input:checked+span{border-color:var(--gold);background:#dcc2961a;box-shadow:inset 0 0 0 1px var(--gold)}
.persona-opt input:focus-visible+span{outline:2px solid var(--gold);outline-offset:2px}
.persona-detail{margin-top:12px;font-size:14px}.persona-detail p{margin:0 0 6px}
.persona-detail b{display:inline-block;min-width:5.5em;color:var(--gold);font-weight:500;margin-right:6px}
.pd-greet{font-family:var(--serif);font-size:16px;color:#ece6da}
.persona-switch{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;padding:14px 18px;margin:16px 0}
.persona-switch label{margin:0;font-size:13px;color:var(--muted)}.persona-switch select{width:auto;min-width:200px;margin:0}
.ps-now{flex:1 1 200px}
/* admin */
.persona-admin{display:grid;gap:14px;margin-top:16px}
.persona-admin-card.off{opacity:.62}
.pa-head{display:flex;gap:14px;align-items:center}.pa-head>div{flex:1;min-width:0}
.pa-head img{border-radius:50%;object-fit:cover}
.pa-head h3{margin:0}.pa-head h3 small{font-size:13px;color:var(--muted)}
.pa-use{display:flex;align-items:center;gap:10px;max-width:320px}.pa-use .bl-track{flex:1}
.persona-admin-card .span2{grid-column:1/-1}
.prompt-preview{white-space:pre-wrap;font-size:12px;max-height:340px;overflow:auto}
@media(max-width:900px){.guide-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.guide-cards ul{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
 .guide-tiles,.guide-tiles.compact{grid-template-columns:1fr;gap:10px}
 .guide-hero{grid-template-columns:1fr;gap:18px}.guide-hero-card{order:-1}.guide-hero-card img{max-width:130px}.guide-hero-card figcaption{margin-top:10px}
 .scene{grid-template-columns:1fr;gap:16px}.scene-board{order:-1;flex-direction:row;align-items:center}.spread-backs{max-width:150px;max-height:170px;padding:10px}
 .guide-ask,.why-grid,.persona-grid{grid-template-columns:1fr;gap:24px}
 .steps-list{grid-template-columns:1fr}
 .guide-cards ul{grid-template-columns:1fr}
 .persona-card{padding:14px}.persona-card>img{width:64px;height:64px}
 .persona-options{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}
 .scene .actions .button{flex:1 1 100%;justify-content:center}
}
@media print{.persona-switch,.guide-ask a:after{display:none}}
/* in-page navs (breadcrumb, topic chips) must not inherit the header menu styles */
nav.breadcrumb,nav.topic-chips{display:flex;flex-direction:row;flex-basis:auto;align-items:center;flex-wrap:wrap;gap:8px;padding:0;font-size:13px}
nav.breadcrumb a,nav.topic-chips a{padding:0;border:0;font-weight:400;letter-spacing:0}
nav.breadcrumb a{color:var(--muted)}nav.breadcrumb a:hover{color:var(--ink)}
nav.topic-chips a.chip{padding:6px 14px;border:1px solid #ffffff24;color:var(--ink)}
nav.breadcrumb a:after,nav.topic-chips a:after{display:none}
nav.topic-chips{font-size:14px}
/* ================= v0.9.2 home carousel: meet the AI tarot readers ================= */
.rs-tone-yuetang{--rs:#b3aff0}.rs-tone-luheng{--rs:#dcc296}.rs-tone-feiyin{--rs:#e7a6b6}.rs-tone-youxia{--rs:#8fd0c9}.rs-tone-guipopo{--rs:#a4d1a0}.rs-tone-yaqing{--rs:#9fb4d8}
.reader-show{margin-top:34px}
.reader-show .section-head{margin-top:36px}
.rs-controls{display:flex;gap:8px}
.rs-stage{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:14px;padding:38px 44px 24px;background:radial-gradient(700px 380px at 22% 40%,#2a3b5566,transparent 70%),linear-gradient(160deg,#1a2739,#121c2b)}
.rs-stage:before{content:'';position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(1px 1px at 12% 18%,#fff8 50%,transparent),radial-gradient(1px 1px at 78% 12%,#fff6 50%,transparent),radial-gradient(1.5px 1.5px at 64% 78%,#dcc296aa 50%,transparent),radial-gradient(1px 1px at 38% 88%,#fff5 50%,transparent),radial-gradient(1px 1px at 92% 58%,#fff7 50%,transparent);animation:rs-twinkle 6s ease-in-out infinite alternate}
.rs-slides{display:grid}
.rs-slide{grid-area:1/1;display:grid;grid-template-columns:300px minmax(0,1fr);gap:56px;align-items:center;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .55s ease,visibility 0s linear .55s}
.rs-slide.is-active{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .6s ease .12s,visibility 0s}
.rs-slide.is-leaving{visibility:visible}
/* portrait: an arched tarot frame that turns in like a card being revealed */
.rs-art{position:relative;justify-self:center;perspective:1000px;width:260px}
.rs-halo{position:absolute;inset:-34px;border-radius:50%;background:conic-gradient(from 0deg,transparent 0 15%,var(--rs) 25%,transparent 40% 60%,var(--rs) 72%,transparent 85%);opacity:.32;filter:blur(22px);animation:rs-spin 16s linear infinite}
.rs-frame{position:relative;display:block;width:260px;height:340px;border-radius:130px 130px 16px 16px;overflow:hidden;border:1px solid color-mix(in srgb,var(--rs) 70%,transparent);box-shadow:0 0 0 6px #0d152099,0 0 0 7px color-mix(in srgb,var(--rs) 35%,transparent),0 30px 60px #000b;background:#0d1520}
.rs-frame img{width:100%;height:100%;object-fit:cover;object-position:50% 25%}
.rs-num{position:absolute;left:-22px;bottom:-14px;font:italic 400 64px/1 var(--serif);color:var(--rs);text-shadow:0 4px 18px #000c}
.rs-slide.is-active .rs-frame{animation:rs-reveal 1.1s cubic-bezier(.2,.75,.2,1) both}
.rs-slide.is-active .rs-frame img{animation:rs-ken 3.4s ease-out both}
.rs-slide.is-leaving .rs-frame{animation:rs-conceal .6s ease-in both}
.rs-back .rs-slide.is-active .rs-frame{animation-name:rs-reveal-back}.rs-back .rs-slide.is-leaving .rs-frame{animation-name:rs-conceal-back}
.rs-slide.is-active .rs-num{animation:rs-rise .8s cubic-bezier(.2,.75,.2,1) .35s both}
/* text arrives line by line */
.rs-text small,.rs-text h3,.rs-text blockquote,.rs-text p,.rs-text .actions{opacity:0}
.rs-slide.is-active .rs-text>*{animation:rs-rise .7s cubic-bezier(.2,.75,.2,1) both}
.rs-slide.is-active .rs-text>:nth-child(1){animation-delay:.18s}.rs-slide.is-active .rs-text>:nth-child(2){animation-delay:.26s}.rs-slide.is-active .rs-text>:nth-child(3){animation-delay:.36s}.rs-slide.is-active .rs-text>:nth-child(4){animation-delay:.46s}.rs-slide.is-active .rs-text>:nth-child(5){animation-delay:.54s}.rs-slide.is-active .rs-text>:nth-child(6){animation-delay:.62s}
.rs-kicker{display:block;color:var(--muted);font-size:13px;letter-spacing:.5px}
.rs-text h3{margin:6px 0 14px;font:400 clamp(38px,4.4vw,58px)/1.1 var(--serif);color:var(--ink)}
.rs-text h3 em{display:block;margin-top:8px;font-size:17px;font-weight:500;line-height:1.4;font-style:normal;letter-spacing:2px;color:var(--rs)}
.rs-text blockquote{margin:0 0 14px;padding-left:16px;border-left:2px solid var(--rs);font:20px/1.6 var(--serif);color:#ece6da;max-width:30em}
.rs-method{color:#d4d9df;max-width:36em;margin:0 0 12px}
.rs-text .actions{margin:18px 0 0}
/* thumbnails with a progress ring that doubles as the autoplay timer */
.rs-thumbs{position:relative;display:flex;justify-content:center;gap:22px;margin-top:30px;padding-top:18px;border-top:1px solid #ffffff12}
.rs-thumb{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;border:0;background:none;padding:4px;min-height:0;color:var(--muted);font-size:12px}
.rs-thumb img{width:48px;height:48px;border-radius:50%;object-fit:cover;opacity:.5;filter:grayscale(.5);transition:opacity .3s,filter .3s,transform .3s}
.rs-thumb:hover img{opacity:.85}
.rs-thumb.is-active{color:var(--ink)}.rs-thumb.is-active img{opacity:1;filter:none;transform:scale(1.06)}
.rs-thumb:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:8px}
.rs-ring{position:absolute;top:0;left:50%;width:56px;height:56px;margin-left:-28px;transform:rotate(-90deg);pointer-events:none}
.rs-ring circle{fill:none;stroke:var(--gold);stroke-width:2.2;stroke-linecap:round;stroke-dasharray:188.5;stroke-dashoffset:188.5}
.rs-thumb.is-active .rs-ring circle{animation:rs-progress 3s linear both}
.rs-paused .rs-thumb.is-active .rs-ring circle{animation:none;stroke-dashoffset:0;stroke-opacity:.6}
.rs-hold .rs-ring circle,.rs-off .rs-ring circle,.rs-hidden .rs-ring circle{animation-play-state:paused!important}
.rs-paused .rs-halo,.rs-paused .rs-stage:before,.rs-off .rs-halo{animation-play-state:paused}
.rs-note{margin-top:10px}
@keyframes rs-reveal{from{opacity:0;transform:rotateY(-38deg) translateX(-36px) scale(.94);filter:blur(4px)}to{opacity:1;transform:none;filter:none}}
@keyframes rs-reveal-back{from{opacity:0;transform:rotateY(38deg) translateX(36px) scale(.94);filter:blur(4px)}to{opacity:1;transform:none;filter:none}}
@keyframes rs-conceal{to{opacity:0;transform:rotateY(32deg) translateX(40px) scale(.94)}}
@keyframes rs-conceal-back{to{opacity:0;transform:rotateY(-32deg) translateX(-40px) scale(.94)}}
@keyframes rs-ken{from{transform:scale(1.14)}to{transform:scale(1)}}
@keyframes rs-rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes rs-spin{to{transform:rotate(360deg)}}
@keyframes rs-twinkle{from{opacity:.35}to{opacity:.9}}
@keyframes rs-progress{from{stroke-dashoffset:188.5}to{stroke-dashoffset:0}}
.persona-chosen{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin:16px 0 0;padding:12px 16px;border:1px solid #dcc29655;border-radius:8px;background:#dcc29610;font-size:14px}
@media(max-width:900px){.rs-slide{grid-template-columns:220px minmax(0,1fr);gap:34px}.rs-art{width:210px}.rs-frame{width:210px;height:280px;border-radius:105px 105px 14px 14px}}
@media(max-width:760px){
 .rs-stage{padding:26px 18px 16px;border-radius:12px}
 .rs-slide{grid-template-columns:1fr;gap:18px;text-align:center}
 .rs-art{width:170px}.rs-frame{width:170px;height:220px;border-radius:85px 85px 12px 12px}.rs-halo{inset:-22px}
 .rs-num{font-size:44px;left:-16px;bottom:-10px}
 .rs-text h3{font-size:34px}.rs-text h3 em{font-size:14px}
 .rs-text blockquote{border-left:0;padding:0;font-size:17px;margin-inline:auto}
 .rs-method{margin-inline:auto;font-size:14px}.rs-text .pc-topics{justify-content:center}
 .rs-text .actions{justify-content:center}.rs-text .actions .button{flex:1 1 100%;justify-content:center}
 .rs-thumbs{justify-content:flex-start;gap:10px;overflow-x:auto;scrollbar-width:none;margin-inline:-18px;padding-inline:18px}
 .rs-thumbs::-webkit-scrollbar{display:none}
 .reader-show .section-head{flex-direction:row;align-items:flex-end}
}
@media(prefers-reduced-motion:reduce){.reader-show *,.reader-show *:before{animation:none!important;transition:none!important}.rs-text>*{opacity:1!important;transform:none!important}.rs-thumb.is-active .rs-ring circle{stroke-dashoffset:0}}
@media print{.reader-show{display:none}}

/* v0.9.4 admin: AI quota block, .env-locked fields */
.quota-head{margin:1.6rem 0 .4rem}
#settings-form input:disabled{opacity:.55;cursor:not-allowed}

/* ---------- v0.9.5: richer card pages and the spread library ---------- */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.card-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:22px}
.card-sec h3{margin:0 0 8px;font-size:18px;color:var(--gold)}
.card-sec p{color:#dfe3e8;font-size:15px;line-height:1.85;margin:0 0 8px}
.card-sec-love{border-top:2px solid #d99aa6}.card-sec-career{border-top:2px solid var(--gold)}.card-sec-growth{border-top:2px solid #8fb7a4}.card-sec-advice{border-top:2px solid #9fb3d9}
.reflect-qs{margin:10px 0 12px;padding-left:22px}.reflect-qs li{color:var(--ink);margin-bottom:6px}
.card-faq{margin-top:28px}
.card-in-guides{margin-top:30px}.card-in-guides ul{list-style:none;padding:0;margin:12px 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.card-in-guides a{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:6px;color:var(--ink);background:#ffffff05;height:100%}
.card-in-guides a:hover{border-color:var(--gold)}.card-in-guides small{color:var(--muted);font-size:13px;line-height:1.5}
.spread-level{margin-top:34px}.spread-level h2 small{font-size:14px;font-family:system-ui,sans-serif}
.spread-cards{list-style:none;padding:0;margin:14px 0 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.spread-cards.compact{grid-template-columns:repeat(3,minmax(0,1fr))}
.spread-card{display:grid;grid-template-columns:120px minmax(0,1fr);gap:16px;align-items:center;color:var(--ink);padding:16px;height:100%}
.spread-cards.compact .spread-card{grid-template-columns:80px minmax(0,1fr);padding:12px}
.spread-card .spread-backs{max-width:120px;max-height:130px;padding:8px}
.spread-cards.compact .spread-backs{max-width:80px;max-height:90px;padding:6px}
.sc-text{display:flex;flex-direction:column;gap:2px}.sc-text b{font-size:17px}.sc-text small{color:var(--gold);font-size:12px;letter-spacing:1px}.sc-text span{color:var(--muted);font-size:14px}
.spread-hero{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:40px;align-items:start}
.spread-hero>div>p:not(.card-theme):not(.small){max-width:64ch;color:#dfe3e8}
.spread-figure .spread-backs{max-width:260px;max-height:320px}
.spread-positions{margin-top:36px}
.position-list{margin:0;padding-left:24px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px}
.position-list li{padding:6px 0;border-bottom:1px solid var(--line)}.position-list small{margin-left:6px}
.read-together{padding-left:20px;color:var(--muted)}
.spread-uses{margin-top:36px}.spread-uses li small a{color:var(--muted);text-decoration:underline}
.spread-uses .good-qs a{display:inline-block}
@media(max-width:760px){
 .card-sections,.card-in-guides ul,.spread-cards,.spread-cards.compact,.position-list{grid-template-columns:minmax(0,1fr)}
 .spread-hero{grid-template-columns:minmax(0,1fr)}.spread-figure{order:-1}
 .spread-card{grid-template-columns:90px minmax(0,1fr)}.spread-card .spread-backs{max-width:90px}
}
.spread-figure{display:flex;flex-direction:column;align-items:center;text-align:center}
.spread-uses small a{display:inline;padding:0;border:0;background:none;text-decoration:underline}.spread-uses small a:after{content:none}

/* ---------- v0.9.6: three-way language switch ---------- */
.lang-switch{display:inline-flex;align-items:center;gap:2px;margin-left:6px}
nav .lang-switch .lang-opt{border:0;background:none;padding:6px 6px;min-height:0;color:var(--muted);font-size:13px;line-height:1;cursor:pointer;border-radius:4px}
nav .lang-switch .lang-opt:after{display:none}
nav .lang-switch .lang-opt.on{color:var(--ink);font-weight:600;background:#ffffff12}
nav .lang-switch .lang-opt:hover{color:var(--ink)}
@media(max-width:760px){nav .lang-switch{margin:6px 0 0;padding:8px 0}nav .lang-switch .lang-opt{padding:10px 12px;font-size:15px}}

/* ---------- v0.9.7: contact entry points ---------- */
.cpills{display:inline-flex;flex-wrap:wrap;gap:8px;align-items:center}
.cpill{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:7px 14px;border:1px solid #d6bd8b70;border-radius:999px;background:#dcc2960d;color:var(--ink);font-size:13px;line-height:1.2;cursor:pointer;font-weight:500}
.cpill:hover{background:#dcc2961f;border-color:var(--gold)}.cpill .ico{width:17px;height:17px;flex:none}
.hero-contact{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;margin-top:14px}.hero-contact .hc-human{font-weight:650}
.contact-section{margin-top:56px}.contact-section>.muted{max-width:720px}
.ccards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:16px;margin-top:16px}
.ccard{display:flex;flex-direction:column}.ccard h3{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}.ccard h3 .ico{width:20px;height:20px}.ccard .actions{margin:auto 0 0;padding-top:12px}.ccard .actions>*{margin:0}
.ccard.rec{border-color:#b99f6aaa}.caccount{font-family:ui-monospace,Menlo,Consolas,monospace;color:var(--ink)!important;font-size:15px!important;overflow-wrap:anywhere;word-break:break-all;user-select:all;-webkit-user-select:all}.caccount.big{font-size:20px!important;margin:6px 0 10px}
.foot-contact{display:flex;flex-wrap:wrap;align-items:center;gap:8px;width:100%}.foot-contact>span{margin-right:4px}
.cmodal{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:16px}
.cmodal-back{position:absolute;inset:0;background:#05090fcc}
.cmodal-box{position:relative;width:min(440px,100%);max-height:calc(100vh - 32px);overflow:auto;padding:26px 24px 18px}
.cmodal-box:hover{transform:none}.cmodal-box h2{display:flex;align-items:center;gap:8px;margin:0 30px 8px 0}.cmodal-box h2 .ico{width:22px;height:22px}
.cmodal-x{position:absolute;top:8px;right:8px;width:44px;height:44px;padding:0;font-size:24px;line-height:1;border:0}
.cmodal-box .actions{margin:14px 0 6px}.cmodal-box .actions>*{flex:1 1 140px;justify-content:center;text-align:center}
.cmodal-status{min-height:1.5em;color:var(--gold)!important}
.cqr{margin:8px 0;text-align:center}.cqr img{width:220px;max-width:100%;height:auto;background:#fff;border-radius:6px;padding:6px}
body.cmodal-open{overflow:hidden}
.contact-bar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;align-items:center;gap:8px;padding:8px 12px calc(8px + env(safe-area-inset-bottom));background:#0d1520f2;border-top:1px solid #b99f6a66;backdrop-filter:blur(10px)}
.contact-bar[hidden]{display:none}.cbar-title{font-size:12px;color:var(--gold);flex:none;max-width:6.5em;line-height:1.3}
.contact-bar .cpills{flex:1;justify-content:flex-end;flex-wrap:nowrap;overflow-x:auto}.contact-bar .cpill{min-height:44px;padding:6px 12px;white-space:nowrap}
body.has-cbar{padding-bottom:calc(68px + env(safe-area-inset-bottom))}body.has-cbar #toast{bottom:calc(76px + env(safe-area-inset-bottom))}
@media(min-width:761px){.contact-bar{display:none!important}body.has-cbar{padding-bottom:0}}
@media(max-width:380px){.cbar-title{display:none}.contact-bar .cpill span{font-size:12px}}
/* ---------- v0.9.7: orders and payment review ---------- */
.order-card{margin:16px 0;overflow-wrap:anywhere}.order-card:hover,.review-card:hover{transform:none}
.order-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.order-head small{display:block}
.order-no{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:17px;letter-spacing:.5px;color:var(--ink);word-break:break-all}
.order-title{margin:10px 0}.order-steps{display:flex;gap:6px;padding:0;margin:14px 0;list-style:none;counter-reset:s;flex-wrap:wrap}
.order-steps li{flex:1 1 120px;padding:8px 10px;border:1px solid var(--line);border-radius:6px;font-size:12px;color:var(--muted);counter-increment:s}
.order-steps li:before{content:counter(s) '. '}.order-steps li.done{border-color:#8fb7a4;color:#cfe5d9}.order-steps li.now{border-color:var(--gold);color:var(--ink);background:#dcc2960f}
.warn-note{border-left-color:#e6a37d}.ok-note{border-left-color:#8fb7a4;color:var(--ink)}
.pay-way{padding:10px 0;border-bottom:1px solid #ffffff10}.proof-form{margin-top:12px}.form-error{color:#ffbaab!important;min-height:1.2em}
.order-help{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px;padding-top:12px;border-top:1px solid #ffffff10}.order-help>button{margin:0}
.subs ol{padding-left:20px}.subs li{margin:6px 0}
.money-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0}.money-grid>div{border:1px solid var(--line);border-radius:6px;padding:8px 10px}.money-grid small{display:block;font-size:12px}.money-grid b{font-size:16px}
.review-card{margin:14px 0}.review-card.overdue,.admin-grid .overdue{border-color:#e6a37d}.review-form{margin-top:12px;border-top:1px solid var(--line);padding-top:8px}.review-form h4{margin:6px 0;font-size:14px;color:var(--gold)}
.proof-thumbs{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}.proof-thumbs img{width:120px;height:160px;object-fit:cover;border-radius:6px;border:1px solid var(--line);background:#fff}
.filter-row{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.filter-row>*{width:auto;flex:1 1 140px}.filter-row button{flex:0 0 auto}
.inline-form{display:flex;flex-wrap:wrap;gap:8px;align-items:end}.inline-form label{width:100%}.inline-form input{flex:1 1 220px;width:auto}
.notify-list{list-style:none;padding:0}.notify-list li{padding:6px 0;border-bottom:1px solid #ffffff10;overflow-wrap:anywhere}.notify-list button{padding:4px 10px;margin-left:6px}
.tag.warn{border-color:#e6a37d;color:#ffcfb4}
.contact-channel fieldset{border:1px solid var(--line);border-radius:6px;margin:12px 0 0;padding:8px 10px}.contact-channel legend{color:var(--muted);font-size:13px;padding:0 4px}
.optin{display:flex;gap:8px;align-items:flex-start;margin-top:10px}.optin input{margin-top:5px}
@media(max-width:760px){.money-grid{grid-template-columns:1fr}.order-steps li{flex-basis:45%}.cmodal{align-items:flex-end;padding:0}.cmodal-box{width:100%;border-radius:12px 12px 0 0;padding-bottom:calc(18px + env(safe-area-inset-bottom))}}
.proof-form .h3-like{font-size:17px;margin:16px 0 2px}
@media(max-width:430px){.cbar-title{display:none}.contact-bar .cpills{justify-content:stretch}.contact-bar .cpill{flex:1 1 0;justify-content:center;padding:6px 8px}}

/* ---------- v0.9.8: AI membership ---------- */
.pricing{max-width:1080px;margin:auto}.pricing .lead{max-width:680px;font-size:16px}
.period-toggle{display:inline-flex;gap:6px;margin:18px 0 6px;flex-wrap:wrap}.period-toggle button.active{background:var(--gold);color:var(--dark);border-color:var(--gold)}.period-toggle .tag{margin-left:6px}
.plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:16px;margin:18px 0 10px}
.plan-card{display:flex;flex-direction:column;gap:6px;position:relative}.plan-card:hover{transform:none}.plan-card.featured{border-color:var(--gold);box-shadow:0 0 0 1px #dcc29655,0 18px 42px #060b1238}
.plan-card>.tag{position:absolute;top:14px;right:14px}.plan-card h3{margin:0}.plan-price b{font:40px Georgia,serif;color:var(--gold);font-weight:400}
.perks{padding-left:20px;margin:8px 0 14px;color:var(--ink);font-size:14px}.perks li{margin:5px 0}.plan-card>button,.plan-card>.button{margin-top:auto;justify-content:center;text-align:center}
.member-card{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;justify-content:space-between;margin:18px 0;border-color:#b99f6aaa}.member-card .eyebrow{margin:0 0 4px}.member-card p{margin:0;flex-basis:100%}
.member-hint{margin:18px 0}
.member-teaser{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;margin-top:46px;background:linear-gradient(110deg,#dcc2961a,#1a293980);border-color:#b99f6a88}.member-teaser:hover{transform:none}.member-teaser .eyebrow{margin-bottom:6px}.member-teaser h2{margin:0 0 4px}.member-teaser p{margin:0;max-width:640px}
.offers{margin-top:14px;padding-top:12px;border-top:1px solid #ffffff14}.offer-plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:10px}
.offer-plan{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;margin:0}.offer-plan.featured{border-color:var(--gold)}.offer-plan small{color:var(--muted)}
.plan-edit textarea{min-height:70px}
.period-toggle button.active .tag{color:var(--dark);border-color:#0d152088;background:#ffffff40}
.panel .offer-plan{margin:0}.offers>button{margin-top:12px}
/* v0.9.8.2: amounts always carry their currency */
.pay-way-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.25rem .75rem;align-items:baseline}
.pay-due{white-space:nowrap}
.pay-due b{font-size:1.15em}
.amount-field{position:relative;display:flex;align-items:stretch}
.amount-field input{flex:1;min-width:0;padding-right:4.2rem}
.amount-field .unit{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);font-weight:600;opacity:.75;pointer-events:none}
.fx-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.5rem 1rem;margin-bottom:1rem}
/* v0.9.9: user management */
.stat-btn{text-align:left;font:inherit;color:inherit;cursor:pointer}
.stat-btn:disabled{cursor:default;opacity:1}
.stat-btn:not(:disabled):hover{border-color:var(--gold,#d8bd8a)}
.user-stats{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.tag.role-admin{background:#d8bd8a;color:#151b29}
.tag.role-member{background:#2f5d50;color:#e8fff6}
.tag.role-expired{opacity:.7}
.user-table td{vertical-align:top}
.user-table .tag{margin:0 .25rem .25rem 0}
.row-off{opacity:.6}
.user-note{color:#d8bd8a}
.user-detail section{border-top:1px solid #ffffff14;margin-top:1.25rem;padding-top:1rem}
.user-detail .inline-form{margin-top:.75rem}
.plain-list{list-style:none;padding:0;margin:0}
.plain-list li{padding:.35rem 0;border-bottom:1px solid #ffffff0d}
code.break{word-break:break-all;white-space:normal}
.pager{justify-content:center}
.user-table td{text-align:left}.user-table th{text-align:left}
.user-table td:nth-child(5),.user-table td:nth-child(7){text-align:right}
@media (max-width:700px){.user-stats{grid-template-columns:repeat(2,1fr)}}
/* v1.0.1 case numbers */
.case-no{color:var(--gold);font-size:13px;letter-spacing:1px;margin:6px 0 0}.case-no b{font-family:ui-monospace,monospace;font-weight:600}
.case-no-s{display:block;font:12px ui-monospace,monospace;color:var(--gold);letter-spacing:.5px;margin-top:6px}
/* v1.0.3: case sheet (案例单) — number, question, spread as laid out, reading, client signature */
.case-sheet-card{gap:12px}
.cs-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;flex-wrap:wrap;border-bottom:1px dashed var(--line);padding-bottom:10px}
.cs-no{font-size:12px;color:var(--muted);letter-spacing:.5px}.cs-no b{display:block;font:600 14px ui-monospace,monospace;color:var(--gold);letter-spacing:.5px}
.cs-line{display:flex;gap:4px;align-items:baseline;min-width:0}.cs-line>.cs-k{flex:0 0 auto}
.cs-k{color:var(--gold);font-size:13px;font-weight:600;white-space:nowrap}
.tag-kind{color:var(--ink);border-color:#dcc29680}.tag-kind.tag-ai{color:var(--lavender);border-color:#b3aff080}
.cs-board-mini{display:block;background:radial-gradient(ellipse at center,#dcc2960f,transparent 70%),#0f1724;border:1px solid var(--line);border-radius:8px;padding:8px}
.cs-board-mini svg{display:block;width:100%;height:150px}
.case-grid .cs-board-mini svg{height:190px}
.cs-read .case-sum{-webkit-line-clamp:3}
.cs-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:8px;border-top:1px dashed var(--line)}
.cs-sign-s{font-size:12px;color:var(--muted)}.cs-sign-s.on{color:var(--sage)}
.case-sheet{margin:22px 0 28px;padding:26px 28px;max-width:none}
.case-sheet .cs-top{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:16px}
.case-sheet .case-no{font-size:15px;margin:0}.case-sheet .case-no b{font-size:17px}
.case-sheet .case-tags{margin:0}
.cs-question{align-items:baseline;gap:6px}.cs-question .cs-k{font-size:16px}.cs-question .case-title{margin:0;font-size:clamp(24px,3vw,36px)}
.cs-meta{font-size:13px;margin:8px 0 0}
.case-sheet .cs-board{margin:16px 0}
.cs-positions{list-style:none;margin:6px 0 18px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:6px 18px}
.cs-positions li{display:flex;align-items:baseline;gap:8px;font-size:14px;padding:6px 0;border-bottom:1px solid #34435466;flex-wrap:wrap}
.cs-positions b{color:var(--ink);font-weight:600}.cs-positions small{font-size:12px}
.cs-badge{flex:0 0 24px;height:24px;border-radius:50%;background:var(--gold);color:var(--dark);font:700 13px/24px system-ui,sans-serif;text-align:center}
.case-sheet .cs-read{display:block;border-top:1px solid var(--line);padding-top:16px;margin-top:8px}
.case-sheet .cs-read .report-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.case-sheet .cs-read .cs-k{font-size:16px}
.cs-sign{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:22px;flex-wrap:wrap}
.cs-sigbox{min-width:260px;min-height:64px;border:1px dashed var(--line);border-radius:6px;padding:10px 14px;display:flex;flex-direction:column;justify-content:center;color:var(--muted);font-size:14px}
.cs-sigbox.on{border-style:solid;border-color:#a4d1a088;color:var(--sage)}.cs-sigbox small{font-size:12px;color:var(--muted)}
@media(max-width:760px){.case-sheet{padding:18px 16px}.cs-sign{justify-content:stretch}.cs-sigbox{min-width:0;width:100%}.cs-question{flex-direction:column;gap:2px}}
/* v1.0.4: new case · start now (算牌案例) */
.case-new{display:flex;justify-content:space-between;align-items:center;gap:18px 28px;flex-wrap:wrap;margin:0 0 22px;border-color:#dcc29666;background:linear-gradient(120deg,#dcc29612,transparent 60%),var(--panel)}
.case-new-text{flex:1 1 420px;min-width:0}.case-new-text h2{margin:10px 0 6px}.case-new-text p{margin:0}
.case-new-actions{margin:0;flex:0 1 auto}
.button.primary.alt{background:transparent;color:var(--gold);border:1px solid var(--gold)}
.instant-panel{margin:22px 0;border-color:#dcc29666}.instant-panel h2{margin:10px 0 6px}.instant-panel .cpills{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.instant-panel .cpill{margin:0}
@media(max-width:760px){.case-new-actions{width:100%}.case-new-actions .button{flex:1 1 100%;text-align:center}}
[data-admin-only][hidden]{display:none!important}
/* v1.0.6: studio meanings: a short explanation under each keyword line */
.card-keys .card-note{display:block;margin-top:4px;font-size:13px;line-height:1.6;color:var(--muted)}
.card-howto{font-size:13px;margin:10px 0 0}
/* v1.0.8: extended meanings by angle */
.card-angles{margin:26px 0}.card-angles h2{margin-bottom:6px}
.angle-table{width:100%;border-collapse:collapse;font-size:14px;line-height:1.7}
.angle-table th,.angle-table td{text-align:left;vertical-align:top;padding:10px 12px;border-bottom:1px solid var(--line)}
.angle-table thead th{color:var(--gold);font-weight:600;font-size:13px}
.angle-table tbody th{color:var(--gold);white-space:nowrap;font-weight:600;width:7em}
.angle-table td:last-child{color:#e9c8cf}
@media(max-width:760px){.angle-table thead{display:none}.angle-table tr{display:block;padding:10px 12px;border-bottom:1px solid var(--line)}.angle-table th,.angle-table td{display:block;border:0;padding:3px 0}.angle-table td::before{content:attr(data-label) '：';color:var(--muted);font-size:12px}}
/* v1.0.9: extended meanings on the card library */
.lib-angles{margin:12px 0 0;border:1px solid var(--line);border-radius:8px;padding:0}
.lib-angles summary{cursor:pointer;padding:9px 12px;color:var(--gold);font-size:14px;font-weight:600;list-style:none}
.lib-angles summary::-webkit-details-marker{display:none}
.lib-angles summary b::after{content:' ▾';color:var(--muted);font-weight:400}.lib-angles[open] summary b::after{content:' ▴'}
#card-library,.library-grid{align-items:start}
.lib-angles summary span{display:block;font-size:12px;font-weight:400;color:var(--muted);margin-top:2px}
.lib-angles dl{margin:0;padding:0 12px 10px}
.lib-angles dl>div{padding:8px 0;border-top:1px solid #34435480}
.lib-angles dt{color:var(--gold);font-size:13px;font-weight:600;margin-bottom:2px}
.lib-angles dd{margin:2px 0;font-size:13px;line-height:1.65;color:var(--ink)}
.lib-angles .la-up,.lib-angles .la-rev{display:inline-block;font-size:11px;padding:0 6px;margin-right:6px;border-radius:4px;border:1px solid #dcc29666;color:var(--gold)}
.lib-angles .la-rev{border-color:#e7a6b666;color:var(--rose)}
.library-card .lib-more{display:inline-block;margin-top:10px;font-size:13px}
#card-library .library-card{height:auto}
/* an opened card takes the whole row so the five angles are easy to read (phones show two narrow columns) */
#card-library .library-card:has(.lib-angles[open]){grid-column:1/-1}
#card-library .library-card:has(.lib-angles[open]) .lib-angles dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 18px}
#card-library .library-card>div{flex:1;min-width:0}#card-library .library-card:has(.lib-angles[open]) .meaning,#card-library .library-card:has(.lib-angles[open]) .lib-angles{max-width:none}
[data-admin-only][hidden]{display:none!important}
/* v1.0.11 founder's story (/about/founder): everything scoped to .founder-page */
.founder-page{--fd-bg:#111b29;--fd-band:#152230;--fd-gold:#d8b778;--fd-title:#f2eee5;--fd-text:#aeb8bf;--fd-sun:#b8452e;color:var(--fd-text);font-size:16px;line-height:1.95}
.founder-page .eyebrow{color:var(--fd-gold);margin-bottom:14px}
.founder-page h1,.founder-page h2,.founder-page h3{color:var(--fd-title)}
.founder-page p{margin:0 0 1.1em}
.founder-page .fd-h1,.founder-page .fd-h2{font-family:var(--serif);font-weight:400;letter-spacing:.02em}
.founder-page .fd-h1{font-size:clamp(30px,4.6vw,58px);line-height:1.38;margin:0 0 26px}
.founder-page .fd-h2{font-size:clamp(25px,3vw,38px);line-height:1.45;margin:0 0 18px}
.founder-page .fd-h1 span,.founder-page .fd-h2 span{display:block}
.founder-page .fd-h1 span,.founder-page .fd-h2 span{line-break:strict;text-wrap:balance}
html[lang="en"] .founder-page .fd-h1{font-size:clamp(30px,3.6vw,48px);line-height:1.3}
html[lang="en"] .founder-page .fd-h2{font-size:clamp(24px,2.5vw,32px)}
.founder-page section{scroll-margin-top:96px}
.founder-page .button:focus-visible{outline:2px solid var(--fd-gold);outline-offset:3px}
/* hero: text left, photo right; phones: title, intro, photo, buttons */
.fd-hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);grid-template-areas:"head photo" "actions photo";column-gap:clamp(32px,5vw,72px);align-items:end;padding:12px 0 64px}
.fd-hero-head{grid-area:head;align-self:end}
.fd-hero-actions{grid-area:actions;align-self:start;display:flex;flex-wrap:wrap;gap:12px}
.fd-lead{font-size:17px;max-width:34em;color:var(--fd-text)}
.fd-portrait{grid-area:photo;margin:0;justify-self:end;width:100%;max-width:440px}
.fd-portrait img{display:block;width:100%;height:auto;aspect-ratio:2/3;object-fit:cover;object-position:50% 20%;border-radius:10px;border:1px solid #d8b77833;background:var(--fd-band);box-shadow:0 26px 60px #0007}
.fd-portrait figcaption{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-top:12px;font-size:13px;line-height:1.6}
.fd-portrait figcaption b{color:var(--fd-title);font-weight:500;letter-spacing:.06em}
.fd-portrait figcaption span{color:var(--fd-gold);letter-spacing:.14em;font-size:12px;text-transform:uppercase}
/* story: one reading column, quote, white space */
.fd-story{max-width:760px;margin:0 auto;padding:72px 0 40px;border-top:1px solid #d8b77824}
.fd-byline{color:var(--fd-gold);font-size:14px;letter-spacing:.08em;margin-bottom:30px!important}
.fd-byline:before{content:'— '}
.fd-prose p{color:#c6cdd2}
.fd-quote{margin:40px 0;padding:6px 0 6px 26px;border-left:2px solid var(--fd-gold)}
.fd-quote p{font-family:var(--serif);font-size:clamp(20px,2.3vw,26px);line-height:1.7;color:var(--fd-title);margin:0}
.fd-quote span{display:block}
.fd-ending{color:var(--fd-title)!important}
/* the Sun: the only red-gold accent on the page */
.fd-sun{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(28px,5vw,64px);align-items:center;margin:48px 0;padding:clamp(28px,4vw,48px);background:var(--fd-band);border-radius:12px;border:1px solid #d8b77822}
.fd-sun-card{margin:0;text-align:center}
.fd-sun-card img{display:block;width:min(230px,56vw);height:auto;aspect-ratio:276/428;border-radius:8px;box-shadow:0 0 0 1px #d8b77855,0 18px 48px #b8452e38;background:#f7f4ec}
.fd-sun-card figcaption{margin-top:16px;color:var(--fd-gold);font-family:var(--serif);font-size:17px;letter-spacing:.08em}
.fd-sun-text .eyebrow{color:#e0a272}
.fd-sun-text p{color:#c6cdd2}
/* four cards: numbers and short paragraphs, no extra card art */
.fd-philosophy{padding:56px 0 24px}
.fd-sublead{font-size:17px;color:var(--fd-title)}
.fd-four{list-style:none;margin:30px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(28px,5vw,64px)}
.fd-four li{padding:26px 0;border-top:1px solid #d8b77830}
.fd-four h3{font-family:var(--serif);font-weight:400;font-size:23px;margin:4px 0 10px}
.fd-four p{margin:0}
.fd-four .fd-card-label{color:var(--fd-gold);font-size:13px;letter-spacing:.12em}
.fd-four .fd-no{font-family:var(--serif);font-size:20px;letter-spacing:.04em}
/* mission & vision side by side */
.fd-mv{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,4vw,48px);padding:48px 0}
.fd-mv-item{padding:clamp(24px,3vw,36px);border:1px solid #d8b77826;border-radius:12px;background:linear-gradient(160deg,#152230,#111b29)}
.fd-principles{padding:32px 0 24px}
.fd-principles ul{list-style:none;margin:20px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,3vw,40px)}
.fd-principles li{padding-top:18px;border-top:2px solid #d8b77855}
.fd-principles h3{font-size:18px;font-weight:600;margin:0 0 8px}
.fd-principles p{margin:0;font-size:15px}
.fd-cta{margin:56px auto 24px;max-width:820px;text-align:center;padding:clamp(32px,5vw,56px) clamp(20px,4vw,48px);border-radius:14px;background:var(--fd-band);border:1px solid #d8b77833}
.fd-cta>p{max-width:36em;margin-left:auto;margin-right:auto}
.fd-cta-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin:26px 0 14px}
.fd-note{font-size:14px;margin:0!important}
.fd-footnote{max-width:820px;margin:28px auto 0;font-size:13px;line-height:1.8;color:#8f9aa3;text-align:center}
@media(max-width:860px){
 .fd-hero{grid-template-columns:1fr;grid-template-areas:"head" "photo" "actions";padding-bottom:44px}
 .fd-portrait{justify-self:center;max-width:420px;margin:6px 0 26px}
 .fd-sun{grid-template-columns:1fr;text-align:left}
 .fd-sun-card{justify-self:center}
 .fd-four,.fd-mv,.fd-principles ul{grid-template-columns:1fr}
 .fd-story{padding-top:52px}
}
@media(max-width:760px){
 .founder-page{font-size:15.5px}
 .fd-hero-actions .button,.fd-cta-actions .button{flex:1 1 100%;justify-content:center}
 .fd-quote{padding-left:18px}
 .fd-sun,.fd-mv-item{padding:24px 18px}
}
@media(prefers-reduced-motion:no-preference){
 .fd-portrait img,.fd-sun-card img{animation:fd-in .7s ease-out both}
 @keyframes fd-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
}
@media(min-width:761px){#nav>a{white-space:nowrap}}
