
/* Theme layer: no changes to logo paths or source colors. */
.header{gap:24px}.header nav{margin-left:auto}.header-tools{display:flex;align-items:center;gap:12px}.theme-toggle{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;padding:0;border:1px solid var(--theme-rule);border-radius:50%;background:transparent;color:var(--theme-text);cursor:pointer;transition:background .18s,border-color .18s}.theme-toggle svg{display:block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.theme-toggle svg[hidden]{display:none}.theme-toggle:hover{background:#e7edf2;border-color:#0c6cac}.theme-toggle:focus-visible{outline:3px solid #0c6cac;outline-offset:4px}html[data-theme=dark] .theme-toggle:hover{background:#142b3e;border-color:#82c9ff}
html[data-theme=light]{--theme-bg:#f5f5f5;--theme-text:#15212c;--theme-muted:#4c5d6c;--theme-rule:#c4d0da;color-scheme:light}
html[data-theme=dark]{--theme-bg:#0b1016;--theme-text:#f5f5f5;--theme-muted:#b8c5d0;--theme-rule:#354453;color-scheme:dark}
html[data-theme] body{background:var(--theme-bg);color:var(--theme-text)}html[data-theme] .header{background:var(--theme-bg);border-color:var(--theme-rule)}html[data-theme] .header nav a{color:var(--theme-text)}html[data-theme] .section-label,html[data-theme] .about-copy p,html[data-theme] .work-row p{color:var(--theme-muted)}html[data-theme] .about-copy p:first-child{color:var(--theme-text)}html[data-theme] h2 span{color:var(--theme-muted)}html[data-theme] .work,html[data-theme] .work-row,html[data-theme] .future-statement{border-color:var(--theme-rule)}html[data-theme] .brand-manifesto{color:var(--theme-muted)}html[data-theme] .brand-manifesto span{color:var(--theme-text)}html[data-theme] .principles{background:var(--theme-bg);color:var(--theme-muted);border-color:var(--theme-rule)}html[data-theme] footer,html[data-theme] footer a,html[data-theme] footer strong{color:var(--theme-muted)}html[data-theme] .contact{background:var(--theme-bg);color:var(--theme-text);border-top:1px solid var(--theme-rule)}html[data-theme] .contact .section-label,html[data-theme] .contact-bottom p span,html[data-theme] .contact-bottom .email-note{color:var(--theme-muted)}html[data-theme] .email{border-color:var(--theme-rule)}html[data-theme] .review-note{color:var(--theme-muted);border-color:var(--theme-rule)}html[data-theme] .future-statement p{color:var(--theme-muted)}html[data-theme] .future-statement p:last-child{color:#0c6cac}html[data-theme] .small-arrow,html[data-theme] .number{color:#0c6cac}html[data-theme] .row-arrow{color:var(--theme-muted)}
html[data-theme=light] .future-statement{background:transparent}html[data-theme=light] .hero{border-color:var(--theme-rule)}
html[data-theme=dark] .hero{background:radial-gradient(ellipse at 50% 100%,#173248 0,#0b1016 70%);color:#f5f5f5}html[data-theme=dark] .hero h1,html[data-theme=dark] .hero h1 span{color:#f5f5f5}html[data-theme=dark] .hero .eyebrow,html[data-theme=dark] .hero-bottom p,html[data-theme=dark] .hero .scroll{color:#bdccd7}html[data-theme=dark] .hero:after{background:#0b1520;border-top-color:#70c5ff;box-shadow:0 -7px 25px #3da9ff35}html[data-theme=dark] .integrated-brand{background:#f5f5f5;border:1px solid #778b9b;border-radius:12px;padding:22px}html[data-theme=dark] .header .brand{background:#f5f5f5;padding:5px;border-radius:4px;width:165px}html[data-theme=dark] .hero .button{background:#3da9ff;color:#081421;border-color:#3da9ff}html[data-theme=dark] .future-statement{background:transparent}html[data-theme=dark] .future-statement p:last-child,html[data-theme=dark] .small-arrow,html[data-theme=dark] .number,html[data-theme=dark] .email span{color:#64bdff}html[data-theme=dark] .menu{color:#f5f5f5;border-color:#8da0b0}html[data-theme=dark] nav.open{background:#0b1016}html[data-theme=dark] .hero .scroll span{color:#64bdff}
@media(max-width:1000px){.header{gap:14px}.header nav{gap:18px}}@media(max-width:650px){.header{gap:10px}.header .brand{width:130px}html[data-theme=dark] .header .brand{width:130px}.header-tools{gap:8px}.header .menu{font-size:11px;padding:10px 8px;gap:6px}.header nav{margin:0}html[data-theme=dark] .integrated-brand{padding:18px}.header{padding-inline:16px}}

.back-to-top{position:fixed;right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));z-index:50;display:grid;place-items:center;width:48px;height:48px;border:1px solid #0c6cac;border-radius:50%;background:#f5f5f5;color:#083e67;font:24px Arial,sans-serif;cursor:pointer;box-shadow:0 3px 16px #0002}.back-to-top:hover{background:#d9edfc}.back-to-top:focus-visible{outline:3px solid #3da9ff;outline-offset:4px}html[data-theme=dark] .back-to-top{background:#142b3e;color:#d6efff;border-color:#82c9ff}html[data-theme=dark] .back-to-top:hover{background:#204461}footer.wrap{padding-right:75px}@media(max-width:650px){.back-to-top{right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom))}}

/* Audit correction: preserve visible focus contrast against each page theme. */
html[data-theme=light] :is(a,button,select):focus-visible{outline-color:#0c6cac}
html[data-theme=dark] :is(a,button,select):focus-visible{outline-color:#64bdff}

/* Safari adds a section-wide ring after pointer-initiated anchor focus.
   This marker is removed on blur or keyboard input; keyboard rings stay native. */
:is(main,section).scroll-pointer-focus:focus{outline:none}

/* Comfortable touch targets inside the existing mobile header and menu. */
@media(max-width:650px){.header .menu{min-height:44px}.header nav a{display:flex;align-items:center;min-height:44px}}
