/* 마루 부리. 네이버 한글한글 아름답게 배포본을 KS X 1001(한글 2,350자)로
   서브셋해 직접 호스팅합니다. 원본에는 한자와 호환 자모가 없으므로, 명식의
   간지(乙亥 辛巳 …)는 뒤따르는 명조 계열 폴백이 그립니다. */
@font-face{font-family:'Maru Buri';font-weight:400;font-style:normal;font-display:swap;src:url('/assets/fonts/MaruBuri-Regular.woff2') format('woff2')}
@font-face{font-family:'Maru Buri';font-weight:600;font-style:normal;font-display:swap;src:url('/assets/fonts/MaruBuri-SemiBold.woff2') format('woff2')}
@font-face{font-family:'Maru Buri';font-weight:700;font-style:normal;font-display:swap;src:url('/assets/fonts/MaruBuri-Bold.woff2') format('woff2')}
/* 한자·자모용 폴백. 마루 부리가 부리(세리프) 계열이라 폴백도 명조로 맞춥니다. */
:root{--font:'Maru Buri','AppleMyungjo','Nanum Myeongjo','Batang','바탕',serif}

:root{color-scheme:light;--paper:#f5f1e7;--card:#fffdf7;--ink:#263d36;--muted:#70766a;--line:#dddccd;--teal:#1c5149;--gold:#cfad60;--red:#9d4d3f;font-family:var(--font);color:var(--ink);background:var(--paper);font-size:16px}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid #a9863e;outline-offset:4px}h1,h2,h3,.brand{font-family:var(--font);word-break:keep-all}h1{font-size:2rem;line-height:1.5;letter-spacing:-.04em;margin:0 0 20px}h2{font-size:1.4rem;line-height:1.65;margin:0 0 17px}h3{font-size:1.13rem;line-height:1.7;margin:12px 0}p{font-size:1rem;line-height:1.9;margin:12px 0}a{color:var(--teal)}small,.hint{font-size:.8rem;line-height:1.7;color:var(--muted)}.muted{color:var(--muted)}.eyebrow,.overline{font-size:.78rem;letter-spacing:.1em;color:#938056;display:block;line-height:1.8;margin:0 0 12px}.boot{padding:40px;text-align:center}header{height:74px;display:flex;justify-content:space-between;align-items:center;padding:0 max(24px,calc((100vw - 1160px)/2));border-bottom:1px solid var(--line);background:#f9f6eedf;position:sticky;top:0;z-index:20;backdrop-filter:blur(16px)}.brand{display:flex;align-items:center;gap:10px;border:0;background:none;font-size:1.25rem;font-weight:700;color:var(--teal)}.brand img{height:32px;width:32px;border-radius:50%;border:1px solid #b9a260}.plain{border:0;background:transparent;color:var(--teal);font-size:.875rem;min-height:44px;padding:9px}.workspace{max-width:1120px;margin:auto;padding:42px 26px 125px}.workspace:not(.dual){max-width:790px}.dual{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(340px,.9fr);gap:30px;align-items:start;max-width:1190px}.dual main{min-width:0}.dual aside{position:sticky;top:99px;min-width:0;height:calc(100dvh - 190px);min-height:430px}.narrow{max-width:560px;margin:auto}.narrow>h1,.narrow>.muted,.narrow>.eyebrow{text-align:center}.narrow>.eyebrow{margin-top:12px}.section-top{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.section-top h1{font-size:1.8rem}.section-top .plain{flex:none}nav{position:fixed;bottom:0;left:0;right:0;z-index:30;background:#fdfbf5f2;border-top:1px solid var(--line);display:flex;justify-content:center;backdrop-filter:blur(18px);padding:8px 12px calc(9px + env(safe-area-inset-bottom));gap:8px}nav button{border:0;background:transparent;display:flex;flex-direction:column;align-items:center;gap:4px;min-width:75px;max-width:115px;flex:1;color:#787c70;font-size:.8rem;padding:6px;border-radius:12px}nav button span{display:flex;line-height:0}nav [aria-current]{color:var(--teal);background:#1c51490b;font-weight:700}.primary,.secondary,.danger{min-height:52px;border-radius:30px;padding:14px 22px;display:block;width:100%;border:1px solid transparent;font-size:1rem;margin:14px 0}.primary{background:var(--teal);color:#fff9e9}.secondary{border-color:var(--line);color:var(--teal);background:#fbf8ee}.danger{border-color:#c784744d;background:#9d4d3f09;color:var(--red)}.text-link{border:0;border-bottom:1px solid #8b997a;background:none;color:var(--teal);padding:8px 0;font-size:.875rem;min-height:44px}.button-row{display:flex;gap:10px}.button-row>*{flex:1}label{display:block;font-size:.875rem;font-weight:600;margin:21px 0 11px;line-height:1.6}input:not([type=checkbox]):not([type=range]):not([type=radio]),select,textarea{display:block;margin-top:8px;width:100%;min-width:0;background:var(--card);border:1px solid #d7d9cb;border-radius:11px;color:var(--ink);padding:14px 13px;font-size:1rem;min-height:52px}textarea{resize:vertical;min-height:115px;line-height:1.8}input[readonly]{color:#737c73;background:#ebece3}input[aria-invalid=true]{border-color:var(--red)}.fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.check{display:flex;align-items:center;gap:10px;min-height:38px;font-weight:400}.check input{width:18px;height:18px;accent-color:var(--teal)}.privacy-note{font-size:.8rem;line-height:1.8;padding:15px 17px;background:#e6e8dc85;border-radius:11px;color:#687367;margin:23px 0}.form-error{font-size:.875rem;line-height:1.7;background:#f2e3db;color:#8c4939;padding:12px 15px;border-radius:10px;margin:14px 0}details{border-top:1px solid var(--line);padding:15px 0;margin-top:16px}summary{cursor:pointer;font-size:.875rem;color:var(--teal);font-weight:600;line-height:1.7;min-height:28px}details p{font-size:.875rem}details a{font-size:.8rem}fieldset{border:0;margin:20px 0;padding:0}legend{font-size:.875rem}.topic-grid{display:flex;flex-wrap:wrap;gap:10px}.topic-choice{margin:8px 0;flex:1;min-width:85px;position:relative}.topic-choice input{position:absolute;opacity:0}.topic-choice span{padding:17px 16px;border:1px solid var(--line);border-radius:13px;display:block;text-align:center;background:var(--card);font-size:1rem}.topic-choice input:checked+span{border-color:var(--teal);background:#dde8df;color:var(--teal)}.topic-choice input:focus-visible+span{outline:2px solid var(--gold);outline-offset:3px}.card{background:#fffdf8;border:1px solid var(--line);border-radius:17px;padding:25px;margin-bottom:20px;box-shadow:0 3px 20px #2c3d2403}.core{background:#204c44;color:#f7f3e5;padding:30px 28px;border-radius:20px;margin-bottom:20px;position:relative;overflow:hidden}.core:after{content:'四柱';position:absolute;right:22px;top:12px;font:4rem 'Nanum Myeongjo',serif;color:#ffffff06;pointer-events:none}.core h2{font-size:1.45rem;line-height:1.85;position:relative}.core .overline{color:#d3bd87}.core p{color:#cdd8c8;font-size:.875rem}.pill{display:inline-block;padding:5px 10px;border:1px solid #bcaa704d;border-radius:6px;font-size:.75rem;line-height:1.7;color:#8b7750}.core .pill{color:#e4d7ae}.two-cards{display:grid;grid-template-columns:1fr 1fr;gap:14px}.two-cards .card{padding:22px}.two-cards p{font-size:.875rem}.action-card{padding:25px 28px;border-left:3px solid #c5a45c;background:#e9e1cd75;border-radius:0 15px 15px 0;margin:0 0 25px}.action-card h3{margin:0;font-size:1.15rem}.element-bars>div{display:flex;align-items:center;gap:12px;margin:15px 0;font-size:.85rem}.element-bars b{width:48px;font-family:var(--font);font-size:1.15rem;flex:none}.element-bars b span{font-size:.8rem}.element-bars>div>span{width:80px;flex:none;text-align:right}.track{height:8px;background:#efeee5;border-radius:5px;flex:1;overflow:hidden}.track i{display:block;height:100%;border-radius:5px}.pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:25px}.pillars>div{border:1px solid #dfddcd;background:#f8f4e9;border-radius:9px;text-align:center;padding:13px 5px}.pillars span,.pillars small{display:block;font-size:.75rem;color:var(--muted)}.pillars b{font:700 1.7rem/1.6 'Nanum Myeongjo',serif;display:block;color:var(--teal);margin:9px 0}.concrete{border-left:2px solid #c9b987;padding-left:14px;color:var(--teal)}.flows article+article{border-top:1px solid var(--line);padding-top:19px;margin-top:20px}.flows h3{margin:0}.flows .ground{font-size:.8125rem;line-height:1.8;color:#5f6a5e;border-left:2px solid #d8d6c4;padding-left:12px;margin:10px 0 0}.flows .ground b{color:var(--teal);font-weight:600}.flows .hidden-stems i{font-style:normal;color:#8b7750;font-size:.75rem}.flows .shin{border-left-color:#c2b184}.flows .shin b{color:#8a7439}.flows .clash{border-left-color:#c59a86}.flows .clash b{color:#8e4b39}.flows .text-link{margin-top:9px}.flows p{font-size:.875rem}.warning{color:#975539;background:#f2e9d7;padding:13px;border-radius:9px}.daily-image{border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--card);margin-bottom:23px}.daily-image img{display:block;width:100%;height:230px;object-fit:cover}.daily-image>div{padding:24px}.daily-image span{font-size:.8rem;color:#8e7f5d}.daily-image h2{margin-top:12px}.daily-image p{margin-bottom:0}.chat-panel{display:flex;flex-direction:column;border:1px solid #d6d9cb;border-radius:18px;overflow:hidden;background:#f8f5ec;height:100%;min-height:0}.mentor{display:flex;align-items:center;gap:12px;padding:19px 16px;color:#f6efdf;background:linear-gradient(90deg,#0e243bea,#193442d9),url('/assets/mentorHeader.webp') center 20%/cover;flex:none}.mentor img{width:43px;height:43px;border-radius:50%;object-fit:cover;object-position:46% 26%;border:1px solid #cab27890}.mentor h2{font-size:1.12rem;margin:0}.mentor span{font-size:.75rem;color:#c6cfc3}.mentor .plain{color:#d9d7c5;margin-left:auto;font-size:.75rem;white-space:nowrap}.chat-note{font-size:.75rem;line-height:1.8;padding:10px 16px;margin:0;background:#e9e9dc;flex:none}.messages{overflow-y:auto;padding:18px 14px;flex:1;min-height:0}.message{max-width:94%;margin:0 0 20px}.message .bubble{padding:14px 15px;border-radius:4px 15px 15px 15px;background:var(--card);border:1px solid var(--line);font-size:1rem;line-height:1.85;white-space:pre-wrap;overflow-wrap:anywhere}.message.user{margin-left:auto;max-width:86%}.message.user .bubble{background:#e0e9df;border-color:#c7d8c9;border-radius:15px 4px 15px 15px}.message time{font-size:.7rem;color:#878a7c;display:block;margin-top:4px}.answer-tools{display:flex;align-items:center;gap:2px;margin-top:2px}.answer-tools time{margin:0 7px 0 0;flex:none;color:#3f4a43}.answer-tools button{background:none;border:0;color:var(--teal);font-size:.75rem;padding:13px 9px;min-height:44px;line-height:1}.answer-tools button:hover{color:#123b34;text-decoration:underline;text-underline-offset:3px}.quick-topics{display:flex;gap:7px;padding:8px 13px;overflow-x:auto;flex:none}.plus{flex:none;width:44px;height:44px;border:0;background:none;color:#5d6b60;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:0;transition:transform .18s,background .18s}
.plus.on{background:#e3eade;color:var(--teal);transform:rotate(45deg)}
.plus-sheet{flex:none;border-top:1px solid var(--line);background:#fbfcf8}
.plus-acts{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:12px 10px 4px}
.plus-acts button{border:0;background:none;color:var(--ink);font-size:.75rem;line-height:1.4;display:flex;flex-direction:column;align-items:center;gap:7px;padding:8px 2px;min-height:44px;word-break:keep-all}
.plus-acts button span{width:44px;height:44px;border-radius:14px;background:#eceee3;color:var(--teal);display:flex;align-items:center;justify-content:center}
.plus-acts button:hover span{background:#dde7db}.quick-topics button{white-space:nowrap;border:1px solid var(--line);border-radius:20px;background:#fffdf8;padding:9px 13px;font-size:.8rem;color:var(--teal)}#chat-form{display:flex;gap:9px;padding:4px 13px 8px;align-items:center;flex:none}#chat-form textarea{min-height:53px;max-height:110px;margin:0;resize:none;padding:10px 12px;font-size:1rem}#chat-form .send{min-height:46px;border:0;border-radius:23px;background:var(--teal);color:white;padding:9px;font-size:.85rem;flex:none}.save-status{position:fixed;right:12px;bottom:90px;font-size:.7rem;border:1px solid var(--line);padding:5px 10px;border-radius:20px;background:#fbf8edf2;color:#71806d;z-index:19;max-width:200px}.save-status[data-state=error]{color:#94442f;background:#f6e5d9}.welcome{max-width:460px;margin:auto;position:relative;height:100dvh;overflow:hidden;background:#080e1c;color:#f8f0db}.landscape{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top}.welcome:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 36%,#080e1c25 50%,#080e1ca6 71%,#080e1cee 100%)}.vertical{position:absolute;writing-mode:vertical-rl;right:25px;top:60px;letter-spacing:4px;font:13px/1.8 'Nanum Myeongjo',serif;color:#d8d1bf9c;z-index:2}.welcome-copy{position:relative;z-index:3;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;text-align:center;height:100%;padding:0 24px clamp(14px,3.5vh,26px)}.mark{width:61px;height:61px;border:1px solid #bca86b8f;border-radius:50%;margin-bottom:20px}.welcome h1{font-size:clamp(1.85rem,6.6vw,2.45rem);line-height:1.45;font-weight:700;margin:0 0 clamp(8px,2vh,18px);letter-spacing:-1px;color:#f8f0db}.welcome p{font-family:var(--font);font-size:1rem;color:#c9c5b8;margin:0 0 clamp(12px,3.2vh,30px);line-height:clamp(1.55,4vh,1.9)}.gold{background:linear-gradient(160deg,#dec478,#c6a248);box-shadow:0 7px 27px #d3b35d25;color:#352811;font-family:var(--font);font-size:1.2rem;font-weight:700;min-height:59px;margin:0 0 9px}.welcome-link{color:#bcb8ab;background:none;border:0;text-decoration:underline;text-underline-offset:5px;font-family:var(--font);min-height:43px;margin:clamp(2px,1vh,8px) 0;flex:none}.welcome small{font-size:.7rem;letter-spacing:2px;color:#989f9270;margin-top:5px}body[data-page=welcome]{background:#0c1820}@media(min-width:861px){body[data-page=welcome]{background:linear-gradient(#0c1820ec,#0c1820ec),url('/assets/splash.webp') center/cover}}input[type=range]{width:100%;accent-color:var(--teal);margin-top:15px}.range-labels{display:flex;justify-content:space-between;font-size:.75rem;color:var(--muted)}output{color:var(--teal);font-size:1.25rem;margin-left:12px}.record-row{display:block;text-align:left;width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;padding:18px 8px;color:var(--ink)}.record-row.card{border:1px solid var(--line);background:var(--card);padding:22px}.record-row span{display:block;font-size:.8rem;line-height:1.8;color:var(--muted)}.record-row b{font-size:1rem;line-height:1.8}.record-row p{font-size:.875rem;color:var(--muted);margin-bottom:0}.month-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.month-nav h2{margin:0;font-size:1.2rem}.month-nav button{width:44px;height:44px;border:1px solid var(--line);background:var(--card);border-radius:50%;font-size:1.5rem;color:var(--teal)}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}.calendar>span{font-size:.8rem;padding-bottom:12px;color:var(--muted)}.calendar button{border:0;background:none;color:var(--ink);min-height:43px;border-radius:10px;font-size:.875rem}.calendar button.has-record{background:#dfe9dd}.calendar small{display:block;font-size:.65rem}.stats{display:grid;grid-template-columns:repeat(3,1fr);text-align:center;margin-bottom:24px}.stats b{font:2rem 'Nanum Myeongjo',serif;display:block;margin-bottom:10px}.stats span{font-size:.8rem;color:var(--muted)}.mood-summary,.filters{display:flex;flex-wrap:wrap;gap:9px;margin:15px 0}.mood-summary span,.filters button{font-size:.8rem;padding:10px 13px;border-radius:25px;border:1px solid var(--line);background:var(--card);color:var(--teal)}.filters [aria-pressed=true]{background:var(--teal);color:white}.empty{padding:35px 20px;text-align:center;border:1px dashed var(--line);border-radius:15px}.empty p{color:var(--muted)}dialog{width:min(600px,calc(100% - 28px));max-height:85dvh;overflow-y:auto;border:1px solid #cfcbb7;border-radius:20px;background:var(--paper);padding:25px;color:var(--ink);box-shadow:0 25px 100px #0004}dialog::backdrop{background:#0a201c90;backdrop-filter:blur(4px)}.modal-close{display:block;margin:0 0 12px auto}.compare{border-left:2px solid var(--gold);padding-left:17px}.compare span{font-size:.75rem;color:#97815a}.compare p{font-size:.875rem}.preline{white-space:pre-wrap}.danger-zone{border-color:#b67d674f}#notice{display:none;position:fixed;top:12px;left:50%;transform:translateX(-50%);z-index:100;width:max-content;max-width:calc(100% - 28px);padding:13px 20px;background:#244c43;color:white;border-radius:12px;box-shadow:0 5px 30px #0003;font-size:.875rem;line-height:1.7}#notice.visible{display:block}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}[hidden]{display:none!important}.mobile-only{display:none}
@media(max-width:850px){header{height:65px;padding:0 20px}.workspace,.workspace:not(.dual){max-width:620px;padding:28px 21px 125px}.dual{display:block}.dual aside{display:none;position:static;height:auto}.dual main{display:block}body[data-page=chat] .dual{padding:0;max-width:620px;height:calc(100dvh - 146px - env(safe-area-inset-bottom))}body[data-page=chat] .dual main{display:none}body[data-page=chat] .dual aside{display:block;height:100%;min-height:0}.chat-panel{border-radius:0;border:0}.mobile-only{display:block}h1{font-size:1.75rem}.section-top h1{font-size:1.5rem}.core{padding:25px 22px}.core h2{font-size:1.35rem}.two-cards{gap:10px}.two-cards .card{padding:18px 16px}.card{padding:22px 19px}.two-cards h3{font-size:1rem}.action-card{padding:22px}.save-status{bottom:91px;right:7px;font-size:.65rem}.daily-image img{height:190px}.workspace .narrow{padding-top:8px}.welcome{max-width:480px}nav button{min-width:0}}
@media(max-width:370px){.welcome h1{font-size:2rem}.welcome p{font-size:.875rem}.welcome-copy{padding-inline:20px}.workspace{padding-inline:16px}.two-cards{grid-template-columns:1fr;gap:0}.fields{grid-template-columns:1fr;gap:0}.section-top{display:block}.element-bars>div>span{width:70px}.message{max-width:100%}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
/* Top-level disclosures on the result page. They wrap whole sections rather
   than a paragraph, so they carry the card's own framing and drop the inner
   section's leading margin. */
.fold{border-top:0;padding:0;margin-top:16px}
.fold>summary{padding:15px 16px;border:1px solid var(--line);border-radius:12px;background:var(--card);display:block}
.fold[open]>summary{border-radius:12px 12px 0 0;border-bottom:0}
.fold>section,.fold>:not(summary){margin-top:0}
.fold[open]>:not(summary){border-top-left-radius:0;border-top-right-radius:0}
.pill.quiet{border-style:dashed;opacity:.85}
/* Step indicator for the two-part intake. */
.steps{display:flex;align-items:center;gap:6px;margin:0 0 14px}
.steps i{width:26px;height:3px;border-radius:2px;background:var(--line)}
.steps i.on{background:var(--teal)}
.steps span{font-size:.7rem;color:#8b7750;margin-left:4px}

/* Element balance: chart beside its own numbers. */
.balance{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:16px 0}
.radar{flex:0 0 156px}
.element-legend{list-style:none;margin:0;padding:0;flex:1;min-width:126px}
.element-legend li{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:.85rem}
.element-legend i{width:9px;height:9px;border-radius:2px;flex:none}
.element-legend b{font-weight:600;min-width:22px}
.element-legend span{color:#8b7750;font-size:.8rem}

.moon{vertical-align:-3px}
.moon-inline{display:inline-flex;align-items:center;gap:4px}

/* The two daily signals. Each states its basis, so neither reads as a score. */
.signals{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}
.signals>div{border:1px solid var(--line);border-radius:12px;padding:13px 14px;background:var(--card)}
.signals b{display:flex;align-items:center;gap:7px;font-size:1.05rem;margin:5px 0 6px}
.signals small{font-weight:400;font-size:.8rem;color:#8b7750}
.signals p{margin:0;font-size:.74rem;color:#8b7750;line-height:1.65}
.swatch{width:14px;height:14px;border-radius:50%;flex:none;border:1px solid #0002}
@media(max-width:420px){.signals{grid-template-columns:1fr}}

/* Compass dial on the choice screen. */
.compass{margin:0 0 22px;text-align:center}
.dial{position:relative;width:250px;height:250px;margin:0 auto}
.dial .tick{position:absolute;transform:translate(-50%,-50%);color:#8b7750;line-height:0}
.dial .tick.now{color:var(--teal)}
.dial-core{position:absolute;inset:24%;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:50%;overflow:hidden;box-shadow:0 2px 14px #0b18202e}
.dial-core img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.dial-core:after{content:'';position:absolute;inset:0;background:radial-gradient(circle,#0b1820b3 38%,#0b182066)}
.dial-core b{position:relative;font-size:.95rem;color:#f4ecd8}
.dial-core small{position:relative;font-size:.72rem;color:#cbbf9e}

/* Traditional imagery is concentrated on the two screens that carry the
   product's meaning — the reading and the compass — rather than spread thin
   across every page, where it starts to read as a template. */
.core{position:relative;background-image:url('/assets/hanji.webp');background-size:cover;background-blend-mode:multiply}
.compass:before{content:'';position:absolute;right:-10px;top:-8px;width:104px;height:104px;background:url('/assets/branchPine.webp') right top/contain no-repeat;opacity:.42;pointer-events:none}
.compass{position:relative}

/* Gender as a two-option segmented control. */
.segment{border:0;padding:0;margin:0 0 6px;display:flex;gap:8px;flex-wrap:wrap}
.segment legend{font-size:.85rem;font-weight:600;margin-bottom:7px;color:var(--teal)}
.segment label{flex:1;min-width:104px;display:flex;align-items:center;justify-content:center;gap:7px;min-height:46px;border:1px solid var(--line);border-radius:11px;background:var(--card);cursor:pointer;font-size:.9rem}
.segment label:has(:checked){border-color:var(--teal);background:#0f3d3612;font-weight:600}
.segment input{accent-color:var(--teal);width:18px;height:18px;flex:none}

/* 만세력 table. Wide by nature, so it scrolls inside its own box. */
.manse-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.manse{width:100%;border-collapse:collapse;font-size:.8rem;white-space:nowrap;table-layout:auto}
.manse th,.manse td{border-bottom:1px solid var(--line);padding:9px 8px;text-align:left;vertical-align:top}
.manse thead th{font-size:.72rem;color:#8b7750;font-weight:600}
.manse tbody th{color:#8b7750;font-weight:600}
.manse b{font-size:1.05rem}
.manse small{display:block;color:#8b7750;font-size:.68rem;font-weight:400}
.manse td span{display:inline-block;margin-right:9px;text-align:center}
.manse em{display:block;font-style:normal;color:var(--teal);font-size:.7rem;margin-top:3px}

/* 대운: ten decades, readable as a strip. */
.daeun{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px}
.daeun li{border:1px solid var(--line);border-radius:10px;padding:9px 8px;text-align:center;background:var(--card)}
.daeun b{display:block;font-size:.72rem;color:#8b7750;font-weight:600}
.daeun .gz{display:block;font-size:1.15rem;margin:3px 0 1px}
.daeun small{display:block;font-size:.72rem;color:#8b7750}
.daeun em{display:block;font-style:normal;font-size:.66rem;color:var(--teal);margin-top:4px}

/* Openings for a first record, so the field is never faced blank. */
.presets{border:0;padding:0;margin:0 0 18px;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.presets legend{font-size:.85rem;font-weight:600;margin-bottom:8px;color:var(--teal)}
.presets button{min-height:52px;border:1px solid var(--line);border-radius:11px;background:var(--card);color:var(--ink);font-size:.85rem;line-height:1.5;padding:8px 10px;cursor:pointer;text-align:center}
.presets button:hover{border-color:var(--teal)}
@media(max-width:360px){.presets{grid-template-columns:1fr}}

/* Unfolded reference sections. Nothing hides any more, so the page has to
   carry its own structure: a clear heading per block and enough air between
   them that the eye can find where one ends. */
.block{margin:34px 0 0;padding-top:26px;border-top:1px solid var(--line);scroll-margin-top:118px}
.block-title{font-size:1.12rem;margin:0 0 4px;letter-spacing:-.2px}
.block>.card{margin-top:14px}
.block>.card>h2{font-size:1rem}

/* Jump bar. Sticky under the header, scrollable when the labels outrun the
   width, so a long page stays traversable from anywhere in it. */
.jump{position:sticky;top:57px;z-index:18;display:flex;gap:7px;overflow-x:auto;margin:18px -16px 0;padding:9px 16px;background:var(--bg);border-bottom:1px solid var(--line);-webkit-overflow-scrolling:touch;scrollbar-width:none}
.jump::-webkit-scrollbar{display:none}
.jump a{flex:none;font-size:.78rem;padding:7px 13px;border:1px solid var(--line);border-radius:20px;background:var(--card);color:var(--teal);text-decoration:none;white-space:nowrap}

/* Supporting rationale, now always visible: present but clearly secondary. */
.basis-open{margin-top:16px;padding:13px 15px;border-left:2px solid var(--line);background:#0f3d360a;border-radius:0 9px 9px 0}
.basis-open h3,.basis-open h4{margin:0 0 7px;font-size:.85rem;color:var(--teal)}
.basis-open p{margin:0 0 7px;font-size:.82rem;line-height:1.75;color:#6f6a5c}
.basis-open p:last-child{margin-bottom:0}

/* 운세 캘린더. The band colours carry the same meaning as the number beside
   them, so the grid is readable at a glance without being read as a verdict. */
.cal-head{display:flex;align-items:center;justify-content:center;gap:14px;margin:16px 0 10px}
.cal-head b{font-size:1rem;min-width:106px;text-align:center}
.cal-head button{font-size:1.25rem;line-height:1;padding:4px 12px;color:var(--teal)}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-dow{text-align:center;font-size:.7rem;color:#8b7750;padding-bottom:4px}
.cal-day{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;aspect-ratio:1;border:1px solid var(--line);border-radius:9px;background:var(--card);padding:0;cursor:pointer}
.cal-day b{font-size:.78rem;font-weight:600}
.cal-day i{font-style:normal;font-size:.66rem;color:#8b7750}
.cal-day.high{background:#4c7a601f;border-color:#4c7a6047}
.cal-day.mid{background:#bb933f14}
.cal-day.today{outline:2px solid var(--teal);outline-offset:-2px}
.cal-day:focus-visible{outline:2px solid #a9863e;outline-offset:2px}
.dayname{margin:2px 0 0;font-size:.88rem;color:#6f6a5c}
.dayname b{color:var(--teal)}

/* The arithmetic behind a day's number, shown in full. */
.daytable{width:100%;border-collapse:collapse;margin:14px 0}
.daytable th{text-align:left;font-weight:400;color:#8b7750;font-size:.82rem;padding:7px 0;border-bottom:1px solid var(--line)}
.daytable td{padding:7px 0;border-bottom:1px solid var(--line);font-size:.86rem}
.daytable td:last-child{text-align:right;font-variant-numeric:tabular-nums}
.daytable .sum th,.daytable .sum td{font-weight:700;color:var(--ink);border-bottom:0;padding-top:10px}

/* 일진 / 택일 탭. */
.tabs{display:flex;gap:6px;margin:16px 0 4px;border-bottom:1px solid var(--line)}
.tab{padding:9px 14px;font-size:.85rem;color:#8b7750;border:0;border-bottom:2px solid transparent;background:none;cursor:pointer}
.tab.on{color:var(--teal);border-bottom-color:var(--teal);font-weight:600}

/* 택일: 용도 선택과 고른 날들. */
.purposes{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0}
.chip{font-size:.78rem;padding:7px 12px;border:1px solid var(--line);border-radius:20px;background:var(--card);color:var(--teal);cursor:pointer}
.chip.on{background:var(--teal);color:#f4ecd8;border-color:var(--teal)}
.pickdays{list-style:none;margin:14px 0 0;padding:0}
.pickdays li{border:1px solid var(--line);border-radius:12px;background:var(--card);padding:13px 15px;margin-bottom:9px}
.pickdays li>div{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}
.pickdays b{font-size:.98rem}
.pickdays span{font-size:.76rem;color:#8b7750}
.pickdays p{margin:7px 0 0;font-size:.82rem;line-height:1.7;color:#6f6a5c}
.pickdays .calc{font-size:.72rem;color:#8b7750;font-variant-numeric:tabular-nums}

/* 기본 답변을 유지한 채 얇은 빛결만 흘려 AI가 다듬는 중임을 표시합니다. */
.message.composing .bubble{position:relative;overflow:hidden}
.message.composing .bubble:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,transparent 30%,#fff9 48%,transparent 66%);transform:translateX(-120%);animation:answer-sheen 2.4s ease-in-out infinite}
.ai-working{display:inline-flex;align-items:center;gap:7px;padding:10px 8px;color:#66766d;font-size:.72rem}
.ai-working>span{display:block;width:34px;height:1px;background:linear-gradient(90deg,#b8c6b9,#55776a,#b8c6b9);background-size:200% 100%;animation:answer-line 1.8s linear infinite}
@keyframes answer-sheen{55%,100%{transform:translateX(120%)}}
@keyframes answer-line{to{background-position:-200% 0}}
@media(prefers-reduced-motion:reduce){.message.composing .bubble:after{display:none}.ai-working>span{animation:none}}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* 확신도 단계. 슬라이더 대신 다섯 개의 표적을 두어 손가락으로 한 번에
   고르게 합니다. 가운데가 가장 작고 양 끝으로 갈수록 커지는 배치라
   어느 쪽으로 기울었는지가 크기로도 읽힙니다. */
.scale{border:0;padding:0;margin:18px 0 4px;min-inline-size:0}
.scale legend{padding:0;font-size:.88rem;color:var(--teal);font-weight:600;margin-bottom:12px}
.scale-row{display:flex;align-items:center;justify-content:space-between}
/* 양 끝 문구는 윗줄로. 점이 가로 폭을 다 쓰게 해야 좁은 화면에서 안 밀립니다. */
.scale-poles{display:flex;justify-content:space-between;font-size:.72rem;color:#8b7750;margin-bottom:7px;padding:0 2px}
.dot{flex:none;display:flex;flex-direction:column;align-items:center;gap:5px;cursor:pointer;min-height:44px;min-width:44px;justify-content:center}
.dot input{position:absolute;opacity:0;width:0;height:0}
.dot i{display:block;border:2px solid var(--line);border-radius:50%;background:var(--card);transition:background .12s,border-color .12s}
.dot.d0 i,.dot.d4 i{width:38px;height:38px}
.dot.d1 i,.dot.d3 i{width:31px;height:31px}
.dot.d2 i{width:25px;height:25px}
.dot.d0 i,.dot.d1 i{border-color:#8b929955}
.dot.d3 i,.dot.d4 i{border-color:#4c7a6055}
.dot span{font-size:0;color:transparent}
.dot input:checked+i{background:var(--teal);border-color:var(--teal);box-shadow:0 0 0 3px #0f3d3620}
.dot.d0 input:checked+i,.dot.d1 input:checked+i{background:#8b9299;border-color:#8b9299;box-shadow:0 0 0 3px #8b929926}
.dot.d2 input:checked+i{background:#bb933f;border-color:#bb933f;box-shadow:0 0 0 3px #bb933f26}
.dot input:focus-visible+i{outline:2px solid #a9863e;outline-offset:3px}
/* 고른 단계의 이름은 표 아래에 한 줄로 나타납니다. */
.dot{position:relative}
.dot input:checked~span{font-size:.7rem;color:var(--teal);position:absolute;top:52px;left:50%;transform:translateX(-50%);white-space:nowrap}
/* 양 끝은 화면 밖으로 나가므로 안쪽으로 붙입니다. left/right 중 하나만
   지정해야 박스가 눌리지 않습니다. */
.dot.d0 input:checked~span{left:0;right:auto;transform:none}
.dot.d4 input:checked~span{left:auto;right:0;transform:none}
@media(max-width:360px){.scale-poles{font-size:.66rem}.dot.d0 i,.dot.d4 i{width:34px;height:34px}}

/* 대운 판독. 읽기 위한 화면이라 여백을 넉넉히 두고, 자간을 벌린 큰 글자와
   작은 본문의 대비로 호흡을 만듭니다. */
.epic-head{display:flex;flex-direction:column;align-items:center;gap:6px;margin:22px 0 18px;text-align:center}
.epic-en{font-size:.66rem;letter-spacing:.22em;color:#8b7750;text-transform:uppercase}
.epic-kr{font-family:var(--font);font-size:1.9rem;letter-spacing:.3em;text-indent:.3em;color:var(--teal);line-height:1.3}
.epic-idx{font-size:.7rem;color:#8b7750;letter-spacing:.04em}
.epic-pull{font-family:var(--font);font-size:1.12rem;line-height:1.95;text-align:center;color:var(--ink);margin:0 0 26px;padding:0 4px}
.epic-ch{border-top:1px solid var(--line);padding:22px 0 4px}
.epic-ch-head{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;margin-bottom:8px}
.epic-ch-head>span:first-child{font-size:.74rem;color:#8b7750;font-variant-numeric:tabular-nums}
.epic-ch-head b{font-family:var(--font);font-size:1.18rem;letter-spacing:.18em;color:var(--teal)}
.epic-pillar{margin:0 0 10px;font-size:.72rem;color:#8b7750;letter-spacing:.06em}
.epic-gate{margin:0 0 12px;font-family:var(--font);font-size:.95rem;color:var(--ink);opacity:.82}
.epic-body{margin:0 0 12px;font-size:.92rem;line-height:1.85}
.epic-essay{margin:0;font-size:.85rem;line-height:1.95;color:#6f6a5c}
.epic-close{border-top:1px solid var(--line);margin:22px 0 14px;padding-top:20px;font-family:var(--font);font-size:.98rem;line-height:1.9;text-align:center;color:var(--teal)}
.block.epic .block-title{margin-bottom:0}

/* 일간 운세 전면 시트. 히어로가 가장자리까지 차야 하므로 이 모달에서만
   패딩을 걷고, 닫기 버튼을 히어로 위로 띄웁니다. 스크롤은 dialog가 이미
   max-height + overflow-y로 처리합니다. */
/* [open]을 반드시 붙입니다. 없으면 display:flex가 브라우저 기본
   dialog:not([open]){display:none}을 덮어써서, 닫힌 모달이 화면을
   계속 가립니다. */
dialog[open]:has(.daysheet){padding:0;max-height:92dvh;overflow:hidden;display:flex;flex-direction:column}
dialog[open]:has(.daysheet) .modal-close{position:absolute;top:10px;right:12px;z-index:2;color:#f4ecd8;background:#0b182055;border-radius:18px;padding:7px 13px;backdrop-filter:blur(3px)}
.daysheet{overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}

.day-hero{position:relative;padding:34px 24px 26px;color:#f4ecd8;background:linear-gradient(160deg,#2f5b52,#16332e)}
.day-hero.high{background:linear-gradient(160deg,#3a6f5e,#17352c)}
.day-hero.low{background:linear-gradient(160deg,#5a5f66,#23282c)}
.day-date{margin:0;font-size:.8rem;opacity:.75}
.day-score{display:block;font-size:3.4rem;line-height:1.1;font-weight:700;margin:2px 0 10px;letter-spacing:-2px}
.day-score small{font-size:1.1rem;font-weight:400;margin-left:3px;letter-spacing:0}
.day-headline{font-family:var(--font);margin:0 0 14px;font-size:1.24rem;line-height:1.6}
.day-gz{margin:0;font-size:.78rem;opacity:.78;display:flex;align-items:center;gap:6px;flex-wrap:wrap}

.day-sec{padding:24px 24px 4px;border-top:1px solid var(--line)}
.day-sec:first-of-type{border-top:0}
.day-sec h3{margin:0 0 14px;font-size:1.05rem}
.day-sec p{margin:0 0 13px;line-height:1.95;font-size:.92rem}
.day-dl{margin:0}
.day-dl dt{font-size:.74rem;color:#8b7750;margin-bottom:4px}
.day-dl dd{margin:0 0 18px}
.day-dl dd b{display:flex;align-items:center;gap:7px;font-size:1.02rem;margin-bottom:5px}
.day-dl dd span{display:block;font-size:.76rem;color:#8b7750;line-height:1.7}
.daysheet .daytable{margin-top:0}
.daysheet .hint{padding-bottom:6px}
.daysheet .text-link{margin-bottom:26px}
.day-sec h4{margin:22px 0 4px;font-size:1rem;line-height:1.6}
.day-sec h4:first-of-type{margin-top:0}
.day-where{margin:0 0 8px!important;font-size:.74rem;color:#8b7750}
.day-foot{margin:18px 0 26px;font-size:.8rem;line-height:1.85;color:#8b7750}

/* 대화 캡처 선택 모드. 말풍선이 그대로 과녁이 되고, 고른 것만 테두리와
   체크로 표시합니다. */
.message.pickable .pick{display:flex;align-items:flex-start;gap:9px;background:none;border:0;padding:0;width:100%;text-align:left;cursor:pointer}
.message.pickable.user .pick{flex-direction:row-reverse}
.message.pickable .bubble{flex:0 1 auto}
.message.pickable .tick{flex:none;width:21px;height:21px;margin-top:9px;border:2px solid var(--line);border-radius:50%;background:var(--card);position:relative}
.message.picked .tick{background:var(--teal);border-color:var(--teal)}
.message.picked .tick:after{content:'';position:absolute;left:6px;top:2px;width:5px;height:10px;border:2px solid #f4ecd8;border-top:0;border-left:0;transform:rotate(45deg)}
.message.picked .bubble{outline:2px solid var(--teal);outline-offset:2px}
.capture-bar{padding:10px 14px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--card)}
.capture-guide{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px}
.capture-guide span{font-size:.85rem;line-height:1.5;color:var(--teal);font-weight:600;flex:1 1 auto;min-width:0}
/* .primary는 전역에서 width:100%·margin:14px 0을 쓰기 때문에 캡처 바에서는
   아예 쓰지 않고, 여기서 버튼 모양을 직접 잡습니다. */
.capture-acts{display:flex;align-items:center;gap:6px;margin-top:4px}
.capture-acts button{flex:none;width:auto;margin:0;white-space:nowrap;min-height:44px;padding:0 15px;border-radius:22px;border:1px solid var(--line);background:#fbf8ee;color:var(--teal);font-size:.85rem}
.capture-acts [data-capture=save]{background:var(--teal);border-color:var(--teal);color:#fff9e9}
.capture-acts [data-capture=cancel]{margin-left:auto;border:0;background:none;padding:0 10px}
.capture-bar button:disabled{opacity:.4;cursor:default}
.capture-guide .plain{flex:none;padding:0 10px;min-height:44px;font-size:.8rem}

/* 모바일 웹 계정 연결 */
.account-card{background:linear-gradient(145deg,#ffffffb8,#f2eee2a8);backdrop-filter:blur(12px) saturate(1.08)}
.account-state{display:flex;flex-direction:column;gap:4px;padding:13px 15px;border:1px solid var(--line);border-radius:14px;background:#fff9}
.account-state b{color:var(--teal)}.account-state span{font-size:.78rem;color:#766f60}
.auth-buttons{display:grid;gap:9px;margin-top:14px}.auth{width:100%;min-height:48px;border-radius:13px;font-weight:650;font-size:.92rem}
.auth.apple{background:#171918;color:#fff;border:1px solid #171918}.auth.google{background:#fff;color:#27312e;border:1px solid #d6d9d7}

/* Moonbook — a midnight cover, luminous paper and five elemental inks. */
:root{--paper:#f6f3eb;--bg:#f6f3eb;--card:#fffef9;--ink:#243f3b;--muted:#69776e;--line:#dce0d5;--teal:#164e47;--gold:#c6a354}
html{scroll-behavior:smooth;scroll-padding-top:155px}
body{background:radial-gradient(ellipse at 0 15%,#deeadf80,transparent 50%),var(--paper)}
header{height:76px;background:#faf8f0ed;border-bottom:1px solid #cbd7ce;box-shadow:0 6px 30px #163e3504}
.brand{letter-spacing:-.04em}.brand img{width:37px;height:37px}
.workspace{padding-top:36px}.workspace:not(.dual){max-width:900px}.dual{gap:36px;max-width:1260px;grid-template-columns:minmax(0,1.25fr) minmax(350px,.8fr)}
h1{letter-spacing:-.06em}p{word-break:keep-all;overflow-wrap:anywhere}.eyebrow,.overline{font-size:.78rem;letter-spacing:.13em}
.section-top{margin-bottom:20px}.section-top h1{font-size:2rem}
.card{border-radius:22px;box-shadow:0 8px 30px #123d3505;padding:28px;border-color:#dce0d5}
.primary,.secondary,.danger{min-height:54px;transition:transform .2s,box-shadow .2s,background .2s}
.primary{background:#184e46;box-shadow:0 7px 18px #164e4719}.primary:hover{background:#226558;box-shadow:0 10px 24px #164e4728;transform:translateY(-2px)}
.primary:active,.secondary:active{transform:translateY(1px)}.secondary:hover{background:#eaf0e7}
input:not([type=checkbox]):not([type=range]):not([type=radio]),select,textarea{border-color:#ccd7cd;border-radius:14px;transition:border-color .2s,box-shadow .2s}
input:focus,select:focus,textarea:focus{border-color:#5b8670;box-shadow:0 0 0 4px #58867112}
.narrow{max-width:590px}.steps{justify-content:center;margin-bottom:26px}.steps i{width:48px;height:4px}.steps span{font-size:.8rem}
.narrow>h1{font-size:2.2rem}.privacy-note{background:#e7ede2;border:1px solid #d9e0d3;border-radius:16px}
nav{left:50%;right:auto;transform:translateX(-50%);bottom:17px;width:min(630px,calc(100% - 32px));border:1px solid #d6dfd1;border-radius:25px;box-shadow:0 12px 45px #113d3520;padding:8px 10px;gap:4px}
nav button{min-height:58px;border-radius:18px;font-size:.8rem;gap:7px;transition:background .2s,transform .2s}
nav button:hover{background:#edf0e5;transform:translateY(-2px)}nav [aria-current]{background:#1b5148;color:#fff6d9}nav [aria-current]:hover{background:#246055}
/* The opening artwork becomes a full-width scene on desktop. */
body[data-page=welcome]{background:#0b1b23}
.welcome{max-width:1440px;width:100%;height:100dvh;min-height:650px;isolation:isolate}
.welcome .landscape{object-position:center 37%;animation:scene-arrives 1s ease-out both}
.welcome:after{background:linear-gradient(90deg,#071a22ed 0%,#071a22b8 30%,#071a2245 60%,#071a2210),linear-gradient(0deg,#071a22b0,transparent 60%)}
.welcome-copy{align-items:flex-start;text-align:left;max-width:650px;min-height:650px;justify-content:center;padding:80px 60px 70px 8vw;animation:page-arrives .65s ease-out both}
.welcome .mark{width:53px;height:53px;margin-bottom:34px}.welcome h1{font-size:clamp(2.8rem,4.6vw,4.6rem);line-height:1.35;margin-bottom:24px}
.welcome p{font-size:1rem;color:#d5dcce;margin-bottom:36px}.welcome .primary{max-width:350px;min-height:61px}.welcome-link{font-size:.9rem}.welcome small{color:#b6bfaa;font-size:.75rem}
.vertical{right:6%;top:12%;color:#e5d9b6;letter-spacing:6px}
/* A personal seal gives the result a recognizable centerpiece. */
.core{padding:35px 31px 30px;border-radius:24px;background:linear-gradient(115deg,#163e3beb,#102d36e8),url('/assets/splash.webp') center 65%/cover;box-shadow:0 15px 35px #163e3520;min-height:260px}
.core:after{display:none}.reading-seal{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:24px}
.reading-seal b{font:1.65rem 'Nanum Myeongjo',serif;border:1px solid #d6b86c90;color:#f0d696;border-radius:14px 4px 14px 4px;padding:8px 12px;background:#d9b36b12}
.reading-seal span{font-size:.84rem;color:#eee3c6}.reading-seal small{font-size:.78rem;color:#a9c6bb;margin-left:auto}
.core h2{font-size:1.5rem;line-height:1.8;margin-bottom:18px}.core p{color:#c5d6ca}.core .pill{margin:6px 5px 0 0;border-color:#b5ccb32f}
.element-ribbon{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin:0 0 27px}
.element-ribbon a{display:flex;flex-direction:column;align-items:center;gap:7px;background:var(--card);padding:15px 5px 12px;text-decoration:none;border:1px solid var(--line);border-radius:16px;transition:transform .2s,box-shadow .2s}
.element-ribbon b{color:var(--element);font:1.6rem 'Nanum Myeongjo',serif}.element-ribbon span{font-size:.8rem;color:var(--muted)}
.element-ribbon a:hover{transform:translateY(-4px);box-shadow:0 7px 16px #173c3410;border-color:var(--element)}
.two-cards{gap:15px}.two-cards .card:first-child{background:#e8f0e7;border-color:#d1dfd1}.two-cards .card:last-child{background:#f4ebdd;border-color:#e8dac5}.two-cards p{font-size:.95rem;line-height:1.85}.two-cards h3{font-size:1.1rem}
.action-card{position:relative;border:1px solid #e0cf9f;border-left:4px solid #c09d4c;border-radius:5px 21px 21px 5px;background:#f5ecd2;padding:26px 29px;margin-top:24px}
.action-card .text-link{font-weight:600}.jump{top:76px;background:#f6f3ebf5;backdrop-filter:blur(15px);margin:10px 0 0;padding:13px 0;gap:8px;border-color:#d9dfd3}
.jump a{font-size:.85rem;padding:9px 15px}.jump a:hover{background:#dce9dd}.block{scroll-margin-top:155px;margin-top:38px}.block-title{font-size:1.3rem}
.topic-reading{position:relative;overflow:hidden;padding-top:112px}.topic-reading:before{content:'';position:absolute;inset:0 0 auto;height:87px;background:var(--topic-art) center 45%/cover;border-bottom:1px solid #dce0d5}.topic-reading>.pill{background:#e6edde;border:0;color:#3b6554}
.basis-open{background:#eef1e7;border-color:#abc3aa;padding:17px 19px}.basis-open p{font-size:.88rem}.pillars>div{border-top:3px solid #b8c8b7;padding:17px 7px;border-radius:12px;background:#f5f4ea}.pillars b{font-size:2rem}.balance{gap:25px}.radar{flex-basis:185px}.radar svg{width:100%;height:auto}.element-legend li{padding:7px 0}
/* Select a story: illustrated cards, with a clear selected state. */
.topic-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.topic-choice{min-width:0;margin:0;display:flex;flex-direction:column-reverse;border-radius:19px;overflow:hidden;border:1px solid #d8dfd2;background:var(--card);transition:transform .2s,box-shadow .2s}
.topic-choice:hover{transform:translateY(-3px)}.topic-choice>span:not(.topic-art){border:0;border-radius:0;text-align:left;padding:10px 13px 13px;background:transparent;font-size:1rem}.topic-choice:has(:checked){border-color:#23594e;box-shadow:0 0 0 2px #23594e}.topic-choice input:checked+span{background:#e5eee1}.topic-choice input:checked+span:after{content:'✓';float:right;color:#23594e}
.topic-choice .topic-art{padding:0;border:0;border-radius:0;display:block;height:118px;position:relative;overflow:hidden}.topic-art img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.topic-choice:hover img{transform:scale(1.05)}.topic-art small{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,#112f31c9);color:white;padding:22px 12px 10px;font-size:.75rem}
/* Today is a landscape postcard; time and colour are paired beneath it. */
.daily-image{position:relative;min-height:330px;border:0;border-radius:26px;box-shadow:0 13px 35px #14372e18;isolation:isolate}.daily-image img{position:absolute;inset:0;height:100%;width:100%;object-fit:cover;z-index:-2}.daily-image:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#102f34f5,#102f3499 40%,#102f3410);z-index:-1}.daily-image>div{padding:145px 32px 30px;color:#fffbeb}.daily-image h2{font-size:1.9rem;line-height:1.5}.daily-image span{color:#e2cca0}.daily-image p{color:#e0e9dc}
.signals{gap:14px}.signals>div{padding:22px;border-radius:20px}.signals>div:first-child{background:#e9edf4;border-color:#d2dce9}.signals>div:last-child{background:#e9efe0;border-color:#d6e1c9}.signals p{font-size:.83rem;color:#63725f}.signals .swatch{width:25px;height:25px;border:4px solid #fff9;box-shadow:0 0 0 1px #bacbb7}
.cal-grid{gap:7px}.cal-day{border-radius:13px;min-height:52px;transition:transform .2s,background .2s}.cal-day:hover{transform:translateY(-2px);background:#dde9dc}.cal-day b{font-size:.9rem}.cal-day i{font-size:.75rem}.cal-day.today{background:#1b5148;color:#fff8df}.cal-day.today i{color:#e5d7b6}
.chip{font-size:.85rem;padding:10px 15px}.pickdays li{border-radius:18px;padding:19px}.pickdays p{font-size:.9rem}
.compass{background:radial-gradient(circle,#e7ebdd,transparent 68%);border-bottom:1px solid var(--line);padding-bottom:18px}.dial{width:270px;height:270px}.dial-core{box-shadow:0 0 0 8px #c8b37217,0 0 0 9px #bdab703a,0 8px 30px #173f3520}
.presets{gap:12px}.presets button{text-align:left;padding:16px 17px;border-radius:17px;font-size:.94rem;min-height:76px;transition:background .2s,transform .2s}.presets button:hover{background:#e6edde;transform:translateY(-2px)}.preset-number{display:block;font-size:.72rem;color:#a18343;letter-spacing:.1em;margin-bottom:7px}
.journal-summary{background:#193f3b;color:#f8f2dc;border:0}.journal-summary .eyebrow,.journal-summary .stats span,.journal-summary .hint{color:#cad8bd}.journal-summary .stats b{color:#e3c883}.calendar button.has-record{background:#2b6453;color:#fff7df}.calendar button.has-record small{color:#ebd8a7}.record-row.card{border-left:4px solid #a9bf9c;border-radius:6px 19px 19px 6px;transition:transform .2s}.record-row.card:hover{transform:translateX(3px)}.empty{background:#ecf0e5;border:1px dashed #b8c9ae;padding:40px 25px}
.chat-panel{border-radius:24px;border-color:#ced9cc;box-shadow:0 10px 40px #143b2f0b}.mentor{padding:23px 20px}.mentor img{width:49px;height:49px}.chat-note{background:#e8ede1;color:#586a5b}.message .bubble{border-radius:4px 19px 19px 19px;border-color:#dce1d4}.message.user .bubble{background:#20564b;border-color:#20564b;color:#fffae9;border-radius:19px 4px 19px 19px}.quick-topics button:hover{background:#e0eada}.messages{background:#f4f3e9}.send{min-width:57px}dialog{border-radius:25px;padding:29px}dialog::backdrop{background:#0c252bb0}
.save-status{bottom:105px}.manse{font-size:.87rem}.manse th,.manse td{padding:12px 9px}.manse small{font-size:.75rem}.daeun li{padding:15px 7px;border-radius:14px}.daeun .gz{font-size:1.5rem}.daeun em{font-size:.75rem}
@keyframes scene-arrives{from{opacity:.5;transform:scale(1.035)}to{opacity:1;transform:scale(1)}}
@keyframes page-arrives{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
body:not([data-page=chat]) main{animation:page-arrives .32s ease-out both}
@media(min-width:851px){.dual aside{top:101px;height:calc(100dvh - 205px)}}
@media(max-width:850px){header{height:65px;padding:0 19px}.workspace,.workspace:not(.dual){padding:25px 20px 130px;max-width:640px}.dual{display:block}.narrow>h1{font-size:1.9rem}.section-top h1{font-size:1.7rem}.jump{top:65px}.core{padding:25px 23px}.core h2{font-size:1.3rem}.reading-seal{gap:9px;margin-bottom:19px}.reading-seal small{font-size:.75rem}.element-ribbon{gap:7px}.element-ribbon a{padding:12px 3px}.two-cards p{font-size:.91rem}.card{padding:23px 20px}.topic-reading{padding-top:110px}.daily-image{min-height:310px}.daily-image>div{padding:130px 24px 25px}.daily-image h2{font-size:1.7rem}.signals>div{padding:19px}.chat-panel{border-radius:0}.dual aside .mentor{padding:17px}.topic-grid{gap:10px}.topic-choice .topic-art{height:102px}nav{bottom:calc(8px + env(safe-area-inset-bottom));width:calc(100% - 22px);border-radius:22px;padding:7px}nav button{font-size:.75rem;min-height:54px}.welcome{max-width:none;min-height:620px}.welcome-copy{max-width:none;min-height:620px;padding:0 28px 28px;justify-content:flex-end;align-items:center;text-align:center}.welcome:after{background:linear-gradient(0deg,#081a23f5,#081a2360 55%,#081a2310)}.welcome .landscape{object-position:center top}.welcome h1{font-size:2.55rem}.welcome .mark{width:49px;height:49px;margin-bottom:20px}.welcome p{margin-bottom:24px;font-size:.92rem}.welcome-link{margin:4px 0}.welcome .primary{max-width:400px}.vertical{right:8%;top:7%}body[data-page=chat] .dual{height:calc(100dvh - 155px - env(safe-area-inset-bottom))}}
@media(max-width:420px){.signals{grid-template-columns:1fr}.reading-seal small{margin-left:0}.two-cards{grid-template-columns:1fr;gap:0}.two-cards .card{padding:20px}.two-cards h3{margin:6px 0}.topic-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.element-ribbon span{font-size:.75rem}.section-top .plain{font-size:.8rem}.daily-image h2{font-size:1.5rem}.welcome h1{font-size:2.3rem}.welcome p{font-size:.86rem}}
@media(max-height:700px) and (max-width:850px){.welcome,.welcome-copy{min-height:570px}.welcome-copy{padding-bottom:17px}.welcome .mark{width:38px;height:38px;margin-bottom:13px}.welcome h1{font-size:2rem;margin-bottom:14px}.welcome p{margin-bottom:17px}.welcome .primary{min-height:53px}.welcome small{margin:0}.welcome-link{min-height:35px}}
/* Keep the moonlit cover; ink is an accent inside the book, not a new theme. */
body:not([data-page=welcome]){background:#f6f4ee;isolation:isolate}
body:not([data-page=welcome]):before{content:'';position:fixed;inset:-4%;z-index:-3;pointer-events:none;background:url('/assets/ink-waterfall.png') right center/auto 125vh no-repeat,url('/assets/scenery.webp') left bottom/70vw auto no-repeat;opacity:.64;mask-image:linear-gradient(90deg,#000 0%,#0008 42%,#000 90%)}
body:not([data-page=welcome]):after{content:'';position:fixed;inset:-8%;z-index:-2;pointer-events:none;background:radial-gradient(ellipse at 30% 55%,#f6f4eef5 0%,#f6f4ee99 32%,transparent 64%),linear-gradient(115deg,transparent 12%,#f6f4eedd 38%,transparent 66%);animation:quiet-mist 6s ease-in-out -2s infinite alternate}
.ink-branches{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;opacity:.55}
.ink-branches:before,.ink-branches:after{content:'';position:absolute;background-position:center;background-size:contain;background-repeat:no-repeat}
.ink-branches:before{left:-35px;top:60px;width:270px;height:310px;background-image:url('/assets/branchPlum.webp');transform-origin:8% 20%;animation:plum-sway 5.5s ease-in-out -1.5s infinite}
.ink-branches:after{right:-20px;bottom:35px;width:300px;height:330px;background-image:url('/assets/branchPine.webp');transform-origin:95% 85%;animation:pine-sway 7.5s ease-in-out -3s infinite}
.motion-toggle{position:fixed;left:16px;bottom:20px;z-index:31;min-height:44px;padding:8px 13px;border:1px solid #7e978377;border-radius:22px;background:#fffdf4f0;color:#34554c;font-size:.8125rem;box-shadow:0 3px 16px #193d3510}
.motion-toggle:hover{background:#edf2e9}
body.motion-paused:before,body.motion-paused:after,body.motion-paused .ink-branches:before,body.motion-paused .ink-branches:after{animation-play-state:paused!important}
body.motion-paused main{animation:none!important}
.section-top{background:#f6f4eedb;border-radius:12px;padding:16px}
.element-ribbon{background:var(--surface)}
header{background:#faf8f2ed;border-bottom-color:#dcded4;box-shadow:none}
.workspace{position:relative}
.narrow{padding:36px 30px;background:linear-gradient(#fffdf7eb,#fffdf7fa),url('/assets/branchPlum.webp') right -20px top 8px/145px auto no-repeat;border:1px solid #e2e0d6;border-radius:16px}
.card{background:#fffdf9f5;border-color:#dedfd6;border-radius:16px;box-shadow:none}
.core{border-radius:16px;box-shadow:0 8px 25px #163e3510;background:linear-gradient(110deg,#163e3bf2,#102d36df),url('/assets/splash.webp') center 65%/cover}
.reading-seal b{border-radius:5px;background:transparent}
.core h2{font-weight:400;line-height:1.9;letter-spacing:-.025em}
.reading-seal{padding-bottom:18px;border-bottom:1px solid #d6c29326}
.reading-seal span{font-size:.875rem}.reading-seal small{color:#becdc3}
.two-cards .card:first-child{background:#edf1e9;border-color:#dce3d7}
.two-cards .card:last-child{background:#f6f0e5;border-color:#e8dfcf}
.action-card{border:0;border-left:2px solid #b39a60;background:#f2eddf;border-radius:0 12px 12px 0}
.element-ribbon{gap:0;padding:10px 0;margin-bottom:28px;border-bottom:1px solid #d9ddd3}
.element-ribbon a{border:0;border-radius:0;background:transparent;box-shadow:none;padding:9px 4px;gap:6px}
.element-ribbon a+a{border-left:1px solid #dde0d7}
.element-ribbon a:hover{background:#edf0e7;box-shadow:none}
.element-ribbon b{font-size:1.45rem}.element-ribbon span{font-size:.8125rem}
.topic-choice{border-radius:12px}.topic-choice:has(:checked){box-shadow:0 0 0 1px #23594e}
.topic-choice:hover,.element-ribbon a:hover,.presets button:hover,nav button:hover{transform:none}
.topic-art img{filter:saturate(.8);transition:transform .5s ease}
.topic-choice:hover img{transform:scale(1.025)}
.topic-reading{padding-top:28px}
.topic-reading:before{display:none}
.topic-reading:first-of-type{padding-top:100px}
.topic-reading:first-of-type:before{display:block;height:76px;mask-image:linear-gradient(#000 15%,transparent);opacity:.7;border:0}
.topic-reading h3{font-size:1.2rem;letter-spacing:-.025em}
.topic-reading p{line-height:1.95}
.basis-open{background:transparent;border-left:1px solid #bac8bb;padding:4px 0 4px 17px;margin-top:24px}
.basis-open h3,.basis-open h4{font-family:inherit;font-size:.875rem;font-weight:600;color:#596b60}
.basis-open p{font-size:.875rem;color:#647367}
.daily-image{border-radius:16px;box-shadow:none}.daily-image img{filter:saturate(.85)}
.signals>div{border-radius:12px}
.signals>div:first-child{background:#eff1f3;border-color:#dce1e5}
.signals>div:last-child{background:#eef1e8;border-color:#dfe4d7}
.compass{background:transparent}.compass:before{opacity:.16}
.presets button{border-radius:10px;background:#fffdf7;min-height:62px;line-height:1.65}
.journal-summary{background:#193f3b;color:#f8f2dc}
.chat-panel{border-radius:16px;box-shadow:none}
.messages{background:linear-gradient(#f8f6f0f5,#f8f6f0ee),url('/assets/ink-waterfall.png') right bottom/cover}
.message .bubble{background:#fffdf8}.message.user .bubble{background:#20564b}
.chat-note{background:#edf0e7}
.message .bubble{border-radius:4px 14px 14px 14px}.message.user .bubble{border-radius:14px 4px 14px 14px}
.section-top{padding-bottom:12px;margin-bottom:24px}
.section-top h1{letter-spacing:-.035em;line-height:1.5}
.block-title{font-size:1.25rem;letter-spacing:-.025em;padding:16px 20px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);line-height:1.6;margin-bottom:16px}
.narrow>.eyebrow,.section-top .eyebrow{font-size:.8125rem;letter-spacing:.04em;color:#7d795f}
.narrow>h1{font-size:1.9rem;line-height:1.65;letter-spacing:-.035em}
.narrow>.muted{font-size:.9375rem;line-height:1.8;margin-bottom:28px}
.privacy-note{background:#f0f1ea;border:0;border-radius:8px;color:#677165}
.pillars>div{border-top-width:1px;background:#f8f6ef}
.record-row.card{border-left-width:2px;border-radius:4px 12px 12px 4px}.record-row.card:hover{transform:none}
nav{background:#fffdf6f2;border-color:#dadfd5;box-shadow:0 8px 25px #163e3512;border-radius:20px}
nav button{border-radius:13px}
body:not([data-page=welcome]) .primary{box-shadow:none}
body:not([data-page=welcome]) .primary:hover{transform:none;box-shadow:none}
/* Cover palette and artwork deliberately stay identical to the published cover. */
.welcome .gold{background:linear-gradient(140deg,#f0d99c,#c5a053);color:#3d2b0c}
@keyframes quiet-mist{from{opacity:.35;transform:translate3d(-14%,5%,0) scale(1.05)}to{opacity:.95;transform:translate3d(14%,-5%,0) scale(1.18)}}
@keyframes plum-sway{0%,100%{transform:rotate(-3deg) skewX(-1deg)}40%{transform:rotate(4deg) skewX(2deg)}70%{transform:rotate(1deg) skewX(-.5deg)}}
@keyframes pine-sway{0%,100%{transform:rotate(2deg) skewX(.5deg)}45%{transform:rotate(-3deg) skewX(-1.5deg)}75%{transform:rotate(-.5deg) skewX(.5deg)}}
@keyframes ink-settle{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
body:not([data-page=chat]):not([data-page=welcome]) main{animation:ink-settle .85s cubic-bezier(.2,.65,.3,1) both}
@media(max-width:850px){
 .narrow{padding:28px 22px;background-size:auto,105px auto}.chat-panel{border-radius:0}
 .narrow>h1{font-size:1.65rem}.section-top h1{font-size:1.6rem}
 .topic-reading{padding-top:23px}.topic-reading:first-of-type{padding-top:92px}
 .block-title{font-size:1.15rem}.element-ribbon span{font-size:.8125rem}
 body:not([data-page=welcome]):before{opacity:.48;background-size:auto 112vh,130vw auto}
 body:not([data-page=welcome]):after{opacity:.85;animation-duration:7s}
 .ink-branches{opacity:.4}
 .ink-branches:before{left:-25px;top:65px;width:165px;height:200px}
 .ink-branches:after{right:-20px;bottom:85px;width:195px;height:230px}
 .motion-toggle{left:10px;bottom:calc(91px + env(safe-area-inset-bottom));font-size:.75rem;min-height:44px;padding:7px 11px}
 nav{bottom:calc(8px + env(safe-area-inset-bottom))}
}
/* A separate, quiet sky for conversation; never part of the scrolling log. */
.chat-stage{position:relative;isolation:isolate;display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;background:#f5f7f4}
.chat-stage:before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(#f5f7f4b8,#f5f7f485),url('/assets/chat-mountains.png') right bottom/auto 190% no-repeat;opacity:.7}
.chat-stage .messages{position:relative;z-index:1;background:transparent;padding-top:32px;padding-bottom:32px}
.chat-stage .bubble{background:#fffdf9;box-shadow:0 3px 15px #26473808}
.chat-stage .message.user .bubble{background:#20564b}
.chat-stage .message time{background:#f5f7f4e8;border-radius:4px;padding:2px 5px}
.chat-sky{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}
/* Three clipped layers use the same original bitmap. No replacement bird artwork. */
.chat-bird{position:absolute;left:18%;top:22%;width:120px;opacity:.5;animation:crane-passage 28s linear -8s infinite}
.crane-rig{display:block;position:relative;aspect-ratio:3/2;animation:crane-lift 2.8s ease-in-out infinite}
.chat-bird .crane-part{position:absolute;inset:0;display:block;width:100%;height:100%;transform-origin:60% 64%}
.crane-body{clip-path:polygon(0 100%,0 88%,24% 70%,38% 65%,48% 55%,57% 60%,68% 65%,80% 56%,87% 50%,100% 52%,100% 68%,75% 79%,52% 87%,28% 88%)}
.crane-far-wing{clip-path:polygon(50% 46%,56% 33%,64% 16%,71% 8%,77% 13%,76% 40%,68% 64%,61% 67%);animation:crane-far-beat 2.8s cubic-bezier(.4,0,.25,1) infinite}
.crane-near-wing{clip-path:polygon(10% 0,31% 0,40% 22%,48% 40%,57% 57%,64% 65%,61% 73%,49% 73%,37% 69%,22% 73%,28% 58%,34% 48%,22% 34%,13% 16%);animation:crane-near-beat 2.8s cubic-bezier(.4,0,.25,1) infinite}
.chat-bird-2{left:52%;top:58%;width:78px;opacity:.32;animation:crane-passage-low 37s linear -25s infinite}
.chat-bird-2 .crane-rig,.chat-bird-2 .crane-far-wing,.chat-bird-2 .crane-near-wing{animation-delay:-1.1s}
@keyframes crane-near-beat{0%,30%,60%,100%{transform:rotate(-3deg) scaleY(1)}10%,40%{transform:rotate(-17deg) scaleY(-.65)}21%,51%{transform:rotate(7deg) scaleY(.5)}70%,90%{transform:rotate(-8deg) scaleY(.72)}}
@keyframes crane-far-beat{0%,28%,58%,100%{transform:rotate(2deg) scaleY(1)}12%,42%{transform:rotate(12deg) scaleY(-.5)}23%,53%{transform:rotate(-4deg) scaleY(.55)}70%,90%{transform:rotate(3deg) scaleY(.76)}}
@keyframes crane-lift{0%,30%,60%,100%{transform:translateY(1px) rotate(-1deg)}13%,43%{transform:translateY(-3px) rotate(1deg)}23%,53%{transform:translateY(-1px)}76%{transform:translateY(-2px) rotate(-2deg)}}
@keyframes crane-passage{0%{left:-32%;top:32%;opacity:0}12%,82%{opacity:.5}45%{top:18%}100%{left:115%;top:24%;opacity:0}}
@keyframes crane-passage-low{0%{left:-28%;top:68%;opacity:0}12%,84%{opacity:.32}55%{top:49%}100%{left:115%;top:54%;opacity:0}}
body.motion-paused .chat-bird,body.motion-paused .crane-rig,body.motion-paused .crane-part{animation-play-state:paused!important}
@media(max-width:850px){.chat-bird{width:108px}.chat-bird-2{width:70px}}
/* Consolidated controls and a quieter conversation surface. */
.header-controls{display:flex;align-items:center;gap:12px;min-width:0}
.header-controls .save-status{position:static;inset:auto;transform:none;max-width:160px;white-space:normal;font-size:.75rem;box-shadow:none;background:transparent;border:0;padding:6px;color:#657469}
.header-controls .save-status[data-state=error]{color:#9d4d3f;text-decoration:underline}
.display-menu{position:relative;margin:0;padding:0;border:0}
.display-menu>summary{padding:10px 13px;min-height:44px;font-size:.875rem;font-weight:400;list-style:none;border-radius:10px}
.display-menu>summary::-webkit-details-marker{display:none}
.display-menu[open]>summary{background:#e9eee5}
.display-menu-items{position:absolute;right:0;top:calc(100% + 8px);width:210px;padding:8px;background:#fffdf7;border:1px solid #dbe1d4;border-radius:12px;box-shadow:0 10px 30px #203b351a}
.display-menu-items .motion-toggle,.display-menu-items .plain{position:static;inset:auto;display:block;width:100%;text-align:left;min-height:44px;margin:0;padding:12px;font-size:.875rem;background:transparent;border:0;border-radius:7px;box-shadow:none;color:#34554c}
.display-menu-items button:hover{background:#edf1e8}
.chat-panel .mentor{padding:16px 18px;gap:12px;background:#193f3b;min-height:82px}
.chat-panel .mentor img{width:42px;height:42px;flex:none}
.chat-panel .mentor>div{min-width:0;flex:1}.chat-panel .mentor h2{font-size:1.12rem;margin:0 0 5px}
.chat-panel .mentor span{font-size:.75rem;color:#cedbd2}.chat-panel .mentor .plain{font-size:.8125rem;white-space:nowrap;min-height:44px}
.chat-guidance{flex:none;margin:0;padding:0;border:0;border-bottom:1px solid #dfe5db;background:#f5f6ef}
.chat-guidance>summary{padding:10px 16px;font-size:.75rem;line-height:1.6;color:#627064;font-weight:400}
.chat-guidance .chat-note{padding:0 16px 13px;background:transparent;font-size:.8125rem;line-height:1.8}
.chat-stage .messages{padding:30px 20px 24px;scroll-padding-bottom:24px}
.chat-stage .message{max-width:92%;margin-bottom:28px}
.chat-stage .bubble{padding:17px 18px;font-size:1rem;line-height:1.9;box-shadow:none;border-color:#dce2d8}
.chat-stage .message.user{max-width:85%}.chat-stage .message.user .bubble{padding:13px 17px}
.chat-stage .answer-tools{margin:3px 0 0;gap:1px;flex-wrap:wrap}
.chat-stage .answer-tools button{min-height:44px;padding:13px 9px;border:0;background:none;font-size:.75rem;color:var(--teal)}
.chat-stage .message time{font-size:.6875rem;color:#3f4a43;background:transparent;padding:0}
.chat-panel .quick-topics{padding:9px 14px 4px;border-top:1px solid #dce3d8;background:#fbfcf8;gap:7px}
.chat-panel .quick-topics button{min-height:36px;font-size:.8125rem;padding:7px 12px;border-color:#dce4d6;background:transparent}
.chat-panel #chat-form{padding:8px 12px calc(8px + env(safe-area-inset-bottom));gap:8px;align-items:flex-end;background:#fbfcf8;border:0}
.chat-panel #chat-input{background:#fff;border:1px solid #d5dfd0;border-radius:22px;min-height:46px;max-height:132px;padding:12px 16px;line-height:1.5;margin:0;overflow-y:auto}
.chat-panel .send{min-width:54px;min-height:46px;border-radius:23px;font-size:.8125rem;padding:0 12px;flex:none}
@media(max-width:850px){.header-controls{gap:3px}.header-controls .save-status{max-width:100px;font-size:.6875rem;padding:4px}.chat-panel .mentor{padding:13px 16px;min-height:76px}.chat-stage .messages{padding-inline:16px}.chat-stage .bubble{padding:15px 16px}.chat-panel #chat-form{padding-bottom:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.display-menu-items .motion-toggle{display:none}}

/* Shared design tokens: one vocabulary for the book surfaces and controls. */
:root{
 --surface:#fffdf9;--surface-muted:#f0f1ea;
 --radius-sm:8px;--radius-md:12px;--radius-lg:16px;
 --control-height:52px;
 --space-1:8px;--space-2:12px;--space-3:16px;--space-4:24px;
 --shadow-soft:0 8px 25px #163e3512;
}
.card,.narrow,.core,.chat-panel,.daily-image{border-radius:var(--radius-lg)}
input:not([type=checkbox]):not([type=range]):not([type=radio]),select,textarea,.topic-choice,.signals>div{border-radius:var(--radius-md)}
.privacy-note{border-radius:var(--radius-sm);background:var(--surface-muted)}
.primary,.secondary,.danger{min-height:var(--control-height)}
nav{box-shadow:var(--shadow-soft)}

/* Birth form: less vertical drift while preserving 44px+ touch targets. */
#birth-form>label,#birth-form>.fields label{margin-top:var(--space-3);margin-bottom:var(--space-1)}
#birth-form input:not([type=checkbox]):not([type=radio]),#birth-form select{min-height:48px;padding-block:12px}
#birth-form .hint{margin-block:4px var(--space-2)}
#birth-form .check{margin-block:var(--space-1)}
#birth-form .segment{margin-block:var(--space-3) var(--space-1)}
#birth-form details{margin-top:var(--space-2);padding-block:var(--space-2)}
#birth-form .privacy-note{margin:var(--space-3) 0 var(--space-2);padding:12px 14px}

/* Recovery and transparent calculation wording stay visible without a modal. */
.save-error{position:sticky;top:76px;z-index:22;max-width:900px;margin:0 auto;padding:12px 20px;background:#fff6e8;border:1px solid #d8b99b;border-radius:0 0 12px 12px;color:#624638;box-shadow:0 8px 20px #35281916}
.save-error p{margin:0 0 8px;line-height:1.55}.save-error>div{display:flex;gap:8px;flex-wrap:wrap}
.save-error button,.ai-recovery button{min-height:42px;padding:8px 14px;border:1px solid #7b967c;border-radius:9px;background:#fffdf7;color:#204e40;font-weight:600}
body[data-page=welcome] .save-error{position:fixed;top:12px;left:12px;right:12px;z-index:30}
.ai-recovery{margin:7px 0 0;padding:10px 12px;border-left:3px solid #8eaa93;background:#edf2e9;color:#405c49;font-size:.82rem;line-height:1.55}
.ai-recovery p{margin:0 0 7px}.ai-recovery button{font-size:.82rem}
.score-note{padding:10px 13px;background:#f0f3eb;border-left:3px solid #8aaa8e;color:#435a49!important;line-height:1.65}
.cal-day.high,.cal-day.mid,.cal-day.low{background:#fffdf8;border-color:#dce0d5}
.cal-day.today{background:#1b5148;color:#fff8df;border-color:#1b5148}.cal-day.today i{color:#e5d7b6}
.day-hero.high,.day-hero.low{background:linear-gradient(160deg,#2f5b52,#16332e)}
.day-score{font-size:2.5rem}.day-score small{display:block;margin:5px 0 0;font-size:.75rem;letter-spacing:0;font-weight:500}

/* Result hierarchy: all content remains visible, separated into readable layers. */
.result-layer-title{margin:46px 0 8px;padding:28px 4px 18px;border-top:1px solid #c9d1c5}
.result-layer-title span{display:block;margin-bottom:8px;color:#8b7750;font-size:.75rem;letter-spacing:.12em}
.result-layer-title h2{margin:0 0 6px;font-size:1.45rem}.result-layer-title p{margin:0;color:var(--muted);font-size:.875rem}
.result-technical{margin-top:30px}.result-technical+.result-technical{margin-top:38px}

/* Result opening: identity, interpretation and one action read as one chapter. */
.result-heading{margin-bottom:12px}.result-heading h1{margin-bottom:0}
.core-highlights{display:grid;grid-template-columns:1fr 1.12fr;margin:22px -6px 17px;border-top:1px solid #f7f0d328;border-bottom:1px solid #f7f0d328}
.core-highlights>div{padding:16px 14px}.core-highlights>div+div{border-left:1px solid #f7f0d328}
.core-highlights span{display:block;margin-bottom:7px;color:#d8c998;font-size:.72rem;letter-spacing:.07em}
.core-highlights b{display:block;color:#fffaf0;font-size:.96rem;line-height:1.65;word-break:keep-all}
.core-highlights .text-link{min-height:38px;margin-top:7px;padding:6px 0;border-color:#d9c98c;color:#f4e8bf;font-size:.78rem}
.core-meta{display:flex;flex-wrap:wrap;gap:6px}.core-meta .pill{margin:0}
.reflection-card{padding:19px 22px;margin-bottom:0;background:#fffdf9f5}
.reflection-card .eyebrow{margin-bottom:5px}.reflection-card h3{margin:3px 0 5px}.reflection-card p{margin:4px 0;font-size:.875rem;line-height:1.7}
.reflection-card .strength-context{padding-top:9px;border-top:1px solid var(--line);color:var(--muted)}
.jump a.active,.jump a[aria-current=location]{border-color:#315f52;background:#315f52;color:#fffaf0;font-weight:700}

/* AI answers already arrive in these three sections; typography exposes them. */
.chat-answer-part{margin:0;padding:0}.chat-answer-part+.chat-answer-part{margin-top:15px;padding-top:14px;border-top:1px solid #dde3d9}
.chat-answer-part strong{display:block;margin-bottom:5px;color:#315b50;font-size:.76rem;line-height:1.5;letter-spacing:.06em}
.chat-answer-part p{margin:0;font-size:inherit;line-height:inherit;white-space:normal}
.chat-answer-part.part-오늘-할-일{padding-left:12px;border-left:3px solid #b69b5d}
.chat-answer-part.part-오늘-할-일 strong{color:#856f39}
.chat-stage .response-source{margin-right:5px;padding:3px 7px;border:1px solid #d6ded3;border-radius:10px;background:#f5f7f1;color:#53665b;font-size:.66rem;line-height:1.2}

@media(max-width:850px){
 body[data-page=birth] .workspace{padding-bottom:32px}
 #birth-form>.primary{position:sticky;bottom:calc(8px + env(safe-area-inset-bottom));z-index:12;margin:var(--space-3) 0 0;box-shadow:0 -12px 22px 9px #f6f4eef2,0 9px 28px #173d3538}
 .result-layer-title{margin-top:38px;padding-top:24px}.result-layer-title h2{font-size:1.3rem}
 .result-technical{margin-top:26px}.result-technical+.result-technical{margin-top:32px}
 .result-heading{padding:10px 12px;margin-bottom:10px}.result-heading .eyebrow{margin-bottom:4px}.result-heading h1{font-size:1.35rem;line-height:1.4}
 .core{padding:20px 18px}.core .reading-seal{margin-bottom:12px}.core h2{margin-bottom:8px}
 .core>p{margin:5px 0 9px;font-size:.81rem}
 .core-highlights{grid-template-columns:1fr;margin:13px 0 12px}
 .core-highlights>div{padding:11px 4px}.core-highlights>div+div{border-left:0;border-top:1px solid #f7f0d328}
 .core-highlights b{font-size:.9rem;line-height:1.55}.core-highlights .text-link{margin-top:4px}
 .core-meta{gap:4px}.core-meta .pill{font-size:.68rem;padding:4px 7px}
 .reflection-card{padding:16px 17px}.reflection-card h3{font-size:.98rem}.reflection-card p{line-height:1.65}
}
@media(max-width:850px){
 .save-error{top:65px;margin:0 10px;padding:12px 14px}
 .narrow{background:#fffefb;padding:25px 19px}
 .narrow .card,.narrow .privacy-note,.topic-reading,.reflection-card{background:#fffefb}
 .core h2{font-size:1.16rem;line-height:1.72;letter-spacing:-.02em;word-break:keep-all}
 .core{min-height:0}.core p{line-height:1.65}
 .narrow .card p,.topic-reading p{line-height:1.75;letter-spacing:-.01em}
 .chat-stage:before{opacity:.35}.chat-stage .bubble{background:#fffefb;border-color:#d4ddd2}
 .chat-stage .bubble,.chat-answer-part p{font-size:1rem;line-height:1.78;letter-spacing:-.012em}
 .chat-answer-part strong{font-size:.78rem}.chat-answer-part+.chat-answer-part{margin-top:13px;padding-top:12px}
 .narrow .eyebrow,.narrow .hint{color:#58685e}
 .dial-core:after{background:#0b1820cc}.dial-core b,.dial-core small{color:#fff8e5}
}
@media(max-width:420px){.narrow{padding:23px 17px}.core{padding:18px 16px}.core h2{font-size:1.08rem;line-height:1.62}.message .bubble{line-height:1.7}.reflection-card{margin-inline:0}}

/* Continuous bottom dock and consistent paper surfaces. */
nav[aria-label="주요 메뉴"]{bottom:0;width:100%;max-width:none;left:0;right:0;transform:none;border-radius:20px 20px 0 0;padding:8px 12px calc(8px + env(safe-area-inset-bottom));background:#fffdf9;border:1px solid var(--line);border-bottom:0;box-shadow:0 -4px 24px #183e3510;gap:6px}
nav[aria-label="주요 메뉴"] button{border-radius:14px;min-height:54px}
.action-card,.record-row.card,.empty,.score-note,.ai-recovery,.basis-open,.element-ribbon{border-radius:var(--radius-lg)}
.action-card{border:1px solid #e1d6bd;background:#f5efe1}
.element-ribbon{padding:10px 8px;border:1px solid var(--line);margin-bottom:18px}
.element-ribbon a{border-radius:10px}
.basis-open{background:var(--surface-muted);padding:16px 18px}
.card,.reflection-card,.section-top{background:var(--surface)}
.result-layer-title{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:22px;margin-bottom:20px}
.jump{border-radius:14px;padding:8px;background:#f6f3eb;border:1px solid var(--line);gap:6px}
.core-highlights h3{font-size:1rem;line-height:1.65;margin:0;color:#fffaf0}
.core-highlights .eyebrow{color:#d8c998}
.epic-toolbar{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:10px 16px;margin-bottom:20px}
.epic-toolbar .block-title{flex:1;background:none;border:0;padding:0;margin:0}
.epic-toolbar button{flex:none;border-radius:10px;background:var(--surface-muted)}
#epic{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:22px}
.epic-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.epic-actions .secondary{width:auto;flex:1}
.epic-ch{border-radius:12px}.epic-pull{border-radius:12px}
@media(max-width:850px){
 nav[aria-label="주요 메뉴"]{padding-inline:8px;gap:3px}
 .block-title{padding:14px 16px;font-size:1.1rem}
 .workspace,.workspace:not(.dual){padding-bottom:calc(100px + env(safe-area-inset-bottom))}
 body[data-page=chat] .dual{height:calc(100dvh - 136px - env(safe-area-inset-bottom));padding:0}
 .chat-panel{border-radius:16px 16px 0 0}
 .result-layer-title{padding:20px 18px}
 #epic{padding:16px}.epic-toolbar{padding:10px 12px;gap:6px}
 .basis-open{padding:14px 16px}
 .topic-reading p,.reflection-card p{font-size:1rem}
}

/* Opaque milk-glass surfaces: scenery stays outside the reading layer. */
:root{
 --glass:linear-gradient(145deg,#fffefc 0%,#fbfaf5 58%,#f5f4ed 100%);
 --glass-line:#ffffff;
 --glass-shadow:inset 0 1px 0 #ffffff,0 8px 22px #183e3512,0 1px 3px #183e350d;
}
.section-top,.block-title,.card,.reflection-card,.result-layer-title,
.element-ribbon,.jump,#epic,.epic-toolbar,.basis-open,.empty,
.action-card,.signals>div,.privacy-note,.score-note,
.chat-stage .message.assistant .bubble,.display-menu-items,
.quick-topics button,.presets button,dialog{
 background:var(--glass);
 border-color:var(--glass-line);
 box-shadow:var(--glass-shadow);
 backdrop-filter:blur(18px) saturate(.85);
 -webkit-backdrop-filter:blur(18px) saturate(.85);
}
.section-top,.block-title,.card,.reflection-card,.result-layer-title,
.element-ribbon,.jump,#epic,.epic-toolbar,.basis-open,.empty,
.action-card,.signals>div{outline:1px solid #d9ded5;outline-offset:-1px}
.section-top{box-shadow:inset 0 1px 0 #fff,0 10px 26px #183e3515}
.block-title{box-shadow:inset 0 1px 0 #fff,0 7px 18px #183e3510}
.jump{background:linear-gradient(145deg,#fffefcf7,#f7f6f0f7)}
nav[aria-label="주요 메뉴"]{
 background:linear-gradient(180deg,#fffefa 0%,#f7f6f0 100%);
 border-color:#fff;
 box-shadow:inset 0 1px 0 #fff,0 -6px 26px #183e3518;
}
 .chat-stage .message.user .bubble{background:#20564b;border-color:#20564b;box-shadow:0 6px 18px #183e3515}
.core,.journal-summary,.day-hero{box-shadow:inset 0 1px 0 #ffffff26,0 10px 28px #183e3520}
@media(max-width:850px){
 .section-top,.block-title,.card,.reflection-card,.result-layer-title,
 .element-ribbon,.jump,#epic,.epic-toolbar,.basis-open,.empty,
 .action-card,.signals>div,.chat-stage .message.assistant .bubble{
  background:var(--glass);
 }
}

/* Five-element painting plate: proportional geometry at every screen width. */
.element-card>h2{margin-bottom:4px}
.element-intro{margin:0 0 20px;color:#778274;font-size:.875rem;letter-spacing:.02em}
.element-wheel{position:relative;flex:0 1 340px;width:min(100%,340px);aspect-ratio:1;margin:0 auto;color:var(--ink)}
.element-paths{position:absolute;inset:0;width:100%;height:100%}
.element-paths circle{fill:none;stroke:#d6ceba;stroke-width:.8}
.element-paths circle+circle{stroke-dasharray:1 5}
.element-paths path{fill:none;stroke:#b7c2b5;stroke-width:.8;stroke-dasharray:3 5;opacity:.6}
.element-node{position:absolute;z-index:2;width:26%;text-align:center;transform:translateX(-50%)}
.element-node.wood{left:50%;top:3%}.element-node.fire{left:82%;top:28%}.element-node.earth{left:70%;top:65%}.element-node.metal{left:30%;top:65%}.element-node.water{left:18%;top:28%}
.element-art{display:grid;place-items:center;width:82%;aspect-ratio:1;margin:0 auto 8px;overflow:hidden;border:3px solid #fffaf0;border-radius:50%;background:#f3edde;box-shadow:0 3px 10px #574b3012,0 0 0 1px #c8bfaa}
.element-art img,.element-art svg{display:block;width:100%;height:100%;object-fit:cover}
.element-art img{transform:scale(1.07)}
.element-node b{display:flex;justify-content:center;align-items:baseline;gap:5px;color:var(--element);font:600 1.1rem/1.25 var(--font)}
.element-node b small{font-size:.75rem;color:#677568}
.element-node.strong .element-art{box-shadow:0 4px 15px #78643e20,0 0 0 2px #baa16a,0 0 0 5px #baa16a15}
.element-node.level-0 .element-art{filter:saturate(.25)}
.element-node.water.level-0 svg{opacity:.35}
.element-node.water svg{padding:8px}
.element-centre{position:absolute;left:50%;top:48%;z-index:3;display:grid;place-items:center;width:17%;aspect-ratio:1;transform:translate(-50%,-50%);padding:6px;border:1px solid #d4c7a5;border-radius:50%;background:#faf5e9;box-shadow:0 4px 12px #574b3012}
.element-centre svg{display:block;width:100%;height:100%}
.balance:has(.element-wheel){gap:24px;flex-wrap:nowrap;align-items:center;margin:0}
.balance:has(.element-wheel) .element-legend{flex:1;min-width:125px}
.balance .element-legend li{display:grid;grid-template-columns:9px 24px 1fr;align-items:center;gap:7px;padding:11px 0;font-size:.9rem}
.balance .element-legend li>i{width:7px;height:7px;border-radius:50%;background:var(--element)}
.balance .element-legend li>span:not(.element-meter){text-align:right;font-size:.8rem;color:#657263;white-space:nowrap}
.balance .element-meter{display:block;grid-column:2 / -1;height:4px;background:#e7e8df;border-radius:4px;overflow:hidden}
.balance .element-meter i{display:block;width:var(--share);height:100%;background:var(--element);border-radius:inherit}
.balance .is-dominant b{color:var(--element)}
.element-caption{margin:20px 0 8px;padding:13px 0;border-top:1px solid #dfdfd3;color:#677568;font-size:.8rem;line-height:1.7}
@media(max-width:600px){
 .balance:has(.element-wheel){display:block}
 .element-wheel{width:min(100%,320px)}
 .balance:has(.element-wheel) .element-legend{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-top:16px}
 .balance .element-legend li{display:flex;flex-direction:column;gap:5px;padding:10px 3px;background:#f5f3eb;border:1px solid #e7e4d9;border-radius:12px;min-width:0}
 .balance .element-legend li>i{display:none}
 .balance .element-legend li>span:not(.element-meter){font-size:.7rem;letter-spacing:-.025em;text-align:center}
 .balance .element-meter{width:80%;margin-top:3px}
 .element-caption{margin-top:16px;font-size:.78rem}
}
@media(max-width:350px){
 .balance:has(.element-wheel) .element-legend{gap:3px}
 .balance .element-legend li>span:not(.element-meter){white-space:normal}
 .element-node b{font-size:1rem}
}
/* Reference artwork above live values; printed sample percentages stay cropped out. */
.balance:has(.element-plate){display:block}
.element-wheel.element-plate{width:100%;max-width:560px;aspect-ratio:1024/940;overflow:hidden;border-radius:18px}
.element-plate>img{display:block;width:100%;height:auto;max-width:none}
.balance:has(.element-plate) .element-legend{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:14px 0 0;padding:0}
.balance:has(.element-plate) .element-legend li{display:flex;flex-direction:column;gap:10px;min-width:0;padding:16px 4px;background:linear-gradient(135deg,#fffdf795,#e9e7dd70);border:1px solid #d6cbb780;border-radius:18px;box-shadow:inset 0 1px 1px #fff}
.balance:has(.element-plate) .element-legend li>i{display:none}
.balance:has(.element-plate) .element-legend b{font-size:1.25rem;color:#294640}
.balance:has(.element-plate) .element-legend li>span:not(.element-meter){font-size:.78rem;white-space:normal;text-align:center}
.balance:has(.element-plate) .element-meter{width:82%;height:6px;margin-top:3px;background:#d6d5cb90}
.balance:has(.element-plate) .element-legend li.is-dominant{border-color:#ad8747;box-shadow:inset 0 0 0 2px #fffaf0,0 3px 12px #9a7b2510}
.balance:has(.element-plate) .is-dominant b{color:var(--element)}
.element-card .element-caption{text-align:center;border-color:#bfa46b65;margin:22px 0 18px;padding-top:18px;font-size:.88rem;line-height:1.8}
/* Mobile intrinsic sizes must not push the seven calendar columns off-screen. */
body[data-page=today] main,body[data-page=today] main>section{min-width:0;max-width:100%}
body[data-page=today] .cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));width:100%;gap:4px}
body[data-page=today] .cal-grid>*{min-width:0}
body[data-page=today] .cal-day{aspect-ratio:auto;min-width:0;min-height:44px;padding:3px 0}
nav[aria-label="주요 메뉴"] button{min-width:0}
button:disabled{cursor:not-allowed}
/* Two glass densities: quiet reading surfaces and more opaque title bars. */
:root{--reading-glass:linear-gradient(125deg,#ffffffb8 0%,#fffdf775 38%,#f6f4e982 70%,#ffffffa3 100%);--title-glass:linear-gradient(125deg,#fffffff0 0%,#fffdf7cc 38%,#f6f4e9d9 70%,#ffffffeb 100%)}
.block>.card,.block>.flow-card,#epic,body[data-page=today] main>.card,body[data-page=today] .signals>div,body[data-page=today] .action-card,body[data-page=today] #cal{
 background:var(--reading-glass);
 border:1px solid #ffffffb8;outline:1px solid #bdc6bc50;outline-offset:-1px;
 box-shadow:inset 0 1px 0 #fff,inset 1px 0 0 #ffffffb0,inset 0 -1px 0 #ffffff70,0 8px 24px #23493d12;
 backdrop-filter:blur(9px) saturate(.85);-webkit-backdrop-filter:blur(9px) saturate(.85);
}
.section-top,.block-title,.result-layer-title,.epic-toolbar{
 background:var(--title-glass);border-color:#fffffff0;
 box-shadow:inset 0 2px 1px #fff,inset 1px 0 0 #ffffffcc,inset 0 -1px 0 #ffffffa0,0 6px 20px #23493d12;
 backdrop-filter:blur(12px) saturate(.85);-webkit-backdrop-filter:blur(12px) saturate(.85);
}
.epic-toolbar .block-title{background:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
body[data-page=today] #cal{padding:18px;border-radius:var(--radius-lg)}
body[data-page=today] #cal>.block-title{margin:-18px -18px 18px}
body[data-page=today] .daily-image{display:flow-root;height:auto;min-height:0;padding:0;background:none;border:0;box-shadow:none;overflow:hidden;isolation:isolate}
body[data-page=today] .daily-image>img{display:block}
body[data-page=today] .daily-image>div{margin:0;padding:22px;border-radius:18px;background:var(--reading-glass);border:1px solid #ffffffc0;box-shadow:inset 0 1px 0 #fff,0 5px 18px #183e3515;backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);color:#294640}
body[data-page=today] .daily-image :is(h2,p,span){color:#294640}
body[data-page=today] .daily-image:after{content:'';background:linear-gradient(125deg,#ffffff66 0%,#fffdf738 48%,#ffffff4d 100%);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);pointer-events:none}
@media(max-width:420px){body[data-page=today] #cal{padding:12px}body[data-page=today] #cal>.block-title{margin:-12px -12px 14px}body[data-page=today] .daily-image>div{padding:18px;margin:0}}
@media(prefers-reduced-transparency:reduce){.block>.card,.block>.flow-card,#epic,.section-top,.block-title,.result-layer-title,.epic-toolbar,body[data-page=today] main>.card,body[data-page=today] .signals>div,body[data-page=today] .action-card,body[data-page=today] #cal,body[data-page=today] .daily-image>div{background:#faf9f3;backdrop-filter:none;-webkit-backdrop-filter:none}}
/* Text sits directly on the scenery, without an inset white/glass panel. */
body[data-page=today] .daily-image>div{background:none;border:0;outline:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;border-radius:0}
body[data-page=today] .daily-image>img{filter:none}
@media(max-width:380px){.balance:has(.element-plate) .element-legend{gap:5px}.balance:has(.element-plate) .element-legend li{border-radius:13px;padding:12px 2px}.balance:has(.element-plate) .element-legend li>span:not(.element-meter){font-size:.7rem}}
