/* pwp-authored-additional-v1-20261028: technical foundation only */
@layer pwp-runtime-foundation {
  :root {
    --bg:#F0F9FF; --text:#0C4A6E;
    --surface:#FFFFFF; --text-muted:#475569;
    --primary:#0EA5E9; --primary-fg:#0F172A;
    --border:#BAE6FD;
  }
  *, *::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{--paper:#f5f3ec;--ink:#243a36;--muted:#59665e;--line:#d1d5c8;--green:#244e43;--lime:#dce89b;--clay:#ba5035;--white:#fffef9;--soft:#e8eadd;--heading:"Manrope",sans-serif;--body:"Inter",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.65}button,a,summary{-webkit-tap-highlight-color:transparent}a{color:inherit;text-underline-offset:4px}a:hover{color:var(--clay)}button{font:inherit;cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--clay);outline-offset:5px}button:disabled{cursor:default}[hidden]{display:none!important}svg{display:block;max-width:100%}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--heading);line-height:1.12;letter-spacing:-.045em}h1{font-size:clamp(2.8rem,6.4vw,6.5rem);font-weight:600}h2{font-size:clamp(1.8rem,3vw,3rem);font-weight:600}h3{font-size:1.22rem;letter-spacing:-.025em}p{margin-bottom:1.25rem}a,button,summary{touch-action:manipulation}.skip{position:absolute;top:-100px;left:20px;z-index:100;background:var(--white);padding:12px}.skip:focus{top:12px}.site-header{padding:25px 5vw;border-bottom:1px solid var(--line);background:var(--paper);position:relative;z-index:10}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:28px;max-width:1600px;margin:auto}.wordmark{display:flex;align-items:center;gap:11px;text-decoration:none;font-family:var(--heading);font-size:25px;font-weight:700;letter-spacing:-1.2px;white-space:nowrap}.wordmark svg{width:34px;height:36px}.wordmark span{font-weight:400}.header-nav{display:flex;align-items:center;gap:35px;font-size:14px;font-weight:500}.header-nav>a{text-decoration:none;padding:8px 0}.guide-menu{position:relative}.guide-menu summary{cursor:pointer;padding:8px 2px}.guide-menu[open] summary{color:var(--clay)}.menu-panel{position:absolute;right:0;top:48px;background:var(--white);border:1px solid var(--line);width:340px;padding:12px;box-shadow:0 15px 30px #243a3610}.menu-panel a{display:block;padding:10px 12px;text-decoration:none;line-height:1.45}.menu-panel a:hover{background:var(--soft)}.edition{font-size:12px;color:var(--muted);border-left:1px solid var(--line);padding-left:25px;line-height:1.5}.wrap{max-width:1600px;margin:auto;padding-left:5vw;padding-right:5vw}.home-intro{padding-top:56px;display:grid;grid-template-columns:1.2fr 1fr;gap:4vw;align-items:start}.eyebrow{font-size:13px;letter-spacing:.02em;display:flex;align-items:center;gap:10px;margin-bottom:25px}.eyebrow:before{content:"";display:block;background:var(--clay);width:8px;height:8px;border-radius:50%}.home-intro h1{max-width:820px;margin-bottom:25px}.home-intro h1 em{font-style:normal;color:var(--clay)}.intro-copy{max-width:470px;font-size:17px;line-height:1.8;color:var(--muted)}.text-link{display:inline-flex;gap:22px;align-items:center;font-weight:600;text-decoration:none;border-bottom:1px solid var(--ink);padding:8px 0}.text-link span{font-size:22px}.city-stage{padding-top:15px;align-self:end}.city-stage svg{width:100%;height:auto}.figure-note{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:12px;font-size:11px;color:var(--muted);gap:12px}.home-feature{margin-top:54px;display:grid;grid-template-columns:180px 1fr auto;gap:35px;align-items:center;background:var(--green);color:var(--white);padding:30px 36px}.feature-label{font-size:13px;color:var(--lime)}.home-feature h2{font-size:26px;margin-bottom:8px}.home-feature p{margin:0;color:#dbe2d8;font-size:14px;max-width:650px}.round-link{width:54px;height:54px;border:1px solid #afc3ac;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:26px;text-decoration:none;flex-shrink:0}.round-link:hover{background:var(--lime);color:var(--ink)}.guide-section{padding-top:75px;padding-bottom:75px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:25px;margin-bottom:32px}.section-heading h2{margin:0}.section-heading p{max-width:360px;color:var(--muted);font-size:14px;margin:0}.guide-grid{display:grid;grid-template-columns:repeat(3,1fr);column-gap:36px;row-gap:36px}.guide-item{border-top:1px solid var(--ink);padding-top:18px;display:flex;flex-direction:column;align-items:start}.guide-meta{font-size:12px;color:var(--muted);margin-bottom:26px}.guide-item h3{font-size:24px;max-width:320px;margin-bottom:14px}.guide-item h3 a{text-decoration:none}.guide-item p{font-size:14px;line-height:1.75;color:var(--muted);max-width:365px}.guide-item>.text-link{font-size:13px;margin-top:auto}.note-band{background:var(--soft);padding:36px 5vw}.note-inner{max-width:1440px;margin:auto;display:grid;grid-template-columns:1fr 1.6fr;gap:55px}.note-inner h2{font-size:25px;max-width:360px;margin:0}.note-inner p{font-size:14px;margin:0;max-width:770px}.article-wrap{max-width:1260px;padding:44px 5vw 85px;margin:auto}.breadcrumb{font-size:13px;margin-bottom:40px;color:var(--muted)}.breadcrumb a{text-decoration:none}.article-head{border-bottom:1px solid var(--line);padding-bottom:35px;margin-bottom:38px}.article-head .eyebrow{margin-bottom:18px}.article-head h1{font-size:clamp(2.6rem,5.5vw,5.1rem);max-width:1000px;margin-bottom:22px}.standfirst{font-size:20px;line-height:1.65;max-width:770px;color:var(--muted);margin-bottom:20px}.editorial-status{font-size:12px;color:var(--muted);margin:0}.article-layout{display:grid;grid-template-columns:220px minmax(0,740px);gap:65px}.article-aside{font-size:13px}.article-aside p{border-top:1px solid var(--ink);padding-top:14px}.article-aside ul{list-style:none;padding:0;line-height:1.6}.article-aside li{margin-bottom:12px}.article-body{min-width:0}.article-body h2{font-size:28px;margin-top:36px;margin-bottom:18px}.article-body>h2:first-child{margin-top:0}.article-body h3{font-size:19px;margin-top:26px}.article-body p,.article-body li{font-size:16px;line-height:1.85}.article-body ul,.article-body ol{padding-left:22px}.article-body li{padding-left:5px;margin-bottom:9px}.callout{background:var(--soft);border-left:3px solid var(--green);padding:23px 26px;margin:28px 0}.callout p:last-child{margin-bottom:0}.callout h3{margin-top:0}.source-note{border-top:1px solid var(--line);margin-top:35px;padding-top:20px;color:var(--muted);font-size:13px!important}.source-note a{color:var(--green)}.next-read{border-top:1px solid var(--ink);margin-top:40px;padding-top:20px;display:flex;justify-content:space-between;gap:22px;align-items:center}.next-read span{font-size:12px;color:var(--muted)}.next-read a{font-size:16px;font-weight:600}.table-scroll{overflow-x:auto;margin:25px 0}table{border-collapse:collapse;width:100%;font-size:14px;text-align:left}th,td{border-bottom:1px solid var(--line);padding:14px 12px 14px 0;vertical-align:top}th{font-weight:600;background:var(--soft)}th:first-child{padding-left:10px}td:first-child{font-weight:500}details.faq{border-top:1px solid var(--line);padding:17px 0}details.faq:last-of-type{border-bottom:1px solid var(--line)}.faq summary{padding:7px 8px 7px 0;cursor:pointer;font-weight:600;line-height:1.5}.faq p{margin:15px 0 0;padding-right:15px}.contact-content{display:grid;grid-template-columns:1fr 1fr;gap:70px;padding-bottom:20px}.contact-content h2{font-size:27px}.contact-content p{color:var(--muted)}.contact-links{display:flex;flex-direction:column;align-items:start;gap:16px;margin:30px 0}.contact-links a{font-size:clamp(16px,2.2vw,23px);overflow-wrap:anywhere}.address-block{border-top:1px solid var(--ink);padding-top:25px}.address-block address{font-style:normal;color:var(--muted);max-width:330px}.contact-note{font-size:13px!important}.site-footer{background:#e6e8dd;border-top:1px solid var(--line);padding:48px 5vw 22px}.footer-main{max-width:1440px;margin:auto;display:grid;grid-template-columns:1fr 1.1fr 1fr;gap:45px}.footer-brand{font-family:var(--heading);font-size:28px;letter-spacing:-1px;margin-bottom:10px}.footer-main p,.footer-main address{font-size:12px;font-style:normal;color:var(--muted);line-height:1.85}.footer-main p{max-width:300px}.footer-main address{margin-bottom:12px}.footer-links{display:flex;flex-wrap:wrap;align-content:start;gap:10px 22px;font-size:12px}.footer-links button{border:0;background:none;padding:0;text-decoration:underline;text-underline-offset:4px;color:var(--ink);font-size:12px}.footer-bottom{max-width:1440px;margin:32px auto 0;padding-top:17px;border-top:1px solid #c8cdbf;display:flex;justify-content:space-between;gap:20px;font-size:11px;color:var(--muted)}.cookie-notice{position:fixed;bottom:18px;left:18px;z-index:50;width:min(460px,calc(100% - 36px));background:var(--white);border:1px solid var(--ink);box-shadow:0 10px 45px #243a3620;padding:23px}.cookie-notice h2{font-size:20px;margin-bottom:10px}.cookie-notice p{font-size:12px;line-height:1.7;color:var(--muted);margin-bottom:15px}.cookie-buttons{display:flex;gap:10px}.cookie-buttons button{min-height:44px;flex:1;border:1px solid var(--green);background:var(--white);color:var(--green);padding:8px 13px;font-size:13px}.cookie-buttons button:first-child{background:var(--green);color:var(--white)}.document-body{max-width:820px;margin:55px auto 80px;padding:0 24px}.document-body h1{font-size:clamp(2.5rem,5vw,4.2rem)}.document-body h2{font-size:25px;margin-top:32px}.document-body p,.document-body li{line-height:1.85}.document-body a{overflow-wrap:anywhere}
@media(min-width:1700px){.wrap{padding-left:80px;padding-right:80px}}
@media(max-width:1000px){.edition{display:none}.home-intro{grid-template-columns:1.15fr 1fr;gap:20px}.home-intro h1{font-size:clamp(3rem,6.5vw,5rem)}.home-feature{grid-template-columns:125px 1fr auto;gap:24px}.guide-grid{column-gap:24px}.article-layout{grid-template-columns:170px minmax(0,1fr);gap:35px}.footer-main{grid-template-columns:1fr 1fr}.footer-links{grid-column:1/-1}}
@media(max-width:700px){.site-header{padding:18px 6vw}.header-inner{gap:18px;flex-wrap:wrap}.wordmark{font-size:23px}.header-nav{gap:25px;width:100%;justify-content:space-between;font-size:13px;border-top:1px solid var(--line);padding-top:8px}.guide-menu{position:static}.menu-panel{left:6vw;right:6vw;top:123px;width:auto;max-height:65vh;overflow:auto}.wrap{padding-left:6vw;padding-right:6vw}.home-intro{padding-top:35px;grid-template-columns:1fr}.home-intro h1{font-size:clamp(3.1rem,11vw,4.7rem);max-width:620px}.eyebrow{margin-bottom:20px;font-size:12px}.intro-copy{font-size:15px;max-width:500px}.city-stage{width:100%;max-width:550px;padding-top:0;margin:5px auto 0}.city-stage svg{max-height:320px}.home-feature{margin-top:32px;padding:25px;grid-template-columns:1fr auto;gap:15px}.feature-label{grid-column:1/-1}.home-feature h2{font-size:23px}.home-feature p{font-size:13px}.round-link{width:44px;height:44px}.guide-section{padding-top:46px;padding-bottom:45px}.section-heading{display:block}.section-heading p{margin-top:17px}.guide-grid{grid-template-columns:1fr 1fr;gap:28px 22px}.guide-item h3{font-size:21px}.guide-meta{margin-bottom:19px}.guide-item p{font-size:13px}.note-inner{grid-template-columns:1fr;gap:20px}.note-band{padding:30px 6vw}.article-wrap{padding:28px 6vw 55px}.breadcrumb{margin-bottom:28px}.article-head h1{font-size:clamp(2.6rem,9vw,4rem)}.standfirst{font-size:17px}.article-layout{grid-template-columns:1fr;gap:15px}.article-aside ul{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:5px}.article-aside li{margin:0}.article-aside p{margin-bottom:10px}.article-body p,.article-body li{font-size:15px}.article-body h2{font-size:26px}.contact-content{grid-template-columns:1fr;gap:35px}.footer-main{grid-template-columns:1fr;gap:22px}.footer-links{grid-column:auto}.site-footer{padding:35px 6vw 22px}.footer-bottom{flex-direction:column;gap:8px}.callout{padding:20px}.next-read{align-items:start;flex-direction:column;gap:7px}}
@media(max-width:390px){.guide-grid{grid-template-columns:1fr}.guide-item h3{max-width:100%}.guide-meta{margin-bottom:14px}.cookie-buttons{flex-wrap:wrap}.cookie-buttons button{flex-basis:130px}.home-feature{padding:21px}}
@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; }
