/* 時中 Shízhōng · design tokens */
@font-face{font-family:Spectral;font-style:normal;font-weight:300;font-display:swap;src:url(/assets/fonts/spectral-latin-300-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Spectral;font-style:normal;font-weight:300;font-display:swap;src:url(/assets/fonts/spectral-latin-ext-300-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Spectral;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/spectral-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Spectral;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/spectral-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Spectral;font-style:italic;font-weight:400;font-display:swap;src:url(/assets/fonts/spectral-latin-400-italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Spectral;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/spectral-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Spectral;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/spectral-latin-ext-600-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root{
 --paper:#EEF1EC;--panel:#E3E8E2;--ink:#1D2742;--ink2:#46506A;--bronze:#4E6E63;--cin:#B3362C;--mist:#CBD3CB;--light:#F7F9F6;
 --serif:Spectral,"Songti SC","STSong","Noto Serif CJK SC","Source Han Serif SC","Noto Serif SC","SimSun",Georgia,serif;
 --sans:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",system-ui,-apple-system,"Segoe UI",sans-serif;
 --w:1180px;--rail:210px;--gap:clamp(20px,4vw,48px);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:400 18px/1.62 var(--serif);font-kerning:normal;font-variant-numeric:oldstyle-nums proportional-nums}
html[lang^=zh] body{font-size:17px;line-height:1.85;letter-spacing:.01em}
img,svg{max-width:100%}
a{color:var(--ink);text-decoration-color:var(--bronze);text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{color:var(--cin);text-decoration-color:var(--cin)}
:focus-visible{outline:2px solid var(--cin);outline-offset:3px;border-radius:2px}
h1,h2,h3,h4{font-weight:300;line-height:1.15;margin:0 0 .5em;letter-spacing:-.005em;text-wrap:balance}
h1{font-size:clamp(38px,5.6vw,64px)}
h2{font-size:clamp(28px,3.4vw,40px)}
h3{font-size:24px;font-weight:400}
h4{font-size:19px;font-weight:600}
html[lang^=zh] h1,html[lang^=zh] h2{font-weight:400;letter-spacing:.04em}
p{margin:0 0 1em}
.lede{font-size:clamp(20px,2vw,23px);line-height:1.5;color:var(--ink2);max-width:40em}
small,.small{font-size:15px}
.muted{color:var(--ink2)}
hr{border:0;border-top:1px solid var(--mist);margin:2.5em 0}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:var(--light);padding:8px 14px;z-index:100}
.skip:focus{left:10px;top:10px}
.wrap{max-width:var(--w);margin:0 auto;padding:0 var(--gap)}
.sec{padding:clamp(48px,7vw,96px) 0}
.sec+.sec{border-top:1px solid var(--mist)}
.zh-t{font-family:var(--serif)}

/* header */
.top{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:20px;padding:12px var(--gap);background:rgba(238,241,236,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--mist)}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);flex:0 0 auto}
.seal{width:38px;height:38px;flex:0 0 auto}
.seal rect{fill:var(--cin)}
.seal text{fill:var(--light);font:600 15px var(--serif)}
.bt{display:flex;flex-direction:column;line-height:1.15}
.bf{font-size:18px;font-weight:600;letter-spacing:.02em}
.bs{font-size:13px;color:var(--ink2)}
#nav{display:flex;align-items:center;gap:22px;margin-left:auto}
.nl{display:flex;gap:18px;list-style:none;margin:0;padding:0}
.nl a{text-decoration:none;font-size:16px;padding:6px 0;border-bottom:1px solid transparent}
.nl a[aria-current]{border-bottom-color:var(--cin)}
.nx{display:flex;align-items:center;gap:14px}
.langs{display:flex;gap:2px;font-size:14px}
.langs a{text-decoration:none;padding:3px 7px;border-radius:3px;color:var(--ink2)}
.langs a[aria-current]{background:var(--ink);color:var(--light)}
.acct{font-size:15px;text-decoration:none}
.navbtn{display:none;margin-left:auto;font:inherit;font-size:15px;background:none;border:1px solid var(--ink);color:var(--ink);padding:6px 14px;border-radius:3px;cursor:pointer}
@media (max-width:1060px){
 .navbtn{display:block}
 #nav{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;background:var(--paper);border-bottom:1px solid var(--mist);padding:16px var(--gap) 24px;gap:16px}
 #nav.open{display:flex}
 .nl{flex-direction:column;gap:4px}
 .nl a{display:block;font-size:19px;padding:8px 0}
 .nx{flex-wrap:wrap}
}

/* buttons & forms */
.btn{display:inline-block;font:inherit;font-size:16px;line-height:1.2;padding:11px 20px;border-radius:3px;border:1px solid var(--ink);background:transparent;color:var(--ink);text-decoration:none;cursor:pointer;transition:background .15s,color .15s}
.btn:hover{background:var(--ink);color:var(--light)}
.btn-c{background:var(--cin);border-color:var(--cin);color:var(--light)}
.btn-c:hover{background:#8F2A22;border-color:#8F2A22;color:var(--light)}
.btn-l{border-color:var(--light);color:var(--light)}
.btn-l:hover{background:var(--light);color:var(--ink)}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.btns{display:flex;flex-wrap:wrap;gap:12px;margin:1.4em 0}
label{display:block;font-size:15px;margin:0 0 4px;color:var(--ink2)}
input,select,textarea{font:inherit;font-size:17px;width:100%;padding:10px 12px;border:1px solid var(--mist);border-radius:3px;background:var(--light);color:var(--ink)}
textarea{min-height:120px;resize:vertical}
input:focus,select:focus,textarea:focus{border-color:var(--ink);outline:none;box-shadow:0 0 0 2px rgba(29,39,66,.15)}
.field{margin-bottom:16px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}
@media (max-width:700px){.grid2{grid-template-columns:minmax(0,1fr)}}
.check{display:flex;gap:10px;align-items:flex-start;font-size:15px;color:var(--ink)}
.check input{width:auto;margin-top:5px}
.note{font-size:15px;color:var(--ink2);border-left:2px solid var(--bronze);padding:4px 0 4px 14px;margin:1.2em 0}
.warn{border-left-color:var(--cin)}
.msg{padding:10px 14px;border-radius:3px;background:var(--panel);font-size:15px;margin:10px 0}
.msg.err{background:#F3DEDA;color:#7A1F18}

/* hero */
.hero{background:var(--ink);color:var(--light);overflow:hidden}
.hero a{color:var(--light)}
.hgrid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:var(--gap);align-items:center;padding-top:clamp(56px,8vw,112px);padding-bottom:clamp(56px,8vw,112px)}
.hero h1{color:var(--light);font-weight:300;max-width:12em}
.hero .lede{color:#C9D0DF}
.cast{display:flex;flex-direction:column;align-items:center;gap:18px}
.cast .bars{display:flex;flex-direction:column-reverse;gap:14px;width:min(320px,70vw);cursor:pointer}
.cast .bar{height:26px;display:flex;justify-content:space-between;opacity:0;transform:translateY(8px);transition:opacity .5s ease,transform .5s ease}
.cast .bar.on{opacity:1;transform:none}
.cast .bar i{display:block;height:100%;background:var(--light);border-radius:1px;transition:background .3s,width .4s}
.cast .bar.yang i:first-child{width:100%}.cast .bar.yang i:last-child{width:0}
.cast .bar.yin i{width:44%}
.cast .bar.mv i{background:var(--cin)}
.cast .cap{text-align:center;min-height:5.5em}
.cast .cap b{display:block;font-weight:400;font-size:22px}
.cast .cap span{color:#C9D0DF;font-size:16px}
.cast .hint{font-size:14px;color:#9FA9C0}
@media (max-width:860px){.hgrid{grid-template-columns:minmax(0,1fr)}.cast{order:-1}.cast .bars{width:min(240px,60vw);gap:10px}.cast .bar{height:20px}}
@media (prefers-reduced-motion:reduce){.cast .bar{transition:none}html{scroll-behavior:auto}}

/* commentary layout: rail + text */
.cm{display:grid;grid-template-columns:var(--rail) minmax(0,1fr);gap:var(--gap)}
.cm>.rail{font-size:15px;color:var(--ink2)}
.cm>.rail .sticky{position:sticky;top:96px}
.cm>.txt{max-width:72ch}
.txt h2{margin-top:1.6em}.txt h2:first-child{margin-top:0}
.txt h3{margin-top:1.4em}
@media (max-width:860px){.cm{grid-template-columns:minmax(0,1fr)}.cm>.rail .sticky{position:static}}
.toc{list-style:none;padding:0;margin:0}
.toc li{margin:0 0 6px}
.toc a{text-decoration:none}
.pagehead{padding-top:clamp(40px,6vw,80px);padding-bottom:clamp(24px,4vw,40px)}
.pagehead .lede{margin-top:.6em}
.crumbs{font-size:14px;color:var(--ink2);margin-bottom:1.2em}
.crumbs a{color:var(--ink2)}

/* hexagram glyphs */
.hx rect{fill:currentColor}
.hx rect.m,.hx rect.f{fill:var(--cin)}
.hxl{color:var(--ink)}
.hx-big{width:120px;height:auto}
.gua{font-size:clamp(64px,9vw,112px);line-height:1;font-weight:400;letter-spacing:.02em}
.classic{font-size:21px;line-height:1.8;letter-spacing:.04em}
.tr{color:var(--ink2)}

/* two doors */
.doors{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap)}
.door{border-top:2px solid var(--ink);padding-top:22px}
.door h3{font-size:28px;font-weight:300}
.door ol{list-style:none;padding:0;margin:1em 0;columns:2;column-gap:24px;font-size:16px}
.door li{break-inside:avoid;margin-bottom:6px}
@media (max-width:760px){.doors{grid-template-columns:minmax(0,1fr)}.door ol{columns:1}}

/* six-line method */
.six{list-style:none;padding:0;margin:0;display:flex;flex-direction:column-reverse;gap:0;border-left:1px solid var(--mist)}
.six li{display:grid;grid-template-columns:70px minmax(0,1fr);gap:18px;padding:18px 0 18px 18px;border-top:1px solid var(--mist)}
.six li:last-child{border-top:0}
.six .ln{font-size:15px;color:var(--bronze)}
.six .ln svg{display:block;margin-top:6px}
.six h4{margin:0 0 4px}
.six p{margin:0;font-size:17px}

/* library */
.dom-nav{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 28px}
.dom-nav a{font-size:15px;text-decoration:none;padding:6px 12px;border:1px solid var(--mist);border-radius:3px}
.dom-nav a[aria-current]{background:var(--ink);color:var(--light);border-color:var(--ink)}
.sub{margin:0 0 56px}
.sub>header{display:flex;gap:18px;align-items:baseline;justify-content:space-between;flex-wrap:wrap;border-bottom:1px solid var(--ink);padding-bottom:10px;margin-bottom:6px}
.sub>header h2{font-size:28px;margin:0}
.sub .tools{font-size:14px;color:var(--ink2)}
.rows{list-style:none;padding:0;margin:0}
.row{border-bottom:1px solid var(--mist)}
.row>details>summary{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:16px;align-items:center;padding:14px 0;cursor:pointer;list-style:none}
.row>details>summary::-webkit-details-marker{display:none}
.row .t{font-size:18px}
.row .meta{font-size:14px;color:var(--ink2);white-space:nowrap}
.row .body{padding:0 0 20px 60px;max-width:calc(72ch + 60px)}
.row .body p{font-size:17px}
.row .line{font-size:16px;color:var(--ink2)}
.row details[open]>summary .t{color:var(--cin)}
@media (max-width:600px){.row>details>summary{grid-template-columns:36px minmax(0,1fr)}.row .meta{display:none}.row .body{padding-left:0}}
.libtools{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:0 0 28px}
.libtools input{max-width:360px}

/* hex page */
.hexhead{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:clamp(18px,3vw,44px);align-items:center}.hexhead .gua{margin:0;font-size:clamp(72px,8vw,118px)}
@media(max-width:720px){.hexhead{grid-template-columns:auto 1fr}.hexhead>div{grid-column:1/-1}}
.hexhead svg{color:var(--ink)}
.lines-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column-reverse}
.lines-list li{display:grid;grid-template-columns:110px minmax(0,1fr);gap:18px;padding:16px 0;border-top:1px solid var(--mist)}
.lines-list .lab{font-size:15px;color:var(--bronze)}
.lines-list .cl{font-size:19px;letter-spacing:.03em;margin-bottom:4px}
@media (max-width:600px){.lines-list li{grid-template-columns:minmax(0,1fr);gap:4px}}
.pairs{display:flex;flex-wrap:wrap;gap:20px;margin-top:10px}
.pairs a{display:flex;gap:10px;align-items:center;text-decoration:none;font-size:15px}
.hexgrid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:4px}
.hexgrid a{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 4px;text-decoration:none;border:1px solid transparent;border-radius:3px;font-size:14px;text-align:center}
.hexgrid a:hover,.hexgrid a.hl{border-color:var(--ink);background:var(--light)}
.hexgrid a.dim{opacity:.25}
.hexgrid .cn{font-size:20px}
@media (max-width:700px){.hexgrid{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* tables */
.tbl{width:100%;border-collapse:collapse;font-size:16px;margin:1em 0 2em}
.tbl th,.tbl td{text-align:left;vertical-align:top;padding:10px 12px 10px 0;border-bottom:1px solid var(--mist)}
.tbl th{font-weight:600;border-bottom-color:var(--ink)}
.tblwrap{overflow-x:auto}

/* fees */
.fees{width:100%;border-collapse:collapse}
.fees td,.fees th{padding:20px 16px 20px 0;border-bottom:1px solid var(--mist);vertical-align:top;text-align:left}
.fees th{font-weight:400;font-size:22px;width:34%}
.fees .price{white-space:nowrap;font-size:20px}
.fees small{display:block;color:var(--ink2)}

/* certainty tags */
.cg{display:inline-block;font-size:13px;padding:1px 8px;border-radius:10px;border:1px solid currentColor;margin-right:6px;vertical-align:2px}
.cg-f{color:var(--bronze)}.cg-c{color:var(--ink)}.cg-d{color:#8A6A1F}.cg-a{color:var(--cin)}

/* timeline */
.tl{list-style:none;padding:0;margin:0;border-left:1px solid var(--ink)}
.tl li{position:relative;padding:0 0 18px 22px}
.tl li::before{content:"";position:absolute;left:-4px;top:10px;width:7px;height:7px;background:var(--ink);border-radius:50%}
.tl b{font-weight:600}

/* oracle & tools */
.panel{background:var(--light);border:1px solid var(--mist);border-radius:4px;padding:clamp(18px,3vw,32px)}
.tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}
.tabs button{font:inherit;font-size:15px;padding:7px 14px;border:1px solid var(--mist);background:none;border-radius:3px;cursor:pointer;color:var(--ink)}
.tabs button[aria-pressed=true]{background:var(--ink);color:var(--light);border-color:var(--ink)}
.coins{display:flex;gap:12px;margin:12px 0}
.coin{width:52px;height:52px;border-radius:50%;border:2px solid var(--ink);display:grid;place-items:center;font-size:20px;background:var(--paper)}
.coin.t{background:var(--ink);color:var(--light)}
.castlines{display:flex;flex-direction:column-reverse;gap:8px;width:200px;margin:10px 0}
.castlines .cl{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--ink2)}
.castlines .cl svg{flex:0 0 auto}
.reading h3{border-top:1px solid var(--mist);padding-top:18px;margin-top:28px}
.reading .pair{display:flex;gap:28px;align-items:center;flex-wrap:wrap}
.reading .pair .arrow{font-size:28px;color:var(--bronze)}
.manual{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.manual select{font-size:15px;padding:6px}
.freq{width:100%;border-collapse:collapse;font-size:15px}
.freq td,.freq th{padding:6px 8px;border-bottom:1px solid var(--mist);text-align:right}
.freq th:first-child,.freq td:first-child{text-align:left}
.barv{display:inline-block;height:10px;background:var(--bronze);vertical-align:middle}

/* map */
.mapwrap{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:var(--gap)}
@media (max-width:900px){.mapwrap{grid-template-columns:minmax(0,1fr)}}
.circle{width:100%;max-width:560px;aspect-ratio:1}
.circle a{cursor:pointer}
.card{position:sticky;top:96px}
.card .hx{cursor:pointer}

/* account */
.acctgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--gap)}
@media (max-width:800px){.acctgrid{grid-template-columns:minmax(0,1fr)}}
.saved{list-style:none;padding:0;margin:0}
.saved li{border-bottom:1px solid var(--mist);padding:12px 0;display:flex;gap:14px;align-items:center;justify-content:space-between}

/* contract */
.contract{background:#fff;color:#111;padding:clamp(20px,4vw,56px);border:1px solid var(--mist);font-size:15.5px;line-height:1.55;max-width:860px}
.contract h2{font-size:24px;text-align:center;font-weight:600}
.contract h3{font-size:16px;font-weight:600;margin:1.3em 0 .4em}
.contract .fill{background:#FFF6D9;padding:0 3px}
.contract .sig{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:40px}
.contract .sig div{border-top:1px solid #111;padding-top:6px;font-size:14px}
.contract .tr-sep{border-top:3px double #111;margin:48px 0 24px}

/* footer */
.foot{background:var(--ink);color:#C9D0DF;padding:56px var(--gap) 28px;margin-top:0;font-size:15px}
.foot a{color:var(--light)}
.fgrid{max-width:var(--w);margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr 1.4fr;gap:var(--gap)}
.fa .seal{width:44px;height:44px;margin-bottom:14px}
.fnote{color:#9FA9C0;font-size:14px}
.fl{list-style:none;padding:0;margin:0}.fl li{margin-bottom:6px}
.flaw{max-width:var(--w);margin:36px auto 0;padding-top:18px;border-top:1px solid #39446A;font-size:13px;color:#9FA9C0}
@media (max-width:860px){.fgrid{grid-template-columns:1fr 1fr}.fa{grid-column:1/-1}}

/* print */
@media print{
 .top,.foot,.noprint,.skip,.btns,.libtools{display:none!important}
 body{background:#fff;font-size:11pt}
 .contract{border:0;padding:0;max-width:none;font-size:10.5pt}
 .contract .fill{background:none}
 a{text-decoration:none;color:#000}
 .cm{display:block}.rail{display:none}
 @page{margin:18mm 16mm}
}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.cast .bar{appearance:none;border:0;background:none;padding:0;cursor:pointer}
.tris{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:10px;margin-top:22px}
.tris .tri{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:14px}
.tris .cn{font-size:20px}
.tris .bin{color:var(--ink2);font-variant-numeric:lining-nums tabular-nums}
@media (max-width:640px){.tris{grid-template-columns:repeat(4,minmax(0,1fr))}}
.finder td{text-align:center}.finder td a{display:block;padding:4px;text-decoration:none}
.finder td a:hover{background:var(--ink);color:var(--light)}
blockquote.q{margin:0 0 26px;padding:0 0 0 18px;border-left:2px solid var(--bronze)}
blockquote.q .classic{margin-bottom:2px}
/* ---------- consultation engine ---------- */
.measure{max-width:68ch}
.h3{font-size:24px;font-weight:400}.h4{font-size:19px;font-weight:600}
.btn-q{border-color:var(--mist)}
.btn-q:hover{border-color:var(--ink)}
.linkbtn{font:inherit;background:none;border:0;padding:0;color:var(--ink);text-decoration:underline;text-decoration-color:var(--bronze);text-underline-offset:3px;cursor:pointer;text-align:left}
.steps{display:flex;gap:0;list-style:none;padding:0;margin:0 0 clamp(28px,4vw,44px);border-top:1px solid var(--mist);counter-reset:st}
.steps li{flex:1;padding:10px 8px 0 0;font-size:15px;color:var(--ink2);border-top:3px solid transparent;margin-top:-2px;counter-increment:st}
.steps li::before{content:counter(st) " ";color:var(--bronze)}
.steps li.done{border-top-color:var(--bronze);color:var(--ink)}
.steps li[aria-current]{border-top-color:var(--cin);color:var(--ink);font-weight:600}
.osec{padding:clamp(28px,4vw,48px) 0;border-top:1px solid var(--mist)}
.osec:first-of-type{border-top:0}
.ask-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:var(--gap);align-items:start}
.ask-grid textarea[data-q]{font-size:19px;line-height:1.5}
.ask-side{border-left:1px solid var(--mist);padding-left:clamp(16px,2.4vw,32px)}
.chips{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}
.chip{font:inherit;font-size:15px;line-height:1.4;text-align:left;background:none;border:0;border-bottom:1px dotted var(--mist);padding:6px 0;color:var(--ink);cursor:pointer}
.chip:hover{color:var(--cin)}
fieldset.field{border:0;padding:0;margin:0 0 16px}fieldset.field legend{padding:0;margin-bottom:6px;font-size:15px}
.radio{display:inline-flex;align-items:center;gap:6px;margin-right:16px;font-size:16px;white-space:nowrap}
.castbox{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:var(--gap);align-items:start;margin-top:18px}
.caststage{min-height:200px}
.coins3{display:flex;gap:18px;min-height:92px;margin:6px 0 8px}
.coin3{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:13px;color:var(--ink2)}
.coin3 .cf{fill:var(--bronze)}.coin3 .cb{fill:var(--panel);stroke:var(--ink2);stroke-width:1.5}
.coin3 .ch{fill:var(--paper);stroke:var(--ink);stroke-width:1}
.coin3 .ct{fill:var(--light);font-size:11px;text-anchor:middle;font-family:var(--serif)}
.coin3.flip svg{animation:cflip .5s ease-out both}
@keyframes cflip{0%{transform:rotateY(90deg) translateY(-10px);opacity:.2}100%{transform:none;opacity:1}}
.mgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 16px;max-width:620px}
.castbuild{background:var(--light);border:1px solid var(--mist);border-radius:4px;padding:18px;min-height:220px}
.built{list-style:none;padding:0;margin:0 0 12px;display:flex;flex-direction:column-reverse;gap:10px}
.built li{display:grid;grid-template-columns:112px 16px 1fr;gap:10px;align-items:center;line-height:1.25}
.built .mk{color:var(--cin);font-size:18px;text-align:center}
.built .hx rect{fill:var(--ink)}.built .hx rect.m{fill:var(--cin)}
.err{color:#7A1F18}
.findnote{display:flex;flex-wrap:wrap;gap:6px 24px;font-size:17px}
.finder tr.hitr th,.finder th.hitc{color:var(--cin)}
.finder td.hit a{background:var(--cin);color:var(--light);font-weight:600}
.finder td.hit2 a{outline:2px solid var(--bronze);outline-offset:-2px}
.ohex{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:clamp(16px,3vw,36px);align-items:center;margin-bottom:18px}
.ohex .gua{font-size:clamp(56px,6vw,84px);margin:0}
.ohex h3{margin:0 0 4px;font-size:28px;font-weight:300}.ohex h3 a{text-decoration:none}
.otext{max-width:72ch}.otext h4{margin-top:1.2em}
.principal{background:var(--light);border:1px solid var(--mist);border-radius:4px;padding:clamp(18px,3vw,32px);margin:clamp(20px,3vw,32px) 0}
.pbox{border-left:3px solid var(--cin);padding:4px 0 4px 18px;margin:18px 0}
.pbox.alt{border-left-color:var(--mist)}
.pbox p{margin:.3em 0;max-width:72ch}
.rel3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.rel3 a{display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:start;text-decoration:none;color:var(--ink)}
.rel3 a:hover b{text-decoration:underline}
.compose{max-width:72ch;font-size:18px}.compose ul{margin-top:0}
.orow{padding:10px 0}
.disclaimer{max-width:80ch;color:var(--ink2);border-top:1px solid var(--mist);padding-top:16px;margin-top:24px}
.aitext{border-left:3px solid var(--bronze);padding-left:18px;max-width:72ch}
@media(max-width:860px){.ask-grid,.castbox{grid-template-columns:minmax(0,1fr)}.ask-side{border-left:0;padding-left:0}.rel3{grid-template-columns:minmax(0,1fr)}.mgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.steps li{font-size:0;padding-right:4px}.steps li::before{font-size:14px}.steps li[aria-current]{font-size:14px}.ohex{grid-template-columns:auto 1fr}.ohex>div:last-child{grid-column:1/-1}}
@media print{.pg-oracle #ask,.pg-oracle #cast,.pg-oracle .steps,.pg-oracle #find .tblwrap{display:none}}

.lines-list .lab svg{display:block;margin-top:6px}
/* ---------- services, method, about, contact ---------- */
.offers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(28px,4vw,56px) var(--gap)}
.offer{border-top:2px solid var(--ink);padding-top:18px;display:flex;flex-direction:column}
.offer header{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap}
.offer h3{margin:0;font-size:26px;font-weight:300}
.offer .price{margin:0;font-size:20px;white-space:nowrap}
.offer ul{padding-left:1.1em;margin:.6em 0 1em}.offer li{margin-bottom:4px}
.offer .q-typ{font-style:italic;color:var(--ink2);margin-top:auto}
.offer .btn{margin-top:8px}
.dl{display:grid;grid-template-columns:minmax(120px,200px) minmax(0,1fr);gap:10px 24px;margin:0 0 24px}
.dl dt{font-weight:600}.dl dd{margin:0}
.faq{border-bottom:1px solid var(--mist);padding:14px 0}
.faq summary{cursor:pointer;font-size:19px}
.faq p{margin:.6em 0 0;max-width:68ch}
.endcta{text-align:left}
.ideas{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gap)}
.ideas h3{margin:.2em 0 .3em}
.sixm{list-style:none;padding:0;margin:0}
.sixm li{display:grid;grid-template-columns:200px minmax(0,1fr);gap:var(--gap);padding:18px 0;border-top:1px solid var(--mist)}
.sixm .ln{display:flex;align-items:center;gap:14px;color:var(--ink2)}
.sixm h4{margin:0 0 4px}.sixm p{margin:0 0 4px;max-width:68ch}
.rec li{margin-bottom:6px}
.seal-l{writing-mode:horizontal-tb;background:var(--cin);color:var(--light);font-size:44px;line-height:1.05;width:84px;height:104px;display:grid;place-items:center;text-align:center;border-radius:4px;font-family:var(--serif)}
.check{display:flex;gap:10px;align-items:flex-start;font-size:15px;margin:8px 0 16px}
.check input{margin-top:4px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
@media(max-width:860px){.offers{grid-template-columns:minmax(0,1fr)}.ideas{grid-template-columns:repeat(2,minmax(0,1fr))}.sixm li{grid-template-columns:minmax(0,1fr);gap:8px}.dl{grid-template-columns:minmax(0,1fr);gap:2px}.dl dd{margin-bottom:10px}}
.laibox{background:var(--light);border:1px solid var(--mist);border-left:3px solid var(--bronze);border-radius:4px;padding:clamp(18px,3vw,28px);margin:24px 0 8px}
.laibox h2{margin-top:0;font-size:28px}
.bib{list-style:none;padding:0;margin:0 0 12px}
.bib li{padding:10px 0;border-top:1px solid var(--mist);display:flex;flex-direction:column;gap:2px}
.bib cite{font-style:normal}
.toc ol{list-style:none;padding-left:12px;margin:4px 0}
#q,#tl,#bib{margin-top:2.6em}
/* ---------- contract generator ---------- */
.kwrap{display:grid;grid-template-columns:minmax(300px,380px) minmax(0,1fr);gap:var(--gap);align-items:start;padding-bottom:64px}
.kform fieldset{border:0;border-top:1px solid var(--mist);padding:14px 0 4px;margin:0}
.kform legend{font-size:19px;font-weight:600;padding-right:8px}
.kform .flabel{display:block;font-size:15px;margin-bottom:6px}
.kform .radio{white-space:normal}
.kform .tabs{flex-direction:column;gap:4px}
.contract{margin:0}
.contract .khead{text-align:center;margin-bottom:24px}
.contract .khead h2{font-size:21px;line-height:1.3;margin-bottom:6px;font-weight:600}
.contract .ksub{font-size:14px;margin:0}
.contract .kart h3{margin-top:1.4em}
.contract p{margin:.45em 0;text-align:justify;hyphens:auto}
.contract .trl{color:#4a4a4a;font-size:.94em}
.contract p.trl{margin-top:-.1em;padding-left:12px;border-left:2px solid #ddd}
.contract .blank{display:inline-block;border-bottom:1px solid #111;min-width:8em}
.contract .kplace{margin-top:32px}
.contract .sig1{grid-template-columns:1fr 1fr}.contract .sig1 div{grid-column:2}
.contract .kapprove{margin-top:36px;border-top:1px solid #ccc;padding-top:14px}
.contract .kannex{margin-top:40px;border-top:1px solid #ccc;padding-top:10px}
.contract .ktbl{width:100%;border-collapse:collapse;font-size:.95em}
.contract .ktbl th,.contract .ktbl td{border:1px solid #bbb;padding:6px 8px;text-align:left;vertical-align:top}
.contract .ktbl th{width:30%;font-weight:600}
@media(max-width:960px){.kwrap{grid-template-columns:minmax(0,1fr)}}
@media print{.pg-contract .kwrap{display:block;padding:0}.contract .sig,.contract .kapprove{break-inside:avoid}.contract .kannex{break-before:page;border-top:0}.contract .blank{min-width:10em}.contract p.trl{border-left-color:#ccc}}
input[type=radio],input[type=checkbox]{width:auto;flex:0 0 auto;margin:0}
.contract .fill{padding:0 1px}
.legal section{margin-bottom:12px}.legal h2{font-size:26px;margin-top:1.4em}
.auth{gap:var(--gap);align-items:start}
.acct-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}
.acct-list .orow{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.dom-nav a{max-width:100%;overflow-wrap:anywhere}
body{overflow-x:clip}
