:root {
  --header: 88px;
  --navigation-accent: #56b9ae;
}
body[data-view="thesis"] { --header: 88px; }

html[data-theme=light] .site-header .accessibility-menu>summary{color:#172124}
html[data-theme=light] .site-header .accessibility-menu>summary::before,html[data-theme=light] .search-form::before{background:rgba(255,255,255,.42);border-color:rgba(23,33,36,.22);box-shadow:inset 0 1px rgba(255,255,255,.8),0 4px 14px rgba(23,33,36,.06)}
html[data-theme=light] .site-header .accessibility-menu .options-panel {
  background:rgba(255,255,255,.94);
  border-color:rgba(23,33,36,.18);
  box-shadow:0 16px 45px rgba(23,33,36,.16);
  color:#172124;
}
html[data-theme=light] .site-header .accessibility-menu .options-panel button { color:#172124; }
html[data-theme=light] .site-header .accessibility-menu .options-panel button:hover { background:rgba(18,105,95,.10); }
html[data-theme=light] .site-header .setting-icons { color:#12695f; }

.site-header,
body[data-view="thesis"] .site-header {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 20px;
  height: calc(88px + env(safe-area-inset-top, 0px) + 1px);
  min-height: calc(88px + env(safe-area-inset-top, 0px) + 1px);
  max-height: calc(88px + env(safe-area-inset-top, 0px) + 1px);
}
.site-header > .brand { flex: 0 0 auto; min-height: 44px; }
.site-header,
body[data-view="thesis"] .site-header {
  padding-top: env(safe-area-inset-top, 0px);
  padding-left: max(var(--gutter), env(safe-area-inset-left, 0px));
  padding-right: max(var(--gutter), env(safe-area-inset-right, 0px));
}
.site-header > .section-switch {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  gap: 22px;
  margin: 0;
}
.site-header > .header-links {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: min(240px, 26vw);
  margin: 0;
}
.site-header > .accessibility-menu { flex: 0 0 auto; margin-left: auto; position:relative; }
.site-header .accessibility-menu>summary .settings-cog{display:block;width:18px;height:18px;flex:0 0 18px;fill:currentColor;stroke:none;pointer-events:none}
/* Reserve the 44px search target and its gap beside settings. */
@media(min-width:701px){.site-header>.section-switch{margin-right:52px}}
@media(min-width:701px) and (max-width:1100px){.site-header>.section-switch{gap:14px}.site-header .section-switch a{font-size:12px}}
.site-header .header-links #search-toggle{box-sizing:border-box;width:100%;min-height:44px;padding:9px 18px;border:1px solid rgba(255,255,255,.30);border-radius:999px;background:rgba(12,23,25,.42);box-shadow:inset 0 1px rgba(255,255,255,.20),0 10px 30px rgba(0,0,0,.14);backdrop-filter:blur(18px) saturate(140%);color:inherit;font-size:14px;font-weight:500}
.site-header .accessibility-menu>summary{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:44px;min-width:44px;height:44px;min-height:44px;padding:0;border:0;background:transparent;box-shadow:none;color:#eef3ef;cursor:pointer;font:500 12px/1.3 Inter Tight,Arial,sans-serif;list-style:none}.site-header .accessibility-menu>summary::before,.search-form::before{content:'';position:absolute;z-index:-1;inset:0;border:1px solid rgba(160,222,213,.24);border-radius:12px;background:linear-gradient(135deg,rgba(255,255,255,.07),transparent 65%),rgba(12,23,25,.42);box-shadow:inset 0 1px rgba(255,255,255,.14),0 4px 14px rgba(0,0,0,.08);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);pointer-events:none}.site-header .accessibility-menu>summary::-webkit-details-marker{display:none}.site-header .accessibility-menu[open]>summary::before{border-color:var(--navigation-accent)}.site-header .accessibility-menu .options-panel{top:calc(100% + 6px);right:0;width:208px;max-height:calc(100dvh - var(--top) - 20px);overflow:auto;padding:6px;border:1px solid rgba(255,255,255,.22);border-radius:12px;background:rgba(9,18,20,.88);color:#eef3ef;box-shadow:inset 0 1px rgba(255,255,255,.12),0 12px 32px rgba(0,0,0,.2);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.site-header .accessibility-menu .options-panel button,body .site-header .accessibility-menu #theme-toggle{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;height:auto;min-width:0;min-height:44px;padding:8px 10px;border:0;border-radius:7px;background:transparent;color:inherit;text-align:left;font:500 13px/1.3 Inter Tight,Arial,sans-serif}.site-header .accessibility-menu .options-panel button:hover{background:rgba(255,255,255,.10)}.site-header .setting-icons{display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px;color:var(--mint);overflow:hidden}.site-header .setting-icons svg{display:none!important;grid-area:1/1;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.site-header #theme-toggle[aria-pressed=false] .icon-moon,.site-header #theme-toggle[aria-pressed=true] .icon-sun,.site-header #music-desktop[aria-pressed=false] .icon-music-off,.site-header #music-desktop[aria-pressed=true] .icon-music-on,.site-header #motion-desktop[aria-pressed=false] .icon-motion-off,.site-header #motion-desktop[aria-pressed=true] .icon-motion-on{display:block!important}.site-header .accessibility-menu .theme-label{font-size:13px!important;line-height:1.3}.site-header .accessibility-menu .options-panel button+button{margin-top:0}.site-header .accessibility-menu>summary:focus-visible,.search-form:focus-within{outline:2px solid var(--navigation-accent);outline-offset:2px}
.site-header .section-switch a {
  position: relative;
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  min-height: 44px;
  padding: 10px 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: inherit;
  font-family: Inter Tight, Arial, sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0;
  text-decoration: none;
  white-space: nowrap;
  opacity: .65;
}
.site-header .section-switch {
  --nav-indicator-x: 0px;
  --nav-indicator-width: 0px;
  --nav-indicator-opacity: 0;
  position: relative;
}
.site-header .section-switch::after {
  content: '';
  position: absolute;
  bottom: 3px;
  left: 0;
  width: var(--nav-indicator-width);
  height: 1px;
  background: var(--navigation-accent);
  opacity: var(--nav-indicator-opacity);
  transform: translate3d(var(--nav-indicator-x),0,0);
  transition: transform 380ms cubic-bezier(.22,1,.36,1),width 380ms cubic-bezier(.22,1,.36,1),opacity 160ms ease;
}
.site-header .section-switch a:hover,
.site-header .section-switch a.is-active,
.site-header .section-switch a[aria-current="page"] { opacity: 1; }
/* A company hero is the home view, not the Portfolio collection. */
body[data-view="company"] .site-header .section-switch a { opacity:.65; }
body[data-view="company"] .site-header .section-switch a:is(:hover,:focus-visible) { opacity:1; }
.site-header .section-switch a:focus-visible {
  outline: 2px solid var(--navigation-accent);
  outline-offset: 4px;
}
/* Text inherits the current theme; the underline remains readable in both. */
:root[data-theme="light"],
body[data-theme="light"] { --navigation-accent: #217d73; }
.site-header [hidden] { display: none !important; }

footer.thesis-rail {
  display: flex;
  align-items: center;
  gap: 16px;
}
footer.thesis-rail .thesis-chapters {
  display: flex;
  flex: 1;
  min-width: 0;
  overflow-x: auto;
  flex-wrap: nowrap;
}
footer.thesis-rail .thesis-chapters a {
  flex: 0 0 auto;
  white-space: nowrap;
}
footer.thesis-rail .thesis-updated {
  flex: 0 0 auto;
  margin-left: auto;
  white-space: nowrap;
}

@media (max-width: 900px) {
  :root { --header: 64px; }
  body[data-view="thesis"] { --header: 64px; }
  .site-header,
  body[data-view="thesis"] .site-header {
    height: calc(64px + env(safe-area-inset-top, 0px) + 1px);
    min-height: calc(64px + env(safe-area-inset-top, 0px) + 1px);
    max-height: calc(64px + env(safe-area-inset-top, 0px) + 1px);
    gap: 12px;
  }
  .site-header > .brand,
  .site-header > .brand img {
    width: 72px;
    min-width: 72px;
    max-width: 72px;
  }
  .site-header > .brand img { height: auto; }
}

@media (max-width: 700px) {
  :root { --header: 100px; }
  body[data-view="thesis"] { --header: 100px; }
  .site-header,
  body[data-view="thesis"] .site-header {
    display: grid;
    grid-template-columns:72px minmax(0,1fr) auto;
    grid-template-rows: 54px 46px;
    align-items: center;
    column-gap: 8px;
    row-gap: 0;
    height: calc(100px + env(safe-area-inset-top, 0px) + 1px);
    min-height: calc(100px + env(safe-area-inset-top, 0px) + 1px);
    max-height: calc(100px + env(safe-area-inset-top, 0px) + 1px);
    padding: env(safe-area-inset-top, 0px) max(12px, env(safe-area-inset-right, 0px)) 0 max(12px, env(safe-area-inset-left, 0px));
  }
  .site-header > .brand { grid-column: 1; grid-row: 1; margin: 0; }
  .site-header > .header-links {
    grid-column:2;
    grid-row: 1;
    justify-self:center;
    position:static;
    transform:none;
    width:min(160px,100%);
    padding: 0;
    gap: 0;
  }
  .site-header > .accessibility-menu {
    grid-column:3;
    grid-row: 1;
    position: relative;
    justify-self: end;
  }
  .site-header > .section-switch {
    grid-column: 1 / -1;
    grid-row: 2;
    align-self: stretch;
    justify-self: start;
    gap: 24px;
    margin: 0;
    padding: 0;
  }
  .site-header #search-toggle,
  .site-header .accessibility-menu > summary {
    box-sizing: border-box;
    width: auto;
    min-width: 44px;
    min-height: 44px;
    margin: 0;
    padding: 8px 4px;
    font-size: 12px;
    letter-spacing: 0;
    line-height: 20px;
    white-space: nowrap;
  }
  .site-header .accessibility-menu .options-panel {
    right: 0;
    left: auto;
    box-sizing: border-box;
    max-width: calc(100vw - 24px);
  }
  footer.thesis-rail {
    flex-wrap: wrap;
    gap: 4px 8px;
    height: auto;
    padding-left: 12px;
    padding-right: 12px;
  }
  footer.thesis-rail .thesis-chapters {
    flex: 1 1 100%;
    gap: 8px;
    justify-content: space-between;
    margin: 0;
    padding: 0;
  }
  footer.thesis-rail .thesis-chapters a {
    margin: 0;
    padding: 6px 0;
    font-size: 11px;
    letter-spacing: 0;
  }
  footer.thesis-rail .thesis-updated {
    margin-left: auto;
    font-size: 10px;
  }
}

/* The persistent search sits beside View and expands leftward from that anchor. */
.search-panel{position:fixed;z-index:45;top:calc(env(safe-area-inset-top,0px) + 22px);left:auto;right:calc(max(var(--gutter),env(safe-area-inset-right,0px)) + 72px);width:44px;max-height:none;overflow:visible;padding:0;border:0;background:transparent;transform:none;transition:width 280ms cubic-bezier(.22,1,.36,1)}.search-panel.is-open{top:calc(var(--top) + 8px);right:max(var(--gutter),env(safe-area-inset-right,0px));width:min(440px,calc(100vw - 2 * var(--gutter)));min-width:min(280px,calc(100vw - 24px))}.search-form{box-sizing:border-box;position:relative;isolation:isolate;display:flex;flex-wrap:nowrap;align-items:center;gap:8px;width:100%;height:44px;min-height:44px;padding:0 4px 0 14px;border:0;border-radius:12px;background:transparent;box-shadow:none;color:#eef3ef}.search-panel.is-open .search-form{height:48px}.search-panel.is-open .search-form::before{inset:0;background:rgba(9,18,20,.88)}.search-toggle{position:absolute;inset:0;z-index:1;display:grid;place-items:center;width:100%;min-width:0;min-height:0;padding:0;border:0;border-radius:999px;background:transparent!important;color:inherit!important;cursor:pointer;font:500 12px/1 Inter Tight,Arial,sans-serif;opacity:1;transition:opacity 140ms ease 120ms}.search-field{display:block;flex:1 1 0;min-width:0;opacity:0;visibility:hidden;pointer-events:none;transition:opacity 180ms ease,visibility 0s linear 180ms}.search-field label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.search-field input{width:100%;height:44px;min-height:44px;padding:0;border:0;background:transparent;outline:0;font-size:16px;color:inherit}.search-form #search-submit{display:grid;place-items:center;width:44px;min-width:44px;height:44px;min-height:44px;padding:10px;border:0;border-radius:999px;background:transparent;color:#fff;opacity:0;visibility:hidden;pointer-events:none;transition:opacity 180ms ease,visibility 0s linear 180ms}.search-panel.is-open .search-toggle{opacity:0;visibility:hidden;pointer-events:none;transition-delay:0s}.search-panel.is-open .search-field,.search-panel.is-open .search-form #search-submit{opacity:1;visibility:visible;pointer-events:auto;transition-delay:160ms,0s}.search-form button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}html[data-theme=light] .search-form{color:#172124}html[data-theme=light] .search-panel.is-open .search-form::before{background:rgba(255,255,255,.94)}html[data-theme=light] .search-field input{background:transparent}
.search-form button,.search-form button *{background:transparent;color:#fff;cursor:pointer!important}.search-form button svg{pointer-events:none}.search-form button:hover{background:transparent;color:var(--mint)}html[data-theme=light] .search-form button{background:transparent;color:#172124}html[data-theme=light] .search-form button:hover{background:transparent;color:#12695f}
.search-field input[type=search]{appearance:none;-webkit-appearance:none}.search-field input[type=search]::-webkit-search-cancel-button,.search-field input[type=search]::-webkit-search-decoration{display:none}

/* Shared glass controls retain the right-side search anchor. */
@media(min-width:701px){
  .search-panel{right:calc(max(var(--gutter),env(safe-area-inset-right,0px)) + 56px)}
  .search-panel.is-open{top:calc(env(safe-area-inset-top,0px) + 22px);right:calc(max(var(--gutter),env(safe-area-inset-right,0px)) + 56px);width:min(480px,calc(100vw - 48px))}
}

@media(min-width:701px) and (max-width:900px){.search-panel{top:calc(env(safe-area-inset-top,0px) + 10px)}.search-panel.is-open{top:calc(var(--top) + 8px)}}
@media(max-width:700px){
  .search-panel{top:calc(env(safe-area-inset-top,0px) + 5px);left:auto;right:calc(max(12px,env(safe-area-inset-right,0px)) + 56px);transform:none;width:44px}
  .search-panel.is-open{top:calc(var(--top) + 8px);left:max(12px,env(safe-area-inset-left,0px));right:max(12px,env(safe-area-inset-right,0px));transform:none;width:auto;min-width:0}
  .site-header>.section-switch{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));justify-self:stretch;gap:8px;width:100%;min-width:0;max-width:none}.site-header .section-switch a{justify-content:center;min-width:0;font-size:12px;white-space:normal;text-align:center;line-height:1.2}
  .site-header>.accessibility-menu{margin-left:0}
  .site-header .accessibility-menu>summary{width:44px;min-width:44px;padding:0}
  .site-header .accessibility-menu .options-panel{top:calc(var(--header) - 49px + 8px)}
}
@media(prefers-reduced-motion:reduce){.site-header .section-switch::after,.search-panel,.search-toggle,.search-field,.search-form #search-submit{transition:none!important}}
@media(forced-colors:active){.search-form::before,.site-header .accessibility-menu>summary::before{background:Canvas;border-color:ButtonText}.search-form,.site-header .accessibility-menu>summary{color:ButtonText}}

/* Optical glass: quiet closed search; mobile-only primary tray. */
.search-panel:not(.is-open) .search-form{box-sizing:border-box;width:44px;height:44px;padding:0;gap:0}
.search-panel:not(.is-open) .search-form::before{inset:0;border-radius:12px}
.search-panel:not(.is-open) .search-toggle{width:44px;height:44px;border-radius:12px}
.search-panel:not(.is-open) #search-submit{position:absolute;right:0}
.search-form button svg{color:inherit}
html[data-theme=light] .search-panel:not(.is-open) .search-form::before{background:rgba(255,255,255,.42);border-color:rgba(23,33,36,.22);box-shadow:inset 0 1px rgba(255,255,255,.8),0 4px 14px rgba(23,33,36,.06)}
@media(min-width:701px){
  .site-header .accessibility-menu>summary{width:44px;min-width:44px}
  .site-header .accessibility-menu>summary::before,.search-panel:not(.is-open) .search-form::before{inset:0;border-radius:12px}
  .site-header .accessibility-menu>summary svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
  .site-header .accessibility-menu>summary .settings-cog{fill:currentColor;stroke:none}
}
@media(max-width:700px){
  .site-header>.section-switch{isolation:isolate;gap:8px;border-radius:12px;background:linear-gradient(110deg,rgba(255,255,255,.07),transparent 42%),rgba(12,23,25,.68);box-shadow:inset 0 1px rgba(255,255,255,.24),inset 0 0 0 1px rgba(255,255,255,.08);backdrop-filter:blur(20px) saturate(135%);-webkit-backdrop-filter:blur(20px) saturate(135%)}
  .site-header .section-switch a{z-index:1;border-radius:12px;opacity:1;color:#c4cfcb}
  .site-header .section-switch a:is(:hover,.is-active,[aria-current=page]){color:#f4f7f5}
  .site-header .section-switch a::after{content:none}
  .site-header .section-switch::after{z-index:0;pointer-events:none;top:3px;bottom:3px;height:auto;border-radius:12px;background:linear-gradient(120deg,rgba(255,255,255,.08),transparent 65%),rgba(86,185,174,.13);box-shadow:inset 0 1px rgba(255,255,255,.22),inset 0 0 0 1px rgba(160,222,213,.12)}
  .site-header .section-switch a:focus-visible{outline-offset:-3px}
  .site-header .accessibility-menu>summary::before,.search-panel:not(.is-open) .search-form::before,.site-header .accessibility-menu .options-panel{background-image:linear-gradient(120deg,rgba(255,255,255,.07),transparent 55%);backdrop-filter:blur(20px) saturate(135%);-webkit-backdrop-filter:blur(20px) saturate(135%)}
  html[data-theme=light] .site-header>.section-switch{background:linear-gradient(110deg,rgba(255,255,255,.55),transparent 55%),rgba(234,242,238,.78);box-shadow:inset 0 1px rgba(255,255,255,.9),inset 0 0 0 1px rgba(23,60,54,.14)}
  html[data-theme=light] .site-header .section-switch a{color:#405852}
  html[data-theme=light] .site-header .section-switch a:is(:hover,.is-active,[aria-current=page]){color:#112d27}
  html[data-theme=light] .site-header .section-switch::after{background:linear-gradient(120deg,rgba(255,255,255,.4),transparent 65%),rgba(33,125,115,.11);box-shadow:inset 0 1px rgba(255,255,255,.8),inset 0 0 0 1px rgba(33,125,115,.16)}
  @supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
    .site-header>.section-switch{background-color:rgba(12,23,25,.32)}
    html[data-theme=light] .site-header>.section-switch{background-color:rgba(234,242,238,.44)}
  }
}
@media(forced-colors:active){
  .search-panel .search-form::before,.site-header .accessibility-menu>summary::before,html[data-theme=light] .search-panel .search-form::before,html[data-theme=light] .search-panel:not(.is-open) .search-form::before,html[data-theme=light] .site-header .accessibility-menu>summary::before{background:Canvas;border-color:ButtonText;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
  .search-form button,.search-form button svg{color:ButtonText!important}
  .site-header>.section-switch,html[data-theme=light] .site-header>.section-switch{background:Canvas;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
  .site-header .section-switch a,html[data-theme=light] .site-header .section-switch a{color:LinkText}
  .site-header .section-switch::after,html[data-theme=light] .site-header .section-switch::after{background:transparent;box-shadow:none;outline:1px solid Highlight;outline-offset:-1px}
}

/* Visibility failure occupies the stage, never the navigation. */
#main .visibility-empty{position:fixed;inset:calc(var(--header) + env(safe-area-inset-top,0px) + 1px) 0 0;box-sizing:border-box;overflow:auto;overscroll-behavior:contain;padding:clamp(24px,8vh,96px) max(24px,env(safe-area-inset-right,0px)) max(32px,env(safe-area-inset-bottom,0px)) max(24px,env(safe-area-inset-left,0px));background:radial-gradient(ellipse at 50% 20%,#173b3d 0%,#091416 65%);color:#f0eee8;text-align:center}
#main .visibility-empty h1{max-width:22ch;margin:0 auto 24px;font-size:clamp(28px,5vw,56px);line-height:1.1;font-weight:500;text-wrap:balance}
#main .visibility-empty p{max-width:48ch;margin:0 auto 28px;font-size:16px;line-height:1.6}
#main .visibility-empty button{min-width:88px;min-height:44px;padding:10px 22px;border:1px solid currentColor;border-radius:999px;background:transparent;color:inherit;font:inherit;cursor:pointer}
#main .visibility-empty button:focus-visible{outline:2px solid currentColor;outline-offset:4px}
html[data-theme=light] #main .visibility-empty{background:radial-gradient(ellipse at 50% 20%,#e1eeeb 0%,#faf7ef 65%);color:#172124}
@media(forced-colors:active){#main .visibility-empty{background:Canvas;color:CanvasText}}
