/* Readability layer, loaded last. Floors: content/UI text >= 12px, decorative English labels >= 10px;
   on phones primary reading text is 15-16px. Keep new font sizes in source files at or above these floors. */
.eyebrow,.hero-copy>.eyebrow,.page-intro .eyebrow,.portal-hero .eyebrow,.section-kicker,.fortune-top .section-kicker,.sidebar-box .section-kicker,.bunny-about .section-kicker,.journal-menu-heading .section-kicker,.match-heading .section-kicker,.quiz-panel .section-kicker,.brand-stack small,.brand-sub,.footer-brand .brand-sub,.menu-bunny small,.article-cover>small,.season-label,.mini-stars,.art-label,.hero-art .art-label,.art-bottom,.hero-art .art-bottom,.lucky-ticket span,.lucky-ticket small,.lucky-ticket b,.hero-art .lucky-ticket b,.cloud-note,.cloud-note span,.hero-art .cloud-note span,.bunny-caption{font-size:10px}
.zodiac-name,.zodiac-english,.zodiac-dates,.demo-tag,.day-strip,.day-strip .demo-tag,.hero-footnote,.selection-check,.fortune-sign div>span,.fortune-sign h3 small,.fortune-bottom>span,.lucky-items>span,.save-button,.rating-card p,.rating-top h3,.result-note,.match-fields label,.standalone-match .match-fields label,html[lang=en] .match-fields label,.match-fields select,.standalone-match .match-fields select,.match-fields .button,.match-footnote,.match-heading p,.article-card-meta,.article-meta,.article-list-header>span,.article-breadcrumb,.category-label,.category-tab,.article-search input,.article-search .button,.editorial-note,.popular-list small,.preview-disclaimer,.mini-article,.social-box p,.social-links a,.soft-note,.soft-note small,.page-tab,html[lang=en] .page-tab,.theme-toggle,.language-form select,.menu-preferences .language-form select,.menu-preferences h3,.menu-bunny,.journal-menu-heading p,.nav-cta,.text-link,.hero-actions .text-link,.home-discover .section-heading>.text-link,.hero-actions .button,html[lang=en] .hero-actions .button,.quiz-actions .button,.quiz-option,.toast,.site-footer p,.site-footer>span,.closing-note p,.journal-local,.journal-tools label,.journal-tools .button,.mood-picker span,.note-count,#remove-sticker,.journal-help,.journal-save-row .button,#journal-status,.drawer-sticker>span:last-of-type,.history-entry,.history-entry small,.journal-empty,.drawing-settings label,.drawing-tools button,.journal-dialog-actions .button{font-size:12px}
.section-heading>p,.article-card p,.bunny-about p,.feature-main .bunny-about p,.page-intro p,.faq-item p,.quiz-panel p,.journal-dialog p,.hero-description,.portal-hero .hero-description,#fortune-summary{font-size:14px}
.zodiac-dates{letter-spacing:0}
.hero-mini-bunny{display:none}

/* Blessing dialog and journal restore choices. */
.blessing-dialog img{display:block;margin:0 auto 6px}
.blessing-copy{font-size:17px;line-height:1.8;margin:14px 0 6px;color:var(--heading)}
.blessing-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:18px}
.journal-dialog-mode{border:0;margin:14px 0 4px;padding:0;display:grid;gap:8px;text-align:left}
.journal-dialog-mode label{display:flex;align-items:flex-start;gap:8px;font-size:14px;line-height:1.5;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--panel);cursor:pointer}
.journal-dialog-mode input{margin-top:4px;flex-shrink:0}
.journal-dialog-mode input:disabled+span{opacity:.5}

@media(max-width:760px){
 body{font-size:15px}
 #fortune-summary,.hero-description,.portal-hero .hero-description,.article-card p,.page-intro p,.faq-item p,.quiz-panel p,.bunny-about p,.feature-main .bunny-about p,.journal-dialog p,.blessing-copy{font-size:15px;line-height:1.75}
 .section-heading>p,.rating-card p,.lucky-items>span,.fortune-sign div>span,.article-card-meta,.article-meta,.social-box p,.mini-article,.match-heading p,.journal-help,.journal-local,.history-entry{font-size:13px}
 .zodiac-name{font-size:14px}
 .hero-actions .button,html[lang=en] .hero-actions .button,.quiz-option,.quiz-actions .button,.article-search input,.article-search .button,.journal-save-row .button,.journal-dialog-actions .button,.match-fields select,.standalone-match .match-fields select{font-size:14px}
 #journal-note{font-size:16px}
}
/* Phones: the hero illustration gives way so the sign picker and today's horoscope come sooner. */
@media(max-width:600px){
 .portal-hero{padding:22px 0 10px;gap:0}
 .portal-hero .hero-art,.portal-hero .hero-footnote{display:none}
 .hero-mini-bunny{display:block;float:right;width:64px;height:64px;margin:0 0 6px 10px;transform:rotate(4deg)}
 .hero-actions{gap:10px;margin-top:16px}
 .hero-actions .button{flex:1 1 calc(50% - 5px);justify-content:center;min-height:46px}
 .hero-actions .text-link{flex-basis:100%}
 .brand-stack small{display:none}
 .zodiac-section{padding-top:24px}
 .zodiac-dates{white-space:normal;line-height:1.35}
}
@media(max-width:360px){
 .hero-actions .button{flex-basis:100%}
 .zodiac-name{font-size:13px}
 .zodiac-dates{font-size:12px;padding-inline:2px}
}

/* WCAG AA contrast (4.5:1) for small text on the light paper and tab colours; dark theme keeps its own palette. */
html:not([data-theme=dark]) .brand-stack small{color:#6b6470}
html:not([data-theme=dark]) .page-tab:not(.active){color:#574f5c}

/* Below-the-fold blocks skip layout/paint until scrolled near (cuts mobile main-thread style & layout time). */
.home-discover,.bunny-about,.closing-note,.site-footer{content-visibility:auto;contain-intrinsic-size:auto 600px}
.closing-note,.site-footer{contain-intrinsic-size:auto 120px}
/* 後台 CKEditor 文章內文（docs/specs/006）：沿用段落樣式，補上標題、清單、引言、圖片、表格 */
.article-html{color:var(--body-text);font-size:14px;line-height:2.3}.article-html>*{margin:0 0 22px}.article-html p{background:var(--panel)}.article-html h2,.article-html h3,.article-html h4{color:var(--heading);line-height:1.7;margin:34px 0 14px}.article-html h2{font-size:21px}.article-html h3{font-size:18px}.article-html h4{font-size:16px}.article-html a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.article-html ul,.article-html ol{padding-left:1.6em;background:var(--panel)}.article-html li{margin:4px 0}.article-html blockquote{border-left:3px solid #c7afd7;padding:4px 0 4px 17px;background:var(--panel);color:var(--heading)}.article-html figure{text-align:center}.article-html figure.image_resized{margin-inline:auto}.article-html img{max-width:100%;height:auto;border-radius:10px;border:1px solid var(--border)}.article-html figcaption{font-size:11px;color:var(--muted);margin-top:6px;line-height:1.8}.article-html hr{border:0;border-top:1px dashed var(--border)}.article-html figure.table{overflow-x:auto}.article-html table{border-collapse:collapse;min-width:100%;font-size:13px;line-height:1.8;background:var(--panel)}.article-html th,.article-html td{border:1px solid var(--border);padding:8px 10px;text-align:left}.article-html th{background:var(--soft);color:var(--heading)}
@media(max-width:600px){.article-html{font-size:16px;line-height:2}.article-html h2{font-size:19px}.article-html h3{font-size:17px}.article-html h4{font-size:15px}}

/* 文章表格：最後一欄以外不換行（星等「3／5」、項目名不被擠斷，手機版由最後一欄的說明吸收寬度）2026-11-07 */
.article-html th:not(:last-child),.article-html td:not(:last-child){white-space:nowrap}

/* 頁尾官方社群連結（docs/specs/028） */
.footer-social{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 14px;margin:6px 0}.footer-social a{font-size:13px;font-weight:700;color:var(--accent);text-decoration:none;border:1px solid var(--border);border-radius:999px;padding:4px 12px}.footer-social a:hover,.footer-social a:focus-visible{text-decoration:underline}

/* 社群落地頁 /lucky、/weekly（docs/specs/028） */
.lucky-page{max-width:1080px;margin:0 auto;padding:12px 0 28px}
.lucky-head{text-align:center;margin:8px auto 14px;max-width:640px}.lucky-head>h1{font-size:30px;margin:6px 0 8px;color:var(--heading)}.lucky-head>p{color:var(--body-text);line-height:1.8}
.lucky-dates{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 16px;margin:0 0 18px;font-size:14px;font-weight:700}.lucky-dates>a{color:var(--accent)}
.lucky-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(240px,100%),1fr));gap:12px}
.lucky-card>a{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1.5px solid var(--border);border-radius:18px;background:var(--panel);color:var(--heading);text-decoration:none;height:100%;box-sizing:border-box}
.lucky-card>a:hover,.lucky-card>a:focus-visible{border-color:var(--accent)}
.lucky-card .zodiac-art{width:96px}
.lucky-body{display:flex;flex-direction:column;gap:3px;min-width:0}.lucky-body>strong{font-size:18px}
.lucky-color,.lucky-item{font-size:14px;color:var(--body-text)}.lucky-dot{display:inline-block;width:13px;height:13px;border-radius:50%;margin-right:6px;vertical-align:-1px;border:1px solid #8885}
.lucky-more{font-size:13px;font-weight:700;color:var(--accent)}
.lucky-note{text-align:center;margin:20px 0 0;font-size:14px;color:var(--body-text)}
.weekly-areas{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:14px}
.weekly-area{border:1.5px solid var(--border);border-radius:20px;background:var(--panel);padding:12px 14px}.weekly-area>h2{font-size:20px;margin:2px 0 8px;color:var(--heading);text-align:center}
.weekly-rank{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.weekly-rank a{display:flex;align-items:center;gap:10px;color:var(--heading);text-decoration:none;padding:4px;border-radius:14px}.weekly-rank a:hover,.weekly-rank a:focus-visible{background:var(--soft)}
.weekly-no{flex:none;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:900;background:var(--soft);color:var(--accent)}
.weekly-rank li:first-child .weekly-no{background:var(--accent);color:#fff}
.weekly-rank .zodiac-art{width:72px}
.weekly-name{display:flex;flex-direction:column}.weekly-name>strong{font-size:17px}.weekly-stars{font-size:14px;color:#c9971b;font-weight:700}
@media(max-width:540px){.lucky-head>h1{font-size:24px}.lucky-card .zodiac-art{width:84px}}
/* 漫畫專區看更多（docs/specs/028） */
.comic-more{display:block;margin:14px auto 0}
/* 社群落地頁入口（docs/specs/028）：首頁運勢標題旁、運勢頁 */
.section-links{display:flex;flex-wrap:wrap;gap:6px 16px;justify-content:flex-end}.horo-board-link{text-align:center;margin:18px 0 6px;font-weight:700}
/* 頁尾整理（2026-11-07 站長回饋 02.png）：品牌＋連結一列、社群一列、版權與說明各一列置中；比 keepsake.css 的 flex 規則更具體 */
footer.site-footer{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"brand links" "social social" "copy copy" "note note";align-items:center;gap:14px 28px}
footer.site-footer>.footer-brand{grid-area:brand}
footer.site-footer>.footer-links{grid-area:links;justify-content:flex-end;align-items:center}
footer.site-footer>.footer-social{grid-area:social;justify-content:center;margin:0;padding-top:12px;border-top:1px dashed var(--border)}
footer.site-footer>p{grid-area:copy;margin:0;width:auto;text-align:center}
footer.site-footer>span{grid-area:note;width:auto;text-align:center;margin-top:-8px}
@media(max-width:760px){footer.site-footer{grid-template-columns:minmax(0,1fr);grid-template-areas:"brand" "links" "social" "copy" "note";justify-items:center}footer.site-footer>.footer-links{justify-content:center}}
/* 落地頁的比奧兔（2026-11-07 站長回饋：版面太單薄） */
.board-hero{margin:4px 0 16px}
.weekly-sticker{width:30px;height:30px;vertical-align:-7px;margin-right:6px}
.board-talk{display:flex;align-items:flex-end;gap:10px;max-width:640px;margin:26px auto 0}
.board-talk>img{flex:none;width:92px;height:auto;filter:drop-shadow(2px 3px 0 #3e384833)}
.board-talk-bubble{position:relative;flex:1;min-width:0;margin-bottom:28px;padding:12px 16px;border:2px solid var(--heading);border-radius:18px 18px 18px 4px;background:var(--panel);color:var(--body-text);line-height:1.7;font-size:14.5px}
.board-talk-bubble::before{content:"";position:absolute;left:-9px;bottom:10px;width:12px;height:12px;background:inherit;border-left:2px solid var(--heading);border-bottom:2px solid var(--heading);transform:rotate(45deg)}
.board-talk-bubble>p{margin:0 0 6px}.board-talk-note{font-size:13px;color:var(--muted,#8a7f8f)}.board-talk-bubble>a{font-weight:700;font-size:14px}
@media(max-width:540px){.board-talk>img{width:72px}}
