/* Hallmark · macrostructure: Illustrated daily hub · tone: quiet playful · anchor hue: 155 */
:root { --bg:var(--color-paper); --ink:var(--color-ink); --muted:var(--color-muted); --teal:var(--color-accent); --teal-deep:var(--color-ink); --accent-strong:var(--color-accent); --line:var(--color-rule); --radius:var(--radius-card); --maxw:800px; --shadow:none; }
body { background:var(--bg); font-family:var(--font-body); line-height:1.8; }
[hidden] { display:none !important; }
.site-header { position:relative; background:var(--bg); backdrop-filter:none; border-bottom:1px solid var(--line); }
.site-header__in { max-width:1120px; padding:12px 24px; gap:12px; }
.logo { gap:12px; font-family:var(--font-display); font-size:1.7rem; line-height:1.3; letter-spacing:.03em; }
.logo small { font:400 .75rem/1.4 var(--font-body); color:var(--muted); letter-spacing:.05em; }
.nav { gap:8px; }
.nav a { font-size:.875rem; padding:8px 12px; color:var(--ink); }
.nav a[aria-current=page] { text-decoration:underline; text-underline-offset:8px; text-decoration-thickness:2px; }
main { padding:40px 0 72px; }
.wrap { padding-inline:24px; }
h1,h2,.h2 { text-wrap:balance; }
h1 { font-family:var(--font-display); line-height:1.6; }
.card { padding:28px; margin:24px 0; box-shadow:none; background:var(--color-surface); }
.btn { border-radius:var(--radius-control); box-shadow:none; min-height:48px; transition:transform var(--dur-fast) var(--ease-out); }
.btn:hover { box-shadow:none; transform:translateY(-2px); }
.btn:active { transform:translateY(0); }
.btn:disabled { opacity:.65; cursor:wait; transform:none; }
.btn--ghost { background:transparent; }
.btn--line { background:var(--color-line-button); }
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible { outline:3px solid var(--teal); outline-offset:4px; }
.small,.site-footer { font-size:var(--text-small); }
.site-footer { background:var(--bg); }
.site-footer .wrap { max-width:1120px; padding:36px 24px; }
.site-footer .wrap>p { max-width:72em; }
.site-footer a { min-height:40px; padding:8px 4px; }
.site-footer .footer-brand { color:var(--ink); font:700 1.5rem/1.5 var(--font-display); }
.scale { border:0; padding:0; min-width:0; }
.scale__btns { gap:4px; }
.scale__btn { min-width:28px; min-height:40px; }
.progress__bar { background:var(--teal); transition:none; }
.q-text { outline:none; }
.home main { padding-top:0; }
.home .wrap { max-width:1120px; }
.home-hero { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); align-items:center; padding:24px 0 40px; gap:24px; }
.home-hero h1 { font-size:var(--text-display); margin:16px 0 20px; letter-spacing:.035em; line-height:1.6; }
.home-hero p { max-width:29em; }
.home-hero__copy { padding:16px 0; }
.home-hero__note { color:var(--muted); font-size:.875rem; }
.home-hero__art { height:auto; width:100%; aspect-ratio:1; object-fit:contain; mix-blend-mode:multiply; }
.home-hero .home-date { font-size:.875rem; margin:0; color:var(--muted); }
.home-hero .home-date time { font-variant-numeric:tabular-nums; }
.home-actions { display:flex; flex-wrap:wrap; align-items:center; gap:16px; margin-top:24px; }
.home-actions a:not(.btn) { text-underline-offset:5px; }
.home-today { display:grid; grid-template-columns:minmax(180px,.65fr) minmax(0,1.35fr); gap:40px; align-items:center; background:var(--color-soft); border:1px solid var(--line); padding:36px 48px; border-radius:var(--radius-card); scroll-margin-top:24px; }
.home-today__image { height:auto; justify-self:center; width:150px; aspect-ratio:7/12; object-fit:cover; border-radius:8px; box-shadow:0 12px 24px -12px var(--color-shadow); transform:rotate(-5deg); }
.home-today h2 { font:700 1.75rem/1.5 var(--font-display); margin:0 0 12px; }
.home-today p { margin:12px 0; }
.home-today__sub { font-size:.875rem; color:var(--muted); }
.home-today__result { max-width:44em; }
.home-today__result h3 { font-size:1.25rem; margin:12px 0; }
.home-today__result p { line-height:1.9; }
.home-today__share { display:flex; flex-wrap:wrap; gap:12px; margin-top:20px; }
.home-section { margin:64px 0; }
.home-section__head { display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin-bottom:24px; flex-wrap:wrap; }
.home-section h2 { font:700 1.7rem/1.5 var(--font-display); margin:0; }
.home-section__head p { color:var(--muted); margin:0; font-size:.875rem; }
.sign-grid { display:grid; grid-template-columns:repeat(6,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.sign-grid a { display:flex; flex-direction:column; align-items:center; text-decoration:none; padding:20px 8px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); gap:4px; transition:background var(--dur-fast); }
.sign-grid a:hover { background:var(--color-soft); }
.sign-grid__symbol { font-size:1.7rem; line-height:1.5; }
.sign-grid__range { color:var(--muted); font-size:.75rem; }
.home-return { border-left:3px solid var(--teal); padding:8px 16px; margin:24px 0; }
.home-return a { display:inline-block; min-height:44px; padding:8px 0; }
.home-explore { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:24px; }
.explore-main { display:flex; gap:24px; padding:32px; background:var(--color-surface); border:1px solid var(--line); border-radius:var(--radius-card); align-items:center; }
.explore-main img { width:104px; height:178px; object-fit:cover; border-radius:6px; transform:rotate(6deg); }
.explore-main h3,.explore-row h3 { font-size:1.25rem; margin:0 0 8px; }
.explore-main p,.explore-row p { color:var(--muted); font-size:.875rem; margin:8px 0 16px; }
.explore-row { padding:20px 0; border-top:1px solid var(--line); }
.explore-row:last-child { border-bottom:1px solid var(--line); }
.home-about { display:grid; grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr); gap:40px; padding-top:40px; border-top:1px solid var(--line); }
.home-about h2 { font-size:1.5rem; }
.home-about p { margin:0 0 16px; color:var(--muted); }
.home-about a { text-underline-offset:4px; }
.home-faq details { border-bottom:1px solid var(--line); padding:16px 0; }
.home-faq summary { cursor:pointer; min-height:44px; padding:8px 0; font-weight:700; }
.home-faq details p { color:var(--muted); }
@media(max-width:700px) {
 .site-header__in { padding:12px 20px 4px; display:block; }
 .logo { font-size:1.5rem; min-height:36px; }
 .nav { justify-content:space-between; gap:0; margin-top:8px; }
 .nav a { padding:8px 4px; font-size:.8125rem; }
 main { padding-top:24px; }
 .wrap { padding-inline:20px; }
 .card { padding:20px; }
 .home-hero { grid-template-columns:1fr; position:relative; gap:0; padding:24px 0 32px; }
 .home-hero__copy { z-index:1; padding:0; }
 .home-hero h1 { margin:12px 0; font-size:clamp(1.8rem,5.7vw,2.4rem); }
 .home-hero__art { position:absolute; width:142px; height:142px; right:-12px; top:4px; opacity:.85; }
 .home-hero .home-date { max-width:calc(100% - 135px); min-height:32px; }
 .home-hero h1 { position:relative; padding-top:32px; }
 .home-hero__copy>p:not(.home-date) { font-size:.9375rem; max-width:27em; }
 .home-actions { gap:12px; }
 .home-actions .btn { flex:1; text-align:center; padding-inline:12px; }
 .home-today { grid-template-columns:76px 1fr; padding:24px 20px; gap:20px; align-items:start; }
 .home-today__image { width:76px; margin-top:8px; }
 .home-today h2 { font-size:1.4rem; }
 .home-today__result { grid-column:1/-1; }
 .home-today__copy { min-width:0; }
 .home-today .btn { padding:12px 14px; font-size:.9375rem; }
 .home-section { margin:44px 0; }
 .home-section h2 { font-size:1.4rem; }
 .sign-grid { grid-template-columns:repeat(3,1fr); }
 .sign-grid a { padding:16px 6px; }
 .home-explore,.home-about { grid-template-columns:1fr; gap:24px; }
 .explore-main { padding:24px; gap:20px; }
 .explore-main img { width:76px; height:130px; }
 .home-about { padding-top:28px; }
 .home-section__head { gap:8px; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; } .btn,.sign-grid a { transition:none; } .btn:hover { transform:none; } }

.type-hero__art { width:200px; height:200px; margin-inline:auto; }
.type-hero__art img { width:100%; height:100%; object-fit:contain; mix-blend-mode:multiply; }
.zukan__seal { display:grid; place-items:center; width:56px; height:56px; border:1px solid var(--line); border-radius:50%; margin:0 auto 16px; background:var(--color-soft); font:700 1.15rem var(--font-display); color:var(--ink); }

html,body { overflow-x:clip; }
h1,h2,h3 { overflow-wrap:anywhere; min-width:0; }
.nav,.home-today__share { align-items:center; }
.nav a,.site-footer a,.btn { white-space:nowrap; }

.home .btn:not(.btn--ghost) { color:var(--color-accent-ink); }
