/* Shared fluid layout. Loaded after the existing visual theme. */
:root{
 --gutter:clamp(1rem,2.5vw,6rem);
 --space:clamp(1rem,1.6vw,3rem);
 --readable:clamp(1rem,.875rem + .25vw,1.375rem);
 --control-size:clamp(1rem,.94rem + .12vw,1.25rem);
 --panel-space:clamp(1.25rem,1.6vw,3rem);
}
body{font-size:var(--readable)}
.workspace{width:100%;max-width:none}
main{padding:clamp(1.25rem,1.8vw,3rem) var(--gutter) clamp(3rem,4vw,6rem)}
.consumer-header{padding-inline:var(--gutter);gap:var(--space);height:auto;min-height:82px}
.consumer-header form{flex:0 1 32%;width:auto;min-width:230px}
.consumer-nav{padding-inline:var(--gutter);gap:clamp(1.25rem,1.8vw,3.5rem)}
.consumer-nav a{font-size:var(--control-size);min-height:48px}
.site-footer{margin-inline:var(--gutter);gap:var(--space);flex-wrap:wrap}
.site-footer nav{max-width:none;flex:0 1 50%;gap:clamp(.75rem,1vw,1.5rem)}
h1{font-size:clamp(1.9rem,1.3rem + 1.5vw,3.5rem)}
h2{font-size:clamp(1.375rem,1.1rem + .6vw,2.25rem)}
h3{font-size:clamp(1.125rem,1rem + .3vw,1.625rem)}
.page-heading{gap:var(--space);flex-wrap:wrap;margin-bottom:var(--space)}
.page-heading p{font-size:var(--readable)}
.section-block{margin-top:clamp(2rem,3vw,4rem)}
:where(.panel,.profile-form,.source-card){padding:var(--panel-space)}
button,.button{min-height:48px}
.button,.text-link,.profile-button{font-size:var(--control-size)}
input,select,textarea{font-size:var(--control-size);min-height:48px}
.caption,.form-help{font-size:clamp(.875rem,.8rem + .15vw,1.125rem)}
.landing-top{grid-template-columns:repeat(auto-fit,minmax(min(100%,30rem),1fr));gap:var(--space)}
.daily-editorial{padding:var(--panel-space)}
.daily-editorial h2{font-size:clamp(1.5rem,1.2rem + .6vw,2.5rem)}
.daily-editorial .forecast-body,.personal-forecast>p,.reading details>p{font-size:var(--readable);line-height:1.9;max-width:72ch}
.service-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));gap:var(--space)}
.service-card{display:grid;grid-template-columns:clamp(44px,3vw,78px) minmax(0,1fr);grid-template-rows:auto auto;gap:0 1rem;min-height:150px;padding:var(--panel-space)}
.service-card .service-art{grid-row:1/3}
.service-card h3{font-size:clamp(1rem,.9rem + .3vw,1.5rem);margin:0;min-width:0}
.service-card p{font-size:clamp(.875rem,.8rem + .2vw,1.25rem)!important;overflow-wrap:anywhere}
.promo-copy h1,.promo-copy h2{font-size:clamp(2rem,1.4rem + 1.8vw,4.5rem)}
.promo-copy p{font-size:var(--readable)}
.promo-copy .button{font-size:var(--control-size);min-height:48px}
.promo-track{min-height:clamp(28rem,30vw,44rem)}
.promo-controls>button,.promo-dots button{min-width:44px;min-height:44px}
.editorial-row{gap:var(--space)}
.report-grid,.chart-layout{display:grid;grid-template-columns:minmax(0,1fr) clamp(18rem,22vw,40rem);gap:var(--space);align-items:start}
.report-side{display:grid;grid-template-columns:1fr;gap:var(--space);min-width:0}
.report-side .share-panel{margin:0;padding-top:var(--panel-space)}
.report-side .button{width:100%;font-size:var(--control-size)}
.report-day .report-main{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,max(32rem,calc((100% - var(--space))/2))),1fr));gap:var(--space);align-items:start}
.report-overview,.report-details{min-width:0}
.report-day .interpretation-note{grid-column:1/-1;margin:0}
.report-overview>.personal-forecast{padding:var(--panel-space);margin-top:var(--space)}
.report-details>.evidence-reading{margin:0}
.score-panel{padding:var(--panel-space);gap:var(--space)}
.score-panel h2{font-size:clamp(1.25rem,1.05rem + .5vw,2rem)}
.score-value b{font-size:clamp(4rem,3rem + 2vw,7rem)}
.score-value span{font-size:clamp(.875rem,.8rem + .15vw,1.125rem)}
.personal-forecast h2{font-size:clamp(1.5rem,1.2rem + .7vw,2.75rem)}
.evidence-reading{padding:var(--panel-space)}
.evidence-reading h2{font-size:clamp(1.375rem,1.1rem + .5vw,2rem)}
.evidence-actions{grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr))}
.evidence-summary p,.evidence-actions p{font-size:var(--readable)}
.field-scores{gap:clamp(.5rem,1.2vw,2rem)}
.field-scores button>span,.field-scores small{font-size:clamp(.875rem,.8rem + .15vw,1.125rem)}
.field-scores strong{font-size:clamp(1.75rem,1.4rem + .8vw,3rem)}
.reading summary{flex-wrap:wrap;gap:.75rem}
.reading summary>strong{flex:1;min-width:10ch;font-size:var(--readable)}
.reading details>p{margin:0 0 1.25rem}
.reading .action-pick{margin-left:0;font-size:var(--control-size)}
.moon-mini{padding:var(--panel-space)}
.moon-mini-body{margin:1rem 0;gap:1rem;flex-wrap:wrap}
.moon-mini-body canvas{width:clamp(100px,8vw,220px);height:auto}
.moon-mini-body p,.moon-mini .caption{font-size:clamp(.875rem,.8rem + .15vw,1.125rem)}
.profile-form .form-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));gap:var(--space)}
.profile-form .form-grid>.full{grid-column:1/-1}
.form-grid label,.reading-settings label,.reading-settings select{font-size:var(--control-size)}
.sky-intro,.moon-layout{gap:var(--space);grid-template-columns:repeat(auto-fit,minmax(min(100%,30rem),1fr))}
.source-overview{grid-template-columns:repeat(auto-fit,minmax(min(100%,24rem),1fr));gap:var(--space)}
.source-registry{grid-template-columns:repeat(auto-fit,minmax(min(100%,25rem),1fr));gap:var(--space)}
.studio-grid.studio-v5{grid-template-columns:minmax(0,1.25fr) minmax(20rem,1fr);gap:var(--space)}
.studio-v5 .studio-preview,.studio-v5 .studio-controls{padding:var(--panel-space)}
.studio-v5 .studio-controls{display:grid;grid-template-columns:1fr}
.studio-v5 .studio-controls>*{grid-column:auto}
.studio-v5 .studio-form-pair{grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr))}
.studio-v5 .template-picker{grid-template-columns:repeat(auto-fit,minmax(min(100%,9rem),1fr))}
.studio-v5 .studio-preview canvas{max-height:65dvh;max-width:100%}
.studio-v5 label,.studio-v5 .studio-controls label,.studio-v5 .studio-controls p{font-size:var(--control-size)}
@media(max-width:60rem){
 .report-grid,.chart-layout{grid-template-columns:1fr}
 .report-side{grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr))}
 .report-side>.button{align-self:start}
 .consumer-header form{flex-basis:40%}
 .studio-grid.studio-v5{grid-template-columns:repeat(auto-fit,minmax(min(100%,25rem),1fr))}
 .studio-v5 .studio-preview{position:static}
}
@media(max-width:40rem){
 .consumer-header form{display:none}
 .consumer-header .profile-button{font-size:.9375rem}
 .consumer-header{padding:1rem var(--gutter)}
 .consumer-nav{height:56px}
 .service-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,9rem),1fr));gap:1rem}
 .service-card{display:block;min-height:190px;padding:1.125rem}
 .service-card h3{margin-top:.75rem}
 .service-card p{margin-top:.5rem}
 .promo-copy{max-width:100%}
 .promo-copy h1,.promo-copy h2{font-size:clamp(2rem,7.8vw,3rem)}
 .promo-copy p{font-size:1rem}
 .promo-daily>img{height:53%;right:-30%;bottom:0}
 .site-footer nav{flex-basis:100%}
 .score-panel{flex-wrap:wrap}
 .score-panel>div:first-child{flex:1;min-width:11rem}
 .reading-settings{gap:.75rem}
 .timing{gap:1rem}
 .timing strong{font-size:1.125rem}
}

.sky-moon-visual{width:min(100%,clamp(15rem,24vw,26rem))}
.sky-moon,.sky-day,.seasons-layout>*{min-width:0}

/* Keep one root scale; component clamps handle continuous sizing. */
html{font-size:100%}


/* Personalized home — keeps the v0.5.2 fluid composition and adds local-first utility. */
.personal-home-panel{justify-content:flex-start}
.personal-home-panel .forecast-body{margin-bottom:1.1rem}
.home-period-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;margin-top:auto}
.home-period-card{display:flex;min-width:0;min-height:6.4rem;flex-direction:column;justify-content:center;padding:1rem;border:1px solid #e7dfd5;border-radius:1rem;background:#faf8f4;text-decoration:none;transition:transform .18s ease,border-color .18s ease,background .18s ease}
.home-period-card:hover{transform:translateY(-2px);border-color:#cdb8a7;background:#fff7ef}
.home-period-card span{font-size:.76rem;color:#73675c}
.home-period-card strong{margin:.15rem 0;font-size:clamp(1.55rem,1.15rem + .8vw,2.35rem);line-height:1.05;color:#a53c25}
.home-period-card small{font-size:.72rem;color:#675f57}
.home-local-note{display:grid;grid-template-columns:auto 1fr auto;gap:.75rem;align-items:center;margin-top:1rem;padding-top:1rem;border-top:1px solid #ece5dd}
.home-local-note>span{font-size:1.15rem}
.home-local-note p{margin:0;font-size:.74rem;line-height:1.55;color:#675f57}
.home-local-note .text-link{font-size:.72rem;white-space:nowrap}
.home-privacy-ribbon{display:flex;align-items:center;gap:1rem;margin-top:1.1rem;padding:1rem 1.2rem;border:1px solid #e1e5d6;border-radius:1.15rem;background:#f4f6ee}
.home-privacy-icon{display:grid;place-items:center;width:2.65rem;height:2.65rem;flex:none;border-radius:50%;background:#e5eadb;font-size:1.15rem}
.home-privacy-ribbon>div{flex:1;min-width:0}
.home-privacy-ribbon strong{font-size:.92rem;color:#3f4a32}
.home-privacy-ribbon p{margin:.12rem 0 0;font-size:.76rem;line-height:1.6;color:#667057}
.home-privacy-ribbon .button{flex:none;min-height:2.6rem;padding:.55rem .9rem;font-size:.75rem;border-radius:999px}
.home-lucky-draw{position:relative;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(12rem,.45fr);gap:clamp(1.25rem,3vw,4rem);align-items:center;overflow:hidden;min-height:18rem;padding:clamp(1.6rem,3vw,3.4rem);border-radius:1.5rem;background:linear-gradient(135deg,#fff1e8 0%,#f7efe8 58%,#edf1e5 100%)}
.home-lucky-copy{position:relative;z-index:2;max-width:45rem}
.home-lucky-copy h2{margin:.65rem 0 .8rem;font-size:clamp(1.65rem,1.2rem + 1vw,2.9rem);line-height:1.35;letter-spacing:-.045em}
.home-lucky-copy>p{max-width:42rem;margin:0;color:#6e6259;font-size:.9rem;line-height:1.8}
.home-lucky-copy .button{margin-top:1.2rem;border-radius:999px}
.home-lucky-copy small{display:block;margin-top:.6rem;color:#8c8177;font-size:.69rem}
.home-lucky-envelope{position:relative;justify-self:center;width:clamp(11rem,16vw,18rem);aspect-ratio:1.36;border-radius:.7rem;background:#e36b49;box-shadow:0 1.4rem 2.4rem #865e4920;transform:rotate(4deg);transition:transform .45s cubic-bezier(.2,.8,.2,1),opacity .35s ease}
.home-lucky-envelope:before,.home-lucky-envelope:after{content:'';position:absolute;inset:auto 0 0;height:72%;clip-path:polygon(0 100%,0 0,50% 58%,100% 0,100% 100%)}
.home-lucky-envelope:before{background:#f27b57}
.home-lucky-envelope:after{background:#d95d3d;clip-path:polygon(0 100%,50% 43%,100% 100%)}
.home-envelope-flap{position:absolute;z-index:3;inset:0 0 auto;height:58%;background:#f88a67;clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top;transition:transform .55s cubic-bezier(.2,.8,.2,1)}
.home-lucky-envelope span,.home-lucky-envelope b{position:absolute;z-index:5;left:50%;transform:translateX(-50%);color:#fff7f1}
.home-lucky-envelope span{bottom:1.05rem;font-size:.62rem;font-weight:800;letter-spacing:.18em}
.home-lucky-envelope b{top:48%;font-size:1.8rem}
.home-lucky-result{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin-top:.25rem;padding-top:1.1rem;border-top:1px solid #dfd4c7}
.home-lucky-result[hidden]{display:none}
.home-lucky-result>div{padding:1rem;border:1px solid #e7ded4;border-radius:1rem;background:#fffaf6}
.home-lucky-result span{display:block;font-size:.7rem;color:#8b7668}
.home-lucky-result b{display:block;margin-top:.3rem;font-size:1.05rem;color:#42382f}
.home-lucky-result>p{grid-column:1/-1;display:flex;align-items:center;gap:1rem;margin:0;padding:1rem 1.2rem;border-radius:1rem;background:#eef1e7}
.home-lucky-result>p span{flex:none;color:#66704e}
.home-lucky-result>p strong{font-size:.95rem;color:#3f4a32}
.home-lucky-draw.is-open .home-envelope-flap{transform:rotateX(155deg)}
.home-lucky-draw.is-open .home-lucky-envelope{transform:translateY(.25rem) rotate(-2deg) scale(.96);opacity:.82}
.profile-local-note{margin-top:.4rem;padding:.7rem .85rem;border-radius:.7rem;background:#f4f6ee;color:#5e6950!important}
@media(max-width:56rem){
 .home-period-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .home-lucky-draw{grid-template-columns:1fr minmax(9rem,.35fr)}
 .home-lucky-result{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:40rem){
 .home-period-grid{gap:.55rem}
 .home-period-card{min-height:5.7rem;padding:.8rem}
 .home-local-note{grid-template-columns:auto 1fr}.home-local-note .text-link{grid-column:2}
 .home-privacy-ribbon{align-items:flex-start;flex-wrap:wrap}.home-privacy-ribbon .button{margin-left:3.65rem}
 .home-lucky-draw{grid-template-columns:1fr;padding:1.35rem;min-height:0}
 .home-lucky-envelope{width:10.5rem;margin:1rem auto}
 .home-lucky-result{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;width:100%}
 .home-lucky-result>div{padding:.8rem}
 .home-lucky-result>p{display:block}.home-lucky-result>p strong{display:block;margin-top:.35rem}
}
@media(prefers-reduced-motion:no-preference){
 .home-lucky-result:not([hidden]){animation:home-lucky-reveal .38s ease-out both}
 @keyframes home-lucky-reveal{from{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:none}}
}

/* First-viewport fortune dashboard: compact, fluid and data-dense. */
.home-stage{display:grid;gap:1rem}
.home-zodiac-hint{display:flex;align-items:center;gap:.75rem;min-width:0;padding:.65rem .85rem;border:1px solid #eee7de;border-radius:.8rem;background:#faf6f0}
.home-zodiac-hint>b{font-size:.9rem;white-space:nowrap}
.home-zodiac-hint>span:not(.status-chip){flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#6d6259;font-size:.78rem}
.home-zodiac-hint .text-link{font-size:.75rem;white-space:nowrap}
.home-my-zodiac{outline:2px solid #f56540;outline-offset:-2px;background:#fff0e4!important}

@media(min-width:1101px){
 body:has(.home-page){--home-unit:clamp(16px,.9vw,34.56px)}
 body:has(.home-page) .consumer-header{height:7.1dvh;min-height:60px;padding-block:0;font-size:var(--home-unit)}
 body:has(.home-page) .consumer-header .brand{font-size:1.18em}
 body:has(.home-page) .consumer-header .brand-mark{width:2.35em;height:2.35em;font-size:2em}
 body:has(.home-page) .consumer-header form input{font-size:.78em;min-height:2.35em;padding:.55em 2.6em .55em 1.1em}
 body:has(.home-page) .consumer-header form .icon{width:1em;height:1em;top:.65em}
 body:has(.home-page) .profile-button{font-size:.8em}
 body:has(.home-page) .consumer-nav{height:5dvh;min-height:40px;font-size:var(--home-unit)}
 body:has(.home-page) .consumer-nav a{font-size:.8em;min-height:0}
 .workspace>.home-page{width:100%;margin:0;padding:1.2dvh clamp(1rem,2vw,5rem) 4dvh;font-size:var(--home-unit)}
 .home-stage{
   grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);
   grid-template-rows:2.4dvh 13dvh 38dvh 19dvh;
   grid-template-areas:"date date" "promo promo" "services reading" "zodiac zodiac";
   gap:1.2dvh 1.1vw;align-items:stretch
 }
 .home-stage .landing-date{grid-area:date;margin:0;font-size:.68em;align-items:center}
 .home-stage .promo-section{grid-area:promo;border-radius:1em}
 .home-stage .promo-track{height:100%;min-height:0}
 .home-stage .promo-slide{display:grid;grid-template-columns:minmax(0,1fr) 23%;height:100%;min-height:0;align-items:center;padding:.8em 1.8em;gap:1.6em}
 .home-stage .promo-copy{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:1.5em;align-items:center;max-width:none}
 .home-stage .promo-copy .eyebrow{font-size:.58em;grid-column:1}
 .home-stage .promo-copy h1,.home-stage .promo-copy h2{font-size:1.45em;line-height:1.15;margin:.18em 0;grid-column:1}
 .home-stage .promo-copy h1 br,.home-stage .promo-copy h2 br,.home-stage .promo-copy p br{display:none}
 .home-stage .promo-copy p{font-size:.72em;line-height:1.45;margin:0;grid-column:1}
 .home-stage .promo-copy .button{grid-column:2;grid-row:1/4;margin:0;font-size:.72em;min-height:2.55em;padding:.65em 1em}
 .home-stage .promo-daily>img{position:relative;width:100%;height:10.5dvh;inset:auto;object-fit:contain}
 .home-stage .promo-moon{position:relative;width:10.5dvh;inset:auto;justify-self:center}
 .home-stage .year-sculpture{position:relative;display:flex;gap:.08em;inset:auto;font-size:3.8em;line-height:.8;transform:rotate(-5deg)}
 .home-stage .promo-controls{inset:auto .75em .2em auto;gap:.1em}
 .home-stage .promo-controls>button{min-height:1.55em;min-width:1.55em;padding:.1em;font-size:.7em}
 .home-stage .promo-dots{gap:0;margin-right:.35em}.home-stage .promo-dots button{min-height:1.5em;min-width:1.5em;padding:.45em}
 .home-stage .promo-dots button:before{width:.25em;height:.25em}.home-stage .promo-dots button[aria-current=true]:before{width:.75em}

 .home-stage .home-services{grid-area:services;margin:0;display:grid;grid-template-rows:3.6dvh minmax(0,1fr);gap:.8dvh;min-height:0}
 .home-stage .home-services .section-title{margin:0;align-items:center}
 .home-stage .home-services .section-title h2{font-size:1.05em;margin:.1em 0 0}
 .home-stage .home-services .section-title .eyebrow{font-size:.55em}
 .home-stage .home-services .section-title>a{font-size:.68em;min-height:0}
 .home-stage .service-grid{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:.65dvh .6vw;min-height:0}
 .home-stage .service-card{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:.25em;height:100%;min-height:0;padding:.7em .8em;border-radius:.8em}
 .home-stage .service-art{grid-row:auto;width:2.15em;height:2.15em;flex:none;margin:0;border-radius:.55em}
 .home-stage .service-art .icon{width:1.25em;height:1.25em}
 .home-stage .service-card h3{font-size:.86em;line-height:1.2;margin:0}
 .home-stage .service-card p{font-size:.62em!important;line-height:1.35;margin:0}
 .home-stage .service-arrow{font-size:.62em;top:.55em;right:.6em}

 .home-stage .home-overview{grid-area:reading;padding:1em 1.15em;border-radius:1em;min-height:0;overflow:hidden}
 .home-stage .home-overview .section-title{margin-bottom:.45em}.home-stage .home-overview .eyebrow{font-size:.55em}.home-stage .date-pill{font-size:.55em;padding:.25em .5em}
 .home-stage .home-overview h2{font-size:1.08em;line-height:1.3}.home-stage .home-overview .forecast-body{font-size:.7em;line-height:1.55;margin:.45em 0}
 .home-stage .home-period-grid{gap:.38em;margin-top:.4em}.home-stage .home-period-card{min-height:0;padding:.55em .6em;border-radius:.65em}
 .home-stage .home-period-card span{font-size:.55em}.home-stage .home-period-card strong{font-size:1.35em}.home-stage .home-period-card small{font-size:.5em}
 .home-stage .home-local-note{gap:.45em;margin-top:.45em;padding-top:.45em}.home-stage .home-local-note p{font-size:.54em;line-height:1.35}.home-stage .home-local-note .text-link{font-size:.52em}
 .home-stage .home-overview .daily-takeaway{font-size:.65em;padding:.5em 0;margin-top:.5em}.home-stage .home-overview>.row{margin-top:auto}.home-stage .home-overview .text-link{font-size:.65em}

 .home-stage .home-animals{grid-area:zodiac;margin:0;display:grid;grid-template-rows:3.3dvh minmax(0,1fr) 4.4dvh;gap:.55dvh;min-height:0}
 .home-stage .home-animals .section-title{margin:0;align-items:center}.home-stage .home-animals .section-title h2{font-size:1em;margin:.1em 0 0}.home-stage .home-animals .section-title .eyebrow{font-size:.52em}.home-stage .home-animals .section-title>a{font-size:.65em;min-height:0}
 .home-stage .animal-strip{grid-template-columns:repeat(12,minmax(0,1fr));gap:.45vw;height:100%;min-height:0}
 .home-stage .animal-strip a{height:100%;min-height:0;padding:.35em;border-radius:.7em;justify-content:center}
 .home-stage .animal-strip .animal-emoji{font-size:1.65em;line-height:1}.home-stage .animal-strip b{font-size:.65em;margin:.3em 0 0}
 .home-stage .home-zodiac-hint{height:100%;padding:.35em .65em;gap:.55em;border-radius:.55em}
 .home-stage .home-zodiac-hint .status-chip{font-size:.52em}.home-stage .home-zodiac-hint>b{font-size:.65em}.home-stage .home-zodiac-hint>span:not(.status-chip){font-size:.58em}.home-stage .home-zodiac-hint .text-link{font-size:.55em;min-height:0}
 .home-page>.home-privacy-ribbon,.home-page>.home-lucky-draw{margin-top:2.2em}
}

@media(max-width:1100px){
 .home-stage{grid-template-columns:1fr;grid-template-areas:"date" "promo" "services" "zodiac" "reading";gap:16px}
 .home-stage .landing-date{grid-area:date}.home-stage .promo-section{grid-area:promo}.home-stage .home-services{grid-area:services}.home-stage .home-animals{grid-area:zodiac}.home-stage .home-overview{grid-area:reading}
 .home-stage .promo-track{min-height:220px}.home-stage .promo-slide{min-height:220px;padding:22px 24px 54px}
 .home-stage .promo-copy h1,.home-stage .promo-copy h2{font-size:1.9rem;margin-top:8px}.home-stage .promo-copy p{font-size:.86rem;margin-top:10px}
 .home-stage .service-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.home-stage .service-card{min-height:130px;padding:14px}
 .home-stage .animal-strip{grid-template-columns:repeat(6,minmax(0,1fr))}
}
@media(max-width:600px){
 .workspace>.home-page{padding-top:12px}
 .home-stage{gap:10px}
 .home-stage .landing-date{margin:0 0 2px}
 .home-stage .promo-track{min-height:132px;height:132px}
 .home-stage .promo-slide{min-height:132px;height:132px;display:grid;grid-template-columns:minmax(0,1fr) 32%;padding:14px 16px 28px;align-items:center}
 .home-stage .promo-copy{max-width:none}.home-stage .promo-copy .eyebrow{font-size:.48rem}.home-stage .promo-copy h1,.home-stage .promo-copy h2{font-size:1.22rem;line-height:1.2;margin:3px 0}.home-stage .promo-copy p{font-size:.68rem;line-height:1.35;margin:0}.home-stage .promo-copy .button{margin-top:7px;font-size:.65rem;min-height:34px;padding:7px 10px}
 .home-stage .promo-daily>img{position:relative;inset:auto;width:100%;height:92px}.home-stage .promo-moon{position:relative;inset:auto;width:86px}.home-stage .year-sculpture{position:relative;inset:auto;font-size:52px}
 .home-stage .promo-controls{bottom:2px;left:12px;right:10px}.home-stage .promo-controls>button,.home-stage .promo-dots button{min-width:28px;min-height:28px}
 .home-stage .home-services{margin:0}.home-stage .home-services .section-title{margin-bottom:7px}.home-stage .home-services .section-title h2{font-size:1rem;margin:2px 0}.home-stage .home-services .section-title .eyebrow{font-size:.5rem}
 .home-stage .service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
 .home-stage .service-card{display:grid;grid-template-columns:34px 1fr;grid-template-rows:auto auto;gap:0 8px;min-height:78px;padding:9px 10px;border-radius:12px}
 .home-stage .service-art{grid-row:1/3;width:34px;height:34px;margin:0;border-radius:10px}.home-stage .service-art .icon{width:20px;height:20px}.home-stage .service-card h3{font-size:.78rem;margin:0;align-self:end}.home-stage .service-card p{font-size:.59rem!important;line-height:1.3;margin:2px 0 0}.home-stage .service-arrow{font-size:.58rem;top:5px;right:7px}
 .home-stage .home-animals .section-title{margin-bottom:6px}.home-stage .home-animals .section-title h2{font-size:1rem;margin:2px 0}.home-stage .home-animals .section-title .eyebrow{font-size:.5rem}
 .home-stage .animal-strip{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.home-stage .animal-strip::-webkit-scrollbar{display:none}.home-stage .animal-strip a{flex:0 0 58px;min-height:58px;padding:7px 4px;border-radius:10px}.home-stage .animal-strip .animal-emoji{font-size:1.35rem;line-height:1}.home-stage .animal-strip b{font-size:.58rem;margin-top:4px}
 .home-stage .home-zodiac-hint{margin-top:6px;padding:8px 10px;gap:7px}.home-stage .home-zodiac-hint>b{font-size:.68rem}.home-stage .home-zodiac-hint>span:not(.status-chip){display:none}.home-stage .home-zodiac-hint .text-link{font-size:.62rem}
 .home-stage .home-overview{margin-top:4px;padding:18px}
}

/* Monthly calendar: calendar first, whole month visible before long explanations. */
.month-screen-stage{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(18rem,.75fr);gap:1rem;align-items:stretch}
.month-calendar-pane,.month-summary-pane{min-width:0;min-height:0}
.month-calendar-pane>.section-block{margin:0;border:1px solid #e7ded4;border-radius:1rem;background:#fff}
.month-summary-pane{display:grid;gap:.7rem;align-content:start}
.month-best-mini{display:grid;gap:.4rem;padding:1rem;border:1px solid #e7ded4;border-radius:1rem;background:#faf8f4}
.month-best-mini a{display:grid;grid-template-columns:1.6rem 1fr auto;gap:.55rem;align-items:center;padding:.5rem 0;border-top:1px solid #eee7de;text-decoration:none}
.month-best-mini a>span{display:grid;place-items:center;width:1.45rem;height:1.45rem;border-radius:50%;background:#a53c25;color:#fff;font-size:.72rem}
.month-best-mini b{font-size:.8rem}.month-best-mini strong{font-size:.82rem;color:#a53c25}
.month-screen-actions{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.month-screen-actions .button{width:100%}
.month-below{margin-top:2.5rem}

@media(min-width:901px){
 .monthly-screen{padding-top:1dvh}
 .monthly-screen .page-heading{height:6dvh;min-height:0;margin:0;display:flex;align-items:center}
 .monthly-screen .page-heading h1{font-size:clamp(1.7rem,1.55vw,3.7rem);line-height:1.1}.monthly-screen .page-heading p{font-size:clamp(.78rem,.66vw,1.55rem);margin-top:.35dvh}
 .monthly-screen .period-tabs{height:4dvh;margin:0 0 .6dvh;gap:.4vw}.monthly-screen .period-tabs a{min-height:0;height:3dvh;padding:.3dvh .75vw;font-size:clamp(.72rem,.62vw,1.45rem)}
 .monthly-screen .period-controls{min-height:0;height:4.6dvh;margin:0 0 .7dvh;padding:.4dvh .75vw;display:flex;align-items:center;justify-content:space-between}
 .monthly-screen .period-controls p{font-size:clamp(.68rem,.54vw,1.25rem);margin:0}.monthly-screen .period-controls button,.monthly-screen .period-controls input{min-height:0;height:3dvh;font-size:clamp(.72rem,.62vw,1.4rem)}
 .month-screen-stage{height:66dvh;grid-template-columns:minmax(0,1.72fr) minmax(18rem,.78fr);gap:1vw}
 .month-calendar-pane>.section-block{height:100%;display:grid;grid-template-rows:4dvh minmax(0,1fr);gap:.55dvh;padding:1dvh .8vw .8dvh;border-radius:1.1dvh}
 .month-calendar-pane .section-title{margin:0;align-items:center}.month-calendar-pane .section-title h2{font-size:clamp(1rem,.98vw,2.2rem);margin:0}.month-calendar-pane .section-title .caption{font-size:clamp(.65rem,.52vw,1.2rem)}
 .month-calendar-pane .calendar{height:100%;min-height:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:2.6dvh repeat(6,minmax(0,1fr));gap:.35dvh .25vw}
 .month-calendar-pane .weekday{display:grid;place-items:center;min-height:0;font-size:clamp(.66rem,.54vw,1.25rem)}
 .month-calendar-pane .calendar>span{min-height:0}
 .month-calendar-pane .calendar-day{height:100%;min-height:0;padding:.6dvh .4vw;border-radius:.7dvh;display:grid;grid-template-rows:auto 1fr auto;align-items:start}
 .month-calendar-pane .calendar-day b{font-size:clamp(.8rem,.72vw,1.7rem);line-height:1}.month-calendar-pane .calendar-day span{font-size:clamp(.62rem,.5vw,1.2rem);align-self:center}.month-calendar-pane .calendar-day small{font-size:clamp(.62rem,.48vw,1.1rem);align-self:end}
 .month-summary-pane{grid-template-rows:17dvh 22dvh minmax(0,1fr) 4.2dvh;gap:.7dvh}
 .month-summary-pane .score-panel{height:100%;min-height:0;padding:1.2dvh .9vw;border-radius:1dvh}.month-summary-pane .score-panel h2{font-size:clamp(.9rem,.9vw,2rem);line-height:1.25}.month-summary-pane .score-panel p,.month-summary-pane .text-button{font-size:clamp(.62rem,.5vw,1.1rem)}.month-summary-pane .score-value b{font-size:clamp(2.2rem,2.8vw,6rem)}
 .month-summary-pane .field-scores{height:100%;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.3vw}.month-summary-pane .field-scores button{height:100%;min-width:0;min-height:0;padding:.8dvh .3vw;border-radius:.8dvh}.month-summary-pane .field-scores span{font-size:clamp(.6rem,.46vw,1rem)}.month-summary-pane .field-scores strong{font-size:clamp(1rem,.95vw,2rem)}.month-summary-pane .field-scores small{font-size:clamp(.58rem,.44vw,.95rem)}
 .month-best-mini{min-height:0;padding:.8dvh .7vw;border-radius:.9dvh}.month-best-mini .eyebrow{font-size:clamp(.55rem,.46vw,1rem)}.month-best-mini a{min-height:0;padding:.3dvh 0}.month-best-mini a>span{width:1.2vw;height:1.2vw;font-size:clamp(.5rem,.42vw,.9rem)}.month-best-mini b,.month-best-mini strong{font-size:clamp(.62rem,.56vw,1.2rem)}
 .month-screen-actions{gap:.35vw}.month-screen-actions .button{min-height:0;height:100%;padding:.35dvh .45vw;font-size:clamp(.62rem,.5vw,1.1rem)}
}

@media(max-width:900px){
 .monthly-screen .page-heading{margin-bottom:12px}.monthly-screen .page-heading h1{font-size:1.55rem}.monthly-screen .page-heading p{font-size:.78rem}
 .monthly-screen .period-tabs{margin-bottom:8px}.monthly-screen .period-controls{margin:8px 0 10px}
 .month-screen-stage{display:flex;flex-direction:column;gap:12px}
 .month-calendar-pane{order:1}.month-summary-pane{order:2}
 .month-calendar-pane>.section-block{padding:12px 9px;border-radius:14px}.month-calendar-pane .section-title{margin-bottom:8px}.month-calendar-pane .section-title h2{font-size:1rem}.month-calendar-pane .section-title .caption{font-size:.65rem}
 .month-calendar-pane .calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
 .month-calendar-pane .weekday{font-size:.65rem;padding:3px 0}
 .month-calendar-pane .calendar-day{min-height:58px;padding:6px 3px;border-radius:7px;display:grid;grid-template-rows:auto 1fr auto}
 .month-calendar-pane .calendar-day b{font-size:.82rem;line-height:1}.month-calendar-pane .calendar-day span{font-size:.56rem;line-height:1.15;align-self:center;white-space:nowrap}.month-calendar-pane .calendar-day small{font-size:.57rem;align-self:end}
 .month-summary-pane{display:grid;grid-template-columns:1fr;gap:10px}.month-summary-pane .score-panel{padding:16px}.month-summary-pane .field-scores{gap:6px}.month-summary-pane .field-scores button{padding:10px 4px}
 .month-best-mini{padding:12px}.month-screen-actions .button{min-height:42px;font-size:.75rem}
 .month-below{margin-top:28px}
}
@media(max-width:420px){
 .month-calendar-pane>.section-block{padding:10px 6px}.month-calendar-pane .calendar{gap:3px}
 .month-calendar-pane .calendar-day{min-height:54px;padding:5px 2px}.month-calendar-pane .calendar-day b{font-size:.78rem}.month-calendar-pane .calendar-day span{font-size:.5rem}.month-calendar-pane .calendar-day small{font-size:.53rem}
}

/* Prevent intrinsic grid content from widening the mobile home stage. */
.home-stage>*,
.home-stage .home-services,
.home-stage .home-overview,
.home-stage .home-animals,
.home-stage .service-grid,
.home-stage .promo-slide>*{min-width:0}
@media(max-width:600px){
 .home-stage .home-services,.home-stage .home-animals,.home-stage .home-overview{width:100%}
 .home-stage .promo-copy .button{display:none}
 .home-stage .promo-copy p{max-width:22em}
}
