/* The original jade pocket journey, with locally hosted Cyrillic fonts. */
@font-face{font-family:"Cormorant Garamond";src:url('/fonts/cormorant-garamond.ttf') format('truetype');font-style:normal;font-weight:400 700;font-display:swap}
@font-face{font-family:"Golos Text";src:url('/fonts/golos-text.ttf') format('truetype');font-style:normal;font-weight:400 700;font-display:swap}
:root{--bg:#102723;--paper:#e8d5a7;--ink:#30352b;--jade:#25463d;--muted:#635b45;--accent:#bca170;--error:#ffcab3;--display:"Cormorant Garamond",Georgia,"Times New Roman",serif;--body:"Golos Text",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--line:color-mix(in srgb,var(--paper) 19%,transparent);--subtle:color-mix(in srgb,var(--paper) 77%,var(--bg));color-scheme:dark}
*{box-sizing:border-box}[hidden]{display:none!important}html{height:100%}body{margin:0;min-height:100%;background:var(--bg);color:var(--paper);font-family:var(--body);font-size:14px;line-height:1.75}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{color:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.65}a{color:inherit;text-underline-offset:5px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}[tabindex="-1"]:focus{outline:none}h1,h2,h3,p,ol{margin:0}h1,h2,h3{font-family:var(--display);font-weight:400;text-wrap:balance}p{text-wrap:pretty}.icon{width:21px;height:21px;flex:0 0 21px;fill:none;stroke:currentColor;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round}.icon-definitions{position:absolute;width:0;height:0;overflow:hidden}.eyebrow{font-family:var(--body);font-size:9px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}.skip{position:absolute;left:16px;top:-100px;z-index:5;background:var(--paper);color:var(--bg);padding:10px}.skip:focus{top:12px}
.workspace{min-height:100dvh;display:grid;grid-template-columns:minmax(0,470px);justify-content:center;align-items:center;padding:30px 28px;background:radial-gradient(ellipse at 60% 42%,color-mix(in srgb,var(--jade) 43%,var(--bg)),var(--bg) 70%)}.app{display:flex;flex-direction:column;height:calc(100dvh - 60px);min-height:680px;max-height:980px;min-width:0;background:var(--bg);border:1px solid var(--line);border-radius:7px;overflow:hidden;box-shadow:0 25px 90px color-mix(in srgb,var(--bg) 85%,transparent)}.app-header{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;gap:10px;padding:9px 14px;flex:0 0 auto}.header-spacer{height:48px}.wordmark{display:flex;gap:11px;align-items:center;justify-content:center;text-decoration:none}.wordmark>span:first-child{font-family:Georgia,"Songti SC",serif;font-size:26px;letter-spacing:.08em;color:var(--accent)}.wordmark>span:last-child{font-size:9px;line-height:1.6;letter-spacing:.19em}.wordmark small{display:block;font-size:8px;letter-spacing:.09em;color:var(--subtle)}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:48px;min-height:48px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--accent)}.icon-button:hover{background:color-mix(in srgb,var(--paper) 6%,var(--bg))}.sound-button[aria-pressed="true"]{background:color-mix(in srgb,var(--accent) 12%,var(--bg))}.app-scroll{min-height:0;flex:1 1 auto;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--jade) var(--bg)}.screen{padding:23px 25px 38px;animation:arrive .25s ease-out;overflow-wrap:anywhere}.screen-intro{display:grid;gap:14px;padding-block:0 26px}.screen h2{font-size:44px;line-height:1.02}.screen-intro>p:last-child:not(.eyebrow){font-size:12px;color:var(--subtle)}.home-screen{padding-block:0 36px}.landscape{position:relative;height:195px;max-width:100%;overflow:hidden}.landscape canvas{display:block;width:100%;height:100%}.landscape-caption{position:absolute;bottom:14px;left:2px;font-size:7px;letter-spacing:.25em;color:var(--accent)}.home-copy{display:grid;gap:16px;padding-block:15px 0}.home-copy h1{font-size:51px;line-height:.98}.home-copy>.eyebrow{font-size:8px}.wisdom{display:flex;gap:13px;align-items:start;padding-block:2px 6px}.wisdom-line{width:23px;flex:0 0 23px;height:1px;background:var(--accent);margin-top:12px}.wisdom-quotes{display:grid;flex:1;min-width:0;max-width:300px}.wisdom p{grid-area:1/1;align-self:start;font-family:var(--display);font-size:23px;line-height:1.25;color:var(--subtle);opacity:0;transform:translateY(-.22em);transition:opacity .7s ease,transform .7s ease;pointer-events:none}.wisdom p[aria-hidden="false"]{opacity:1;transform:translateY(0);pointer-events:auto}.center-note{text-align:center;font-size:10px;color:var(--subtle)}
.button{width:100%;display:flex;align-items:center;justify-content:center;gap:14px;min-height:50px;padding:13px 15px;border:1px solid transparent;border-radius:2px;font-size:12px;font-weight:500;line-height:1.5;text-align:center;text-decoration:none;transition:background .18s ease,border-color .18s ease}.button.primary{background:var(--paper);color:var(--bg)}.button.primary:hover:not(:disabled){background:color-mix(in srgb,var(--paper) 87%,var(--accent))}.button.secondary{border-color:color-mix(in srgb,var(--accent) 55%,var(--bg));background:transparent;color:var(--paper)}.button.secondary:hover{background:color-mix(in srgb,var(--paper) 5%,var(--bg))}.text-button{display:inline-flex;align-items:center;background:transparent;border:0;min-height:48px;padding:10px 0;text-decoration:underline;text-underline-offset:5px;text-decoration-color:color-mix(in srgb,var(--accent) 65%,transparent);color:var(--accent);font-size:11px}.topic-section{display:grid;gap:18px;padding-block:58px 0;scroll-margin-top:24px}.topic-section h2{font-size:40px}.topic-list{display:grid;gap:10px}.topic{width:100%;display:flex;align-items:center;gap:15px;text-align:left;padding:19px 17px;background:color-mix(in srgb,var(--jade) 28%,var(--bg));border:1px solid var(--line);border-radius:2px}.topic:hover{border-color:var(--accent);background:color-mix(in srgb,var(--jade) 60%,var(--bg))}.topic[aria-disabled="true"]{cursor:default}.topic-glyph{font-family:Georgia,"Songti SC",serif;color:var(--accent);font-size:30px;line-height:1;flex:0 0 34px}.topic-copy{display:grid;gap:4px;flex:1;min-width:0}.topic-copy strong{font-size:13px;font-weight:500}.topic-copy small{font-size:10px;line-height:1.65;color:var(--subtle)}.topic-soon{font-size:9px;color:var(--accent)}.topic>.icon{width:16px;flex-basis:16px;color:var(--accent)}.fine-print{font-size:10px;line-height:1.85;color:var(--subtle)}
fieldset{min-width:0;margin:0;padding:0;border:0}.field{display:grid;gap:7px;min-width:0;margin-bottom:21px}.field label{font-size:11px;font-weight:500}.field label span{font-size:9px;font-weight:400;color:var(--subtle);padding-inline-start:4px}.field input,.field select{display:block;width:100%;max-width:100%;min-width:0;min-height:49px;padding:12px 13px;border:1px solid color-mix(in srgb,var(--paper) 28%,var(--bg));border-radius:2px;background:color-mix(in srgb,var(--jade) 23%,var(--bg));color:var(--paper);font-size:14px}.field input::placeholder{color:color-mix(in srgb,var(--paper) 55%,var(--bg));font-size:12px}.field input[aria-invalid="true"],.field select[aria-invalid="true"]{border-color:var(--error)}small,.muted{color:var(--subtle);font-size:10px}.field-error{display:block;font-size:10px;color:var(--error);padding-inline-start:9px;border-inline-start:2px solid var(--error)}.field-error:empty{display:none}.form-note{margin-block:18px 22px;font-size:10px;color:var(--subtle)}.consent{display:flex;gap:10px;align-items:start;font-size:10px;color:var(--subtle);margin-block:18px 8px}.consent input{width:18px;height:18px;flex:0 0 18px;accent-color:var(--accent);margin-top:3px}.consent+.field-error{margin-bottom:12px}#submit-reading{margin-top:23px}.form-footer{margin-top:12px}.status{font-size:10px;color:var(--subtle);margin-block:12px;overflow-wrap:anywhere}.status:empty{display:none}.error-box{border:1px solid var(--error);padding:14px;margin-block:16px;color:var(--error);font-size:11px}.error-box p{margin-bottom:10px}button:not(.button):not(.topic):not(.icon-button):not(.text-button){min-height:46px;padding:10px 12px;background:transparent;color:inherit;border:1px solid var(--accent);border-radius:2px;font-size:11px}.actions{display:flex;flex-wrap:wrap;gap:10px}.danger{border-color:var(--error)!important;background:transparent;color:var(--error)}
.readings-list{list-style:none;padding:0;margin:12px 0 24px;display:grid;gap:15px}.reading-item{position:relative;display:grid;border:1px solid var(--line);background:color-mix(in srgb,var(--jade) 22%,var(--bg));min-width:0}.reading-item a{text-decoration:none}.library-reading{display:grid;gap:10px;padding:22px 64px 22px 20px;min-height:170px;transition:background .18s ease}.library-reading:hover,.library-reading:focus-visible{background:color-mix(in srgb,var(--jade) 52%,var(--bg))}.library-title{font:400 30px/1.1 var(--display)}.reading-item p{color:var(--subtle);font-size:11px;overflow-wrap:anywhere}.library-status{font-size:12px;color:var(--paper)}.library-open{font-size:12px;font-weight:500;color:var(--accent);padding-top:6px}.reading-item .library-book{padding:16px 20px;border-top:1px solid var(--line);font-size:12px;min-height:54px}.reading-item .library-book:hover,.reading-item .library-book:focus-visible{background:color-mix(in srgb,var(--jade) 52%,var(--bg))}.session-note{padding-block:22px 0;font-size:10px;color:var(--subtle)}#reading-content{font-size:12px;line-height:1.85}#reading-content h3{font-size:32px;line-height:1.1;margin:26px 0 12px}#reading-content p{margin-bottom:14px}.reading-person{font-family:var(--display);font-size:31px;line-height:1.2}.reading-meta{font-size:11px;padding-block:15px;border-block:1px solid var(--line);color:var(--subtle)}table{border-collapse:collapse;width:100%;margin:16px 0 24px;text-align:left;table-layout:fixed}th,td{padding:12px 5px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:10px;font-weight:500}.pillars td{font:30px/1.2 var(--display);overflow-wrap:anywhere}.pillars td small{display:block;font:9px/1.5 var(--body);margin-top:8px}.variant{padding-block:4px 18px;border-bottom:1px solid var(--line)}.variant ul,.issue-list{padding-left:18px;font-size:10px;overflow-wrap:anywhere}.issue-list li{margin-bottom:10px}.provenance{border-top:1px solid var(--line);padding-top:18px;margin-top:28px}.provenance summary{cursor:pointer;min-height:44px;font-size:11px;color:var(--accent)}.provenance dl{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:8px 16px;font-size:10px}.provenance dt{font-weight:500}.provenance dd{margin:0;overflow-wrap:anywhere}.raw{white-space:pre-wrap;word-break:break-word;font-size:9px;border:1px solid var(--line);padding:12px}.next-chapter{display:grid;gap:17px;padding-block:35px 0}.next-chapter h3{font-size:34px;line-height:1.08}.next-chapter>p:not(.eyebrow){font-size:12px;color:var(--subtle)}.next-chapter .text-button{justify-self:center}
.book-stage{display:flex;justify-content:center;padding-block:8px 34px}.book-cover{position:relative;width:223px;min-height:310px;padding:25px 22px 19px;background:var(--paper);color:var(--jade);display:flex;flex-direction:column;align-items:center;gap:17px;text-align:center;border-inline-start:7px solid color-mix(in srgb,var(--ink) 15%,var(--paper));box-shadow:12px 15px 26px color-mix(in srgb,var(--bg) 75%,transparent),3px 0 0 var(--muted);transform:rotate(-3deg)}.cover-kicker{font-size:6px;letter-spacing:.11em}.cover-symbol{font-family:Georgia,"Songti SC",serif;font-size:47px;line-height:1.2}.cover-title{font-family:var(--display);font-size:32px;line-height:.98}.cover-rule{width:32px;height:1px;background:var(--muted)}.cover-name{max-width:100%;overflow-wrap:anywhere;font-family:var(--display);font-size:18px;line-height:1.25}.cover-foot{margin-block-start:auto;font-size:7px;letter-spacing:.22em}.offer-copy{display:grid;gap:13px}.offer-copy h3{font-size:31px;line-height:1.1}.offer-copy p{font-size:12px;color:var(--subtle)}.contents{margin-block:24px 18px;border-block:1px solid var(--line)}.contents summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-block:17px;font-size:11px;cursor:pointer;list-style:none}.contents summary::-webkit-details-marker{display:none}.contents summary span{color:var(--accent);font-size:20px;font-weight:400}.contents[open] summary span{transform:rotate(45deg)}.contents ol{padding-inline-start:21px;padding-block:0 19px;display:grid;gap:8px;font-size:11px;color:var(--subtle)}#book-return{margin-top:24px}#view-privacy>p{font-size:12px;margin-bottom:18px}.connection-note{padding:0 25px 24px;font-size:9px;color:var(--subtle)}.connection-note .status{font-size:9px}.connection-note>a{min-height:44px;display:inline-flex;align-items:center}.bottom-nav{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;flex:0 0 auto;padding:7px 16px calc(9px + env(safe-area-inset-bottom,0px));background:var(--bg);border-top:1px solid var(--line)}.nav-item{display:flex;align-items:center;justify-content:center;gap:9px;min-height:48px;padding:9px 10px;border-radius:2px;color:var(--subtle);font-size:10px;text-decoration:none}.nav-item[aria-current="page"]{color:var(--paper);background:color-mix(in srgb,var(--jade) 45%,var(--bg))}.nav-item .icon{width:19px;height:19px;flex-basis:19px}.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}
.interpretation{font-size:12px;line-height:1.9;padding-block:5px 22px}.interpretation> .eyebrow{margin-bottom:15px}.interpretation h3{font-family:var(--display);font-size:32px;line-height:1.1;margin:25px 0 14px}.interpretation p{margin-bottom:14px}.interpretation .status{font-size:11px}.interpretation ul{padding-inline-start:19px;margin-block:12px 20px}.interpretation li{margin-bottom:12px}.interpretation .consent{margin-block:20px 12px}.interpretation .button{margin-top:19px}.interpretation-limitations{border-top:1px solid var(--line);margin-top:27px;padding-top:4px;color:var(--subtle)}.interpretation-limitations h3{font-size:26px}.interpretation-limitations ul{font-size:10px}.interpretation-error{margin-top:16px;padding-inline-start:12px;border-inline-start:2px solid var(--error);font-size:11px;color:var(--error)}.calendar-details{border-block:1px solid var(--line);padding-block:5px}.calendar-details>summary{min-height:48px;padding-block:12px;cursor:pointer;font-size:11px;color:var(--accent)}.calendar-details[open]>summary{margin-bottom:15px}
.book-document{font-size:14px;line-height:1.95;padding-block:10px 24px}.book-document h3{font-size:34px;line-height:1.1;margin-block:28px 18px}.book-document h4{font:500 11px/1.6 var(--body);color:var(--accent);margin-block:22px 12px}.book-document p{margin-bottom:18px}.book-document ul{padding-inline-start:20px}.book-document li{margin-block:12px}.book-chapter{border-top:1px solid var(--line);margin-top:32px;padding-top:27px}.book-chapter>.eyebrow{margin-bottom:10px}.book-chapter>h3{margin-top:0}.contents .book-toc-link{font-size:12px;line-height:1.6;text-align:left;padding-block:7px;min-height:44px}.reading-item .library-book{font:12px/1.7 var(--body);color:var(--accent);display:flex;align-items:center}#book-pdf-note{margin-block:12px 22px}#book-provenance{overflow-wrap:anywhere;border-top:1px solid var(--line);padding-top:16px}#book-order-panel>.button{margin-top:18px}#book-payment-note{margin-top:24px}
.generation-state{display:grid;gap:12px;padding:21px 19px;margin-block:8px 22px;border:1px solid color-mix(in srgb,var(--accent) 50%,var(--bg));border-inline-start:4px solid var(--accent);background:color-mix(in srgb,var(--jade) 50%,var(--bg))}.generation-title{font:400 28px/1.15 var(--display);color:var(--paper)}.generation-copy{font-size:12px;line-height:1.8;color:var(--subtle)}.generation-state p{margin:0}.generation-state .text-button{justify-self:start;padding-block:6px;min-height:44px;font-size:12px}.generation-state[data-state="failed"],.generation-state[data-state="outcome_unknown"]{border-color:var(--error)}.generation-state[data-state="ready"]{border-color:var(--accent);background:color-mix(in srgb,var(--jade) 30%,var(--bg))}.reading-explainer{font-size:12px;line-height:1.9;padding-block:2px 19px;border-bottom:1px solid var(--line);color:var(--subtle)}.action-note{font-size:11px;line-height:1.85;color:var(--subtle);margin-block:15px}.time-refinement{margin-block:-6px 24px}.time-refinement summary{min-height:44px;padding-block:10px;font-size:11px;color:var(--accent);cursor:pointer}.time-refinement .field{margin-top:8px}.time-refinement input{max-width:150px}.field input[type="time"]{font-variant-numeric:tabular-nums;min-width:0}.provenance ul{font-size:11px;line-height:1.85;padding-inline-start:18px}.provenance p{font-size:10px}.interpretation> .generation-state{margin-bottom:24px}#book-progress{margin-top:25px}#book-payment-note{font-size:12px;color:var(--paper)}
.generation-heading{display:flex;align-items:center;gap:15px}.generation-heading>.generation-title{min-width:0}.waiting-sign{font-family:Georgia,"Songti SC",serif;font-size:15px;line-height:1.2;color:var(--accent)}.waiting-sign>span{opacity:.25}.three-forces{display:grid;grid-template-columns:1fr 1fr;gap:4px 8px;flex:0 0 auto;text-align:center}.three-forces>span:first-child{grid-column:1/-1}.three-forces:not([hidden])>span{animation:three-forces 2.7s ease-in-out infinite}.three-forces>span:nth-child(2){animation-delay:.9s}.three-forces>span:nth-child(3){animation-delay:1.8s}.four-pillars{display:flex;gap:.8em;justify-self:start}.four-pillars:not([hidden])>span{animation:pillar-year 4s ease-in-out infinite}.four-pillars:not([hidden])>span:nth-child(2){animation-name:pillar-month}.four-pillars:not([hidden])>span:nth-child(3){animation-name:pillar-day}.four-pillars:not([hidden])>span:nth-child(4){animation-name:pillar-hour}
@keyframes three-forces{0%,33.333%,100%{opacity:.25}16.667%{opacity:1}}
@keyframes pillar-year{0%,95%,100%{opacity:.25}12.5%,80%{opacity:1}}
@keyframes pillar-month{0%,12.5%,95%,100%{opacity:.25}25%,80%{opacity:1}}
@keyframes pillar-day{0%,25%,95%,100%{opacity:.25}37.5%,80%{opacity:1}}
@keyframes pillar-hour{0%,37.5%,95%,100%{opacity:.25}50%,80%{opacity:1}}
@keyframes arrive{from{transform:translateY(5px)}to{transform:translateY(0)}}
@media(min-width:741px) and (max-height:800px){.workspace{padding-block:20px}.app{height:calc(100dvh - 40px);min-height:590px}.landscape{height:150px}.home-copy{gap:13px}.home-copy h1{font-size:46px}}
@media(max-width:740px){body{height:100%;min-height:0}.workspace{height:100%;min-height:0;display:block;padding:0}.app{height:100%;max-height:none;min-height:0;width:100%;border:0;border-radius:0;box-shadow:none}.app-header{padding-top:calc(9px + env(safe-area-inset-top,0px))}.screen{padding-inline:22px}.field input,.field select{font-size:16px}.connection-note{padding-inline:22px}}
@media(max-width:380px),(max-height:730px) and (max-width:740px){.landscape{height:150px}.home-copy{gap:13px}.home-copy h1{font-size:45px}.wisdom p{font-size:21px}.screen h2{font-size:40px}.nav-item{gap:7px;font-size:9px;padding-inline:6px}.provenance dl{grid-template-columns:1fr}.provenance dd{margin-bottom:10px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.waiting-sign>span{opacity:.4}}
#book-pdf{margin-top:10px}.library-pdf{margin:0 20px 10px;justify-self:start;font-size:12px}
.book-cover .cover-pillars{font-size:38px;line-height:1.2;gap:.22em;color:var(--jade);min-height:57px;align-items:center}
/* V6 saved-fact tables scroll inside the reader, never the page. */
.book-table-wrap{max-width:100%;overflow-x:auto;margin-block:18px 24px}.book-data-table{min-width:340px;table-layout:auto;margin:0;font-size:11px;line-height:1.65}.book-data-table caption{text-align:left;font:400 25px/1.2 var(--display);padding-bottom:12px;color:var(--paper)}.book-data-table th,.book-data-table td{padding:10px 7px;overflow-wrap:normal}.book-data-table th{color:var(--accent)}.book-technical{border-top:1px solid var(--line);margin-top:32px;padding-top:12px}#book-availability{border:1px solid var(--line);padding:16px;font-size:12px}#book-availability h3{font-size:26px;line-height:1.15;margin-bottom:12px}#book-availability-list{padding-left:18px}#book-availability-list li{margin-block:12px}#birth-time-hint{margin-bottom:10px}
/* Typed short items use the existing reader rhythm, without book/PDF rules. */
.interpretation-item{min-width:0;overflow-wrap:anywhere}.interpretation-item .interpretation-basis{font-size:11px;color:var(--subtle)}.short-book-bridge{display:grid;gap:12px;min-width:0;font-size:12px;color:var(--subtle);overflow-wrap:anywhere}
/* Local birthplace choices use the existing form palette. */
.city-results{list-style:none;margin:0;padding:0;max-height:280px;overflow-y:auto;border:1px solid var(--line);background:var(--bg)}.city-results [role="option"]{padding:12px 13px;min-height:48px;cursor:pointer;font-size:12px;overflow-wrap:anywhere}.city-results [role="option"]+li{border-top:1px solid var(--line)}.city-results [aria-selected="true"],.city-results [role="option"]:hover{background:var(--jade);color:var(--paper)}#birthplace-fields>.consent{margin-block:-5px 20px}
/* Date/time pickers: a bottom sheet with scroll-snap wheels. */
.field-label{font-size:11px;font-weight:500}
.picker-field{display:flex;align-items:center;width:100%;min-height:49px;padding:12px 13px;border:1px solid color-mix(in srgb,var(--paper) 28%,var(--bg));border-radius:2px;background:color-mix(in srgb,var(--jade) 23%,var(--bg));color:color-mix(in srgb,var(--paper) 60%,var(--bg));font:400 16px/1.3 var(--body);text-align:left;font-variant-numeric:tabular-nums}
.picker-field.chosen{color:var(--paper)}
.picker-field[aria-invalid="true"]{border-color:var(--error)}
html.picker-open{overflow:hidden}
.picker{position:fixed;inset:0;z-index:50;display:flex;flex-direction:column;justify-content:flex-end}
.picker[hidden]{display:none}
.picker-backdrop{position:absolute;inset:0;background:rgba(5,14,12,.62)}
.picker-sheet{position:relative;width:100%;max-width:520px;margin:0 auto;padding:6px 16px calc(18px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--jade) 42%,var(--bg));border-top:1px solid color-mix(in srgb,var(--accent) 55%,var(--bg));box-shadow:0 -18px 50px rgba(0,0,0,.45);animation:picker-up .22s ease-out}
@keyframes picker-up{from{transform:translateY(24px);opacity:.4}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){.picker-sheet{animation:none}}
.picker-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px}
.picker-head h3{font:400 22px/1.2 var(--display);color:var(--paper);text-align:center;margin:0}
.picker-head .text-button{font-size:13px}
.picker-done{font-weight:500;color:var(--paper)}
.picker-options{display:grid;gap:2px;padding:4px 0 10px;border-bottom:1px solid var(--line)}
.picker-options[hidden]{display:none}
.picker-options label{display:flex;align-items:center;gap:12px;min-height:40px;font-size:13px;color:var(--paper)}
.picker-options input{width:20px;height:20px;accent-color:var(--accent);margin:0}
.picker-wheels{display:flex;justify-content:center;align-items:center;gap:10px;padding-top:10px}
.wheel-times{display:grid;gap:6px}
.wheel-times[hidden],.wheel-ranges[hidden],.wheel-column[hidden]{display:none}
.wheel-ranges{display:grid;gap:6px}
.wheel-column{display:flex;align-items:center;gap:6px}
.wheel-label{width:22px;font-size:11px;color:var(--subtle)}
.wheel-row,.wheel-slot{display:flex;gap:4px}
.wheel{--rows:5;height:calc(var(--rows) * 40px);min-width:52px;overflow-y:auto;scroll-snap-type:y mandatory;overscroll-behavior:contain;scrollbar-width:none;outline:none;-webkit-mask-image:linear-gradient(transparent,#000 32%,#000 68%,transparent);mask-image:linear-gradient(transparent,#000 32%,#000 68%,transparent)}
.wheel-row{position:relative}
.wheel-row::before{content:"";position:absolute;inset-inline:0;top:50%;height:40px;transform:translateY(-50%);border-block:1px solid color-mix(in srgb,var(--accent) 45%,transparent);background:color-mix(in srgb,var(--paper) 6%,transparent);pointer-events:none}
.wheel::-webkit-scrollbar{display:none}
.wheel[hidden]{display:none}
.wheel:focus-visible{box-shadow:inset 0 0 0 1px var(--accent)}
.wheel-list{padding-block:calc((var(--rows) - 1) / 2 * 40px)}
.wheel-item{height:40px;display:flex;align-items:center;justify-content:center;padding-inline:6px;scroll-snap-align:center;font:400 19px/1 var(--body);font-variant-numeric:tabular-nums;color:color-mix(in srgb,var(--paper) 55%,var(--bg));white-space:nowrap;cursor:pointer}
.wheel-item.selected{color:var(--paper)}
.wheel-ranges .wheel{--rows:3}
.picker-note{text-align:center;min-height:1.85em;margin-top:8px}
.inapp-banner{display:grid;gap:10px;margin:0 0 14px;padding:14px 16px;border:1px solid color-mix(in srgb,var(--accent) 60%,var(--bg));border-inline-start:4px solid var(--accent);background:color-mix(in srgb,var(--jade) 55%,var(--bg));font-size:12px;line-height:1.7;color:var(--paper)}
.inapp-banner[hidden]{display:none}
.inapp-banner p{margin:0}
.inapp-actions{display:flex;align-items:center;gap:16px}
.inapp-actions .button{width:auto;min-height:40px;padding:8px 14px}
/* 025: a quiet page-lifetime notice, outside route and reader content. */
.client-update025{display:flex;align-items:center;gap:10px;flex:0 0 auto;min-width:0;margin:0 16px 8px;padding:10px 12px;border:1px solid var(--accent);background:var(--jade);font-size:11px;line-height:1.65;overflow-wrap:anywhere}
.client-update025 p{flex:1;min-width:0}.client-update025 .text-button{flex:0 0 auto;min-height:44px;font-size:12px}
.reader015b .client-update025{width:100%;max-width:530px;justify-self:center;margin:0}
.reader015b.client-update-visible025[open]{grid-template-rows:auto auto minmax(0,1fr) auto}
.email-box{display:grid;gap:10px;margin-block:18px 22px;padding:16px;border:1px solid var(--line);background:color-mix(in srgb,var(--jade) 22%,var(--bg))}
.email-box[hidden]{display:none}
.email-box h3{font:400 22px/1.2 var(--display);color:var(--paper);margin:0}
.email-box form{display:grid;gap:10px}
.email-box form[hidden]{display:none}
.email-box input[type="email"]{display:block;width:100%;min-height:49px;padding:12px 13px;border:1px solid color-mix(in srgb,var(--paper) 28%,var(--bg));border-radius:2px;background:color-mix(in srgb,var(--jade) 23%,var(--bg));color:var(--paper);font-size:16px}
.email-box .consent{font-size:11px}
.cover-chart{display:grid;grid-template-columns:repeat(4,30px);border-top:1px solid color-mix(in srgb,var(--jade) 40%,var(--paper));border-left:1px solid color-mix(in srgb,var(--jade) 40%,var(--paper));font-family:Georgia,"Songti SC",serif;line-height:1}.cover-chart>span{display:flex;align-items:center;justify-content:center;height:28px;border-right:1px solid color-mix(in srgb,var(--jade) 40%,var(--paper));border-bottom:1px solid color-mix(in srgb,var(--jade) 40%,var(--paper));font-size:17px}.cover-chart>span.label{height:17px;font-size:8px;color:var(--muted)}.cover-master{font-size:7px;letter-spacing:.06em;color:var(--muted)}
/* 024: deliberate deletion, shared by one reading and the guest session. */
.reading-delete{position:absolute;top:5px;right:5px;font:300 27px/1 var(--body)}
html.delete-open{overflow:hidden}.delete-dialog{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:24px 16px;overflow-y:auto;overscroll-behavior:contain}.delete-backdrop{position:fixed;inset:0;background:rgba(5,14,12,.78)}.delete-sheet{position:relative;display:grid;gap:17px;width:100%;max-width:440px;min-width:0;max-height:calc(100dvh - 48px);overflow-y:auto;padding:16px 24px 26px;border:1px solid var(--accent);background:var(--bg);color:var(--paper);box-shadow:0 25px 90px rgba(0,0,0,.4);font-size:12px;overflow-wrap:anywhere}.delete-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.delete-head .icon-button{flex:0 0 48px;font-size:30px}.delete-sheet h2{font:400 39px/1.06 var(--display);text-wrap:balance}.delete-target{font:400 25px/1.15 var(--display);color:var(--accent)}.delete-sheet .status,.delete-sheet .error-box{margin:0}.delete-sheet .text-button{justify-self:start;padding-block:5px;font-size:12px}.delete-sheet .fine-print{font-size:10px}.delete-slider{position:relative;height:56px;min-width:0;border:1px solid var(--accent);background:var(--jade);border-radius:3px;user-select:none;touch-action:none}.delete-slider:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.delete-slider-label{display:flex;align-items:center;justify-content:center;height:100%;padding-left:45px;font-size:11px;color:var(--paper);pointer-events:none}.delete-slider-thumb{position:absolute;left:0;top:0;width:54px;height:54px;display:flex;align-items:center;justify-content:center;background:var(--paper);color:var(--bg);font-size:24px;cursor:grab;touch-action:none}.delete-slider-thumb:active{cursor:grabbing}.delete-slider[aria-disabled="true"]{opacity:.55}.delete-slider[aria-disabled="true"] .delete-slider-thumb{cursor:not-allowed}
@media(max-width:440px){.delete-sheet{padding-inline:20px}.delete-sheet h2{font-size:36px}.delete-slider-label{font-size:10px;padding-left:43px}}
@media(forced-colors:active){.delete-sheet,.delete-slider{border-color:CanvasText}.delete-slider-thumb{background:Highlight;color:HighlightText}}
/* 015: isolated saved-fact figures; legacy pillars and table widths are unchanged. */
.visuals015{--visuals015-wood:#0c805c;--visuals015-fire:#e30359;--visuals015-earth:#945905;--visuals015-metal:#af9144;--visuals015-water:#106ee1;min-width:0;max-width:100%;color:var(--paper);font:12px/1.7 var(--body);overflow-wrap:anywhere}
.visuals015 [data-element="wood"]{--visuals015-color:var(--visuals015-wood)}
.visuals015 [data-element="fire"]{--visuals015-color:var(--visuals015-fire)}
.visuals015 [data-element="earth"]{--visuals015-color:var(--visuals015-earth)}
.visuals015 [data-element="metal"]{--visuals015-color:var(--visuals015-metal)}
.visuals015 [data-element="water"]{--visuals015-color:var(--visuals015-water)}
.visuals015-section{margin-block:20px 25px;padding-block:4px 8px;border-block:1px solid var(--line)}
.visuals015-section>h4{font:500 13px/1.5 var(--body);margin-block:13px;color:var(--paper);text-wrap:pretty}
.visuals015-figure{min-width:0;max-width:100%;margin:18px 0 24px}
.visuals015-figure>figcaption{font:400 26px/1.2 var(--display);margin-bottom:16px;color:var(--paper)}
.visuals015 .visuals015-note{font:11px/1.75 var(--body);color:var(--subtle);margin-block:12px;white-space:normal}
.visuals015-pillars{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;min-width:0}
.visuals015-pillar{display:grid;justify-items:center;gap:7px;min-width:0;padding:12px 3px;border:1px solid var(--line);border-top:3px solid var(--visuals015-color,var(--accent));background:color-mix(in srgb,var(--jade) 24%,var(--bg))}
.visuals015-pillar-label{font-size:10px;color:var(--subtle);text-align:center}
.visuals015-han{font:30px/1.15 Georgia,"Songti SC",serif;color:var(--paper)}
.visuals015-pillar-details{display:grid;grid-template-columns:minmax(0,78px) minmax(0,1fr);gap:9px 12px;margin-block:17px;font-size:11px}
.visuals015-pillar-details dt{font-weight:500;color:var(--paper)}
.visuals015-pillar-details dd{margin:0;min-width:0;color:var(--subtle)}
.visuals015-balance{display:grid;gap:8px}
.visuals015-balance-row{display:grid;grid-template-columns:70px minmax(0,1fr);gap:1px 10px;align-items:center;min-width:0;min-height:48px;padding:5px 0}
.visuals015-element-label{font-weight:500;color:var(--paper)}
.visuals015-balance-mark{display:block;width:100%;height:20px;min-width:0;overflow:visible}
.visuals015-track{fill:color-mix(in srgb,var(--paper) 10%,var(--bg))}
.visuals015-fill{fill:var(--visuals015-color,var(--accent))}
.visuals015-value{font-size:11px;font-variant-numeric:tabular-nums;color:var(--paper)}
.visuals015-role{font-size:10px;color:var(--subtle)}
.visuals015-balance-row[data-role="useful"] .visuals015-role{font-weight:500;color:var(--paper)}
.visuals015-cycle{display:block;width:100%;max-width:380px;height:auto;margin-inline:auto;overflow:visible}
.visuals015-edge line{stroke:var(--accent);stroke-width:1.6;fill:none}
.visuals015-edge polygon{fill:var(--accent)}
.visuals015-edge-control line{stroke:var(--subtle);stroke-dasharray:5 4}
.visuals015-edge-control polygon{fill:var(--subtle)}
.visuals015-node-fill{fill:var(--bg);stroke:var(--visuals015-color,var(--accent));stroke-width:5}
.visuals015-self-ring{fill:none;stroke:var(--paper);stroke-width:1.5}
.visuals015-cycle text{fill:var(--paper);font:12px var(--body)}
.visuals015-cycle .visuals015-self-label{font-size:9px}
.visuals015-legend,.visuals015-summary-elements{display:grid;grid-template-columns:minmax(0,1fr);gap:7px;list-style:none;padding:0;margin:14px 0}
.visuals015 .visuals015-legend li,.visuals015 .visuals015-summary-elements li{display:flex;align-items:baseline;gap:8px;min-width:0;margin:0;font-size:11px}
.visuals015-swatch{display:inline-block;flex:0 0 10px;width:10px;height:10px;border-radius:50%;background:var(--visuals015-color,var(--accent));border:1px solid color-mix(in srgb,var(--paper) 20%,transparent)}
.visuals015-years,.visuals015-timeline,.visuals015-months{list-style:none;padding:0;margin:0;min-width:0}
.visuals015 .visuals015-period{position:relative;min-width:0;max-width:100%;margin:0;color:var(--paper);font-size:11px}
.visuals015-period strong{font-size:12px;font-weight:500;min-width:0}
.visuals015-years{display:grid;gap:5px}
.visuals015-years .visuals015-period{display:grid;grid-template-columns:minmax(36px,50px) 32px minmax(0,1fr) 63px;gap:4px 6px;align-items:center;padding:9px 3px;border-bottom:1px solid var(--line)}
.visuals015-year-mark{width:100%;height:24px;min-width:0;display:block}
.visuals015-scale{stroke:var(--line);stroke-width:1}
.visuals015-rating{fill:var(--accent)}
.visuals015-score{font-variant-numeric:tabular-nums;font-size:10px}
.visuals015-period-pillar{font:17px/1.35 Georgia,"Songti SC",serif}
.visuals015-range{display:block;font-size:10px;line-height:1.7;color:var(--subtle)}
.visuals015-years .visuals015-range{grid-column:1/-1}
.visuals015-badge{display:inline-block;justify-self:start;font-size:10px;color:var(--paper);padding:1px 5px;border:1px solid var(--line);border-radius:2px}
.visuals015-years .visuals015-badge{grid-column:span 2}
.visuals015-period[data-current="true"]{box-shadow:inset 3px 0 var(--paper)}
.visuals015-period[data-best="true"] .visuals015-score{font-weight:700}
.visuals015-timeline,.visuals015-months{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.visuals015-timeline .visuals015-period,.visuals015-months .visuals015-period{display:flex;flex-direction:column;gap:6px;padding:13px 10px;border:1px solid var(--line);border-top:2px solid var(--accent);background:color-mix(in srgb,var(--jade) 18%,var(--bg))}
.visuals015-timeline .visuals015-period[data-current="true"],.visuals015-months .visuals015-period[data-current="true"]{box-shadow:inset 3px 0 var(--paper)}
.visuals015-rating-dots{font-size:13px;line-height:1.2;letter-spacing:2px;color:var(--accent);min-height:16px}
.visuals015-tooltip{position:fixed;z-index:20;max-width:min(320px,calc(100vw - 32px));pointer-events:none;font:11px/1.6 var(--body);padding:10px 12px;border:1px solid var(--line);background:var(--jade);color:var(--paper);margin:0;overflow-wrap:anywhere}
.visuals015 [tabindex="0"]:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.visuals015-fallback{margin-block:14px;border-top:1px solid var(--line)}
.visuals015-fallback>summary{cursor:pointer;min-height:44px;padding-block:10px;font-size:11px;color:var(--accent)}
.visuals015-table-scroll{display:block;min-width:0;max-width:100%;overflow-x:auto;margin-block:16px 22px;overscroll-behavior-inline:contain;scrollbar-width:thin}
.visuals015-table{min-width:420px;table-layout:auto;width:100%;margin:0;font:11px/1.65 var(--body)}
.visuals015-table caption{text-align:left;font:400 23px/1.25 var(--display);padding-bottom:12px;color:var(--paper)}
.visuals015-table th,.visuals015-table td{padding:9px 7px;overflow-wrap:anywhere;white-space:normal}
.visuals015-table th{font:500 10px/1.6 var(--body);color:var(--paper)}
.visuals015-summary{padding-block:18px;margin-block:28px 8px;border-block:2px solid var(--accent)}
.visuals015-summary>h3{margin-block:0 15px;font:400 32px/1.1 var(--display)}
.visuals015-summary .visuals015-table{min-width:0;table-layout:fixed;font-size:10px}
.visuals015-summary .visuals015-table th,.visuals015-summary .visuals015-table td{padding-inline:4px}
.visuals015-summary .visuals015-table caption{font-size:22px}
.visuals015-summary .visuals015-table-scroll{overflow-x:auto}
.visuals015-summary-links{border-top:1px solid var(--line);margin-top:14px}
.visuals015-summary-links>summary{min-height:44px;padding-block:10px;cursor:pointer;font-size:11px;color:var(--accent)}
.visuals015-summary-links nav{display:grid;gap:3px}
.visuals015-detail-link{font-size:11px;text-align:left;justify-self:start;max-width:100%;overflow-wrap:anywhere}
.visuals015-short{margin-block:22px 28px}
@media(min-width:1100px){.visuals015-months,.visuals015-timeline{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(forced-colors:active){.visuals015-fill,.visuals015-rating,.visuals015-swatch{fill:CanvasText;background:CanvasText;forced-color-adjust:auto}.visuals015-node-fill{fill:Canvas;stroke:CanvasText}.visuals015-edge line,.visuals015-self-ring{stroke:CanvasText}.visuals015-edge polygon{fill:CanvasText}.visuals015-track{fill:Canvas;stroke:CanvasText}.visuals015-cycle text{fill:CanvasText}}
@media print{.visuals015-period,.visuals015-figure{break-inside:avoid}.visuals015-fallback{display:none}.visuals015-fill{stroke:currentColor;stroke-width:1}.visuals015-summary{break-before:page}}

/* 015b: one measurable paper page, independent of the app's pocket shell. */
@font-face{font-family:"Baji Reader Han";src:url('/fonts/BajiReaderHan-Regular.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap;unicode-range:U+20-7E,U+4E00-4E01,U+4E03,U+4E09-4E0B,U+4E11,U+4E19,U+4E2D,U+4E34,U+4E59,U+4E5D,U+4E8C,U+4E94,U+4EA1,U+4EA5,U+4EBA,U+4F0F,U+4F11,U+4F24,U+504F,U+514B,U+5168,U+516B,U+516D,U+517B,U+51A0,U+51B2,U+5203,U+5211,U+5251,U+52AB,U+5341,U+5348,U+534A,U+534E,U+536F-5370,U+5408,U+541F,U+559C,U+56DA-56DB,U+571F,U+5730,U+57CE,U+5893,U+58C1,U+58EC,U+5927,U+5929,U+5934,U+5B50,U+5B57,U+5B98,U+5BB3,U+5BC5,U+5C06,U+5C4B,U+5C71,U+5DF1,U+5DF3,U+5E1D,U+5E26,U+5E73-5E74,U+5E8F,U+5E9A,U+5FB7,U+620A,U+620C,U+6587,U+65C1,U+65E5,U+65FA,U+660C,U+661F,U+6642,U+6708,U+6728,U+672A,U+6740,U+6768,U+677E,U+6797,U+67CF,U+67D8,U+67F3,U+6843,U+6851,U+69B4,U+6B63,U+6B7B,U+6BD4,U+6C34,U+6C90,U+6C99,U+6CB3,U+6CC9,U+6D41,U+6D74,U+6D77,U+6DA7,U+6EAA,U+706B,U+706F,U+7089,U+751F,U+7532-7533,U+75C5,U+7678,U+767D,U+76D6,U+76F8,U+77F3,U+7802,U+795E,U+7984,U+7A7A,U+7B94,U+7B97,U+7EA2,U+7EDD,U+7F8A,U+80A9,U+80CE,U+82B1,U+8721,U+8870,U+8986,U+8D22,U+8D35,U+8DCB,U+8DEF,U+8F9B,U+8FB0,U+9149,U+91D1,U+948F,U+9497,U+950B,U+957F,U+9644,U+96F3,U+96F6,U+9739,U+98DF,U+9A6C,U+9A7F,U+9E3E;}
html.reader015b-open,html.reader015b-open body{overflow:hidden;overscroll-behavior:none}
.reader015b{
  --reader015b-night:#102723;--reader015b-paper:#e8d5a7;--reader015b-ink:#30352b;--reader015b-jade:#25463d;--reader015b-gold:#bca170;--reader015b-muted:#635b45;
  --reader015b-han:"Baji Reader Han","Noto Serif SC","Songti SC","Source Han Serif",serif;
  --display:"Cormorant Garamond",var(--reader015b-han);--body:"Golos Text",var(--reader015b-han);
  position:fixed;inset:0;width:100%;max-width:none;height:100vh;height:100dvh;max-height:none;margin:0;border:0;
  padding:calc(8px + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) calc(4px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));
  overflow:hidden;background:var(--reader015b-night);color:var(--reader015b-paper);font:14px/1.75 var(--body);color-scheme:dark;
}
.reader015b[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:8px}
.reader015b::backdrop{background:var(--reader015b-night)}
.reader015b *,.reader015b *::before,.reader015b *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
.reader015b button:not(.button):not(.topic):not(.icon-button):not(.text-button){min-width:44px;min-height:44px;padding:9px 14px;border:1px solid var(--reader015b-gold);border-radius:2px;background:transparent;color:inherit;font:500 12px/1.5 var(--body);overflow-wrap:anywhere}
.reader015b button:hover:not(:disabled){background:color-mix(in srgb,currentColor 8%,transparent)}
.reader015b button:disabled{opacity:.45}
.reader015b :is(button,a,[tabindex]):focus-visible{outline:2px solid var(--reader015b-gold);outline-offset:3px}
.reader015b-toolbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;width:100%;max-width:530px;justify-self:center;min-width:0}
#reader015b-close{justify-self:start}
#reader015b-toc-button{justify-self:end}
.reader015b-wordmark{font:24px/1.3 var(--reader015b-han);color:var(--reader015b-gold);letter-spacing:.14em}
.reader015b-stage{position:relative;display:grid;justify-items:center;align-items:stretch;min-width:0;min-height:0;width:100%;height:100%}
.reader015b-page{
  --bg:var(--reader015b-paper);--paper:var(--reader015b-ink);--ink:var(--reader015b-ink);--jade:var(--reader015b-jade);--muted:var(--reader015b-muted);--accent:var(--reader015b-jade);--subtle:var(--reader015b-muted);--error:#a51a0e;
  --line:color-mix(in srgb,var(--reader015b-muted) 35%,var(--reader015b-paper));
  position:relative;display:grid;grid-template-rows:minmax(0,1fr) 18px;gap:12px;width:min(100%,530px);height:100%;min-height:0;min-width:0;margin:0;
  padding:26px 34px 15px;border:1px solid var(--reader015b-gold);background:var(--reader015b-paper);color:var(--reader015b-ink);color-scheme:light;
  box-shadow:0 10px 35px #0004;
}
.reader015b-page::before{content:"";position:absolute;inset:8px;border:1px solid color-mix(in srgb,var(--reader015b-gold) 65%,transparent);pointer-events:none}
.reader015b-content{position:relative;display:flow-root;width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;font:400 14px/1.75 var(--body);overflow-wrap:anywhere}
.reader015b-number{align-self:center;margin:0;text-align:center;color:var(--reader015b-muted);font:11px/18px var(--body);font-variant-numeric:tabular-nums}
.reader015b-page[data-cover="true"] #reader015b-number{visibility:hidden}
.reader015b-measure{position:absolute;top:0;left:50%;transform:translateX(-50%);visibility:hidden;pointer-events:none;box-shadow:none}
.reader015b-navigation{display:grid;grid-template-columns:52px minmax(0,1fr) 52px;align-items:center;gap:12px;width:100%;max-width:530px;justify-self:center;min-width:0}
#reader015b-progress{margin:0;text-align:center;font:12px/1.5 var(--body);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.reader015b .reader015b-navigation button{width:52px;min-height:44px;font-size:22px}
.reader015b-block{display:flow-root;max-width:100%;min-width:0;margin:0 0 16px}
.reader015b-block:last-child{margin-bottom:0}
.reader015b-content :is(p,ul,ol,dl){margin-block:0 16px}
.reader015b-content :is(ul,ol){padding-inline-start:24px}
.reader015b-content li{margin-block:8px}
.reader015b-content :is(h1,h2,h3,h4){color:var(--reader015b-jade);overflow-wrap:anywhere;text-wrap:pretty}
.reader015b-content :is(h1,h2,h3){font:400 32px/1.1 var(--display);margin:0 0 16px}
.reader015b-content h4{font:500 14px/1.5 var(--body);margin:0 0 12px}
.reader015b-content .eyebrow,.reader015b-heading-number{font:500 10px/1.7 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--reader015b-muted)}
.reader015b-heading{margin-block:0 18px}
.reader015b-heading-han{display:block;font:54px/1.25 var(--reader015b-han);color:var(--reader015b-jade);margin-block:0 10px}
.reader015b-heading-number{display:block;margin-block:0 9px}
.reader015b-content .reader015b-heading :is(h2,h3){margin-bottom:0}
.book-period-heading{break-inside:avoid;break-after:avoid;overflow-wrap:anywhere}
.book-period-heading h4,.reader015b-content .book-period-heading h4{margin-block:0 6px}
.book-period-level{font:500 12px/1.6 var(--body);color:var(--muted);overflow-wrap:anywhere}
.reader015b-content .book-period-level{color:var(--reader015b-muted)}
.reader015b-question-number{font-weight:500;color:var(--reader015b-jade);margin-inline-end:.5em}
.reader015b-content li::marker{color:var(--reader015b-jade);font-weight:500}
.reader015b-table-continuation{display:block;margin-block:0 8px;color:var(--reader015b-muted);font:12px/1.6 var(--body)}
.reader015b-content :is(table,.book-data-table){width:100%;min-width:0;margin:0 0 16px;table-layout:fixed;color:var(--reader015b-ink);font:12px/1.6 var(--body)}
.reader015b-content :is(th,td){padding:8px 5px;border-color:var(--line);white-space:normal;overflow-wrap:anywhere}
.reader015b-content th{color:var(--reader015b-jade);font:500 12px/1.6 var(--body)}
.reader015b-content caption{color:var(--reader015b-jade);font:400 25px/1.2 var(--display);text-align:left;padding-bottom:12px}
.reader015b-content .book-table-wrap{min-width:0;margin:0 0 16px;overflow:visible}
.reader015b-content :is(.fine-print,small,.muted){color:var(--reader015b-muted);font-size:12px;line-height:1.7}
.reader015b-oversized{width:100%;height:100%;max-height:100%;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--reader015b-jade) var(--reader015b-paper);padding:4px}
.reader015b-oversized::before{content:attr(data-reader-overflow);display:block;margin-bottom:10px;color:var(--reader015b-muted);font:12px/1.6 var(--body)}
.reader015b-page :is(button,a,[tabindex]):focus-visible,.reader015b-panel :is(button,a,[tabindex]):focus-visible{outline-color:var(--reader015b-jade)}
.reader015b-cover{
  position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;gap:16px;overflow:auto;overscroll-behavior:contain;
  padding:28px 22px 20px;background:var(--reader015b-night);color:var(--reader015b-paper);text-align:center;border:1px solid var(--reader015b-gold);
}
.reader015b-content .reader015b-cover>p{margin:0}
.reader015b-cover-eyebrow{font:500 9px/1.6 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--reader015b-gold)}
.reader015b-cover-seal{flex:0 0 auto;display:grid;place-items:center;width:88px;height:88px;padding:6px;border:4px double var(--reader015b-gold);font:32px/1 var(--reader015b-han);letter-spacing:0;white-space:nowrap;color:var(--reader015b-gold)}
.reader015b-content .reader015b-cover-title{font:400 clamp(30px,7vw,42px)/1.05 var(--display);color:var(--reader015b-paper);margin:0;max-width:100%}
.reader015b-cover-name{font:400 25px/1.2 var(--display);overflow-wrap:anywhere;max-width:100%}
.reader015b-cover-pillars{flex:0 0 auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:min(100%,240px);border-block-start:1px solid var(--reader015b-gold);border-inline-start:1px solid var(--reader015b-gold);font:27px/1.3 var(--reader015b-han)}
.reader015b-cover-pillars>span{display:grid;place-items:center;min-height:40px;padding:4px;border-block-end:1px solid var(--reader015b-gold);border-inline-end:1px solid var(--reader015b-gold)}
.reader015b-cover-pillars>span.label{min-height:26px;font-size:12px;color:var(--reader015b-gold)}
.reader015b-cover-master{color:var(--reader015b-paper);font:12px/1.6 var(--body)}
.reader015b-content .reader015b-cover>.reader015b-cover-brand{margin-block-start:auto;padding-top:8px;color:var(--reader015b-gold);font:500 10px/1.5 var(--body);letter-spacing:.22em}
.reader015b-panel{
  --bg:var(--reader015b-paper);--paper:var(--reader015b-ink);--accent:var(--reader015b-jade);--subtle:var(--reader015b-muted);--line:color-mix(in srgb,var(--reader015b-muted) 35%,var(--reader015b-paper));
  position:absolute;inset:calc(8px + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) calc(4px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));z-index:2;
  display:grid;grid-template-rows:auto minmax(0,1fr);gap:12px;width:min(530px,calc(100% - 32px));max-height:100%;margin-inline:auto;padding:16px;border:1px solid var(--reader015b-gold);background:var(--reader015b-paper);color:var(--reader015b-ink);color-scheme:light;box-shadow:0 0 0 100vmax #102723d9;
}
.reader015b-panel-toolbar{display:flex;justify-content:flex-end;min-width:0}
.reader015b-panel-content{min-width:0;min-height:0;max-width:100%;overflow:auto;overscroll-behavior:contain;padding:4px;scrollbar-width:thin;scrollbar-color:var(--reader015b-jade) var(--reader015b-paper);overflow-wrap:anywhere}
.reader015b-panel-content :is(h2,h3){margin-block:0 16px;font:400 30px/1.15 var(--display);color:var(--reader015b-jade)}
.reader015b-panel-content :is(ol,ul){padding-inline-start:22px;margin-block:0}
.reader015b-panel-content li{margin-block:6px}
.reader015b-panel-content button{width:100%;text-align:left}
.reader015b-panel-content table{margin:0;color:var(--reader015b-ink);font:12px/1.65 var(--body)}
.reader015b-panel-content :is(th,td){padding:9px 7px;border-color:var(--line);overflow-wrap:anywhere}
.reader015b-panel-content th{font-size:12px;color:var(--reader015b-jade)}
.reader015b-panel-content caption{color:var(--reader015b-jade)}
/* One focusable panel viewport owns both axes, including wide table views. */
.reader015b-panel-content :is(.visuals015-table-scroll,.book-table-wrap){max-width:none;overflow:visible;margin:0}
/* Paper-local semantic tokens also reach every 015 SVG, table, note and tooltip. */
.reader015b .visuals015{--visuals015-wood:#1b895d;--visuals015-fire:#a51a0e;--visuals015-earth:#9f6a12;--visuals015-metal:#d9ac5a;--visuals015-water:#73a5ee;color:var(--reader015b-ink);font-size:12px}
.reader015b .visuals015 :is(.visuals015-han,.visuals015-period-pillar){font-family:var(--reader015b-han)}
.reader015b :is(.visuals015-figure,.visuals015-section){margin-block:0 16px}
.reader015b .visuals015 :is(.visuals015-note,.visuals015-range,.visuals015-role,.visuals015-pillar-label,.visuals015-pillar-details dd){color:var(--reader015b-muted);font-size:12px}
.reader015b .visuals015 :is(.visuals015-value,.visuals015-element-label,.visuals015-period,.visuals015-han,.visuals015-badge,.visuals015-pillar-details dt){color:var(--reader015b-ink)}
.reader015b .visuals015-figure>figcaption{color:var(--reader015b-jade);font-size:26px}
.reader015b .visuals015 :is(.visuals015-track,.visuals015-node-fill){fill:var(--reader015b-paper)}
.reader015b .visuals015 .visuals015-track{fill:#dfc994;stroke:var(--line);stroke-width:1}
.reader015b .visuals015 .visuals015-rating{fill:var(--reader015b-jade)}
.reader015b .visuals015 .visuals015-cycle text{fill:var(--reader015b-ink)}
.reader015b .visuals015 .visuals015-self-ring{stroke:var(--reader015b-ink)}
.reader015b .visuals015 .visuals015-edge line{stroke:var(--reader015b-muted)}
.reader015b .visuals015 .visuals015-edge polygon{fill:var(--reader015b-muted)}
.reader015b .visuals015 :is(.visuals015-pillar,.visuals015-timeline .visuals015-period,.visuals015-months .visuals015-period){background:color-mix(in srgb,var(--reader015b-gold) 14%,var(--reader015b-paper))}
.reader015b .visuals015 .visuals015-tooltip,.reader015b .visuals015-tooltip{border-color:var(--reader015b-gold);background:var(--reader015b-paper);color:var(--reader015b-ink);font-size:12px}
.reader015b .visuals015 .visuals015-rating-dots{color:var(--reader015b-jade)}
.reader015b .visuals015 .visuals015-table-scroll{margin-block:0 16px}
.reader015b .visuals015 :is(.visuals015-table th,.visuals015-table td){color:var(--reader015b-ink);font-size:12px}
.reader015b .visuals015 .visuals015-table caption{color:var(--reader015b-jade)}
.reader015b .visuals015 .visuals015-period[data-current="true"]{box-shadow:inset 3px 0 var(--reader015b-jade)}
.reader015b .visuals015 .visuals015-swatch{border-color:var(--reader015b-muted)}
@media(max-width:560px){
  .reader015b{padding-inline:env(safe-area-inset-left,0px) env(safe-area-inset-right,0px)}
  .reader015b-toolbar,.reader015b-navigation{width:calc(100% - 32px)}
  .reader015b-page{padding:22px 22px 12px;box-shadow:none}
  .reader015b-panel{inset-inline:0;width:100%;padding:12px 16px}
  .reader015b-cover{padding:22px 16px 16px;gap:14px}
}
@media(max-width:380px){.reader015b-page{padding-inline:18px}.reader015b-cover{gap:12px}.reader015b-cover-seal{width:76px;height:76px;font-size:28px}}
@media(max-height:560px){.reader015b{gap:4px}.reader015b-page{padding-block:16px 10px;gap:6px}.reader015b-cover{gap:10px;padding-block:16px}.reader015b-cover-seal{width:64px;height:64px;font-size:22px}}
@media(forced-colors:active){
  .reader015b,.reader015b-page,.reader015b-panel,.reader015b-cover{background:Canvas;color:CanvasText;border-color:CanvasText;box-shadow:none}
  .reader015b .visuals015 :is(.visuals015-fill,.visuals015-rating,.visuals015-swatch){fill:CanvasText;background:CanvasText}
  .reader015b .visuals015 :is(.visuals015-node-fill,.visuals015-track){fill:Canvas;stroke:CanvasText}
  .reader015b .visuals015 :is(.visuals015-edge line,.visuals015-self-ring){stroke:CanvasText}
  .reader015b .visuals015 .visuals015-edge polygon{fill:CanvasText}
  .reader015b .visuals015 .visuals015-cycle text{fill:CanvasText}
}

/* 026: app-only touch/selection policy also covers sibling reader/delete dialogs. */
body.baji-app026,body.baji-app026 *{
  -webkit-user-select:none;user-select:none;-webkit-touch-callout:none;
  touch-action:pan-x pan-y;
}
/* Native editability includes inherited editable descendants, never contenteditable=false. */
body.baji-app026 :is(input,textarea),
body.baji-app026 [contenteditable]:read-write,
body.baji-app026 [contenteditable] :read-write{
  -webkit-user-select:text;user-select:text;-webkit-touch-callout:default;
}
body.baji-app026 :is(input,select,textarea),
body.baji-app026 [contenteditable]:read-write{font-size:max(16px,1em)}
body.baji-app026 :is(#date-open,#time-open){font-size:16px}
/* Keep the deliberate slider gesture and native vertical wheel scrolling. */
body.baji-app026 :is(.delete-slider,.delete-slider-thumb){touch-action:none}
body.baji-app026 .wheel{touch-action:pan-y}

/* Root clipping is a backstop; useful wide content retains its inner scroll owner. */
html:has(>body.baji-app026),body.baji-app026{
  width:100%;max-width:100%;min-width:0;overflow-x:clip;overscroll-behavior-x:none;
}
body.baji-app026 :is(.workspace,.app,.app-scroll,.screen,.screen-intro,.home-copy,.topic-list,.readings-list,.library-reading,.generation-state,.email-box,.email-box form,.inapp-banner,.inapp-actions,.book-stage,.book-cover,.offer-copy,.contents,.picker,.picker-head,.picker-wheels,.wheel-times,.wheel-ranges,.wheel-column,.wheel-row,.wheel-slot,.reader015b-oversized){
  min-width:0;max-width:100%;
}
body.baji-app026 :is(.wordmark,.wordmark>span:last-child,.nav-item,.nav-item>span,.topic-copy,.generation-title,.cover-name,.cover-title,.library-title,.picker-field,.connection-note,.status,.raw){
  min-width:0;max-width:100%;overflow-wrap:anywhere;
}
body.baji-app026 :is(.button,.picker-field){min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}
body.baji-app026 .email-box input{min-width:0;max-width:100%}
body.baji-app026 .inapp-actions{flex-wrap:wrap}
body.baji-app026 .book-table-wrap{min-width:0}
body.baji-app026 .picker-sheet{
  min-width:0;max-width:min(520px,100%);max-height:100dvh;overflow-y:auto;overscroll-behavior:contain;
}
body.baji-app026 .picker-head{grid-template-columns:auto minmax(0,1fr) auto}
body.baji-app026 .picker-head h3{min-width:0;overflow-wrap:anywhere}
body.baji-app026 .picker-wheels{flex-wrap:wrap}
body.baji-app026 .wheel-row{flex:1 1 auto}
body.baji-app026 .wheel{max-width:100%}
/* Legacy IANA labels get their own horizontal viewport, not clipped/shortened text.
   Item height 40px, wheel font 19px and vertical scroll-snap metrics stay unchanged. */
body.baji-app026 .picker-wheels>.wheel-times+.wheel-column{flex:1 1 0}
body.baji-app026 .picker-wheels>.wheel-times+.wheel-column>.wheel-row{width:100%}
body.baji-app026 .wheel-timezone028{
  width:100%;min-width:0;overflow-x:auto;touch-action:pan-x pan-y;
}
body.baji-app026 .wheel-timezone028>.wheel-list{width:max-content;min-width:100%}
body.baji-app026 .wheel-timezone028 .wheel-item{justify-content:flex-start}
@media(max-width:560px){
  body.baji-app026 .picker-wheels>.wheel-times+.wheel-column{flex-basis:100%}
}

/* 028: native-name language menu, on the header background; no gesture interception. */
body.baji-app026 .app-header{container-type:inline-size;grid-template-columns:minmax(88px,1fr) auto minmax(88px,1fr);gap:4px;padding-inline:10px}
/* 030: only the Han glyphs size the center track; translated copy cannot move it. */
/* 032: one Han advance left, capped by back (48px) + language (44px) + gap (4px). */
body.baji-app026 .wordmark{--header-mark-size:26px;--header-mark-step:calc(var(--header-mark-size)*1.08);--header-mark-offset:min(var(--header-mark-step),max(0px,calc((100cqi - 100%)/2 - 48px - 44px - 4px)));position:relative;display:grid;place-items:center;min-height:48px;transform:translateX(calc(-1*var(--header-mark-offset)))}
body.baji-app026 .wordmark>span:first-child{font-size:var(--header-mark-size)}
body.baji-app026 .wordmark>span:last-child{position:absolute;inset-inline-start:calc(100% + 11px);width:calc((100cqi - 100%)/2 - 63px + var(--header-mark-offset));max-width:none;text-align:start;white-space:nowrap}
body.baji-app026 .wordmark bdi{text-transform:none;white-space:nowrap}
.header-leading028{display:flex;align-items:center;min-width:0;gap:0}
.header-placeholder028{display:none!important}
.language-switcher028{position:relative;flex:0 0 auto}
body.baji-app026 .language-button028{display:inline-flex;justify-content:center;align-items:center;min-width:44px;min-height:48px;padding:8px 4px;border:0;border-radius:0;background:transparent;text-decoration:none;font:400 16px/1.4 var(--body);color:var(--accent)}
.language-menu028{position:absolute;z-index:60;inset-block-start:100%;inset-inline-start:0;min-width:176px;max-width:calc(100vw - 32px);padding:6px 0;background:var(--bg);border:1px solid var(--line);box-shadow:0 10px 24px color-mix(in srgb,var(--bg) 80%,transparent)}
body.baji-app026 .language-option028{display:flex;justify-content:space-between;align-items:center;gap:16px;width:100%;min-height:48px;padding:10px 14px;text-align:start;text-decoration:none;font-size:16px;line-height:1.5;border:0;background:transparent;color:var(--paper)}
.language-option028[aria-checked="true"]{color:var(--accent)}
.language-option028:hover,.language-option028:focus-visible{background:var(--jade)}
.app-header>.sound-button{justify-self:end}
.library-language028{font-size:11px;color:var(--accent);letter-spacing:.08em}
