/* 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; }
  .cookie-banner { 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); }
  .cookie-text { font:14px/1.5 system-ui,sans-serif; }
  .cookie-actions { display:flex; flex-wrap:wrap; gap:.75rem; margin-block-start:.75rem; }
  .cookie-actions button { min-block-size:44px; padding:.6rem 1rem; border:1px solid var(--border); background:var(--surface); color:var(--text); }
  .cookie-actions [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{--ink:#123e43;--muted:#52696b;--paper:#f5f7f3;--white:#fff;--line:#cedbd5;--teal:#0b555b;--deep:#103d42;--lime:#e0ee9c;--wash:#e7eeea;--font:"Manrope",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.65}a{color:inherit;text-underline-offset:4px}button,summary,a{-webkit-tap-highlight-color:transparent}a:focus-visible,summary:focus-visible,button:focus-visible{outline:3px solid #b26119;outline-offset:5px}a:hover{text-decoration-thickness:2px}svg{max-width:100%}[hidden]{display:none!important}.skip{position:absolute;left:20px;top:-80px;background:var(--lime);padding:12px;z-index:100}.skip:focus{top:12px}.site-header{border-bottom:1px solid var(--line);background:var(--paper);position:relative;z-index:10}.header-inner{max-width:1440px;margin:auto;padding:25px 5%;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{text-decoration:none;display:flex;align-items:center;gap:12px;line-height:1.1}.brand svg{width:36px;height:43px;flex-shrink:0}.brand-name{font-size:20px;font-weight:800;letter-spacing:-.8px}.brand-name small{display:block;font-size:11px;font-weight:500;letter-spacing:1.3px;margin-top:7px}.navigation{display:flex;gap:30px;align-items:center;font-size:14px;font-weight:650}.navigation>a{text-decoration:none}.guide-menu{position:relative}.guide-menu summary{cursor:pointer;padding:8px 0}.guide-links{position:absolute;right:0;top:43px;width:310px;padding:12px 20px;background:var(--white);border:1px solid var(--line);box-shadow:0 14px 28px #123e4312}.guide-links a{display:block;padding:10px 0;text-decoration:none;border-bottom:1px solid var(--wash)}.guide-links a:last-child{border-bottom:0}.header-official{border:1px solid var(--ink);padding:9px 15px}.wrap{max-width:1440px;margin:auto;padding-left:5%;padding-right:5%}.hero{display:grid;grid-template-columns:1.1fr 1fr;min-height:620px;border-bottom:1px solid var(--line)}.hero-copy{padding:65px 9% 60px 0;align-self:center}.eyebrow{font-size:12px;letter-spacing:1.5px;font-weight:750;text-transform:uppercase;margin:0 0 25px}.hero h1{font-size:clamp(47px,5.1vw,76px);font-weight:550;line-height:1.07;letter-spacing:-3.6px;margin:0 0 28px;max-width:640px}.hero h1 em{font-style:normal;color:var(--teal)}.intro{font-size:18px;line-height:1.75;max-width:530px;color:var(--muted)}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:20px;margin:30px 0 19px}.button{display:inline-flex;justify-content:space-between;align-items:center;gap:28px;padding:15px 23px;background:var(--teal);color:white;text-decoration:none;font-size:14px;font-weight:700;min-height:52px}.button:hover{background:var(--deep)}.button.light{background:var(--lime);color:var(--ink)}.small-note{font-size:12px;color:var(--muted);max-width:430px}.water-stage{background:var(--teal);color:white;padding:36px 38px 32px;position:relative;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;margin:24px 0}.stage-title{font-size:13px;display:flex;justify-content:space-between;gap:15px;color:#d2e6df}.water-art{width:100%;height:220px;display:block;margin:12px auto}.route{list-style:none;margin:0;padding:0}.route li{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:13px;padding:16px 0;border-top:1px solid #ffffff36}.route .route-dot{height:28px;width:28px;border:1px solid #a8c5bc;border-radius:50%;display:grid;place-items:center;font-size:12px;color:var(--lime)}.route strong{font-size:15px;font-weight:600}.route small{display:block;color:#c2d9d2;font-size:12px}.route li:last-child{color:var(--lime)}.stage-foot{font-size:11px;color:#c2d9d2;margin:18px 0 0}.notice{display:grid;grid-template-columns:210px 1fr;gap:35px;padding:28px 0;border-bottom:1px solid var(--line);font-size:14px}.notice strong{font-weight:750}.notice p{margin:0;max-width:820px;color:var(--muted)}.library{padding:75px 0 85px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:30px}.section-heading h2{font-size:36px;line-height:1.2;letter-spacing:-1.3px;font-weight:550;margin:0}.section-heading p{max-width:370px;margin:0;color:var(--muted);font-size:14px}.guide-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.guide-card{padding:30px;min-height:235px;display:flex;flex-direction:column;text-decoration:none;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--white);transition:background .2s}.guide-card:hover{background:var(--wash)}.guide-card .category{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-bottom:20px}.guide-card h3{font-size:23px;line-height:1.3;letter-spacing:-.7px;font-weight:600;margin:0 0 12px}.guide-card p{font-size:14px;color:var(--muted);margin:0 0 22px}.guide-card .read{margin-top:auto;font-size:13px;font-weight:750;display:flex;justify-content:space-between}.official-band{background:var(--lime);padding:40px;display:flex;justify-content:space-between;align-items:center;gap:30px;margin-bottom:75px}.official-band h2{font-size:26px;font-weight:600;letter-spacing:-.8px;margin:0 0 8px}.official-band p{font-size:14px;max-width:650px;margin:0}.official-band .button{flex-shrink:0}.article-shell{max-width:1200px;margin:auto;padding:45px 5% 85px}.breadcrumb{font-size:13px;color:var(--muted);margin:0 0 40px}.article-head{border-bottom:1px solid var(--line);padding-bottom:35px;margin-bottom:40px;max-width:1000px}.article-head .eyebrow{margin-bottom:17px}.article-head h1,.contact-head h1{font-size:clamp(38px,4.6vw,62px);line-height:1.12;font-weight:550;letter-spacing:-2.3px;margin:0 0 22px;max-width:850px}.article-head .intro{max-width:750px;margin-bottom:0}.article-layout{display:grid;grid-template-columns:minmax(0,730px) 240px;gap:65px}.prose h2{font-size:25px;line-height:1.3;font-weight:650;letter-spacing:-.6px;margin:32px 0 15px}.prose h2:first-child{margin-top:0}.prose p{margin:0 0 20px}.prose ul,.prose ol{padding-left:23px;margin:0 0 25px}.prose li{padding-left:5px;margin-bottom:12px}.callout{padding:23px 25px;border-left:3px solid var(--teal);background:var(--wash);margin:28px 0}.callout p:last-child{margin-bottom:0}.article-aside{border-top:3px solid var(--teal);padding-top:18px;align-self:start;font-size:13px}.article-aside h2{font-size:16px;margin:0 0 12px}.article-aside p{color:var(--muted)}.article-aside .button{font-size:12px;padding:12px 15px;gap:12px;width:100%;margin:8px 0 15px}.article-aside .related{display:block;padding:14px 0;border-top:1px solid var(--line)}.article-bottom{border-top:1px solid var(--line);margin-top:40px;padding-top:23px;font-size:13px;color:var(--muted)}.comparison{width:100%;border-collapse:collapse;font-size:14px;margin:25px 0}.comparison th,.comparison td{padding:15px 12px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}.comparison th{background:var(--wash);font-weight:700}.contact-section{padding:65px 5% 90px;max-width:1440px;margin:auto}.contact-head{max-width:760px;margin-bottom:50px}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px}.contact-panel{border-top:2px solid var(--ink);padding-top:25px}.contact-panel h2{font-size:25px;margin:0 0 20px;font-weight:600}.contact-panel p{max-width:550px}.contact-panel address{font-style:normal;line-height:1.9}.contact-email{font-size:clamp(16px,2vw,25px);overflow-wrap:anywhere}.contact-panel dl{display:grid;grid-template-columns:110px 1fr;gap:12px;font-size:14px}.contact-panel dt{color:var(--muted)}.contact-panel dd{margin:0}.questions{margin-top:38px}.questions details{border-top:1px solid var(--line);padding:18px 0}.questions summary{cursor:pointer;font-weight:650;padding-right:20px}.questions details p{font-size:14px;color:var(--muted);padding:8px 20px 0 0}.site-footer{background:var(--deep);color:#edf4ef;padding:50px 5% 25px}.footer-inner{max-width:1296px;margin:auto}.footer-grid{display:grid;grid-template-columns:1.1fr 1fr .7fr;gap:55px}.footer-brand{font-size:22px;letter-spacing:-.7px;font-weight:750;margin:0 0 16px}.site-footer p,.site-footer address{font-size:13px;color:#c3d4cf;font-style:normal;margin:0 0 15px;line-height:1.8}.site-footer h2{font-size:13px;font-weight:700;margin:0 0 17px}.footer-links{display:flex;flex-direction:column;align-items:flex-start;gap:9px;font-size:13px}.footer-bottom{border-top:1px solid #ffffff29;margin-top:35px;padding-top:22px;display:flex;justify-content:space-between;gap:25px;font-size:11px;color:#c3d4cf}.footer-bottom p{font-size:11px;margin:0}
@media(min-width:1500px){.hero{min-height:670px}.water-art{height:250px}}
@media(max-width:950px){.header-inner{padding:20px 5%;gap:20px}.navigation{gap:20px}.header-official{display:none}.hero{grid-template-columns:1fr 1fr}.hero-copy{padding:45px 7% 45px 0}.hero h1{font-size:51px;letter-spacing:-2.5px}.water-stage{padding:25px}.water-art{height:180px}.guide-grid{grid-template-columns:repeat(2,1fr)}.article-layout{grid-template-columns:minmax(0,1fr) 205px;gap:35px}.footer-grid{gap:30px}.notice{grid-template-columns:170px 1fr;gap:20px}}
@media(max-width:650px){.header-inner{align-items:flex-start;gap:20px;flex-wrap:wrap;padding-top:20px;padding-bottom:16px}.brand-name{font-size:19px}.brand-name small{font-size:10px}.navigation{width:100%;justify-content:space-between;font-size:13px;gap:16px}.guide-menu{position:static}.guide-links{left:5%;right:5%;top:125px;width:auto;max-height:70vh;overflow:auto}.hero{grid-template-columns:1fr}.hero-copy{padding:42px 0 25px}.hero h1{font-size:51px;max-width:500px}.eyebrow{font-size:10px;margin-bottom:20px}.intro{font-size:16px}.actions{gap:16px;margin-top:25px}.water-stage{margin:8px 0 28px;padding:25px}.water-art{height:170px}.notice{grid-template-columns:1fr;gap:8px;padding:24px 0}.library{padding:43px 0}.section-heading{display:block}.section-heading h2{font-size:30px;margin-bottom:14px}.guide-grid{grid-template-columns:1fr}.guide-card{min-height:200px;padding:25px}.guide-card .category{margin-bottom:12px}.official-band{padding:26px;display:block;margin-bottom:45px}.official-band .button{margin-top:22px}.article-shell{padding-top:28px;padding-bottom:50px}.breadcrumb{margin-bottom:28px}.article-head{padding-bottom:27px;margin-bottom:30px}.article-head h1,.contact-head h1{font-size:40px;letter-spacing:-1.7px}.article-layout{grid-template-columns:1fr;gap:30px}.article-aside{max-width:none}.article-aside .button{width:auto}.comparison th,.comparison td{padding:12px 8px;font-size:13px}.contact-section{padding-top:40px;padding-bottom:50px}.contact-grid{grid-template-columns:1fr;gap:40px}.contact-head{margin-bottom:35px}.footer-grid{grid-template-columns:1fr;gap:27px}.footer-bottom{flex-direction:column;gap:12px}.site-footer{padding-top:35px}.footer-links{flex-direction:row;flex-wrap:wrap;gap:12px 20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* === 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; }
