/* White is the editorial default. Dark mode is an optional presentation state. */
html[data-theme="light"]{background:#fff;color:#111}
html[data-theme="light"] body{background:#fff;color:#111}
html[data-theme="light"] header{border-color:#d8d8d8}
html[data-theme="light"] .logo span{color:#111}
html[data-theme="light"] nav a:hover{color:#111}
html[data-theme="light"] .hero h1 .accent,html[data-theme="light"] .statement em,html[data-theme="light"] .orbit-center h1 span{color:#111}
html[data-theme="light"] .ticker{background:#111;color:#fff;border-color:#111}
html[data-theme="light"] .section-head{border-color:#d8d8d8}
html[data-theme="light"] .section-head .number{color:#666}
html[data-theme="light"] .service{border-color:#d8d8d8}
html[data-theme="light"] .service b{color:#111}
html[data-theme="light"] .work{background:#fff;color:#111}
html[data-theme="light"] .work .section-head{border-color:#d8d8d8}
html[data-theme="light"] .card-one{background:#111;color:#fff}
html[data-theme="light"] .card-one::before{background:repeating-linear-gradient(25deg,transparent 0 26px,#fff 27px 29px,transparent 30px 64px)}
html[data-theme="light"] .card-two{background:#fff;color:#111;border:1px solid #111}
html[data-theme="light"] .card-two::before{background:radial-gradient(circle at 85% 50%,transparent 0 13%,#111 13.2% 13.8%,transparent 14% 21%,#111 21.2% 21.8%,transparent 22% 30%,#111 30.2% 30.7%,transparent 31%)}
html[data-theme="light"] .about-grid .small{color:#666}
.about-copy{display:flex;flex-direction:column;justify-content:space-between;gap:clamp(28px,5vw,72px)}
.about-photo{margin:0;align-self:start;width:100%}
.about-photo img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;background:#e8e8e6}
html[data-theme="light"] .orbit-heading .eyebrow{color:#111}
html[data-theme="light"] .orbit-demo{color:#666}
html[data-theme="light"] .orbit-signature{color:#666}
html[data-theme="light"] .orbit-state{color:#111}
html[data-theme="light"] .orbit-guidance p,html[data-theme="light"] .orbit-bottom p{color:#666}
html[data-theme="light"] .projects-link{border-color:#111}
html[data-theme="light"] .orbit-card:focus-visible{outline-color:#111}
html[data-theme="light"] .project-dialog{color:#111;background:#fff;border-color:#aaa}
html[data-theme="light"] .project-dialog::backdrop{background:#0009}
html[data-theme="light"] .project-dialog-top{color:#555;background:#fff}
html[data-theme="light"] .project-category{color:#111}
html[data-theme="light"] .project-close{color:#111;border-color:#999}
html[data-theme="light"] .project-close:hover{color:#111;border-color:#111}
html[data-theme="light"] .project-copy > p{color:#444}
html[data-theme="light"] .project-note{border-color:#ddd}
html[data-theme="light"] .project-note > span,html[data-theme="light"] .project-note p,html[data-theme="light"] .project-pager #project-count{color:#666}
html[data-theme="light"] .project-pager{border-color:#ddd}
html[data-theme="light"] .project-pager button{color:#111}
html[data-theme="light"] .project-pager button:hover{color:#444}
html[data-theme="light"] .contact{background:#111;color:#fff}
html[data-theme="light"] .contact .section-head{border-color:#fff}
html[data-theme="light"] .contact a:hover{color:#ccc}
html[data-theme="light"] .page-intro h1 span{color:#111}
html[data-theme="light"] .intro-row .note{color:#666}
html[data-theme="light"] .card-copy{border-color:#d8d8d8}
html[data-theme="light"] .card-copy .year,html[data-theme="light"] .card-meta{color:#666}
html[data-theme="light"] .card-copy p{color:#555}
html[data-theme="light"] .detail-link{color:#111;border-color:#111}
html[data-theme="light"] .detail-link:hover{color:#555;border-color:#555}
html[data-theme="light"] .dialog-top{color:#666;background:#fff}
html[data-theme="light"] .dialog-close{color:#111;border-color:#999}
html[data-theme="light"] .dialog-close:hover{color:#111;border-color:#111}
html[data-theme="light"] .detail-head{border-color:#d8d8d8}
html[data-theme="light"] .detail-head .category{color:#111}
html[data-theme="light"] .detail-head .detail-year{color:#666}
html[data-theme="light"] .detail-intro{color:#444}
html[data-theme="light"] .dialog-pager{border-color:#d8d8d8}
html[data-theme="light"] .dialog-pager button{color:#111}
html[data-theme="light"] .dialog-pager button:hover{color:#555}
html[data-theme="light"] .dialog-pager span{color:#666}
html[data-theme="light"] .site-footer{background:#111;color:#fff}
html[data-theme="light"] .site-footer a{border-color:#fff}
html[data-theme="light"] .category-filter button{color:#111}
html[data-theme="light"] .category-filter button:hover,html[data-theme="light"] .category-filter button[aria-pressed="true"]{background:#111;color:#fff;border-color:#111}

html[data-theme="dark"] .logo span,html[data-theme="dark"] nav a:hover{color:#fff}
html[data-theme="dark"]{background:#141414;color:#f1f1ed}
html[data-theme="dark"] .work{background:#141414;color:#f1f1ed}
html[data-theme="dark"] .work .section-head{border-color:#444}
html[data-theme="dark"] .card-one{background:#fff;color:#111}
html[data-theme="dark"] .card-one::before{background:repeating-linear-gradient(25deg,transparent 0 26px,#111 27px 29px,transparent 30px 64px)}
html[data-theme="dark"] .card-two{background:#111;color:#fff;border:1px solid #fff}
html[data-theme="dark"] .card-two::before{background:radial-gradient(circle at 85% 50%,transparent 0 13%,#fff 13.2% 13.8%,transparent 14% 21%,#fff 21.2% 21.8%,transparent 22% 30%,#fff 30.2% 30.7%,transparent 31%)}
html[data-theme="dark"] .hero h1 .accent,html[data-theme="dark"] .statement em,html[data-theme="dark"] .orbit-center h1 span{color:#fff}
html[data-theme="dark"] .ticker{background:#fff;color:#111;border-color:#111}
html[data-theme="dark"] .orbit-state{color:#fff}
html[data-theme="dark"] .projects-link{border-color:#fff}
html[data-theme="dark"] .contact{background:#fff;color:#111}
html[data-theme="dark"] .contact .section-head{border-color:#111}
html[data-theme="dark"] .contact a:hover{color:#555}
html[data-theme="dark"] .theme-toggle:hover{background:#fff;color:#111;border-color:#fff}
html[data-theme="dark"] .page-intro h1 span{color:#fff}
html[data-theme="dark"] .detail-head .category{color:#fff}
html[data-theme="dark"] .project-category{color:#fff}
html[data-theme="dark"] .project-close:hover,html[data-theme="dark"] .dialog-close:hover{color:#fff;border-color:#fff}
html[data-theme="dark"] .project-pager button:hover,html[data-theme="dark"] .dialog-pager button:hover{color:#fff}
html[data-theme="light"] button:focus-visible,html[data-theme="light"] a:focus-visible{outline-color:#111}
html[data-theme="dark"] button:focus-visible,html[data-theme="dark"] a:focus-visible{outline-color:#fff}
html[data-theme="dark"] .detail-link{color:#fff;border-color:#fff}
html[data-theme="dark"] .detail-link:hover{color:#ccc;border-color:#ccc}
html[data-theme="dark"] .site-footer{background:#fff;color:#111}
html[data-theme="dark"] .site-footer a{border-color:#111}
html[data-theme="dark"] .category-filter button:hover,html[data-theme="dark"] .category-filter button[aria-pressed="true"]{background:#fff;color:#111;border-color:#fff}
html[data-theme="light"] ::selection{background:#111;color:#fff}
html[data-theme="dark"] ::selection{background:#fff;color:#111}

/* A fixed utility rail keeps language and appearance out of the main navigation. */
.site-preferences{position:fixed;z-index:300;right:16px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:7px;padding:5px;border:1px solid #d6d6d6;border-radius:30px;background:#fff;color:#111;box-shadow:0 4px 22px #0000000c}
.language-switcher{display:flex;flex-direction:column;gap:2px}
.locale-button,.theme-toggle{display:grid;place-items:center;width:44px;height:44px;min-height:44px;padding:0;border:0;border-radius:50%;background:transparent;color:inherit;font:500 .875rem/1 'Space Grotesk',Arial,sans-serif;letter-spacing:.01em;cursor:pointer}
.locale-button[aria-pressed="true"]{background:#111;color:#fff}
.theme-toggle{border-top:1px solid #d6d6d6;border-radius:0 0 24px 24px}
.theme-icon{display:block;flex-shrink:0}
.locale-button:focus-visible,.theme-toggle:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.theme-toggle:hover,.locale-button:hover:not([aria-pressed="true"]){background:#ededed;color:#111}
html[data-theme="dark"] .site-preferences{background:#141414;color:#fff;border-color:#555;box-shadow:0 4px 22px #0003}
html[data-theme="dark"] .locale-button[aria-pressed="true"]{background:#fff;color:#111}
html[data-theme="dark"] .theme-toggle{border-color:#555}
html[data-theme="dark"] .theme-toggle:hover,html[data-theme="dark"] .locale-button:hover:not([aria-pressed="true"]){background:#333;color:#fff}

/* SVG arrows inherit the surrounding type size and never use emoji glyphs. */
.ui-arrow{display:inline-block;width:1em;height:1em;min-width:1em;vertical-align:-.08em;overflow:visible;flex-shrink:0;letter-spacing:normal;stroke-linecap:butt}
.card-arrow .ui-arrow{display:block}
.detail-link,.dialog-pager button{display:inline-flex;align-items:center;gap:.5em}
.ticker .ticker-track{display:flex;width:max-content;min-width:100%;white-space:pre}
.ticker-segment{display:block;flex-shrink:0;white-space:pre}
.project-cover,.card-face{position:relative;overflow:hidden}
.cover-image{position:absolute!important;inset:0;width:100%;height:100%;z-index:0!important}
.has-cover .media-number,.has-cover .card-number,.project-cover.has-cover>span{visibility:hidden}
.media-placeholder.has-cover::before{display:none}
.media-placeholder.has-cover,.card-face.has-cover{color:#fff}
.media-placeholder.has-cover::after,.card-face.has-cover::after{content:'';position:absolute;inset:0;background:linear-gradient(#0009,transparent 40%,transparent 50%,#000c);pointer-events:none;z-index:0}
.card-face.has-cover>span,.media-placeholder.has-cover>span{position:relative;z-index:1}
.orbit-card .card-face.has-cover::after{background:linear-gradient(#0004,transparent 28%,transparent 72%,#0006)}
.project-full-link{display:inline-flex;align-items:center;gap:12px;width:fit-content;border-bottom:1px solid currentColor;padding-bottom:6px;margin-top:25px;font-size:.9375rem}
.detail-body{font-size:1.0625rem;line-height:1.6;max-width:800px;white-space:pre-line;margin:0 0 38px}
.detail-media.has-gallery,.home-project-media{display:grid;grid-template-columns:1fr;gap:28px}
.home-project-media{margin-top:36px}
.project-media{margin:0;min-width:0}
.project-media img,.project-media video{display:block;width:100%;height:auto;max-height:85svh;object-fit:contain;border-radius:6px;background:#111}
.project-media iframe{display:block;width:100%;aspect-ratio:16/9;border:0;border-radius:6px;background:#111}
.project-media figcaption{font-size:.875rem;line-height:1.5;margin-top:10px;color:inherit}
.catalog-message{font-size:1rem;line-height:1.5;grid-column:1/-1}
.catalog-message button{color:inherit;background:none;border:1px solid currentColor;border-radius:5px;padding:10px 14px;font:inherit;cursor:pointer}
html[data-theme="light"] .detail-body{color:#333}
html[data-theme="dark"] .detail-body{color:#eee}
@media(max-width:560px){.card-copy-top,.card-meta{flex-wrap:wrap;gap:10px}.card-copy .year{white-space:normal}.detail-head h2{overflow-wrap:anywhere}}

@media(min-width:901px){.wrap{padding-right:max(92px,4vw)}}
@media(max-width:900px){
  html{scroll-padding-bottom:100px}
  .site-preferences{top:auto;bottom:calc(14px + env(safe-area-inset-bottom,0px));right:14px;transform:none;flex-direction:row;gap:6px;padding:5px}
  .language-switcher{flex-direction:row}
  .theme-toggle{border-top:0;border-left:1px solid #d6d6d6;border-radius:0 24px 24px 0}
  .contact{padding-bottom:calc(92px + env(safe-area-inset-bottom,0px))}
  .site-footer{padding-bottom:calc(92px + env(safe-area-inset-bottom,0px))}
}
@media(max-width:760px){header.wrap{flex-wrap:wrap;align-items:center;gap:18px}header.wrap nav{flex:1;min-width:200px;gap:12px 16px;font-size:.875rem}}

/* The navigation remains available while the visitor moves through the page. */
html{scroll-padding-top:90px}
header.wrap{position:sticky;top:0;z-index:400;background:#fff;color:#111;border-bottom:1px solid #d8d8d8;max-width:none;padding-inline:max(clamp(20px,4vw,72px),calc((100vw - 1600px)/2 + 72px));box-shadow:0 3px 15px #0000000a}
html[data-theme="dark"] header.wrap{background:#141414;color:#f1f1ed;border-color:#444;box-shadow:0 3px 15px #0003}
header.wrap nav{align-items:center;flex-wrap:nowrap;white-space:nowrap}
header.wrap nav a{position:relative;padding-block:8px}
header.wrap nav a::after{content:"";position:absolute;bottom:2px;left:0;right:0;height:2px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .2s ease}
header.wrap nav a:hover::after,header.wrap nav a:focus-visible::after,header.wrap nav a[aria-current="location"]::after{transform:scaleX(1)}
header.wrap nav a[aria-current="location"]{font-weight:700}
.mobile-menu-toggle{display:none}
@media(max-width:760px){
  html{scroll-padding-top:76px}
  header.wrap{height:74px;min-height:74px;padding:12px 20px;display:flex;flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:16px}
  header.wrap .logo{flex-shrink:0}
  .js-nav header.wrap .mobile-menu-toggle{display:block;margin-left:auto;padding:8px 0;min-width:50px;border:0;background:transparent;color:inherit;font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em}
  .js-nav header.wrap .mobile-menu-toggle[aria-expanded="true"]{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:7px}
  .js-nav header.wrap nav{display:none;position:absolute;top:calc(100% - 1px);left:0;right:0;max-height:calc(100svh - 74px);overflow-y:auto;flex-direction:column;align-items:stretch;gap:0;min-width:0;margin:0;padding:8px 20px 20px;background:#fff;color:#111;border-bottom:1px solid #d8d8d8;box-shadow:0 16px 25px #00000017;font-size:1.1rem;white-space:normal}
  .js-nav header.wrap nav[data-open="true"]{display:flex}
  .js-nav header.wrap nav a{display:block;padding:13px 0;border-top:1px solid #ddd}
  .js-nav header.wrap nav a::after{bottom:8px;right:auto;width:38px}
  html[data-theme="dark"].js-nav header.wrap nav{background:#141414;color:#f1f1ed;border-color:#444}
  html[data-theme="dark"].js-nav header.wrap nav a{border-color:#444}
}
