/* Venus Virgo Farms: linen, botanical ink, terracotta and antique brass.
   No external fonts, images, dependencies or continuous expensive effects. */
body{background-color:#eee6d5;background-image:radial-gradient(ellipse at 12% 15%,#faf5e780,transparent 65%),repeating-linear-gradient(0deg,#755c3510 0,#755c3510 1px,transparent 1px,transparent 4px);color:#303b2b}
.television header{height:14vh;background:transparent;color:#303b2b;margin:0 3vw;padding:0;border-bottom:3px double #92876b;gap:1.6vw}
.farm-seal{border:1px solid #8b7956;border-radius:50% 50% 45% 45%;height:8vh;width:8vh;display:flex;align-items:center;justify-content:center;font-size:3vh;flex-shrink:0;transform:rotate(-8deg)}
.farm-seal span{font-size:1.5vh;margin:0 .2vw;color:#a36a40}
.television .logo{font-size:4.9vh;letter-spacing:.65vw;line-height:1.1}.television .sublogo{font:1.1vh Arial,sans-serif;letter-spacing:.2vw;margin-top:.8vh}
.station-note{flex:1;text-align:center;font-style:italic;font-size:2.3vh;color:#746a52}.station-note span{display:block;font:1vh Arial,sans-serif;letter-spacing:.2vw;margin-top:1vh}
.television #date{font-size:1.7vh}.television #clock{font-size:3.7vh;font-weight:normal}.television main{padding:0 3vw}.screen{height:77vh;padding-top:2.4vh}.screen.active{animation:page-arrival .8s ease-out both}
.edition-heading{display:flex;justify-content:space-between;align-items:center;height:11vh;margin-bottom:1.5vh}.eyebrow{font:1.15vh Arial,sans-serif;letter-spacing:.24vw;color:#806f4d}h1{font-size:5.7vh;font-weight:normal;letter-spacing:-.15vw;margin:.7vh 0 0}h1 span{font-size:2.6vh;vertical-align:middle;color:#a97945;margin-left:2vw}.edition-note{text-align:right;font-style:italic;font-size:1.8vh;line-height:1.6;color:#75694e}
.weather-card{position:relative;height:22vh;padding:2vh 2.2vw;background:#344434;color:#f3ead7;border:0;box-shadow:0 .6vh 0 #d3c7ac;overflow:hidden}.weather-card:after{content:'';position:absolute;right:1vw;top:1vh;bottom:1vh;width:1px;background:#d4c39b40}.weather-card .section-title{color:#d2c6a7;font:1.1vh Arial,sans-serif;letter-spacing:.2vw}.current{position:relative;width:40%;padding-left:1vw}.temperature{font-size:10vh;line-height:10vh;font-weight:normal;letter-spacing:-.4vw}#condition{font-size:1.8vh;font-style:italic;color:#e0d8c3}.weather-ornament{position:absolute;right:4vw;top:2vh;font-size:10vh;line-height:1;color:#c9ac6f;animation:sun-arrival 2s ease-out both}.details{width:60%;grid-template-columns:1fr 1fr 1fr;gap:1.5vh 2vw;font-size:2.5vh;border-left:1px solid #d4c39b40;padding-left:3vw}.details .label{display:block;width:auto;font:1vh Arial,sans-serif;letter-spacing:.14vw;color:#c9c0a3;margin-bottom:.7vh}
.farm-card{height:32vh;min-height:0;margin-top:2.6vh;padding:1.5vh 0;background:transparent;border:0}.farm-card>.section-title{border-bottom:1px solid #b5a88c;padding-bottom:1.2vh;display:flex;justify-content:space-between;font:1.25vh Arial,sans-serif;letter-spacing:.2vw;color:#776646}.farm-card>.section-title span{font-size:1vh;color:#897c61;letter-spacing:.15vw}.structured-briefing{display:flex;gap:3vw}.briefing-group{flex:1;min-width:0;padding:0 2vw 0 0;border-right:1px solid #b5a88c}.briefing-group:first-child{flex:1.15}.briefing-group:last-child{border:0;padding-right:0}.briefing-group .ai-title{font-size:2.1vh;letter-spacing:.1vw;margin:.8vh 0 1.3vh;color:#795238}.briefing-group .ai-title:before{content:'✦';margin-right:.7vw;font-size:1.5vh;color:#a47a43}.briefing-group .ai-text{font-size:2.1vh;line-height:1.48;margin-bottom:1vh}.briefing-group:first-child .ai-text{padding-left:1.3vw;position:relative}.briefing-group:first-child .ai-text:before{content:'·';position:absolute;left:0;color:#937342}.briefing-group:last-child .ai-text{font-style:italic;color:#655e46;font-size:2.3vh}#farm-summary:not(.structured-briefing){font-size:2.2vh}.ai-bullet{font-size:2.15vh}.ai-title{color:#795238}
.ticker{height:5vh;background:#dfd4bc;color:#5b614b;border-top:1px solid #b3a487;bottom:0}#ticker-text{font:1.25vh Arial,sans-serif;letter-spacing:.15vw;padding-left:3vw}
.forecast-card{background:#f7f0df80;border:1px solid #b1a183;margin-top:0;padding:3vh 2vw;box-sizing:border-box;height:70vh}.forecast-card>.section-title,.radar-page>.section-title{font-size:4.8vh;font-weight:normal;letter-spacing:-.1vw;margin-bottom:3vh}.forecast-full .forecast{margin-top:8vh}.day{border-right:1px solid #b8aa8e}.day:before{content:'✦';display:block;color:#a37b41;font-size:3vh;margin-bottom:3vh}.forecast-full .day-name{font-size:2.1vh;text-transform:uppercase;letter-spacing:.15vw}.forecast-full .day-temp{font-size:3.2vh;margin-top:3vh}.forecast-full .day-rain{font-size:1.9vh;margin-top:2vh;color:#7d6147}.forecast-card:after{content:'A look ahead, a little room to plan.';display:block;text-align:center;font-style:italic;font-size:2.3vh;color:#7c725b;margin-top:9vh}
.radar-page{height:70vh;background:#344434;border:1px solid #877e5d;padding:2vh 2vw}.radar-page>.section-title{color:#e8dec7;margin-bottom:2vh;font-size:3.8vh}.small-caption{font:1.1vh Arial,sans-serif;letter-spacing:.2vw;float:right;margin-top:1.4vh}.radar-layout{height:57vh;gap:3vw}#radar{width:57vh;height:57vh;flex-shrink:0;background:#29382c;border:1px solid #b4a77c70}.flight-sidebar{flex:1;width:auto;padding:0}#flight-list{display:block}.flight{display:grid;grid-template-columns:1fr 2fr;border-right:0;border-bottom:1px solid #c9bb9430;margin:0;padding:1.1vh 0;gap:1vw}.flight-info br{display:none}.flight-info{font-size:1.65vh;line-height:1.5}.flight-info br:after{content:' · '}.flight-call{font-size:2.2vh;color:#e7d1a7}.flight-heading{font:1.15vh Arial,sans-serif;letter-spacing:.2vw;margin-bottom:1vh;color:#cbbb97}.plane-label{font-size:1.35vh;color:#eadfca}.radar-plane{color:#d6bd83}.radar-ring{border-color:#b3a37a50}#aircraft-count{color:#c7bea7;font-size:1.5vh}
#dev-controls{position:fixed;bottom:5vh;right:1vw;z-index:1000;display:flex;align-items:center;gap:9px;padding:6px 10px;background:#ede4d1;color:#554d3a;border:1px solid #9c8b68;box-shadow:0 2px 8px #30251320;font:11px Arial,sans-serif;opacity:.6;transition:opacity .2s}#dev-controls:hover,#dev-controls:focus-within{opacity:1}#dev-controls select,#dev-controls button{font:inherit;color:inherit;background:#faf5e8;border:1px solid #ac9a78;padding:3px}#dev-controls a{color:#4a5e3c}button:focus-visible,select:focus-visible,a:focus-visible,textarea:focus-visible{outline:2px solid #a26b40;outline-offset:3px}
.admin-page{min-height:100vh;box-sizing:border-box;padding:6vh 20px;overflow:auto}.admin-page .container{background:#f6efdd;border:1px solid #b1a080;box-shadow:0 8px 35px #54442c18;padding:45px;max-width:660px}.admin-page .logo{font-weight:normal;color:#344434}.admin-page .subtitle{font:10px Arial,sans-serif;letter-spacing:2px;border-bottom:3px double #b1a080;padding-bottom:24px;margin-bottom:32px}.admin-page h2{font-size:38px;font-weight:normal;margin:0 0 16px}.admin-page p{color:#75674d;line-height:1.7;font-style:italic}.admin-page textarea{background:#fffaf0;border:1px solid #b7a686;font-family:Georgia,serif;line-height:1.5}.admin-page button{background:#344434;font:13px Arial,sans-serif;letter-spacing:2px;transition:background .2s,transform .2s}.admin-page button:hover:enabled{background:#536044;transform:translateY(-2px)}.admin-page button:disabled{opacity:.45}.admin-page #status{font-size:15px;color:#795238}
@keyframes page-arrival{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes sun-arrival{from{opacity:0;transform:rotate(-35deg)}to{opacity:1;transform:rotate(0)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
@media(max-width:700px){.station-note{display:none}#dev-controls{max-width:95vw;flex-wrap:wrap;font-size:10px}.admin-page .container{padding:25px}.edition-note{display:none}}
.weather-card:before{content:'';position:absolute;right:-1vw;bottom:-7vh;width:18vw;height:31vh;background:url('../assets/botanical.svg') center/contain no-repeat;opacity:.16;pointer-events:none}.weather-card .details{position:relative}.briefing-group .ai-text{font-size:2.35vh}.briefing-group:last-child .ai-text{font-size:2.5vh}.farm-card{height:34vh}.details{font-size:2.8vh}.details .label{font-size:1.2vh}.weather-card .section-title{font-size:1.2vh}.eyebrow{font-size:1.25vh}.television .sublogo{font-size:1.2vh}
.flight{padding:2vh 0;grid-template-columns:1fr 2fr}.flight-info{font-size:2vh}.flight-call{font-size:2.5vh}#farm-summary.briefing-long .ai-text{font-size:1.85vh;line-height:1.4}.television .screen{overflow:hidden}
/* Ambient motion is limited to transforms/opacity and only active screens. */
.screen.active .weather-card:before{transform-origin:55% 95%;animation:botanical-breeze 9s ease-in-out infinite}
.screen.active .briefing-group{animation:field-note-arrival .8s ease-out both}
.screen.active .briefing-group:nth-child(1){animation-delay:.15s}
.screen.active .briefing-group:nth-child(2){animation-delay:.3s}
.screen.active .briefing-group:nth-child(3){animation-delay:.45s}
#radar:before{content:'';position:absolute;left:50%;top:50%;width:44%;height:1px;background:linear-gradient(to right,transparent,#d4bc7b90);transform-origin:left center;pointer-events:none;z-index:1}
.screen.active #radar:before{animation:radar-sweep 14s linear infinite}
@keyframes botanical-breeze{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(3deg)}}
@keyframes field-note-arrival{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes radar-sweep{from{transform:rotate(-90deg)}to{transform:rotate(270deg)}}
@media(prefers-reduced-motion:reduce){.screen.active .weather-card:before,.screen.active .briefing-group,.screen.active #radar:before{animation:none!important}#radar:before{display:none}}
/* Garden salon: moss ink, blush silk, faded farm photographs. */
body{background:#ecebdd;color:#304735;font-family:Palatino,'Palatino Linotype','Book Antiqua',Georgia,serif;isolation:isolate}
body:before{content:'';position:fixed;top:0;right:0;bottom:0;left:0;background:url('../assets/chinoiserie.svg') left top/28vw auto repeat;opacity:.27;pointer-events:none;z-index:-1}
.farm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-2;pointer-events:none;background-image:linear-gradient(90deg,rgba(239,231,224,.89),rgba(236,235,219,.69) 50%,rgba(239,222,225,.84)),url('../assets/farm/house.jpg');background-size:cover;background-position:center 55%}
.admin-page .farm-backdrop{background-image:linear-gradient(90deg,rgba(239,231,224,.86),rgba(236,235,219,.76),rgba(239,222,225,.87)),url('../assets/farm/property.jpg')}
.television header{border-color:#65785c;background:rgba(240,234,223,.64);padding:0 1.3vw;margin:0 2vw}.farm-seal{border:3px double #829076;background:#eddbd6a6;color:#3e5842}.farm-seal span{color:#aa7787;font-size:2.3vh}.television .logo{font-family:Didot,'Bodoni MT',Palatino,Georgia,serif;font-weight:normal;letter-spacing:.8vw}.station-note{color:#67775b}.station-note span{color:#8b6672}.television main{padding:0 3vw}h1{font-family:Palatino,'Palatino Linotype','Book Antiqua',Georgia,serif;font-style:italic;font-weight:normal;letter-spacing:-.14vw;font-size:5.9vh;text-shadow:0 1px #fff9}h1 span{color:#aa7f8b;font-size:3.8vh}.eyebrow{color:#81616b}.edition-heading{background:linear-gradient(90deg,#f2ece2b8,transparent);padding:0 1vw}.edition-note{color:#755d66}.weather-card{background:rgba(47,69,51,.95);border:1px solid #a7b094;outline:1px solid #c6b594;outline-offset:3px;box-shadow:0 .7vh 0 #e7c9cd99}.weather-card .section-title,.details .label{color:#e6cbd0}.weather-ornament{color:#e7c8c8}.weather-card:before{background-image:url('../assets/chinoiserie.svg');opacity:.2;width:22vw;height:38vh;bottom:-12vh}.farm-card{background:rgba(246,239,231,.89);padding:1.7vh 1.7vw;border:1px solid #c5b7a9;box-shadow:0 .4vh 1.2vh #3444340c}.farm-card>.section-title{color:#86636d;border-bottom:3px double #c8b5b4}.farm-card>.section-title span{color:#807567}.briefing-group{border-color:#d7bcc1}.briefing-group .ai-title{font-weight:normal;color:#77535f;letter-spacing:.15vw}.briefing-group .ai-title:before{content:'❦';color:#a57584;font-size:2vh}.briefing-group:last-child .ai-text{color:#566348}.briefing-group:first-child .ai-text:before{color:#a57584}.ticker{background:rgba(224,201,205,.94);color:#3e5842;border-color:#bba1a6}.forecast-card{background:rgba(247,239,231,.92);border:3px double #9dab90}.forecast-card>.section-title{font-style:italic;color:#425a43}.day:before{content:'❦';color:#b68593}.day{border-color:#d7bcc1}.day-rain{color:#886572!important}.radar-page{background:rgba(47,69,51,.96);border:3px double #a7b094}.radar-page>.section-title{font-style:italic;color:#eed8db}.flight-call{color:#e6c5cd}.radar-plane{color:#e6c5cd}.small-caption{font-style:normal}.admin-page .container{background:rgba(249,241,235,.94);border:3px double #9dab90}.admin-page h2{font-style:italic;color:#425a43}.admin-page .subtitle{color:#8b6672}.admin-page textarea{background:#fbf7ef;border-color:#cab5ba}.admin-page #status{color:#886572}#dev-controls{background:#ecdedf;color:#4e6049;border-color:#b99da6}
#farm-summary.briefing-long .ai-text{font-size:1.65vh;line-height:1.35}
/* A softer, botanical wordmark; local fonts keep preview fully offline. */
.television .logo,.admin-page .logo{font-family:'Cormorant Infant','Goudy Old Style',Garamond,'Palatino Linotype',Georgia,serif;font-style:italic;font-weight:normal;font-size:6.3vh;line-height:1;letter-spacing:.22vw;color:#53664f;text-shadow:0 1px 0 #fff8}
.television .sublogo{font-family:'Palatino Linotype',Palatino,Georgia,serif;font-size:1.2vh;letter-spacing:.17vw;color:#876e77;margin-top:.8vh}
.television .farm-seal{border-color:#9baf93;color:#65795c;background:#eddbd675;font-family:'Cormorant Infant',Garamond,Georgia,serif;font-style:italic;font-size:3.5vh}
.admin-page .logo{font-size:64px;letter-spacing:3px}
/* Calligraphic wordmark, paired with a quiet small-cap station name. */
.television .logo,.admin-page .logo{font-family:Gabriola,'Monotype Corsiva','Segoe Script','Cormorant Infant',Georgia,serif;font-style:normal;font-weight:normal;font-size:8.1vh;letter-spacing:.08vw;line-height:.8;color:#52684f;text-shadow:none}
.television .sublogo{font-family:Georgia,serif;font-size:1.15vh;letter-spacing:.21vw;color:#9a7583;margin-top:1.5vh}
.admin-page .logo{font-size:84px;line-height:1;letter-spacing:1px}
/* Celestial details complement the botanical wallpaper. */
.briefing-group .ai-title:before{content:'✧'}.briefing-group:first-child .ai-text:before{content:'⋆'}.day:before{display:none}.moon-icon{width:5vh;height:5vh;display:block;margin:0 auto 2vh}.day-moon{font-size:1.6vh;color:#876573;line-height:1.4;margin:2vh .3vw 0}.forecast-full .forecast{margin-top:5vh}.forecast-full .day-temp{margin-top:2vh}.forecast-card:after{display:none}.moon-note{font:1.35vh Georgia,serif;color:#7e6b73;line-height:1.6}#forecast-moon-note{text-align:center;border-top:1px solid #d7bcc1;margin:4vh 2vw 0;padding-top:2vh;font-size:1.7vh}.moon-layout{display:flex;gap:2vw;height:51vh}.moon-feature,.moon-calendar,.zodiac-notes{box-sizing:border-box;padding:3vh 2vw;background:rgba(247,239,231,.94);border:1px solid #c5b7a9;flex:1;min-width:0}.moon-feature{text-align:center;flex:1.1}.moon-feature .moon-icon{width:16vh;height:16vh;margin:2vh auto}.moon-layout h2{font-size:3.1vh;font-weight:normal;font-style:italic;margin:2vh 0}.moon-layout p{font-size:2vh;line-height:1.6}.moon-layout .moon-note{font-size:1.4vh}.moon-layout .section-title{font:1.2vh Georgia,serif;letter-spacing:.1vw;color:#86636d}#moon-events>div{padding:1.8vh 0;border-bottom:1px solid #d7bcc1}#moon-events span{display:block;font-size:2.1vh}#moon-events strong{display:block;font-size:1.8vh;font-weight:normal;color:#886572;margin-top:.7vh}.zodiac-notes{text-align:center;background:rgba(47,69,51,.96);color:#efe5d6}.zodiac-notes .section-title,.zodiac-notes .moon-note{color:#d9b8c2}.zodiac-symbols{font:5vh Georgia,serif;color:#e6c5cd;margin:3vh 0}.zodiac-ribbon{font-size:2.6vh;line-height:1.8;letter-spacing:.65vw;color:#ddc2c9}
.moon-feature{flex:.8}.moon-calendar{flex:.8}.horoscope-panel{flex:1.6;text-align:left;padding:2vh 1.7vw}.horoscope-panel article{padding:1.3vh 0;border-bottom:1px solid #d9b8c250}.horoscope-panel article h2{font-size:2.2vh;color:#efd2db;margin:.5vh 0 1vh}.horoscope-panel article p{font-size:1.8vh;line-height:1.5;margin:0}.horoscope-panel .moon-note{font-size:1.2vh;margin:.6vh 0}
.calendar-week-tools{text-align:right;font-size:2.2vh;color:#6a5960}.calendar-week-tools button{background:#f4e9e6;border:1px solid #b9a4aa;color:#52684f;font:1.4vh Georgia,serif;padding:.5vh .7vw;margin:.7vh 0 0 .4vw;cursor:pointer}.calendar-legend{display:flex;gap:2vw;font-size:1.6vh;margin:0 0 1.5vh 1vw}.legend-birthdays{color:#96596f}.legend-family{color:#3d6248}.legend-district{color:#816839}.calendar-grid{display:flex;height:48vh;border:1px solid #bda9ac;background:#f7efe7ed}.calendar-day{flex:1;min-width:0;border-right:1px solid #d7c4c5;padding:1.2vh .65vw;box-sizing:border-box}.calendar-day:last-child{border-right:0}.calendar-day-heading{font-size:1.8vh;font-weight:normal;letter-spacing:.1vw;margin:0;color:#886572}.calendar-day-number{font-size:3vh;margin:.3vh 0 1.3vh}.calendar-today{background:#e3e9dd90}.calendar-today .calendar-day-number{color:#3b6046;text-decoration:underline;text-decoration-color:#c295a4;text-underline-offset:5px}.calendar-event{padding:.8vh .5vw;margin-bottom:1vh;border-left:3px solid #7e9b78;background:#e0e6d780}.calendar-birthdays{border-color:#c0879b;background:#ebd7df90}.calendar-district{border-color:#b89b60;background:#ece2ca90}.calendar-event-time{font-size:1.25vh;color:#6e6260;margin-bottom:.5vh}.calendar-event-title{font-size:1.65vh;line-height:1.3;overflow-wrap:break-word;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.calendar-event-source{font-size:1.05vh;margin-top:.5vh;color:#7d6b68}.calendar-empty{font-style:italic;font-size:1.5vh;color:#8b8171;line-height:1.5}.calendar-status{font:1.35vh Georgia,serif;color:#705e64;margin:1.4vh 0}.calendar-week-tools button[hidden]{display:none}
.calendar-event-title{font-size:1.9vh}.calendar-event-time{font-size:1.45vh}.calendar-event-source{font-size:1.2vh}.calendar-day-heading{font-size:2vh}

/* A constant tinted wash preserves legibility throughout the photo crossfade. */
.farm-backdrop{overflow:hidden}
.farm-photo{position:absolute;top:0;right:0;bottom:0;left:0;background-size:cover;background-position:center 55%;opacity:0;transition:opacity 4s ease-in-out}
.farm-photo.is-visible{opacity:1}
.farm-backdrop:after{content:'';position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,rgba(239,231,224,.89),rgba(236,235,219,.69) 50%,rgba(239,222,225,.84))}
@media(prefers-reduced-motion:reduce){.farm-photo{transition:none}}

/* The house's founding-year keepsake. */
.history-layout{display:flex;gap:3vw;height:49vh;background:#f7efe7eb;border:3px double #9dab90;padding:3vh 3vw;box-sizing:border-box}
.history-year{flex:0 0 23%;text-align:center;border-right:1px solid #c9b3b6;padding-right:3vw;color:#52684f;display:flex;flex-direction:column;justify-content:center}
.history-year>span{font:1.3vh Georgia,serif;letter-spacing:.3vw}.history-year strong{font:10vh Georgia,serif;font-weight:normal;letter-spacing:-.5vw;line-height:1.3}.history-rule{color:#ad8290;font-size:4vh}.history-year p{font-size:2.3vh}.history-year small{font-size:1.5vh;line-height:1.7;color:#886572}
.history-story{flex:1;min-width:0;align-self:center}.history-story h2{font-size:4.3vh;font-style:italic;font-weight:normal;color:#52684f;margin:1.8vh 0}.history-story>p{font-size:2.65vh;line-height:1.65;margin:1.5vh 0}.history-footnote{border-top:1px solid #d7bcc1;padding-top:1.5vh;font-size:1.5vh;line-height:1.5;color:#806873}.history-story a{display:inline-block;font-size:1.4vh;color:#52684f;margin-top:1vh}.history-dedication{text-align:center;font-size:2vh;font-style:italic;color:#886572;margin-top:2.5vh}

/* Flight observatory: satellite atlas and readable aircraft cards. */
.flight-screen .radar-page{height:72vh;padding:2vh 1.5vw;background:#263b30f5}.flight-top{display:flex;justify-content:space-between;align-items:center;height:8vh;margin-bottom:1.5vh}.flight-top h2{font:italic 4.5vh Georgia,serif;color:#f0dce0;margin:.5vh 0}.flight-top h2 span{color:#c4ac7d}.flight-top .eyebrow{color:#cfb9bc;font-size:1.1vh}.flight-stats{display:flex;gap:3vw;text-align:right}.flight-stats strong{display:block;font:4.5vh Georgia,serif;color:#f0dce0}.flight-stats span{font:1vh Arial,sans-serif;letter-spacing:.09vw;color:#c4cbb7}.flight-screen .radar-layout{height:54vh;gap:2vw}.map-column{position:relative;width:51vh;flex-shrink:0}.flight-screen #radar{width:51vh;height:51vh;box-sizing:border-box;background:#263b30 url('../assets/maps/airspace.jpg') center/100% 100% no-repeat;border:1px solid #b6c39b;box-shadow:inset 0 0 5vh #16281d55}.flight-screen #radar:before{display:block;width:45%;height:2px;background:linear-gradient(to right,#e5d8a322,#e5d8a3cc);box-shadow:0 0 8px #e5d8a355;z-index:2}.flight-screen .radar-ring{z-index:2;border-color:#eee7c36b;pointer-events:none}.flight-screen .ring-1{width:30%;height:30%}.flight-screen .ring-2{width:60%;height:60%}.flight-screen .ring-3{width:90%;height:90%}.map-north,.map-scale{position:absolute;z-index:3;background:#14291ec9;color:#f2ebda;padding:.4vh;font:1.2vh Arial,sans-serif}.map-north{left:1vh;top:1vh}.map-scale{right:1vh;bottom:1vh}.map-credit{font:1vh Arial,sans-serif;color:#c8caba;line-height:1.4;margin-top:.5vh}.map-landmark{position:absolute;color:#fff3dc;font:1.1vh Arial,sans-serif;text-shadow:0 1px 3px #000,0 0 4px #000;transform:translate(-50%,-50%);white-space:nowrap}.map-landmark:before{content:'· ';color:#fff}.flight-screen .home-marker{font-size:2.8vh;color:#ffdf99;text-shadow:0 1px 4px #000}.flight-screen .home-marker span{font:1.1vh Arial,sans-serif;background:#21382ddd;padding:.3vh}.flight-screen .radar-plane{width:2vh;height:2vh}.flight-screen .plane-icon{font:bold 3vh Arial,sans-serif;color:#f6d4de;text-shadow:0 0 3px #000;line-height:2vh}.flight-screen .plane-label{position:absolute;top:1.8vh;left:0;background:#20372be8;color:#fff3e4;font:.95vh Arial,sans-serif;padding:.3vh;margin:0}.flight-screen .earlier{opacity:.5}#radar-trails{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}#radar-trails polyline{stroke:#f2c4d0;stroke-width:.3;fill:none}.flight-screen .flight-sidebar{flex:1;min-width:0}.flight-heading{display:flex;justify-content:space-between;align-items:center}.flight-heading button{font:1.1vh Arial,sans-serif;background:transparent;border:1px solid #a3b69b;color:#f1dedf;padding:.5vh 1vw;cursor:pointer}.flight-heading button[hidden]{display:none}.flight-legend{font:1.05vh Arial,sans-serif;color:#c2cbb6;margin:.5vh 0 1vh}.flight-detail{padding:1vh 1vw;background:#f0eee00b;border:1px solid #a1ac8d45;border-left:3px solid #c491a3;margin-bottom:1vh}.flight-detail-call{font:1.15vh Arial,sans-serif;letter-spacing:.1vw;color:#d5baad}.flight-model{font:2.5vh Georgia,serif;color:#f4e8d9;margin:.5vh 0}.flight-registration{font:1.1vh Arial,sans-serif;color:#c4ccb9}.flight-route{font:1.65vh Georgia,serif;color:#eccbd4;margin:.7vh 0 .2vh}.flight-route-note{font:1vh Arial,sans-serif;color:#bfc6b3}.flight-detail-facts{font:1.3vh Arial,sans-serif;color:#d6decc;margin-top:.7vh}.flight-status{font:1.1vh Arial,sans-serif;color:#cfcebd;margin-top:1vh}.flight-screen #aircraft-count{font:1vh Arial,sans-serif;color:#b9c4ad}.flight-empty{font:italic 2.3vh Georgia,serif;color:#eee2d2;padding:3vh 1vw}

.flight-screen .map-landmark{font-size:1.35vh}.flight-screen .plane-label{font-size:1.15vh}.flight-screen .flight-detail-call{font-size:1.4vh}.flight-screen .flight-detail-facts{font-size:1.5vh}

/* Decorative sweep; independent of aircraft observation updates. */
.flight-screen #radar:after{content:'';position:absolute;top:5%;right:5%;bottom:5%;left:5%;border-radius:50%;background:conic-gradient(from 0deg,transparent 0deg,transparent 300deg,rgba(207,224,167,.02) 305deg,rgba(207,224,167,.24) 359deg,transparent 360deg);pointer-events:none;z-index:1;transform:rotate(0deg)}
.flight-screen.active #radar:after{animation:radar-glow 14s linear infinite}
@keyframes radar-glow{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
#map-landmarks{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;pointer-events:none}
@media(prefers-reduced-motion:reduce){.flight-screen #radar:before,.flight-screen #radar:after{display:none!important}}

.flight-pass-time{font:1.5vh Georgia,serif;color:#f2dab2;margin-top:.65vh}.flight-screen .flight-detail{padding:.7vh 1vw;margin-bottom:.7vh}

/* Care, movement and growing journals. */
.journal-panel{background:#f7efe7ef;border:1px solid #c5b7a9;padding:2vh 1.7vw;box-sizing:border-box;min-width:0;overflow:auto}.journal-panel h2{font:italic 3vh Georgia,serif;color:#52684f;margin:1vh 0 2vh}.journal-panel p{font-size:2vh;line-height:1.5}.journal-panel a,.journal-edit{font-size:1.5vh;color:#52684f}.journal-panel .journal-small,.journal-small{font:1.35vh Georgia,serif;line-height:1.6;color:#806873}.wellbeing-grid,.garden-grid{display:grid;grid-template-columns:1fr 1.15fr 1fr;gap:2vw;height:52vh}.wellbeing-feature{text-align:center;background:#344b3af5;color:#f3e6d9}.wellbeing-feature h2{color:#ecd0d7}.wellbeing-feature small{font-size:1.35vh;line-height:1.5;color:#d8c3c6}.qi-orbit{font-size:12vh;color:#dfc0cc;margin:1vh;animation:qi-settle 8s ease-in-out infinite}.wellbeing-screen:not(.active) .qi-orbit{animation-play-state:paused}@keyframes qi-settle{0%,100%{opacity:.7;transform:scale(.95)}50%{opacity:1;transform:scale(1)}}.journal-two{display:grid;grid-template-columns:1.2fr 1fr;gap:2vw;height:46vh}.journal-summary{display:flex;gap:3vw;font-size:2vh;color:#52684f;margin:0 0 2vh 1vw}.journal-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:1vw}.journal-panel button{background:#eadadd;border:1px solid #baa4ac;padding:.5vh .7vw;color:#52684f;font:1.3vh Georgia,serif;cursor:pointer}.journal-panel button[hidden]{display:none}.journal-record{border-top:1px solid #d7bcc1;padding:1vh 0}.journal-record h3{font:2.3vh Georgia,serif;color:#52684f;margin:.3vh 0}.journal-record p,.journal-note p{font-size:1.7vh;line-height:1.4;margin:.5vh 0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.journal-note{border-bottom:1px solid #d7bcc1;padding:1vh 0}.journal-note strong{font-size:1.6vh;color:#52684f}.journal-due{font-size:1.5vh;color:#986378}.journal-empty{font-style:italic;color:#806873}.journal-save-status{margin-top:1vh}.garden-grid{grid-template-columns:1.15fr 1fr 1fr}

.chicken-layout{display:grid;grid-template-columns:1fr 1.1fr 1fr;gap:2vw;height:51vh}.chicken-layout .journal-panel{overflow:hidden}.chicken-number{font:5.5vh Georgia,serif;color:#52684f;margin:2vh 0}.egg-chart{display:flex;align-items:flex-end;gap:.6vw;height:15vh;margin-top:2vh}.egg-column{flex:1;text-align:center;font:1.5vh Georgia,serif;color:#806873}.egg-column small{display:block;font-size:1.3vh;margin-top:.8vh}.egg-bar{background:#b9899a;border-radius:5px 5px 0 0;min-height:2px;margin:.5vh auto;width:80%}.chicken-layout p{font-size:1.9vh}

/* The farm roll call and playful, decorative coop residents. */
.animal-overview{display:grid;grid-template-columns:1.3fr 1fr;gap:2vw;height:48vh}.animal-overview .journal-panel{overflow:hidden}.animal-roster{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2vh 1vw}.roster-member{border-top:1px solid #d2b9bf;padding:.7vh 0;min-width:0}.roster-member strong{display:block;font-size:1.9vh;color:#52684f}.roster-member span{display:block;font-size:1.35vh;line-height:1.4;margin:.35vh 0}.roster-member small{font-size:1.25vh;color:#886572}.roster-planned{border-top-style:dashed}.animal-care{background:#344b3af5;color:#f1e6d6}.animal-care h2{color:#eccbd4}.animal-care .eyebrow,.animal-care .journal-small,.animal-care a{color:#d9c6cb}.animal-care .care-copy{font-size:2.15vh;line-height:1.55}.care-symbol{font-size:4vh;color:#dcc593;margin:.7vh 0}.journal-summary{gap:2vw;font-size:1.8vh}.coop-parade{height:4vh;position:relative;margin-top:-1.2vh;margin-bottom:1vh;display:flex;align-items:center;gap:1vw;padding-left:2vw;overflow:hidden}.coop-hen{font-size:4vh;display:inline-block;transform-origin:50% 85%}.coop-chick{font-size:3vh;display:inline-block;transform-origin:50% 85%}.coop-tracks{color:#a17c67;font-size:2vh;letter-spacing:1vw}.chickens-screen.active .coop-hen{animation:hen-peck 5s ease-in-out infinite}.chickens-screen.active .coop-chick{animation:chick-hop 2.8s ease-in-out infinite}.chickens-screen.active .chick-two{animation-delay:.7s}.chickens-screen .chicken-layout{height:48vh}.chickens-screen.active .egg-bar{animation:egg-bar-arrival 1s ease-out both;transform-origin:bottom}.chicken-layout article:first-child{border-top:3px solid #a7b094}.chicken-layout article:nth-child(2){border-top:3px solid #c491a3}@keyframes hen-peck{0%,55%,100%{transform:rotate(0)}65%,80%{transform:rotate(13deg)}72%,87%{transform:rotate(0)}}@keyframes chick-hop{0%,65%,100%{transform:translateY(0)}75%{transform:translateY(-.8vh) rotate(-6deg)}85%{transform:translateY(0) rotate(4deg)}}@keyframes egg-bar-arrival{from{transform:scaleY(.1);opacity:.2}to{transform:scaleY(1);opacity:1}}

.animal-roster{gap:.7vh 1vw;grid-auto-rows:7vh}.roster-member{padding:.4vh 0;line-height:1.2}.roster-member span{margin:.25vh 0;line-height:1.25}.animal-overview .journal-panel-heading h2{margin:.5vh 0 1.5vh}

/* Bundled artwork renders without system emoji fonts. */
.coop-hen img{display:block;width:5vh;height:4vh}.coop-chick img{display:block;width:3.5vh;height:3vh}.coop-parade>*{margin-right:1vw}

/* Flight-only TV layout and observation-age hierarchy. */
.flight-screen .radar-page{padding:1vh 1.5vw}
.flight-screen .flight-top{height:6vh;margin-bottom:.5vh}
.flight-screen .radar-layout{height:61vh}
.flight-screen .map-column{width:60vh}
.flight-screen #radar{width:60vh;height:60vh}
.flight-screen .flight-current{opacity:1}
.flight-screen .flight-recent{opacity:.72}
.flight-screen .flight-passed{opacity:.42}
.flight-screen .plane-icon{font-size:3.5vh}
.flight-screen .plane-label{font-size:1.3vh}
.flight-screen:not(.active) #radar:before,.flight-screen:not(.active) #radar:after{animation:none}

.flight-screen .radar-page{height:75vh;box-sizing:border-box}
.flight-screen .radar-layout{height:63vh}

.flight-screen:not(.flight-running) #radar:before,.flight-screen:not(.flight-running) #radar:after{animation:none}

/* Flight Watch 16:9 TV composition: larger center-weighted radar, five compact cards. */
.flight-screen .radar-page{height:75vh;padding:.5vh 1vw}
.flight-screen .flight-top{height:4.5vh;margin:0;align-items:flex-start}
.flight-screen .flight-top h2{font-size:3.8vh;line-height:1;margin:.15vh 0 0}
.flight-screen .flight-top .eyebrow{font-size:.95vh}
.flight-screen .flight-stats{gap:2vw;align-items:flex-start}
.flight-screen .flight-stats strong{font-size:3.2vh;line-height:1}
.flight-screen .flight-stats span{font-size:.82vh;letter-spacing:.07vw}
.flight-screen .radar-layout{display:grid;grid-template-columns:47% 53%;gap:1.4vw;height:67vh;align-items:start}
.flight-screen .map-column{width:auto;min-width:0;display:flex;flex-direction:column;align-items:center}
.flight-screen #radar{width:66vh;height:66vh;max-width:100%}
.flight-screen .map-credit{align-self:stretch;margin-top:.2vh;font-size:.82vh;line-height:1.15}
.flight-screen .flight-sidebar{width:100%;min-width:0;padding:0 .2vw 0 0;box-sizing:border-box}
.flight-screen .flight-heading{margin-bottom:.25vh;font-size:1.05vh}
.flight-screen .flight-legend{font-size:.86vh;line-height:1.15;margin:.15vh 0 .4vh}
.flight-screen #flight-list{display:grid;grid-template-rows:repeat(5,minmax(0,1fr));gap:.32vh;height:58.5vh}
.flight-screen .flight-detail{min-height:0;margin:0;padding:.32vh .75vw;box-sizing:border-box;line-height:1.08}
.flight-screen .flight-detail-call{font-size:1.05vh;line-height:1.1}
.flight-screen .flight-model{font-size:1.8vh;line-height:1.05;margin:.12vh 0}
.flight-screen .flight-registration{font-size:.92vh;line-height:1.05}
.flight-screen .flight-route{font-size:1.25vh;line-height:1.05;margin:.2vh 0 .08vh}
.flight-screen .flight-route-note{font-size:.8vh;line-height:1.05}
.flight-screen .flight-pass-time{font-size:1.12vh;line-height:1.05;margin-top:.2vh}
.flight-screen .flight-detail-facts{font-size:1.08vh;line-height:1.05;margin-top:.2vh}
.flight-screen .flight-status{font-size:.9vh;line-height:1.1;margin-top:.25vh}
.flight-screen #aircraft-count{font-size:.82vh;line-height:1.1;margin-top:.2vh}

/* Flight Watch cinematic layout: wide radar with an integrated masthead. */
.flight-screen{padding-top:4.2vh}
.flight-screen .radar-page{height:64vh;padding:1vh 1vw;overflow:hidden}
.flight-screen .radar-layout{grid-template-columns:minmax(0,61%) minmax(0,39%);gap:1.1vw;height:67vh;align-items:start}
.flight-screen .map-column{align-items:stretch}
.flight-screen #radar{position:relative;width:100%;height:57vh;max-width:none;background-image:url('../assets/maps/airspace-wide.jpg');background-size:100% 100%;background-position:center;overflow:hidden}
.flight-screen .map-column > .flight-top{position:absolute;z-index:6;top:0;left:0;right:0;height:7.4vh;margin:0;padding:1.1vh 1.1vw;box-sizing:border-box;align-items:flex-start;background:linear-gradient(180deg,rgba(12,31,22,.94) 0%,rgba(20,44,31,.75) 66%,transparent 100%);border-bottom:1px solid rgba(229,216,163,.24);text-shadow:0 1px 4px #07140d}
.flight-screen .map-column > .flight-top h2{font-size:3.7vh;line-height:1;margin:.2vh 0 0;color:#f4e4e5}
.flight-screen .map-column > .flight-top .eyebrow{font-size:.9vh;letter-spacing:.18vw;color:#d6c3bd}
.flight-screen .map-column > .flight-top .flight-stats{gap:1.7vw}
.flight-screen .map-column > .flight-top .flight-stats strong{font-size:2.8vh;color:#f3e5d7}
.flight-screen .map-column > .flight-top .flight-stats span{font-size:.72vh;color:#d5dbc9}
.flight-screen #radar .map-north{top:8.1vh}
.flight-screen .map-credit{margin-top:.35vh;font-size:.78vh;line-height:1.2}
.flight-screen .flight-sidebar{padding:0;display:flex;flex-direction:column;height:62vh}
.flight-screen .flight-heading{font-size:1vh;margin:0 0 .2vh}
.flight-screen .flight-legend{font-size:.77vh;line-height:1.15;margin:.1vh 0 .4vh}
.flight-screen #flight-list{height:55.5vh;gap:.38vh}
.flight-screen .flight-detail{display:grid;grid-template-columns:minmax(0,44%) minmax(0,56%);grid-template-rows:auto auto auto auto;column-gap:.55vw;align-content:center;padding:.38vh .55vw}
.flight-screen .flight-detail-call{grid-column:1;grid-row:1;font-size:.94vh}
.flight-screen .flight-model{grid-column:1;grid-row:2;font-size:1.55vh;margin:.12vh 0}
.flight-screen .flight-registration{grid-column:1;grid-row:3 / span 2;font-size:.78vh}
.flight-screen .flight-route{grid-column:2;grid-row:1;font-size:1.08vh;margin:0}
.flight-screen .flight-route-note{grid-column:2;grid-row:2;font-size:.68vh}
.flight-screen .flight-pass-time{grid-column:2;grid-row:3;font-size:.9vh;margin:.12vh 0 0}
.flight-screen .flight-detail-facts{grid-column:2;grid-row:4;font-size:.88vh;margin:.1vh 0 0}
.flight-screen #aircraft-count{font-size:.76vh;margin-top:.2vh}
.flight-screen #flight-status{margin-top:.25vh}

/* Preserve geographic scale in the 128:75 widescreen radar. */
.flight-screen .ring-1{width:17.578125%;height:30%}
.flight-screen .ring-2{width:35.15625%;height:60%}
.flight-screen .ring-3{width:52.734375%;height:90%}
.flight-screen #radar:before{width:26.3671875%}
.flight-screen #radar:after{top:5%;bottom:auto;left:23.6328125%;right:auto;width:52.734375%;height:90%}

/* Flight Watch motion system: compositor-first and active only while visible. */
.radar-atmosphere,.radar-clouds{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1}
.radar-atmosphere{background:radial-gradient(circle at 38% 44%,transparent 0,transparent 24%,rgba(234,210,166,.08) 54%,rgba(9,27,18,.2) 100%);opacity:.72;transform:scale(1.015)}
#radar.radar-dawn .radar-atmosphere{background:linear-gradient(115deg,rgba(231,173,145,.2),transparent 42%,rgba(65,91,108,.12)),radial-gradient(circle at 30% 45%,transparent 20%,rgba(18,39,28,.22) 100%)}
#radar.radar-night .radar-atmosphere{background:linear-gradient(rgba(15,29,55,.28),rgba(12,31,27,.22)),radial-gradient(circle at 60% 42%,transparent 16%,rgba(5,15,24,.3) 100%)}
.radar-clouds{left:-28%;right:auto;width:156%;opacity:.13;background:radial-gradient(ellipse at 12% 32%,rgba(244,242,226,.7) 0,rgba(244,242,226,.22) 10%,transparent 25%),radial-gradient(ellipse at 54% 62%,rgba(244,242,226,.5) 0,rgba(244,242,226,.14) 12%,transparent 27%),radial-gradient(ellipse at 88% 27%,rgba(244,242,226,.58) 0,rgba(244,242,226,.16) 9%,transparent 22%);transform:translateX(-5%)}
.radar-compass{position:absolute;left:1vw;top:8.5vh;z-index:5;width:3.8vh;height:3.8vh;border:1px solid rgba(238,231,195,.58);border-radius:50%;color:#f0e8d2;text-align:center;font:700 .8vh Arial,sans-serif;letter-spacing:.05vw;box-shadow:0 0 1.5vh rgba(229,216,163,.12)}
.radar-compass span{position:absolute;top:.35vh;left:0;right:0}.radar-compass i{position:absolute;left:50%;top:1.15vh;width:1px;height:1.75vh;background:linear-gradient(#f1d5b5 0 50%,#91a58f 50%);transform-origin:50% 88%;transform:translateX(-50%)}
.radar-compass i:before{content:'';position:absolute;left:-.34vh;top:-.08vh;border-left:.35vh solid transparent;border-right:.35vh solid transparent;border-bottom:.65vh solid #f1d5b5}
.flight-screen .map-north{display:none}
.flight-screen .map-column > .flight-top:after{content:'';position:absolute;left:1.1vw;bottom:.55vh;width:0;height:1px;background:linear-gradient(90deg,#e8d5b8,rgba(232,213,184,0));opacity:.8}
.flight-screen .radar-ring{box-shadow:0 0 .8vh rgba(229,216,163,.05)}
.flight-screen .home-marker:before{content:'';position:absolute;left:50%;top:50%;width:1.5vh;height:1.5vh;border:1px solid rgba(255,223,153,.75);border-radius:50%;transform:translate(-50%,-50%) scale(.4);z-index:-1}
.flight-screen .radar-plane:before{content:'';position:absolute;left:50%;top:50%;width:3.1vh;height:3.1vh;border:1px solid rgba(243,204,216,.72);border-radius:50%;transform:translate(-50%,-50%) scale(.25);opacity:0;pointer-events:none}
.flight-screen .flight-moving{animation:flight-position 3.6s cubic-bezier(.18,.72,.22,1) both}
.flight-screen .altitude-high .plane-icon{text-shadow:0 0 .8vh rgba(168,218,255,.9),0 0 3px #000;color:#e0efff}
.flight-screen .altitude-low .plane-icon{text-shadow:0 0 .8vh rgba(255,197,137,.9),0 0 3px #000;color:#ffe0bd}
.flight-screen #radar-trails polyline.flight-trail{stroke-dasharray:1.8 1.2;stroke-linecap:round}
.flight-screen #radar-trails polyline.flight-recent{opacity:.55}
.flight-screen #radar-trails polyline.flight-passed{opacity:.25}
.flight-screen .counter-roll{transform-origin:50% 65%}
.flight-screen .flight-detail.is-entering{opacity:0}

.flight-screen.flight-running .radar-atmosphere{animation:radar-depth-drift 28s ease-in-out infinite alternate}
.flight-screen.flight-running .radar-clouds{animation:cloud-veil 54s linear infinite}
.flight-screen.flight-running .radar-compass{animation:compass-arrival 1.25s cubic-bezier(.2,.8,.2,1) both}
.flight-screen.flight-running .radar-compass i{animation:compass-settle 5s ease-in-out infinite}
.flight-screen.flight-running .map-column > .flight-top>div:first-child{animation:masthead-arrival .9s ease-out both}
.flight-screen.flight-running .map-column > .flight-top:after{animation:masthead-rule 1.3s .15s ease-out both}
.flight-screen.flight-running .ring-1{animation:ring-breathe 6s 0s ease-out infinite}
.flight-screen.flight-running .ring-2{animation:ring-breathe 6s 2s ease-out infinite}
.flight-screen.flight-running .ring-3{animation:ring-breathe 6s 4s ease-out infinite}
.flight-screen.flight-running .home-marker:before{animation:farm-beacon 4.8s ease-out infinite}
.flight-screen.flight-running .flight-new:before{animation:aircraft-echo 2.8s ease-out 2}
.flight-screen.flight-running .flight-nearest .plane-icon{animation:nearest-spotlight 3.6s ease-in-out infinite}
.flight-screen.flight-running #radar-trails polyline.flight-trail{animation:trail-flow 5s linear infinite}
.flight-screen.flight-running .counter-roll-a{animation:counter-roll-a .65s ease-out both}
.flight-screen.flight-running .counter-roll-b{animation:counter-roll-b .65s ease-out both}
.flight-screen.flight-running .flight-detail.is-entering{animation:flight-card-rise .65s ease-out both}

@keyframes radar-depth-drift{from{transform:scale(1.01) translate3d(-.15%,0,0);opacity:.58}to{transform:scale(1.025) translate3d(.25%,-.2%,0);opacity:.78}}
@keyframes cloud-veil{from{transform:translate3d(-5%,0,0)}to{transform:translate3d(18%,0,0)}}
@keyframes compass-arrival{from{opacity:0;transform:rotate(-18deg) scale(.82)}to{opacity:1;transform:rotate(0) scale(1)}}
@keyframes compass-settle{0%,100%{transform:translateX(-50%) rotate(-2deg)}50%{transform:translateX(-50%) rotate(2deg)}}
@keyframes masthead-arrival{from{opacity:0;transform:translate3d(-1.2vw,0,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes masthead-rule{from{width:0}to{width:19vw}}
@keyframes ring-breathe{0%,100%{border-color:rgba(238,231,195,.25);box-shadow:0 0 0 rgba(229,216,163,0)}18%{border-color:rgba(244,232,190,.72);box-shadow:0 0 1.5vh rgba(229,216,163,.13)}42%{border-color:rgba(238,231,195,.32)}}
@keyframes farm-beacon{0%{opacity:.8;transform:translate(-50%,-50%) scale(.35)}72%,100%{opacity:0;transform:translate(-50%,-50%) scale(4.2)}}
@keyframes aircraft-echo{0%{opacity:.9;transform:translate(-50%,-50%) scale(.2)}80%,100%{opacity:0;transform:translate(-50%,-50%) scale(2.7)}}
@keyframes nearest-spotlight{0%,100%{filter:brightness(1);transform:scale(1)}50%{filter:brightness(1.5);transform:scale(1.16)}}
@keyframes trail-flow{to{stroke-dashoffset:-12}}
@keyframes flight-position{from{left:var(--from-left);top:var(--from-top)}}
@keyframes counter-roll-a{from{opacity:.15;transform:translateY(-.8vh) rotateX(55deg)}to{opacity:1;transform:translateY(0) rotateX(0)}}
@keyframes counter-roll-b{from{opacity:.15;transform:translateY(-.8vh) rotateX(55deg)}to{opacity:1;transform:translateY(0) rotateX(0)}}
@keyframes flight-card-rise{from{opacity:0;transform:translate3d(0,.65vh,0)}to{opacity:1;transform:translate3d(0,0,0)}}

.flight-screen:not(.flight-running) .radar-atmosphere,.flight-screen:not(.flight-running) .radar-clouds,.flight-screen:not(.flight-running) .radar-compass,.flight-screen:not(.flight-running) .radar-compass i,.flight-screen:not(.flight-running) .radar-ring,.flight-screen:not(.flight-running) .home-marker:before,.flight-screen:not(.flight-running) .radar-plane:before,.flight-screen:not(.flight-running) .plane-icon,.flight-screen:not(.flight-running) #radar-trails polyline,.flight-screen:not(.flight-running) .counter-roll,.flight-screen:not(.flight-running) .flight-detail{animation:none!important}
@media(prefers-reduced-motion:reduce){.radar-atmosphere,.radar-clouds,.radar-compass,.radar-compass i,.flight-top>div,.flight-top:after,.radar-ring,.home-marker:before,.radar-plane:before,.plane-icon,#radar-trails polyline,.counter-roll,.flight-detail{animation:none!important}}

/* One-time brass calligraphy trace after the Flight Watch masthead arrives. */
.flight-screen .map-column > .flight-top h2{display:flex;align-items:center;gap:.3vw}
.flight-title-svg{display:block;width:18.85vh;height:3.7vh;overflow:visible}
.flight-title-fill,.flight-title-trace{font-family:Georgia,'Times New Roman',serif;font-size:34px;font-style:italic;font-weight:normal;letter-spacing:-.5px}
.flight-title-fill{fill:#f4e4e5;stroke:none}
.flight-title-trace{fill:transparent;stroke:#e2bd6d;stroke-width:1.05;stroke-linecap:round;stroke-linejoin:round;paint-order:stroke}
.flight-title-trace tspan{opacity:0;stroke-dasharray:72;stroke-dashoffset:72}
.flight-title-star{display:inline-block;margin-left:.1vw!important;color:#c4ac7d!important;text-shadow:0 0 0 rgba(226,189,109,0)}
.flight-screen.flight-running .flight-title-fill{animation:title-fill-settle 1.2s .45s ease-out both}
.flight-screen.flight-running .flight-title-trace tspan{animation:letter-brass-trace 1.15s calc(.68s + var(--letter)*.09s) cubic-bezier(.3,.65,.25,1) both}
.flight-screen.flight-running .flight-title-star{animation:title-star-glint .8s 2.05s ease-out both}
@keyframes title-fill-settle{from{fill:rgba(244,228,229,.48)}to{fill:#f4e4e5}}
@keyframes letter-brass-trace{0%{opacity:0;stroke-dashoffset:72;stroke-width:.7}12%{opacity:1}68%{opacity:1;stroke-dashoffset:0;stroke-width:1.35}100%{opacity:0;stroke-dashoffset:0;stroke-width:.65}}
@keyframes title-star-glint{0%{transform:scale(.8) rotate(-12deg);color:#c4ac7d;text-shadow:0 0 0 rgba(226,189,109,0)}45%{transform:scale(1.25) rotate(4deg);color:#f3d78c;text-shadow:0 0 1.2vh rgba(226,189,109,.8)}100%{transform:scale(1) rotate(0);color:#c4ac7d;text-shadow:0 0 0 rgba(226,189,109,0)}}
.flight-screen:not(.flight-running) .flight-title-fill,.flight-screen:not(.flight-running) .flight-title-trace tspan,.flight-screen:not(.flight-running) .flight-title-star{animation:none!important}
@media(prefers-reduced-motion:reduce){.flight-title-fill,.flight-title-trace tspan,.flight-title-star{animation:none!important}.flight-title-fill{fill:#f4e4e5}.flight-title-trace tspan{opacity:0}}

/* Daily reading pages fit within the fixed television viewport. */
.wellbeing-grid .journal-panel{overflow:hidden}
.wellbeing-grid .journal-panel p{font-size:1.75vh;line-height:1.42}
.wellbeing-grid .journal-panel .journal-small{font-size:1.24vh;line-height:1.4}
.wellbeing-grid .journal-panel a{font-size:1.25vh}
.wellbeing-grid .journal-panel:last-child>.eyebrow{font-size:1.5vh}
.wellbeing-grid .journal-panel #qi-tcm-tip{font-size:2.1vh;line-height:1.45}
.wellbeing-grid .qi-orbit{font-size:9vh;margin:.4vh}
.wellbeing-grid .journal-panel h2{font-size:2.7vh;margin:.6vh 0 1.1vh}
.wellbeing-feature{display:flex;flex-direction:column;align-items:center}
.wellbeing-feature small{display:block;align-self:stretch;min-height:6vh;box-sizing:border-box;margin-top:auto;padding-top:.8vh;border-top:1px solid #d8c3c650;font-size:1.3vh;line-height:1.12}
.wellbeing-grid .qigong-tag{display:inline-block;margin-left:.6vw;padding:.35vh .5vw;border:1px solid #ba9ea7;color:#52684f;font:1.05vh Arial,sans-serif;letter-spacing:.12vw;vertical-align:middle}
.wellbeing-safety{box-sizing:border-box;max-height:7vh;overflow:hidden;margin:1.2vh 0 0;padding:.7vh 1vw;background:#f7efe7e0;border-top:1px solid #c5b7a9;color:#705f63;font:1.65vh/1.35 Georgia,serif}
.wellbeing-safety a{color:#52684f;white-space:nowrap}
.word-layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:2.2vw;height:54vh}
.word-feature{position:relative;min-width:0;overflow:hidden;padding:4vh 3vw;background:#344b3af5;color:#f3e6d9;border:3px double #d6bd9c;box-sizing:border-box}
.word-feature:after{content:'✧';position:absolute;right:2vw;bottom:1vh;font-size:14vh;color:#dac1c72a;pointer-events:none}
.word-feature .eyebrow{color:#d9c3c8}
.word-feature h2{font:italic 8vh Palatino,'Palatino Linotype',Georgia,serif;line-height:1.1;margin:3.2vh 0 1vh;overflow-wrap:anywhere;color:#f7e9dc}
.word-sound{font-size:2vh;color:#e2c8d0;margin:0}.word-divider{padding:0 1vw;color:#bda882}
.word-rule{width:16vw;height:2px;background:#d5b989;margin:4vh 0 2.5vh}
.word-feature #word-definition{font-size:2.8vh;line-height:1.35;max-width:35vw;margin:0}
.word-details{display:grid;grid-template-rows:1fr 1.1fr 1fr;gap:1vh;min-height:0}
.word-details article{background:#f7efe7ef;border:1px solid #c5b7a9;padding:1.4vh 1.7vw;min-height:0;overflow:hidden;box-sizing:border-box}
.word-details p,.word-details blockquote{font-size:2vh;line-height:1.42;margin:1vh 0 0;color:#405541}
.word-details blockquote{font-style:italic;color:#715763}
.word-screen .edition-heading{margin-bottom:2vh}

/* Quiet Strength: ink circle and drifting wash, confined to the active screen. */
.wellbeing-practice{display:flex;flex-direction:column;position:relative;background-image:radial-gradient(ellipse at 88% 78%,#e3cfca66,transparent 45%)}
.wellbeing-practice .practice-footnote{display:block;margin-top:auto;min-height:6vh;box-sizing:border-box;padding-top:.8vh;border-top:1px solid #cbbab5;font-size:1.3vh;line-height:1.12;color:#806873}
.wellbeing-practice h2:after{content:'';display:block;width:10vw;height:2px;margin-top:.8vh;background:linear-gradient(90deg,#52684f,#b68593 70%,transparent);transform-origin:left center}
.wellbeing-feature{position:relative;background-image:radial-gradient(ellipse at 50% 30%,#76907855,transparent 65%)}
.wellbeing-feature .qi-orbit{display:flex;align-items:center;justify-content:center;position:relative;width:10vh;height:10vh;margin:.2vh auto 1vh;border:3px double #c9aeb6;border-radius:50%;font-size:7vh;line-height:1;box-sizing:border-box;transform-origin:center}
.wellbeing-screen .qi-orbit{animation:none}
.wellbeing-feature .qi-orbit:after{content:'';position:absolute;inset:-1.2vh;border:1px solid #d7bdc555;border-radius:50%}
.wellbeing-advice{position:relative;background-image:radial-gradient(ellipse at 90% 90%,#d6ddd188,transparent 52%)}
.wellbeing-screen.active .wellbeing-feature .qi-orbit{animation:qi-ink-breath 20s ease-in-out infinite}
.wellbeing-screen.active .wellbeing-practice,.wellbeing-screen.active .wellbeing-advice{animation:quiet-panel-arrival 1.2s ease-out both}
.wellbeing-screen.active .wellbeing-advice{animation-delay:.25s}
.wellbeing-screen.active .wellbeing-practice h2:after{animation:quiet-ink-stroke 1.8s .45s ease-out both}
@keyframes qi-ink-breath{0%,100%{transform:rotate(-8deg) scale(.96);opacity:.82}50%{transform:rotate(8deg) scale(1.06);opacity:1}}
@keyframes quiet-panel-arrival{from{opacity:.4;transform:translateY(1.2vh)}to{opacity:1;transform:translateY(0)}}
@keyframes quiet-ink-stroke{from{transform:scaleX(0);opacity:.2}to{transform:scaleX(1);opacity:1}}
@media(prefers-reduced-motion:reduce){.wellbeing-screen.active .wellbeing-feature .qi-orbit,.wellbeing-screen.active .wellbeing-practice,.wellbeing-screen.active .wellbeing-advice,.wellbeing-screen.active .wellbeing-practice h2:after{animation:none!important}}

/* The calendar countdown uses civil dates, with no scrolling or live DOM churn. */
.countdown-layout{display:grid;grid-template-columns:32% minmax(0,1fr);gap:1.8vw;height:52vh}
.countdown-feature{position:relative;box-sizing:border-box;padding:3.2vh 2.3vw;background:#344b3af5;color:#f3e6d9;border:3px double #d6bd9c;min-width:0;overflow:hidden;background-image:radial-gradient(ellipse at 80% 85%,#6b80665c,transparent 62%)}
.countdown-feature .eyebrow{color:#e0c7cf}
.countdown-big{font:italic 13vh/1 Palatino,'Palatino Linotype',Georgia,serif;color:#f8e9d8;margin:3.5vh 0 0}
.countdown-big-label{font:1.2vh Arial,sans-serif;letter-spacing:.25vw;color:#d8c8aa;margin:.5vh 0 4vh}
.countdown-feature h2{font:italic 4vh/1.12 Palatino,Georgia,serif;color:#f2dce0;margin:0 0 1.5vh}
.countdown-feature p{font-size:2vh;color:#d6cabb;margin:0}
.countdown-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:1vh 1vw;min-width:0;min-height:0}

/* Field Notes must stay inside its fixed television card as daily copy changes. */
.farm-card{display:flex;flex-direction:column}
.farm-card>.section-title{flex:none}
#farm-summary.structured-briefing{flex:1;min-height:0;overflow:hidden}
.structured-briefing .briefing-group{min-height:0;overflow:hidden}
.structured-briefing .ai-text{line-height:1.35;margin-bottom:.55vh}
.countdown-card{position:relative;box-sizing:border-box;min-width:0;overflow:hidden;background:#f7efe7ef;border:1px solid #c5b7a9;padding:1.2vh 1.4vw}
.countdown-card-days{font:italic 5.3vh/1 Palatino,Georgia,serif;color:#52684f}
.countdown-card-unit{font:1.05vh Arial,sans-serif;letter-spacing:.16vw;color:#806873;margin-left:.5vw}
.countdown-card h2{font:italic 2.4vh/1.1 Palatino,Georgia,serif;color:#52684f;margin:.6vh 0 .35vh}
.countdown-card p{font:1.45vh/1.2 Georgia,serif;color:#806873;margin:0}
.countdown-note{font:1.45vh/1.3 Georgia,serif;color:#705f63;margin:1.2vh 0 0;text-align:right}
#rain-timing{display:block;margin-top:.35vh;font:1.05vh/1.15 Arial,sans-serif;letter-spacing:.03vw;color:#e3e7d4}
.countdown-event-icon{position:absolute;top:.65vh;right:.8vw;width:5.2vh;height:5.2vh;display:grid;place-items:center;pointer-events:none;opacity:.95}
.countdown-event-icon img{display:block;width:100%;height:100%;object-fit:contain;transform-origin:50% 65%}
.countdown-feature .countdown-event-icon{top:2vh;right:1.4vw;width:8vh;height:8vh}
.countdown-screen.active .countdown-event-icon{animation:countdown-icon-arrive .8s ease-out both}
.countdown-screen.active .event-halloween img{animation:lantern-lull 5s ease-in-out infinite}
.countdown-screen.active .event-thanksgiving img{animation:turkey-sway 7s ease-in-out infinite}
.countdown-screen.active .event-christmas img{animation:tree-glimmer 6s ease-in-out infinite}
.countdown-screen.active .event-newyear img{animation:firework-bloom 6s ease-in-out infinite}
@keyframes countdown-icon-arrive{from{opacity:0;transform:translateY(.45vh)}to{opacity:.95;transform:translateY(0)}}
@keyframes lantern-lull{0%,100%{transform:rotate(-2deg) scale(.98);opacity:.86}50%{transform:rotate(2deg) scale(1.03);opacity:1}}
@keyframes turkey-sway{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}
@keyframes tree-glimmer{0%,100%{transform:scale(.98);opacity:.85}50%{transform:scale(1.03);opacity:1}}
@keyframes firework-bloom{0%,100%{transform:scale(.94) rotate(-5deg);opacity:.78}50%{transform:scale(1.05) rotate(5deg);opacity:1}}
@media(prefers-reduced-motion:reduce){.countdown-screen.active .countdown-event-icon,.countdown-screen.active .countdown-event-icon img{animation:none!important}}

/* Calm page-specific entrances, confined to the visible screen and compositor properties. */
.forecast-screen.active .day{animation:almanac-lift .7s ease-out both}
.forecast-screen.active .day:nth-child(2){animation-delay:.08s}.forecast-screen.active .day:nth-child(3){animation-delay:.16s}.forecast-screen.active .day:nth-child(4){animation-delay:.24s}.forecast-screen.active .day:nth-child(5){animation-delay:.32s}.forecast-screen.active .day:nth-child(6){animation-delay:.4s}.forecast-screen.active .day:nth-child(7){animation-delay:.48s}
.moon-page.active .moon-feature .moon-icon{animation:moon-settle 1.4s ease-out both}
.calendar-screen.active .calendar-day{animation:almanac-lift .75s ease-out both}
.calendar-screen.active .calendar-day:nth-child(even){animation-delay:.12s}
.history-screen.active .history-year strong{animation:year-settle 1.25s ease-out both}
.word-screen.active .word-rule{transform-origin:left;animation:word-rule-draw 1.35s .2s ease-out both}
.animals-screen.active .roster-member{animation:almanac-lift .65s ease-out both}
.animals-screen.active .roster-member:nth-child(3n+2){animation-delay:.1s}.animals-screen.active .roster-member:nth-child(3n){animation-delay:.2s}
.gardens-screen.active .garden-grid .journal-panel{animation:almanac-lift .8s ease-out both}
.gardens-screen.active .garden-grid .journal-panel:nth-child(2){animation-delay:.12s}.gardens-screen.active .garden-grid .journal-panel:nth-child(3){animation-delay:.24s}
@keyframes almanac-lift{from{opacity:.55;transform:translateY(.7vh)}to{opacity:1;transform:translateY(0)}}
@keyframes moon-settle{from{opacity:.55;transform:rotate(-9deg) scale(.95)}to{opacity:1;transform:rotate(0) scale(1)}}
@keyframes year-settle{from{opacity:.45;transform:translateY(.5vh)}to{opacity:1;transform:translateY(0)}}
@keyframes word-rule-draw{from{opacity:.35;transform:scaleX(.15)}to{opacity:1;transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){.forecast-screen.active .day,.moon-page.active .moon-feature .moon-icon,.calendar-screen.active .calendar-day,.history-screen.active .history-year strong,.word-screen.active .word-rule,.animals-screen.active .roster-member,.gardens-screen.active .garden-grid .journal-panel{animation:none!important}}

/* A quiet movement remains visible throughout each non-flight page's turn. */
.home-screen.active .edition-heading h1 span{display:inline-block;animation:leaf-breathe 8s ease-in-out infinite}
.forecast-screen.active .forecast-card>.section-title{animation:forecast-drift 9s ease-in-out infinite}
.moon-page.active .edition-heading h1 span{display:inline-block;animation:moon-tide 10s ease-in-out infinite}
.calendar-screen.active .calendar-today .calendar-day-number{animation:date-glow 7s ease-in-out infinite}
.history-screen.active .history-rule{animation:year-flourish 9s ease-in-out infinite}
.word-screen.active .word-feature:after{animation:word-star 8s ease-in-out infinite}
.animals-screen.active .care-symbol{display:inline-block;animation:care-float 7s ease-in-out infinite}
.gardens-screen.active .edition-heading h1 span{display:inline-block;animation:garden-sway 9s ease-in-out infinite}
@keyframes leaf-breathe{0%,100%{transform:rotate(-5deg) scale(.95);opacity:.72}50%{transform:rotate(5deg) scale(1.08);opacity:1}}
@keyframes forecast-drift{0%,100%{transform:translateY(0);opacity:.85}50%{transform:translateY(-.3vh);opacity:1}}
@keyframes moon-tide{0%,100%{transform:translateY(0);opacity:.8}50%{transform:translateY(-.4vh);opacity:1}}
@keyframes date-glow{0%,100%{opacity:.7;transform:scale(.98)}50%{opacity:1;transform:scale(1.05)}}
@keyframes year-flourish{0%,100%{transform:rotate(-4deg);opacity:.75}50%{transform:rotate(4deg);opacity:1}}
@keyframes word-star{0%,100%{transform:scale(.9) rotate(-8deg);opacity:.45}50%{transform:scale(1.06) rotate(8deg);opacity:.9}}
@keyframes care-float{0%,100%{transform:translateY(0);opacity:.8}50%{transform:translateY(-.4vh);opacity:1}}
@keyframes garden-sway{0%,100%{transform:rotate(-5deg);opacity:.72}50%{transform:rotate(5deg);opacity:1}}
@media(prefers-reduced-motion:reduce){.home-screen.active .edition-heading h1 span,.forecast-screen.active .forecast-card>.section-title,.moon-page.active .edition-heading h1 span,.calendar-screen.active .calendar-today .calendar-day-number,.history-screen.active .history-rule,.word-screen.active .word-feature:after,.animals-screen.active .care-symbol,.gardens-screen.active .edition-heading h1 span{animation:none!important}}

/* Three signature pages receive slow, readable motion throughout their turn. */
.home-screen .weather-card{background-image:linear-gradient(112deg,transparent 20%,rgba(238,207,213,.03) 38%,rgba(238,220,188,.13) 50%,rgba(238,207,213,.03) 62%,transparent 80%);background-size:260% 100%;background-position:120% 0}
.home-screen.active .weather-card{animation:home-light-pass 11s ease-in-out infinite}
.home-screen.active .temperature{animation:temperature-breathe 7s ease-in-out infinite}
.home-screen.active .details>div{animation:weather-detail-arrive .7s ease-out both}
.home-screen.active .details>div:nth-child(2){animation-delay:.08s}.home-screen.active .details>div:nth-child(3){animation-delay:.16s}.home-screen.active .details>div:nth-child(4){animation-delay:.24s}.home-screen.active .details>div:nth-child(5){animation-delay:.32s}.home-screen.active .details>div:nth-child(6){animation-delay:.4s}

.moon-feature{position:relative;overflow:hidden}.moon-feature:before{content:'';position:absolute;left:50%;top:47%;width:25vh;height:25vh;border:1px solid rgba(180,139,152,.25);border-radius:50%;box-shadow:0 0 0 2.2vh rgba(180,139,152,.035),0 0 0 5vh rgba(82,104,79,.03);transform:translate(-50%,-50%);pointer-events:none}
.moon-page.active .moon-feature:before{animation:lunar-halo 12s ease-in-out infinite}
.moon-page.active .moon-feature .moon-icon{animation:moon-settle 1.4s ease-out both,moon-orbit-breathe 9s 1.4s ease-in-out infinite}
.moon-page.active #moon-events>div{animation:celestial-entry .75s ease-out both}.moon-page.active #moon-events>div:nth-child(2){animation-delay:.14s}.moon-page.active #moon-events>div:nth-child(3){animation-delay:.28s}.moon-page.active #moon-events>div:nth-child(4){animation-delay:.42s}
.moon-page.active .horoscope-panel article{animation:celestial-entry .9s ease-out both}.moon-page.active .horoscope-panel article:nth-of-type(2){animation-delay:.22s}

.forecast-card{position:relative;overflow:hidden}.forecast-card:before{content:'';position:absolute;top:-25%;bottom:-25%;left:-18%;width:13%;background:linear-gradient(90deg,transparent,rgba(255,250,226,.5),transparent);transform:skewX(-14deg) translateX(-250%);pointer-events:none}
.forecast-screen.active .forecast-card:before{animation:forecast-light 13s 1.2s ease-in-out infinite}
.forecast-screen.active .day-moon{animation:forecast-moon-float 6.5s ease-in-out infinite}.forecast-screen.active .day:nth-child(even) .day-moon{animation-delay:-2.1s}.forecast-screen.active .day:nth-child(3n) .day-moon{animation-delay:-4.2s}
.forecast-screen.active .day-rain{animation:rain-chance-glow 7s ease-in-out infinite}.forecast-screen.active .day:nth-child(even) .day-rain{animation-delay:-3.5s}
.forecast-screen.active #forecast-moon-note{animation:forecast-note-breathe 8s ease-in-out infinite}

@keyframes home-light-pass{0%,18%{background-position:120% 0}55%,100%{background-position:-120% 0}}
@keyframes temperature-breathe{0%,100%{transform:translateY(0);text-shadow:0 0 0 rgba(231,200,200,0)}50%{transform:translateY(-.25vh);text-shadow:0 0 1.6vh rgba(231,200,200,.22)}}
@keyframes weather-detail-arrive{from{opacity:.35;transform:translateY(.55vh)}to{opacity:1;transform:translateY(0)}}
@keyframes lunar-halo{0%,100%{opacity:.55;transform:translate(-50%,-50%) scale(.96) rotate(-5deg)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.05) rotate(5deg)}}
@keyframes moon-orbit-breathe{0%,100%{transform:translateY(0) rotate(-1.5deg);filter:drop-shadow(0 0 0 rgba(180,139,152,0))}50%{transform:translateY(-.45vh) rotate(1.5deg);filter:drop-shadow(0 0 1.2vh rgba(180,139,152,.48))}}
@keyframes celestial-entry{from{opacity:.3;transform:translateX(.7vw)}to{opacity:1;transform:translateX(0)}}
@keyframes forecast-light{0%,16%{transform:skewX(-14deg) translateX(-250%);opacity:0}42%{opacity:.6}68%,100%{transform:skewX(-14deg) translateX(900%);opacity:0}}
@keyframes forecast-moon-float{0%,100%{transform:translateY(0);opacity:.82}50%{transform:translateY(-.35vh);opacity:1}}
@keyframes rain-chance-glow{0%,100%{opacity:.72}50%{opacity:1}}
@keyframes forecast-note-breathe{0%,100%{border-color:#d7bcc1;color:#7e6b73}50%{border-color:#b98f9c;color:#6d5961}}
@media(prefers-reduced-motion:reduce){.home-screen.active .weather-card,.home-screen.active .temperature,.home-screen.active .details>div,.moon-page.active .moon-feature:before,.moon-page.active .moon-feature .moon-icon,.moon-page.active #moon-events>div,.moon-page.active .horoscope-panel article,.forecast-screen.active .forecast-card:before,.forecast-screen.active .day-moon,.forecast-screen.active .day-rain,.forecast-screen.active #forecast-moon-note{animation:none!important}}

/* Use the flight cards' spare vertical room for across-room reading. Motion is unchanged. */
.flight-screen .flight-detail{padding:.55vh .65vw;line-height:1.18;column-gap:.7vw}
.flight-screen .flight-detail-call{font-size:1.25vh;line-height:1.15}
.flight-screen .flight-model{font-size:2.3vh;line-height:1.08;margin:.2vh 0}
.flight-screen .flight-registration{font-size:1.15vh;line-height:1.12}
.flight-screen .flight-route{font-size:1.5vh;line-height:1.12}
.flight-screen .flight-route-note{font-size:1vh;line-height:1.12}
.flight-screen .flight-pass-time{font-size:1.3vh;line-height:1.12;margin-top:.2vh}
.flight-screen .flight-detail-facts{font-size:1.3vh;line-height:1.12;margin-top:.2vh}

.word-practice{display:flex;align-items:center;gap:1.4vw;box-sizing:border-box;min-height:6vh;margin-top:1.1vh;padding:.7vh 1.5vw;background:#f7efe7ef;border:1px solid #c5b7a9}
.word-practice .eyebrow{flex:none}
.word-practice p{font:italic 1.9vh/1.25 Palatino,Georgia,serif;color:#405541;margin:0}

/* Stronger page motion, scoped to the screen currently on television. */
.home-screen .weather-ornament{position:absolute;right:3.2vw;top:1.3vh;width:13vh;height:10.4vh;color:#e7c8c8;filter:drop-shadow(0 0 1vh rgba(244,210,160,.28))}
.home-screen .weather-ornament svg{display:block;width:100%;height:100%;overflow:visible}
.home-screen .weather-ornament .wx-sun,.home-screen .weather-ornament .wx-cloud,.home-screen .weather-ornament .wx-rain,.home-screen .weather-ornament .wx-snow,.home-screen .weather-ornament .wx-storm,.home-screen .weather-ornament .wx-fog{opacity:0}
.weather-ornament .wx-rays{transform-origin:42px 36px}.weather-ornament .wx-rays path{fill:none;stroke:#f0cf9f;stroke-width:4;stroke-linecap:round}.weather-ornament .wx-sun-disc{fill:#e7b979;stroke:#f4dcc0;stroke-width:2}
.weather-ornament .wx-cloud path{fill:#eadfd5;stroke:#c7aeb1;stroke-width:2}.weather-ornament .wx-cloud-back path{fill:#b9c6bd;stroke:#d8c8c3}
.weather-ornament .wx-drop{fill:none;stroke:#a9cad1;stroke-width:4;stroke-linecap:round}.weather-ornament .wx-flake{fill:none;stroke:#e9f1eb;stroke-width:2;stroke-linecap:round}.weather-ornament .wx-storm path{fill:#e7c77e;stroke:#fff0bd;stroke-width:1}.weather-ornament .wx-fog path{fill:none;stroke:#d5ddd6;stroke-width:4;stroke-linecap:round}
.home-screen .weather-clear .wx-sun{opacity:1;transform:translate(18px,10px) scale(1.12)}
.home-screen .weather-partly .wx-sun{opacity:1;transform:translate(2px,-2px) scale(.88)}.home-screen .weather-partly .wx-cloud-front{opacity:1;transform:translate(9px,3px) scale(.9)}
.home-screen .weather-overcast .wx-cloud-back,.home-screen .weather-overcast .wx-cloud-front{opacity:1}.home-screen .weather-overcast .wx-cloud-back{transform:translate(-8px,-8px) scale(.92)}
.home-screen .weather-drizzle .wx-cloud-front,.home-screen .weather-drizzle .wx-rain,.home-screen .weather-rain .wx-cloud-front,.home-screen .weather-rain .wx-rain{opacity:1}
.home-screen .weather-snow .wx-cloud-front,.home-screen .weather-snow .wx-snow{opacity:1}
.home-screen .weather-storm .wx-cloud-back,.home-screen .weather-storm .wx-cloud-front,.home-screen .weather-storm .wx-rain,.home-screen .weather-storm .wx-storm{opacity:1}.home-screen .weather-storm .wx-cloud-back{transform:translate(-8px,-7px) scale(.94)}
.home-screen .weather-fog .wx-cloud-back,.home-screen .weather-fog .wx-fog{opacity:1}.home-screen .weather-fog .wx-cloud-back{transform:translate(3px,-12px) scale(.84)}
.home-screen.active .weather-clear .wx-rays,.home-screen.active .weather-partly .wx-rays{animation:wx-sun-spin 9s linear infinite}
.home-screen.active .weather-partly .wx-cloud-front,.home-screen.active .weather-overcast .wx-cloud-front{animation:wx-cloud-drift 5.5s ease-in-out infinite}
.home-screen.active .weather-overcast .wx-cloud-back,.home-screen.active .weather-storm .wx-cloud-back{animation:wx-cloud-back-drift 7s ease-in-out infinite}
.home-screen.active .wx-drop{animation:wx-rain-fall 1.15s linear infinite}.home-screen.active .wx-drop-two{animation-delay:-.38s}.home-screen.active .wx-drop-three{animation-delay:-.76s}
.home-screen.active .wx-flake{animation:wx-snow-fall 2.4s ease-in-out infinite}.home-screen.active .wx-flake-two{animation-delay:-.8s}.home-screen.active .wx-flake-three{animation-delay:-1.6s}
.home-screen.active .weather-storm .wx-storm{animation:wx-lightning 3.6s step-end infinite}
.home-screen.active .weather-fog .wx-fog{animation:wx-fog-drift 6s ease-in-out infinite}

.forecast-screen{perspective:900px}
.forecast-screen.active .day{transform-origin:50% 100%;animation:forecast-card-rise 1.05s cubic-bezier(.16,.8,.24,1) both}
.forecast-screen.active .day:nth-child(2){animation-delay:.12s}.forecast-screen.active .day:nth-child(3){animation-delay:.24s}.forecast-screen.active .day:nth-child(4){animation-delay:.36s}.forecast-screen.active .day:nth-child(5){animation-delay:.48s}.forecast-screen.active .day:nth-child(6){animation-delay:.6s}.forecast-screen.active .day:nth-child(7){animation-delay:.72s}
.forecast-screen.active .day .moon-icon{transform-origin:50% 50%;animation:forecast-moon-turn 6s ease-in-out infinite}
.forecast-screen.active .day:nth-child(even) .moon-icon{animation-delay:-3s}
.forecast-screen.active .forecast-card:before{width:20%;background:linear-gradient(90deg,transparent,rgba(255,250,226,.72),transparent);animation:forecast-light 7s .8s ease-in-out infinite}
.forecast-screen.active .day-rain{animation:rain-chance-glow 3.8s ease-in-out infinite}

.moon-page.active .moon-feature:before{animation:lunar-halo-dramatic 6s ease-in-out infinite}
.moon-page.active .moon-feature .moon-icon{animation:moon-grand-entrance 1.35s cubic-bezier(.14,.82,.2,1) both,moon-dramatic-orbit 6s 1.35s ease-in-out infinite}
.moon-page.active .moon-calendar{animation:moon-panel-left 1.2s cubic-bezier(.16,.8,.24,1) both}
.moon-page.active .horoscope-panel{animation:moon-panel-right 1.2s .16s cubic-bezier(.16,.8,.24,1) both}
.moon-page.active #moon-events>div{animation:celestial-entry-strong .9s ease-out both}
.moon-page.active #moon-events>div:nth-child(2){animation-delay:.16s}.moon-page.active #moon-events>div:nth-child(3){animation-delay:.32s}.moon-page.active #moon-events>div:nth-child(4){animation-delay:.48s}

.wellbeing-screen.active .wellbeing-feature{animation:quiet-feature-arrival 1.2s cubic-bezier(.16,.8,.24,1) both}
.wellbeing-screen.active .wellbeing-feature .qi-orbit{animation:qi-full-turn 11s linear infinite;box-shadow:0 0 2.2vh rgba(223,192,204,.32)}
.wellbeing-screen.active .wellbeing-feature .qi-orbit:after{animation:quiet-ripple 4s ease-out infinite}
.wellbeing-screen.active .wellbeing-practice{animation:quiet-panel-left 1.25s .12s cubic-bezier(.16,.8,.24,1) both}
.wellbeing-screen.active .wellbeing-advice{animation:quiet-panel-right 1.25s .28s cubic-bezier(.16,.8,.24,1) both}
.wellbeing-screen.active .edition-heading h1 span{display:inline-block;animation:quiet-symbol-turn 8s ease-in-out infinite}

@keyframes wx-sun-spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
@keyframes wx-cloud-drift{0%,100%{transform:translate(7px,3px) scale(.9)}50%{transform:translate(13px,3px) scale(.9)}}
@keyframes wx-cloud-back-drift{0%,100%{transform:translate(-10px,-8px) scale(.92)}50%{transform:translate(-4px,-8px) scale(.92)}}
@keyframes wx-rain-fall{0%{opacity:0;transform:translateY(-5px)}25%{opacity:1}80%{opacity:1}100%{opacity:0;transform:translateY(9px)}}
@keyframes wx-snow-fall{0%{opacity:0;transform:translate(-2px,-4px) rotate(0)}25%{opacity:1}75%{opacity:1}100%{opacity:0;transform:translate(3px,8px) rotate(90deg)}}
@keyframes wx-lightning{0%,12%,18%,100%{opacity:0}13%,17%{opacity:1}}
@keyframes wx-fog-drift{0%,100%{transform:translateX(-5px);opacity:.7}50%{transform:translateX(5px);opacity:1}}
@keyframes forecast-card-rise{from{opacity:0;transform:translateY(4vh) rotateX(16deg) scale(.92)}to{opacity:1;transform:translateY(0) rotateX(0) scale(1)}}
@keyframes forecast-moon-turn{0%,100%{transform:translateY(0) rotate(-7deg) scale(.96);filter:drop-shadow(0 0 0 rgba(180,139,152,0))}50%{transform:translateY(-.8vh) rotate(7deg) scale(1.08);filter:drop-shadow(0 0 1.2vh rgba(180,139,152,.58))}}
@keyframes lunar-halo-dramatic{0%,100%{opacity:.38;transform:translate(-50%,-50%) scale(.82) rotate(-12deg)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.18) rotate(12deg)}}
@keyframes moon-grand-entrance{from{opacity:0;transform:translateY(2vh) rotate(-24deg) scale(.65)}70%{opacity:1;transform:translateY(-.5vh) rotate(4deg) scale(1.08)}to{transform:translateY(0) rotate(0) scale(1)}}
@keyframes moon-dramatic-orbit{0%,100%{transform:translateY(0) rotate(-5deg) scale(.98);filter:drop-shadow(0 0 .2vh rgba(180,139,152,.2))}50%{transform:translateY(-1vh) rotate(5deg) scale(1.08);filter:drop-shadow(0 0 2vh rgba(180,139,152,.7))}}
@keyframes moon-panel-left{from{opacity:0;transform:translateX(-2.2vw) scale(.96)}to{opacity:1;transform:translateX(0) scale(1)}}
@keyframes moon-panel-right{from{opacity:0;transform:translateX(2.2vw) scale(.96)}to{opacity:1;transform:translateX(0) scale(1)}}
@keyframes celestial-entry-strong{from{opacity:0;transform:translateX(1.8vw)}to{opacity:1;transform:translateX(0)}}
@keyframes quiet-feature-arrival{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}
@keyframes qi-full-turn{0%{transform:rotate(0) scale(.96)}50%{transform:rotate(180deg) scale(1.1)}100%{transform:rotate(360deg) scale(.96)}}
@keyframes quiet-ripple{0%{opacity:.75;transform:scale(.75)}75%,100%{opacity:0;transform:scale(1.55)}}
@keyframes quiet-panel-left{from{opacity:0;transform:translateX(-2.5vw) translateY(1vh)}to{opacity:1;transform:translateX(0) translateY(0)}}
@keyframes quiet-panel-right{from{opacity:0;transform:translateX(2.5vw) translateY(1vh)}to{opacity:1;transform:translateX(0) translateY(0)}}
@keyframes quiet-symbol-turn{0%,100%{transform:rotate(-12deg) scale(.9);opacity:.65}50%{transform:rotate(12deg) scale(1.15);opacity:1}}
@media(prefers-reduced-motion:reduce){.home-screen.active .weather-ornament *,.forecast-screen.active .day,.forecast-screen.active .day .moon-icon,.forecast-screen.active .forecast-card:before,.forecast-screen.active .day-rain,.moon-page.active .moon-feature:before,.moon-page.active .moon-feature .moon-icon,.moon-page.active .moon-calendar,.moon-page.active .horoscope-panel,.moon-page.active #moon-events>div,.wellbeing-screen.active .wellbeing-feature,.wellbeing-screen.active .wellbeing-feature .qi-orbit,.wellbeing-screen.active .wellbeing-feature .qi-orbit:after,.wellbeing-screen.active .wellbeing-practice,.wellbeing-screen.active .wellbeing-advice,.wellbeing-screen.active .edition-heading h1 span{animation:none!important}}

/* Shared Quiet Strength marks use the same theme-colored vector icon as the section navigation. */
.qi-symbol{display:inline-block;width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}.qi-symbol .yin-dot{fill:currentColor;stroke:none}.edition-heading h1 .qi-title-mark{width:.62em;height:.62em;margin-left:.22em;color:#a36a40;vertical-align:.02em}.wellbeing-feature .qi-orbit .qi-symbol{width:68%;height:68%;color:#dfc0cc}
.calendar-event-detail{font-size:1.1vh;line-height:1.25;margin-top:.4vh;color:#5d6253;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
/* Flight Watch: next MCI arrivals and departures under the aircraft list. */
.flight-mci{margin-top:1.4vh;padding-top:1.1vh;border-top:1px solid rgba(225,210,170,.35)}
.flight-mci-heading{font:1.45vh Georgia,serif;letter-spacing:.2em;text-transform:uppercase;color:#d9c79a;margin-bottom:.5vh}
.flight-mci-row{display:grid;grid-template-columns:6.4vw minmax(0,1fr) auto;gap:.7vw;align-items:baseline;padding:.65vh 0;border-bottom:1px solid rgba(225,210,170,.16);font:2.1vh Palatino,'Palatino Linotype','Book Antiqua',Georgia,serif;color:#efe4c8}
.flight-mci-row small{font-size:.68em;color:#c9b98e;letter-spacing:.06em}
.flight-mci-city{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.flight-mci-status{font-size:1.65vh;white-space:nowrap}
.flight-mci-ok{color:#b9d1b0}.flight-mci-late{color:#f0b3a6}
@media(max-width:700px){.flight-mci-row{grid-template-columns:4.6em minmax(0,1fr) auto;gap:8px;font-size:16px;padding:6px 0}.flight-mci-heading{font-size:11px}.flight-mci-status{font-size:13px}}
/* Flight Watch moving map: county and highway overlay, labels, gliding planes. */
.flight-screen .map-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;pointer-events:none;opacity:.9}
.flight-screen .map-label{position:absolute;transform:translate(-50%,-50%);white-space:nowrap;pointer-events:none}
.flight-screen .map-label-county{font:italic 1.05vh Georgia,serif;letter-spacing:.06em;color:rgba(248,238,214,.55);text-shadow:0 0 3px #000}
.flight-screen .map-label-interstate,.flight-screen .map-label-highway{font:bold .95vh Arial,sans-serif;padding:.15vh .35vw;border-radius:.4vh;text-shadow:none}
.flight-screen .map-label-interstate{background:#2f4d78;color:#f4ecd8;border:1px solid #f0b75a}
.flight-screen .map-label-highway{background:#f4ecd8;color:#2b2b22;border:1px solid #6b5d3a}
.flight-screen .map-landmark{z-index:2}
.flight-screen .sky-plane{position:absolute;width:0;height:0;z-index:4}
.flight-screen .sky-icon{position:absolute;left:-1.6vh;top:-1.6vh;width:3.2vh;height:3.2vh;filter:drop-shadow(0 0 2px #000)}
.flight-screen .sky-label{position:absolute;left:1.4vh;top:.6vh;font:1.05vh Arial,sans-serif;color:#fff3e4;background:#20372bd9;padding:.15vh .3vw;white-space:nowrap}
.flight-screen .sky-recent{opacity:.7}.flight-screen .sky-passed{opacity:.4}
.flight-screen .sky-nearest .sky-icon{filter:drop-shadow(0 0 .7vh #fff6e0) drop-shadow(0 0 2px #000)}
.flight-screen .sky-low-power .sky-plane,.flight-screen.sky-low-power .sky-plane{transition:left .5s linear,top .5s linear}
.flight-screen #radar-trails polyline.sky-trail-line{fill:none;stroke-width:2.6px;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}
.flight-screen #radar-trails polyline.sky-trail-case{fill:none;stroke:#0b120d;stroke-opacity:.55;stroke-width:5px;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:700px){.flight-screen .sky-icon{left:-11px;top:-11px;width:22px;height:22px}.flight-screen .sky-label{font-size:9px;left:10px;top:4px}.flight-screen .map-label-county{font-size:8px}.flight-screen .map-label-interstate,.flight-screen .map-label-highway{font-size:7px;padding:1px 3px}}
@media(prefers-reduced-motion:reduce){.flight-screen .sky-plane{transition:none}}
.flight-screen .map-label[hidden]{display:none}
/* Flight Watch views and the "over the farm" line. */
.flight-screen .flight-view-switch{position:absolute;left:1vh;bottom:1vh;z-index:6;display:flex;border:1px solid #c9b98e;background:#14291ed9}
.flight-screen .flight-view-switch button{font:1.25vh Georgia,serif;letter-spacing:.06em;color:#e6d8b4;background:none;border:0;padding:.5vh .9vw;cursor:pointer}
.flight-screen .flight-view-switch button[aria-pressed="true"]{background:#e6d4a3;color:#1f3328}
.flight-screen .flight-overhead{position:absolute;left:50%;top:1vh;transform:translateX(-50%);z-index:6;max-width:80%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:1.5vh Georgia,serif;color:#1f3328;background:#f3e6c1;border:1px solid #8e7d52;padding:.5vh 1vw;box-shadow:0 .3vh 1vh rgba(0,0,0,.35)}
.flight-screen .sky-overhead .sky-icon{filter:drop-shadow(0 0 1vh #ffe9a8) drop-shadow(0 0 2px #000)}
.flight-screen .radar-ring[hidden]{display:none}
@media(max-width:700px){.flight-screen .flight-view-switch button{font-size:11px;padding:4px 9px}.flight-screen .flight-overhead{font-size:11px;top:36px;max-width:92%}}
.flight-screen .map-label-state{font:bold .9vh Arial,sans-serif;padding:.1vh .3vw;border-radius:50%/40%;background:#fffaf0;color:#222;border:1px solid #333;text-shadow:none}
.flight-screen.flight-view-farm .map-landmark{font-size:1.45vh}
@media(max-width:700px){.flight-screen .map-label-state{font-size:7px;padding:1px 3px}.flight-screen.flight-view-farm .map-landmark{font-size:9px}}
.flight-screen .map-landmark[hidden]{display:none}
.horoscope-panel .horoscope-chart{font:1.4vh Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#d9b8c2;margin:-.8vh 0 1vh;line-height:1.4}
/* Moon screen on the TV and computers: larger type for reading across a room. */
@media(min-width:701px){.moon-page .moon-layout .section-title{font-size:clamp(10px,1.6vh,14px);letter-spacing:.12vw}.moon-page .moon-feature .moon-icon{width:clamp(70px,17vh,150px);height:clamp(70px,17vh,150px);margin:1vh auto}.moon-page .moon-layout h2{font-size:clamp(17px,3.4vh,30px)}.moon-page .moon-layout p{font-size:clamp(13px,2.3vh,20px);line-height:1.45}.moon-page .moon-layout .moon-note{font-size:clamp(10px,1.6vh,14px)}.moon-page .moon-feature .moon-times,.moon-page .moon-feature .moon-until{font-size:clamp(12px,2vh,17px);margin:.6vh 0;color:#5f5a4a}.moon-page .moon-feature .moon-until{font-style:italic;color:#86636d}.moon-page #moon-events>div{padding:1.4vh 0}.moon-page #moon-events span{font-size:clamp(14px,2.5vh,21px)}.moon-page #moon-events strong{font-size:clamp(11px,1.9vh,16px)}.moon-page .horoscope-panel h2{font-size:clamp(15px,2.8vh,23px);margin:.9vh 0 .6vh}.moon-page .horoscope-panel .horoscope-chart{font-size:clamp(9px,1.45vh,12px);margin:0 0 .8vh}.moon-page .horoscope-panel article p:not(.horoscope-chart){font-size:clamp(12px,2.05vh,17px);line-height:1.4}}
@media(max-width:700px){.moon-page .moon-feature .moon-times,.moon-page .moon-feature .moon-until{font-size:13px;margin:4px 0}.moon-page .moon-feature .moon-until{font-style:italic;color:#86636d}}
/* Calendar on the TV and computers: readable across a room. Time, title and the
   place name; descriptions stay on phones. */
@media(min-width:701px){.calendar-screen .calendar-next{font:italic clamp(13px,2.6vh,22px) Georgia,serif;color:#3e5842;margin:0 0 1vh 1vw}.calendar-screen .calendar-legend{font-size:clamp(10px,1.7vh,14px)}.calendar-screen .calendar-day{padding:1.2vh .6vw}.calendar-screen .calendar-day-heading{font-size:clamp(11px,2vh,17px)}.calendar-screen .calendar-day-number{font-size:clamp(18px,3.6vh,30px);margin:.2vh 0 1vh}.calendar-screen .calendar-event{padding:.8vh .55vw;margin-bottom:.9vh}.calendar-screen .calendar-event-time{font-size:clamp(10px,1.9vh,15px);margin-bottom:.3vh}.calendar-screen .calendar-event-title{font-size:clamp(11px,2.05vh,17px);line-height:1.25;-webkit-line-clamp:4}.calendar-screen .calendar-event-place{font-size:clamp(9px,1.5vh,12px);line-height:1.3;margin-top:.3vh;color:#6e6260;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;white-space:normal}.calendar-screen .calendar-event-about{display:none}.calendar-screen .calendar-event-source{font-size:clamp(8px,1.4vh,12px)}.calendar-screen .calendar-empty{font-size:clamp(10px,1.8vh,15px)}.calendar-screen .calendar-status{font-size:clamp(9px,1.5vh,12px)}}
/* Calendar on phones: one column, a day per row with its events beside the date. */
@media(max-width:700px){.calendar-screen .calendar-next{font:italic 15px/1.4 Georgia,serif;color:#3e5842;margin:0 0 8px}.calendar-screen .calendar-grid{grid-template-columns:minmax(0,1fr)}.calendar-screen .calendar-day{display:grid;grid-template-columns:44px minmax(0,1fr);column-gap:10px;align-content:start;min-height:0;padding:10px 6px;border-right:0}.calendar-screen .calendar-day-heading{grid-column:1;grid-row:1;align-self:start}.calendar-screen .calendar-day-number{grid-column:1;grid-row:1;align-self:start;margin:0;padding-top:15px}.calendar-screen .calendar-event,.calendar-screen .calendar-empty{grid-column:2}.calendar-screen .calendar-empty{margin:0;align-self:center}.calendar-screen .calendar-event-time{font-size:12px}.calendar-screen .calendar-event-title{font-size:15px;line-height:1.3}.calendar-screen .calendar-event-place{font-size:12px;color:#6e6260;margin-top:2px}.calendar-screen .calendar-event-about{font-size:12px;line-height:1.4;margin-top:3px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.calendar-screen .calendar-event-source{font-size:10px}}
/* Calendar in a short, narrow window (a phone turned sideways, a small browser
   pane): one compact row beside the menu button so the week shows right away. */
@media(max-width:700px) and (max-height:600px){.web-main:has(>.calendar-screen.active){padding-top:4px}.calendar-screen>.edition-heading{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 8px;padding-left:58px;margin-bottom:4px;height:auto;min-height:0;flex-basis:auto}.calendar-screen>.edition-heading>div:first-child{flex:0 0 auto;margin:0}.calendar-screen .calendar-week-tools #calendar-week{font-size:12px;margin-right:2px}.calendar-screen>.edition-heading .eyebrow{display:none}.calendar-screen>.edition-heading h1{font-size:22px;margin:0}.calendar-screen .calendar-week-tools{width:auto;gap:4px;font-size:12px}.calendar-screen .calendar-week-tools button{min-width:30px;min-height:28px;padding:2px 8px;font-size:12px}.calendar-screen .calendar-next{font-size:13px;margin:2px 0 4px}.calendar-screen .calendar-legend{font-size:10px;margin:0 0 4px}.calendar-screen .calendar-day{padding:6px 4px}}
/* Coming Up on the TV and computers: the small labels and dates readable across a room. */
@media(min-width:701px){.countdown-screen .countdown-feature .eyebrow{font-size:clamp(10px,1.6vh,13px)}.countdown-screen .countdown-big-label{font-size:clamp(10px,1.8vh,15px);letter-spacing:.12em}.countdown-screen .countdown-feature p{font-size:clamp(12px,2.1vh,18px)}.countdown-screen .countdown-card h2{font-size:clamp(14px,2.6vh,22px)}.countdown-screen .countdown-card p{font-size:clamp(11px,1.8vh,15px)}.countdown-screen .countdown-card-unit{font-size:clamp(9px,1.5vh,13px)}.countdown-screen .countdown-note{font-size:clamp(10px,1.6vh,13px)}.countdown-screen .countdown-list{grid-template-rows:none;grid-auto-rows:minmax(0,1fr)}}
/* History: real events under the story, the home's age, and small print sized for the TV. */
.history-screen .history-age{font-style:italic;color:#86636d;margin:.4vh 0 0}.history-screen .history-real{margin-top:1.6vh;padding-top:1.2vh;border-top:1px solid #d7c4c5}.history-screen .history-real ul{list-style:none;margin:.6vh 0 0;padding:0}.history-screen .history-real li{margin:0 0 .8vh;line-height:1.4}.history-screen .history-real li strong{font-weight:normal;color:#86636d;margin-right:.4em}.history-screen .history-credit{margin:.4vh 0 0;color:#8b8171}
@media(min-width:701px){.history-screen .history-year>span,.history-screen .history-story .eyebrow{font-size:clamp(10px,1.6vh,13px)}.history-screen .history-age{font-size:clamp(12px,2vh,17px)}.history-screen .history-footnote{font-size:clamp(11px,1.7vh,14px)}.history-screen #history-source{font-size:clamp(10px,1.6vh,13px)}.history-screen .history-dedication{font-size:clamp(13px,2.2vh,18px)}.history-screen .history-real li{font-size:clamp(12px,2.05vh,17px)}.history-screen .history-credit{font-size:clamp(9px,1.4vh,12px)}}
@media(max-width:700px){.history-screen .history-age{font-size:14px}.history-screen .history-real li{font-size:14px}.history-screen .history-credit{font-size:11px}}
/* Word of the Day: dictionary credit, this week's words, TV-sized detail text, and a full-width definition on phones. */
.word-screen .word-source{margin:1.2vh 0 0;font:italic 1.6vh Georgia,serif;color:#d9c3c8}.word-screen .word-week{margin:.8vh 0 0;font:1.7vh Georgia,serif;color:#7d6b68;letter-spacing:.02em}
@media(min-width:701px){.word-screen .word-feature .eyebrow,.word-screen .word-details .eyebrow,.word-screen .word-practice .eyebrow{font-size:clamp(10px,1.6vh,13px)}.word-screen .word-details p,.word-screen .word-details blockquote{font-size:clamp(12px,2.2vh,17px);line-height:1.35}.word-screen .word-practice{max-height:none;padding:clamp(4px,.9vh,8px) clamp(8px,1vw,14px)}.word-screen .word-practice p{font-size:clamp(12px,2vh,16px)}.word-screen .word-source{font-size:clamp(11px,1.7vh,14px)}.word-screen .word-week{font-size:clamp(11px,1.8vh,15px)}}
@media(max-width:700px){.word-screen .word-feature #word-definition{max-width:none}.word-screen .word-source{font-size:12px}.word-screen .word-week{font-size:13px}}
/* Wellbeing: readable on the TV, and in mid-size windows the reflection spans the
   top with the movement and TCM advice side by side, so nothing is cut off. */
@media(min-width:701px){.wellbeing-screen .wellbeing-grid .journal-panel p{font-size:clamp(13px,2.15vh,17px);line-height:1.4}.wellbeing-screen .wellbeing-grid .journal-panel #qi-tcm-tip{font-size:clamp(14px,2.3vh,18px)}.wellbeing-screen .wellbeing-feature small,.wellbeing-screen .wellbeing-practice .practice-footnote,.wellbeing-screen .wellbeing-grid .journal-panel .journal-small{font-size:clamp(10px,1.6vh,13px)}.wellbeing-screen .qigong-tag{font-size:clamp(9px,1.4vh,12px)}.wellbeing-screen .wellbeing-grid .journal-panel a{font-size:clamp(10px,1.5vh,13px)}}
@media(min-width:701px) and (max-width:900px){.wellbeing-screen .wellbeing-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.wellbeing-screen .wellbeing-feature{grid-column:1/-1}}
