/* pwp-authored-additional-v1-20261028: technical foundation only */
@layer pwp-runtime-foundation {
  :root {
    --bg:#EFF6FF; --text:#1E40AF;
    --surface:#FFFFFF; --text-muted:#475569;
    --primary:#1E3A8A; --primary-fg:#FFFFFF;
    --border:#BFDBFE;
  }
  *, *::before, *::after { box-sizing:border-box; }
  html { scroll-behavior:smooth; }
  body { margin:0; background:var(--bg); color:var(--text); }
  img, video { max-inline-size:100%; block-size:auto; }
  button, input, select, textarea { font:inherit; }
  button, summary { cursor:pointer; }
  :where(a,button,input,select,textarea,summary):focus-visible { outline:2px solid currentColor; outline-offset:4px; }
  .skip { position:fixed; inset-block-start:-10rem; inset-inline-start:1rem; z-index:10000; padding:.75rem; background:var(--bg); color:var(--text); }
  .skip:focus { inset-block-start:1rem; }
  /* Legal prose is a separate utility; never constrain the author's main site. */
  .legal-container { max-inline-size:76ch; margin-inline:auto; padding:clamp(1rem,4vw,3rem); }
  .legal-body { line-height:1.7; overflow-wrap:anywhere; }
  .legal-body p + p, .legal-body section + section { margin-block-start:1.25em; }
  .legal-body table { display:block; overflow-x:auto; max-inline-size:100%; }
  .legal-body h1, .legal-body h2, .legal-body h3, .legal-title { line-height:1.2; }
  [data-cookie-fallback] { position:fixed; inset-inline:1rem; inset-block-end:1rem; z-index:9999; max-inline-size:34rem; padding:1rem; border:1px solid var(--border); background:var(--bg); color:var(--text); }
  [data-cookie-fallback] .cookie-text { font:14px/1.5 system-ui,sans-serif; }
  [data-cookie-fallback] .cookie-actions { display:flex; flex-wrap:wrap; gap:.75rem; margin-block-start:.75rem; }
  [data-cookie-fallback] button { min-block-size:44px; padding:.6rem 1rem; border:1px solid var(--border); background:var(--surface); color:var(--text); }
  [data-cookie-fallback] [data-action="accept-cookie"] { background:var(--primary); color:var(--primary-fg); }
}
/* Required state, not a visual layout. Expanded pages may be grid/flex/block. */
[hidden], .cookie-banner.hidden { display:none !important; }
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}

/* === AUTHOR-OWNED SITE STYLES === */
:root{--bg:#f4efdf;--text:#183c35;--surface:#fffaf0;--text-muted:#53675e;--primary:#b8422e;--primary-fg:#fffaf0;--border:#a8b1a0;--blue:#24657a;--yellow:#e7b950}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:"DM Sans",sans-serif}a{color:inherit;text-underline-offset:4px}a:hover{color:var(--primary)}button{font:inherit}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--primary);outline-offset:4px}[hidden]{display:none!important}.skip{position:absolute;top:-100px;left:1rem;background:var(--surface);padding:.8rem;z-index:20}.skip:focus{top:1rem}.site-header{background:var(--bg);border-bottom:1px solid var(--border)}.header-inner{max-width:1440px;margin:auto;padding:1.2rem 4%;display:flex;align-items:center;gap:2rem}.brand{text-decoration:none;display:flex;align-items:center;gap:.7rem;margin-right:auto;font-family:"Fraunces",serif;font-weight:700;font-size:1.2rem;line-height:1.05;letter-spacing:-.04em}.brand svg{width:36px;height:43px;flex:none}.brand span{max-width:155px;overflow-wrap:anywhere}.nav-links{display:flex;align-items:center;gap:1.4rem;font-size:.91rem;font-weight:700}.nav-links a{text-decoration:none}.nav-links a:hover{text-decoration:underline}.language{display:flex;gap:.45rem;border-left:1px solid var(--border);padding-left:1.2rem;font-size:.8rem}.language a{text-decoration:none}.language a[aria-current]{text-decoration:underline}.page{min-height:50vh}.wrap{width:min(1320px,92%);margin:auto}.hero{display:grid;grid-template-columns:1fr .9fr;min-height:610px;border-bottom:1px solid var(--border)}.hero-copy{padding:clamp(4rem,8vw,8rem) 8% 4rem 0;align-self:center}.kicker{font-size:.8rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--primary);margin:0 0 1.4rem}.hero h1,.article-head h1,.contact-head h1{font-family:"Fraunces",serif;font-weight:500;letter-spacing:-.055em;line-height:.98;margin:0}.hero h1{font-size:clamp(4rem,7.5vw,7.6rem);max-width:8ch}.hero-copy>p:not(.kicker){font-size:clamp(1.1rem,1.5vw,1.3rem);line-height:1.55;max-width:34rem;margin:2rem 0}.button-link{display:inline-flex;align-items:center;gap:1.7rem;background:var(--primary);color:var(--primary-fg);padding:1rem 1.3rem;text-decoration:none;font-weight:700}.button-link:hover{background:var(--text);color:white}.hero-art{background:#d6a744;position:relative;overflow:hidden;display:flex;align-items:end;justify-content:center;min-height:450px}.hero-art svg{width:100%;height:100%;position:absolute;inset:0}.art-caption{position:relative;z-index:1;background:var(--surface);margin:0 0 1.5rem;padding:.7rem 1rem;font-size:.78rem;font-weight:700;letter-spacing:.03em}.intro{display:grid;grid-template-columns:.7fr 1.3fr;gap:3rem;padding:5.5rem 0}.intro h2,.section-heading h2,.article-body h2,.contact-content h2{font-family:"Fraunces",serif;font-weight:500;letter-spacing:-.035em;line-height:1.08}.intro h2{font-size:clamp(2.3rem,4vw,4rem);margin:0}.intro p{font-size:1.2rem;line-height:1.65;max-width:48rem;margin:0 0 1.2rem}.text-link{font-weight:700;color:var(--primary)}.explore{background:var(--text);color:var(--surface);padding:5rem 0}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:2rem;margin-bottom:2rem}.section-heading h2{font-size:clamp(2.5rem,4vw,4rem);margin:0}.section-heading p{max-width:24rem;line-height:1.5;margin:0;color:#d3ddd0}.story-list{border-top:1px solid #789086}.story-link{display:grid;grid-template-columns:3rem 1fr 1fr 2rem;gap:1.5rem;align-items:center;border-bottom:1px solid #789086;padding:1.5rem 0;text-decoration:none}.story-link:hover{color:#f2c76d}.story-link .num{color:#e7b950;font-family:"Fraunces",serif;font-size:1.3rem}.story-link strong{font-family:"Fraunces",serif;font-size:clamp(1.5rem,2.5vw,2.3rem);font-weight:500}.story-link .desc{color:#d3ddd0;line-height:1.45}.story-link .arrow{font-size:1.5rem}.practical{padding:4rem 0 5rem;display:flex;align-items:center;justify-content:space-between;gap:2rem}.practical h2{font-family:"Fraunces",serif;font-size:2rem;font-weight:500;margin:0 0 .5rem}.practical p{margin:0;line-height:1.5}.article-head{background:#d9e2d1;padding:5rem 0}.article-head .wrap{display:grid;grid-template-columns:1fr .55fr;gap:3rem;align-items:end}.article-head h1,.contact-head h1{font-size:clamp(3.4rem,7vw,6.5rem);max-width:12ch}.article-head .lead{font-size:1.2rem;line-height:1.55;max-width:29rem;margin:0}.article-body{display:grid;grid-template-columns:220px minmax(0,720px);gap:clamp(2rem,7vw,8rem);padding:4.5rem 0 6rem}.article-aside{font-size:.9rem;line-height:1.6;color:var(--text-muted)}.article-aside strong{display:block;color:var(--text);margin-bottom:.5rem}.article-aside a{display:block;margin:.5rem 0}.prose{font-size:1.08rem;line-height:1.75}.prose p{margin:0 0 1.4rem}.prose h2{font-size:2.1rem;margin:2.8rem 0 1rem}.prose h2:first-child{margin-top:0}.prose ul{padding-left:1.3rem}.prose li{margin:.5rem 0}.note{border-left:4px solid var(--primary);padding:.2rem 0 .2rem 1.3rem;margin:2rem 0;color:var(--text-muted)}.contact-head{background:#e7b950;padding:5rem 0}.contact-head p{font-size:1.2rem;max-width:38rem;line-height:1.6}.contact-content{padding:4rem 0 6rem;display:grid;grid-template-columns:1fr 1fr;gap:3rem}.contact-content h2{font-size:2rem}.contact-content p{line-height:1.7}.footer{background:#122f2a;color:#f4efdf;padding:4rem 0 2rem}.footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:3rem}.footer .brand{margin-bottom:1.5rem}.footer p{line-height:1.6;color:#cfdbcf;font-size:.92rem}.footer h2{font-size:.9rem;margin:0 0 1rem}.footer-links{display:flex;flex-direction:column;gap:.65rem;align-items:flex-start;font-size:.9rem}.footer a:hover{color:#e7b950}.footer-bottom{border-top:1px solid #60766c;margin-top:3rem;padding-top:1.4rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.8rem}.footer button{border:0;background:none;color:inherit;padding:0;text-decoration:underline;cursor:pointer}.cookie{position:fixed;z-index:30;bottom:1rem;left:1rem;right:1rem;max-width:760px;background:var(--surface);border:1px solid var(--text);box-shadow:0 8px 30px #183c3530;padding:1.4rem;display:flex;gap:1.5rem;align-items:center}.cookie p{margin:.3rem 0 0;line-height:1.5;font-size:.9rem}.cookie-actions{display:flex;gap:.5rem;flex-wrap:wrap;flex:none}.cookie button{padding:.7rem .9rem;border:1px solid var(--text);background:var(--text);color:white;cursor:pointer}.cookie button:last-child{background:transparent;color:var(--text)}.document{max-width:760px;margin:4rem auto;padding:0 1.5rem;line-height:1.7}.document h1,.document h2{font-family:"Fraunces",serif}.document h1{font-size:3rem}.document h2{margin-top:2rem}
@media(max-width:850px){.header-inner{flex-wrap:wrap;gap:1rem}.brand{flex:1}.nav-links{order:3;width:100%;gap:1rem;flex-wrap:wrap;padding-top:.7rem;border-top:1px solid var(--border)}.language{border:0;padding:0}.hero{grid-template-columns:1fr}.hero-copy{padding:4.5rem 0}.hero-art{min-height:430px}.intro{grid-template-columns:1fr;gap:1.5rem}.article-head .wrap{grid-template-columns:1fr}.article-body{grid-template-columns:1fr;gap:2rem}.article-aside{border-bottom:1px solid var(--border);padding-bottom:1rem}.article-aside a{display:inline-block;margin-right:1rem}.footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.nav-links{font-size:.82rem;gap:.65rem 1rem}.hero h1{font-size:clamp(3.8rem,15vw,5.5rem)}.hero-art{min-height:340px}.intro{padding:4rem 0}.section-heading{display:block}.section-heading p{margin-top:1rem}.story-link{grid-template-columns:2rem 1fr 1.5rem;gap:.7rem}.story-link .desc{grid-column:2;grid-row:2}.story-link .arrow{grid-column:3;grid-row:1}.practical{align-items:flex-start;flex-direction:column}.contact-content,.footer-grid{grid-template-columns:1fr}.cookie{flex-direction:column;align-items:stretch}.article-head{padding:3.5rem 0}.article-head h1{font-size:3.5rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* === OPEN NAVIGATION SURFACE SAFETY === */
/* Position, shadows, borders and scroll treatment belong to the author.
   Only an OPEN mobile menu gets a mandatory opaque readable surface. */
header.site-header[data-pwp-nav-open] {
  background-color: var(--bg, #ffffff) !important;
  isolation: isolate;
}
[data-pwp-mobile-menu][data-pwp-menu-open] {
  background-color: var(--bg, #ffffff);
  color: var(--text, #0f172a);
  max-block-size: var(--pwp-nav-available-height, calc(100dvh - 6rem));
  overflow-y: auto;
  overscroll-behavior: contain;
}
.pwp-source-note {
  margin-block-start: 1rem;
  font-size: .875em;
  line-height: 1.5;
}
.pwp-source-note a { text-decoration: underline; text-underline-offset: .2em; }
