/* Shared layout rules. Colours remain in brand.css. */
html{scroll-padding-top:calc(8.5rem + env(safe-area-inset-top,0px));-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{min-width:280px;padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}
img,svg,iframe{max-width:100%}
input,select,textarea{font-size:1rem;max-width:100%}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
button,a{touch-action:manipulation}
.wrap{width:min(calc(100% - clamp(32px,5vw,64px)),1320px)}
.article-body{width:min(calc(100% - clamp(32px,5vw,64px)),780px)}
:where(.header-inner,.desktop-nav,.hero-inner,.manifesto-grid>div,.podcast-inner>div,.about-grid>div,.hero-grid>div,.archive-toolbar>* ,.catalog-filters>label,.editor-layout>*,.draft-row>div){min-width:0}
:where(h1,h2,h3,h4,h5,.signature,.cast){overflow-wrap:break-word;hyphens:auto}
.site-header{position:sticky;top:0;z-index:30;background:#10151cf5;backdrop-filter:blur(12px);padding-top:env(safe-area-inset-top,0px)}
.header-inner{min-height:80px}
.brand{flex-shrink:0}
.desktop-nav{display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px}
.bottom-nav{display:none}
:where(section[id],.calendar-panel,.editor-preview){scroll-margin-top:1rem}
.desktop-nav .nav-link{min-height:44px;display:flex;align-items:center}
.button,.external-link{min-height:48px;max-width:100%;white-space:normal;line-height:1.2}
.button span,.external-link span{flex-shrink:0}
.calendar-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) minmax(180px,.7fr) auto;gap:20px;align-items:end}
.calendar-month-nav{min-width:0}.calendar-month-nav select{min-width:0;flex:1}
.calendar-month-nav button{min-width:44px;flex:0 0 44px}
.calendar-filter{min-width:0}.calendar-filter select{width:100%;font-size:1rem}
.calendar-view-switch{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:5px;border-radius:8px;background:#0b1119}
.calendar-view-switch button{min-height:48px;border:1px solid transparent;background:transparent;color:#c6d0d8;border-radius:6px;padding:10px 16px;font:700 1rem 'Barlow Condensed',sans-serif;letter-spacing:.04em}
.calendar-view-switch button.is-active{background:#295e99;color:#fff;border-color:#5b91ce70}
.calendar-agenda{min-width:0;display:flex;flex-direction:column;gap:12px}
.calendar-agenda-item{width:100%;display:grid;grid-template-columns:minmax(0,1fr) 24px;align-items:center;gap:14px;text-align:left;padding:18px;border:1px solid #ffffff20;border-left:4px solid var(--electric2);border-radius:8px;background:linear-gradient(145deg,#263342,#19222d);color:white;min-height:96px}
.calendar-agenda-item:hover,.calendar-agenda-item.is-selected{background:#2d3c4d;border-color:var(--electric2)}
.calendar-agenda-copy{display:flex;flex-direction:column;gap:6px;min-width:0}
.calendar-agenda-date{color:var(--electric2);font:700 1rem 'Barlow Condensed',sans-serif;letter-spacing:.04em}
.calendar-agenda-name{font:800 clamp(1.25rem,2.3vw,1.6rem)/1.15 'Barlow Condensed',sans-serif;overflow-wrap:break-word}
.calendar-agenda-meta{font-size:.9rem;color:#c6d0d8;line-height:1.5}
.calendar-panel-head h3{overflow-wrap:break-word}
.calendar-day{touch-action:manipulation}
.search input{border-radius:6px;font-size:1rem;min-height:48px}
.catalog-filters select,.category{min-height:48px}
.article-copy,.story-copy{min-width:0}
.article h5,.story h3{line-height:1.12}
.article-kicker,.story-meta{flex-wrap:wrap}
.story-bottom{gap:12px}
.external-link{width:fit-content;justify-content:space-between}
.player-wrap{min-width:0;max-width:100%}
.player-wrap iframe{width:100%;height:300px;max-width:100%}
.editor-card input,.editor-card select,.editor-card textarea{font-size:1rem;min-width:0}
.editor-actions button,.draft-row button{min-height:48px}
.draft-row>div{flex:1;overflow-wrap:anywhere}.draft-row button{flex-shrink:0}
.footer-inner{flex-wrap:wrap;align-items:center}
.footer a{min-height:44px;display:inline-flex;align-items:center}
@media(max-width:1100px){
 .story-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .hero-grid{grid-template-columns:minmax(0,1fr);gap:40px;padding:48px 0 68px}
 .hero-copy{padding-top:0}.hero-copy h1{font-size:clamp(4.1rem,9vw,7rem);line-height:.92}
 .player-wrap{width:100%;max-width:720px;justify-self:start;order:0}
 .editor-layout{grid-template-columns:1fr}
}
@media(max-width:1000px){
 html{scroll-padding-top:1rem}
 .site-header{position:relative}
 .site-header .header-inner{padding-top:14px;padding-bottom:14px;min-height:76px;gap:12px 20px}
 .site-header .header-inner{flex-direction:row;flex-wrap:wrap;justify-content:space-between}
 .desktop-nav{display:flex;flex:1 1 100%;width:100%;flex-direction:row;flex-wrap:wrap;align-items:center;overflow:visible;gap:4px 10px;padding:0}
 .nav-link{white-space:normal;border-radius:5px;padding:10px 12px;line-height:1.4}
 .nav-link:hover,.nav-link:focus-visible{background:#202934}
 .nav-link[aria-current=page]{border:0;box-shadow:inset 0 -2px 0 var(--accent)}
 .calendar-toolbar{grid-template-columns:1fr 1fr;gap:16px}
 .calendar-view-switch{grid-column:1/-1;max-width:300px}
}
@media(max-width:900px){
 .manifesto-grid,.about-grid,.podcast-inner{grid-template-columns:1fr;gap:28px}
 .manifesto-copy{padding-top:0;max-width:none}
 .about-copy{max-width:none}.waveform{height:120px;overflow:hidden;justify-content:flex-start}
 .calendar-layout{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:700px){
 .hero,.hero-inner{min-height:0}.hero-inner{padding:48px 0 56px}
 .hero-art{object-position:68% center}
 .hero h1{font-size:clamp(2.6rem,10.5vw,4.5rem);line-height:.95;margin:22px 0 26px;max-width:100%}
 .hero .eyebrow{font-size:.85rem;letter-spacing:.08em}
 .hero-lead{font-size:1rem;line-height:1.65;max-width:40rem}
 .hero .button{gap:24px;padding:15px 18px;font-size:1rem}
 .manifesto,.reading,.about{padding:52px 0}.podcast{padding:48px 0}
 .manifesto h2,.reading h2,.podcast h2,.about h2,.calendar-intro h2{font-size:clamp(2.75rem,10.5vw,4.3rem);line-height:1}
 .manifesto-copy p,.about-copy p,.podcast p{font-size:1rem;line-height:1.7}
 .about-copy{padding-left:18px}.signature{line-height:1.6;letter-spacing:.06em}
 .story-grid,.article-grid{grid-template-columns:minmax(0,1fr)}
 .story-link{min-height:0}.story-copy,.article-copy{padding:20px}
 .story h3{font-size:1.8rem}.article h5{font-size:1.65rem}
 .section-heading{margin-bottom:24px;padding-bottom:24px}
 .section-intro{max-width:none}
 .intro-inner{padding:42px 0}.archive-intro h1{font-size:clamp(2.9rem,11vw,4.8rem);line-height:1}
 .archive-intro p,.lead{font-size:1rem;line-height:1.65}
 .archive{padding:40px 0 64px}.archive-toolbar{align-items:stretch;gap:24px}
 .filter-heading h2{font-size:clamp(2.2rem,8vw,3.4rem);line-height:1.05}
 .category-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:22px 0}
 .category{white-space:normal;text-align:left;letter-spacing:.04em;font-size:.95rem;display:flex;align-items:center;justify-content:space-between;gap:7px;padding:12px;line-height:1.25}
 .category span{flex-shrink:0;margin-left:0}
 .catalog-filters{display:grid;grid-template-columns:1fr 1fr;gap:14px}
 .catalog-filters label{min-width:0;display:flex;flex-direction:column;align-items:stretch;gap:8px}
 .catalog-filters select{max-width:100%;padding-right:12px}
 .section-title-row{flex-wrap:wrap;gap:10px;margin-bottom:22px}.section-title-row h3{font-size:2.3rem;line-height:1.05}
 .calendar-section{padding:52px 0}.calendar-intro{gap:18px;margin-bottom:24px}
 .calendar-intro p,.calendar-note{font-size:1rem;line-height:1.6}
 .calendar-panel-head{padding:22px 18px}.calendar-panel-head h3{font-size:2rem;line-height:1.1}
 .calendar-event{padding:20px 18px}.calendar-layout{gap:20px}
 .hero-grid{padding:36px 0 56px;gap:32px}.hero-copy h1{font-size:clamp(3.6rem,14vw,6rem);line-height:.95;margin:20px 0 25px}
 .player-wrap{padding:16px;box-shadow:6px 6px 0 #f5c54220}.player-heading h2{font-size:2rem}
 .external-link{width:100%;padding:14px;gap:12px;font-size:1rem;letter-spacing:.06em;line-height:1.3}
 .cast{font-size:.95rem;line-height:1.8;letter-spacing:.04em}
 .editor-card{padding:20px}.editor-layout{gap:24px}.editor-card h2{font-size:2rem;line-height:1.1}
 .editor-actions{flex-direction:column;align-items:stretch;gap:12px}.editor-actions button{width:100%}
 .editor-card .catalog-filters{grid-template-columns:1fr}
 .draft-row{gap:12px}.draft-row button{padding:10px}
 .article-view h1{font-size:clamp(2.4rem,8vw,3.6rem);line-height:1.1}
 .article-body{font-size:1rem;line-height:1.8;padding:32px 0 56px}
 .article-body h2,.article-body h3{font-size:1.9rem;line-height:1.15}.article-hero-image{margin-bottom:24px}
 .footer{padding:20px 0;padding-bottom:max(20px,env(safe-area-inset-bottom,0px))}.footer-inner{align-items:flex-start;gap:10px}
}
@media(max-width:600px){
 .site-header .header-inner{align-items:center;flex-wrap:wrap;flex-direction:row;min-height:76px;gap:16px;padding-bottom:18px}
 .site-header #main-nav{display:none!important}
 .bottom-nav{position:static;display:flex;flex:1 1 100%;align-items:center;justify-content:space-between;gap:2px;width:100%;min-height:60px;margin:0;padding:7px;border:1px solid #ffffff22;border-radius:999px;background:linear-gradient(145deg,#27313c,#151b22 72%);box-shadow:0 4px 0 #0a0e13,inset 1px 1px 0 #ffffff18}
 .bottom-nav-link{position:relative;isolation:isolate;display:flex;flex:1 1 0;align-items:center;justify-content:center;gap:0;min-width:34px;min-height:44px;padding:0 7px;border-radius:999px;color:#aeb8c2;transition:flex .28s cubic-bezier(.2,.8,.2,1),background-color .2s,color .2s,transform .16s;}
 .bottom-nav-link:active{transform:scale(.97)}
 .bottom-nav-link svg{flex:0 0 22px;transition:color .2s,transform .22s cubic-bezier(.2,.8,.2,1)}
 .bottom-nav-label{display:block;max-width:0;overflow:hidden;opacity:0;white-space:nowrap;text-overflow:ellipsis;font:700 .69rem/1.15 'Barlow Condensed','Arial Narrow',sans-serif;letter-spacing:.035em;text-transform:uppercase;transition:max-width .28s cubic-bezier(.2,.8,.2,1),opacity .18s,margin .2s;}
 .bottom-nav-link.is-active{flex:0 1 112px;justify-content:flex-start;gap:7px;background:linear-gradient(145deg,#314e69,#1e2b39);color:#fff;box-shadow:inset 1px 1px 0 #8ab6e330,2px 2px 0 #0b1119;}
 .bottom-nav-link.is-active svg{color:#8ab6e3;transform:scale(1.04)}
 .bottom-nav-link.is-active .bottom-nav-label{max-width:72px;opacity:1;}
 .bottom-nav-link:focus-visible{outline:2px solid #8ab6e3;outline-offset:3px}
 .calendar-toolbar{grid-template-columns:minmax(0,1fr);gap:14px}
 .calendar-month-nav{width:100%}.calendar-month-nav select{font-size:1.15rem}
 .calendar-view-switch{grid-column:auto;max-width:none;gap:6px}
 .calendar-day,.calendar-empty{min-height:64px}.calendar-days{gap:5px}
 .calendar-day{padding:8px 4px}.calendar-day-dots{gap:3px}
 .calendar-agenda-item{padding:16px;gap:10px}
}
@media(max-width:380px){
 .catalog-filters{grid-template-columns:1fr}
 .hero h1{font-size:2.5rem}.hero-copy h1{font-size:3.6rem}
 .brand-text{font-size:.78rem}.brand-mark{font-size:2.1rem}
 .editor-card{padding:16px}.player-wrap{padding:12px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.calendar-agenda-item{transition:none}}

@media(max-width:700px){.podcast-page .player-wrap iframe{height:350px}}
@media(prefers-reduced-motion:reduce){.bottom-nav-link,.bottom-nav-link svg,.bottom-nav-label{transition:none}}

/* Text controls replace directional arrows on every screen size. */
.calendar-month-nav button { width: auto; flex: 0 0 auto; min-width: 76px; padding: 10px 9px; font-size: .95rem; letter-spacing: .02em; }
.calendar-month-nav select { background-image: none; padding-right: 12px; }
.calendar-agenda-item { grid-template-columns: minmax(0, 1fr); }
@media (max-width: 400px) {
  .calendar-month-nav { flex-wrap: wrap; }
  .calendar-month-nav select { order: -1; flex: 1 0 100%; width: 100%; }
  .calendar-month-nav button { flex: 1 1 0; }
}
