/* Second edition: nearby explanations, browsable projects, explicit editorial content. */
html { scrollbar-gutter: stable; }
.brand-dot { width:44px; margin-left:2px; }
.brand-dot span, .footer-bottom .brand-dot span {
  top:48%; bottom:auto; left:6px; width:8px; height:8px;
  transform:translate(var(--dot-shift,0px),-50%) scale(var(--dot-scale,1));
  transition:transform .22s ease;
}
.brand-dot:hover span { transform:translate(var(--dot-shift,0px),-50%) scale(var(--dot-scale,3.5)); }
.brand-dot:focus-visible span, .brand-dot[aria-expanded=true] span { transform:translate(7px,-50%) scale(3.5); }
.name-popover {
  position:fixed; inset:auto; margin:0; padding:28px 28px 30px;
  width:min(365px,calc(100vw - 32px)); border:1px solid var(--rule);
  color:var(--ink); background:var(--paper); overflow:visible;
  box-shadow:0 7px 24px #2023210d;
}
.name-popover::backdrop { background:transparent; }
.name-popover h2 { font:400 12px var(--body); text-transform:uppercase; letter-spacing:.07em; color:var(--quiet); margin:0 0 22px; }
.name-popover .name-definition { font:400 18px/1.65 var(--body); }
.name-popover .name-definition p { margin:0; }
.popover-close { position:absolute; top:9px; right:8px; width:44px; height:44px; font-size:26px; }
.signal-field { height:365px; margin-top:0; margin-bottom:20px; }
.signal { overflow:visible; }
.hero-foot { align-items:center; padding:12px 0; text-transform:none; letter-spacing:0; }
.hero-foot .quiet-link { color:var(--ink); border:0; padding:0; min-height:44px; margin:0; }
.signal-toggle { width:44px; height:44px; display:grid; place-items:center; color:var(--quiet); border:1px solid var(--rule); border-radius:50%; }
.signal-toggle[hidden] { display:none; }
.signal-toggle:hover { color:var(--ink); border-color:var(--quiet); }
.signal-toggle svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.2; }
.signal-play { display:none; }
.signal-toggle[data-paused=true] .signal-pause { display:none; }
.signal-toggle[data-paused=true] .signal-play { display:block; }
.client-list { grid-template-columns:repeat(5,minmax(0,1fr)); }
.client img { width:auto; height:auto; max-width:82%; max-height:63px; opacity:.87; }
.client-wide img { max-width:94%; max-height:75px; }
.project-carousel { position:relative; }
.carousel-toolbar { display:flex; align-items:center; justify-content:space-between; border-top:1px solid var(--ink); padding:20px 0 23px; }
.carousel-count { font-size:13px; color:var(--quiet); font-variant-numeric:tabular-nums; }
.carousel-controls { display:flex; gap:10px; }
.carousel-controls button { border:1px solid var(--rule); min-height:44px; min-width:88px; padding:8px 16px; font-size:14px; }
.carousel-controls button:hover:not(:disabled) { border-color:var(--ink); }
button:disabled { cursor:default; opacity:.35; }
.project-track { display:flex; gap:24px; padding:0 0 20px; margin:0; list-style:none; overflow-x:auto; scroll-snap-type:x mandatory; overscroll-behavior-x:contain; scrollbar-width:thin; scrollbar-color:#b2b9ad transparent; scroll-padding:0; }
.project-track::-webkit-scrollbar { height:4px; }.project-track::-webkit-scrollbar-thumb { background:#b2b9ad; }
.project-card { flex:0 0 calc((100% - 48px)/3); min-width:0; scroll-snap-align:start; display:flex; }
.project-card>a { display:flex; flex-direction:column; width:100%; border:1px solid var(--rule); transition:border-color .2s; }
.project-card>a:hover { color:var(--ink); border-color:#879281; }
.project-art { background:#edf0e9; color:#626e5e; height:190px; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.project-art svg { width:100%; height:100%; transition:transform .4s; }
.project-card>a:hover .project-art svg { transform:scale(1.035); }
.project-card-copy { padding:26px 26px 22px; display:flex; flex-direction:column; flex:1; }
.project-card h3 { font-size:clamp(24px,2.1vw,31px); line-height:1.22; letter-spacing:-.04em; margin:16px 0; }
.project-card-copy>p { font-size:16px; line-height:1.65; color:var(--quiet); margin-bottom:26px; }
.project-card-bottom { margin-top:auto; display:flex; align-items:center; justify-content:space-between; padding-top:18px; border-top:1px solid var(--rule); font-size:14px; }
.project-card-bottom>span { font-size:22px; color:var(--signal-ink); }
.carousel-hint { margin-top:15px; font-size:12px; color:var(--quiet); }
.project-open { overflow:hidden; }
.project-dialog { border:0; padding:0; color:var(--ink); background:var(--paper); width:min(970px,calc(100vw - 64px)); max-height:calc(100dvh - 64px); overscroll-behavior:contain; }
.project-dialog::backdrop { background:#1a211acc; backdrop-filter:blur(5px); }
.project-toolbar { position:sticky; top:0; z-index:1; padding:15px 30px; display:flex; align-items:center; gap:25px; border-bottom:1px solid var(--rule); background:var(--paper); }
.project-back { padding:10px 0; font-size:14px; }
.project-count { margin-left:auto; color:var(--quiet); font-size:13px; font-variant-numeric:tabular-nums; }
.project-close { width:44px; height:44px; font-size:28px; }
.project-dialog-content { padding:45px 64px 35px; }
.project-intro .eyebrow { color:var(--quiet); }
.project-intro h2 { font-size:clamp(34px,4vw,54px); line-height:1.16; letter-spacing:-.045em; margin:20px 0 24px; }
.project-summary { font-size:19px; line-height:1.65; color:var(--quiet); }
.project-facts { display:flex; flex-wrap:wrap; gap:24px 42px; margin:32px 0 10px; }
.project-facts strong { font:400 32px/1.2 var(--display); letter-spacing:-.04em; display:block; }
.project-facts span { display:block; font-size:13px; color:var(--quiet); margin-top:8px; }
.project-blocks { margin-top:38px; border-top:1px solid var(--rule); }
.project-blocks section { display:grid; grid-template-columns:155px 1fr; gap:24px; border-bottom:1px solid var(--rule); padding:25px 0; }
.project-blocks h3 { font:400 16px/1.5 var(--body); }
.project-blocks h3>span { font-size:11px; display:block; color:var(--signal-ink); margin-bottom:8px; }
.project-blocks p { font-size:16px; line-height:1.75; }
.project-tech { padding-top:26px; color:var(--quiet); }
.project-tech>span { display:block; font-size:12px; margin-bottom:8px; }
.project-tech>p { font-size:14px; }
.project-dialog-footer { display:flex; justify-content:space-between; gap:25px; padding:22px 64px 28px; }
.project-dialog-footer button { font-size:14px; min-height:44px; padding:0; }
.project-return { display:inline-block; border-bottom:1px solid var(--rule); font-size:14px; margin-top:35px; padding-bottom:8px; }
.article-list { border-top:1px solid var(--ink); display:grid; grid-template-columns:1fr 1fr; column-gap:60px; }
.article-row { display:flex; flex-direction:column; gap:0; align-items:flex-start; padding:32px 0; height:100%; }
.article-row .article-topic { font-size:12px; }
.article-row h3 { font-size:32px; line-height:1.28; margin:18px 0; letter-spacing:-.04em; }
.article-excerpt { color:var(--quiet); font-size:16px; line-height:1.7; margin:0 0 24px; }
.article-read { margin-top:auto; font-size:14px; border-bottom:1px solid var(--rule); padding-bottom:4px; }
.reading-top>a { border-bottom:1px solid var(--rule); }
.reading-copy ul,.reading-copy ol { padding-left:22px; font-size:18px; line-height:1.8; }
.reading-copy li+li { margin-top:9px; }
.reading-copy a { text-decoration:underline; text-underline-offset:3px; text-decoration-color:#b3bdb0; }
.reading-copy code { background:#edf0e9; padding:2px 5px; font-size:.86em; overflow-wrap:anywhere; }
.reading-copy .table-scroll { overflow-x:auto; max-width:100%; margin:26px 0; }
.reading-copy table { border-collapse:collapse; width:100%; font-size:15px; line-height:1.6; text-align:left; }
.reading-copy th,.reading-copy td { padding:14px 16px 14px 0; border-bottom:1px solid var(--rule); vertical-align:top; min-width:105px; }
.reading-copy th { font-weight:400; color:var(--quiet); }
.reading-copy blockquote { margin:25px 0; padding-left:24px; border-left:2px solid var(--signal); }
.reading-sources { margin-top:60px; padding-top:30px; border-top:1px solid var(--rule); }
.reading-sources h2 { font-size:25px; }
.reading-sources li { font-size:14px; line-height:1.7; }
.source-scope { display:block; color:var(--quiet); font-size:13px; margin-top:5px; }
.reading-related .article-row { display:flex; }.reading-related .article-row h3{font-size:29px;}
@media(max-width:1100px) and (min-width:701px) { .project-card{flex-basis:calc((100% - 24px)/2)} .desktop-nav{gap:18px;font-size:13px}.header{gap:14px}.article-list{gap:35px}.client-list{grid-template-columns:repeat(4,minmax(0,1fr))} }
@media(max-width:700px) {
  .brand-dot{width:36px}
  .signal-field{height:280px;margin-top:0;margin-bottom:25px}.signal{width:145%;max-width:none;margin-left:-22.5%}
  .hero-meta{font-size:12px}.hero-foot .quiet-link span{display:inline}.hero-foot .quiet-link{font-size:14px}
  .client-list{grid-template-columns:repeat(2,minmax(0,1fr))}.client{min-height:107px;padding:20px 10px}.client img{max-width:92%;max-height:57px}.client-wide{grid-column:span 2}.client-wide img{max-width:86%;max-height:73px}
  .project-card{flex-basis:calc(100% - 24px)}.project-track{gap:16px}.project-art{height:174px}.project-card-copy{padding:23px 23px 20px}.project-card h3{font-size:29px}
  .carousel-toolbar{padding:15px 0 20px}.carousel-controls{gap:7px}.carousel-controls button{min-width:75px;padding:8px 12px}.carousel-hint{font-size:12px}
  .project-dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 20px)}.project-toolbar{padding:9px 16px;gap:12px}.project-back{font-size:13px}.project-count{font-size:12px}.project-close{width:36px}
  .project-dialog-content{padding:29px 24px 25px}.project-intro h2{font-size:35px}.project-summary{font-size:17px}.project-facts{gap:22px 26px}.project-facts strong{font-size:28px}.project-facts span{font-size:12px}
  .project-blocks{margin-top:30px}.project-blocks section{grid-template-columns:1fr;gap:12px;padding:23px 0}.project-blocks h3>span{display:inline-block;margin:0 12px 0 0}.project-blocks p{font-size:16px;line-height:1.75}
  .project-dialog-footer{padding:8px 24px 22px;gap:20px}.project-dialog-footer button{font-size:13px}.name-popover{padding:25px 24px}.name-popover .name-definition{font-size:17px}
  .article-list{grid-template-columns:1fr}.article-row{padding:27px 0}.article-row h3{font-size:29px;margin:15px 0}.article-excerpt{font-size:16px;margin-bottom:20px}.article-read{font-size:14px}
  .reading-copy ul,.reading-copy ol{font-size:17px}.reading-sources li{font-size:14px}.reading-layout{min-width:0}.reading-copy{min-width:0}.reading-copy td,.reading-copy th{font-size:14px}
}
@media(prefers-reduced-motion:reduce){.project-track{scroll-behavior:auto}.brand-dot span,.project-art svg{transition:none}}

.reading-copy .table-hint{font-size:12px;color:var(--quiet);margin-top:-15px;margin-bottom:28px}.table-hint[hidden]{display:none}

.footer-legal{display:flex;justify-content:space-between;align-items:baseline;gap:24px;padding:25px 0 30px;border-top:1px solid var(--rule);font-size:12px;line-height:1.6;color:var(--quiet)}
.footer-legal nav{display:flex;flex-wrap:wrap;gap:12px 25px}.footer-legal a{border-bottom:1px solid var(--rule);padding:4px 0}.cookie-notice{max-width:410px}
.footer-legal button{font-size:inherit;color:inherit;border-bottom:1px solid var(--rule);padding:4px 0;text-align:left}
.footer-legal button[hidden],.analytics-notice[hidden]{display:none}
.analytics-notice{position:fixed;z-index:30;right:24px;bottom:24px;width:min(620px,calc(100% - 48px));padding:22px 24px;background:var(--paper);border:1px solid var(--rule);box-shadow:0 8px 32px #2026200d;display:flex;align-items:center;gap:26px}
.analytics-notice p{font-size:14px;line-height:1.65;margin:0}
.analytics-notice p a,.analytics-dialog p a{border-bottom:1px solid var(--rule)}
.analytics-notice-actions{display:flex;flex-direction:column;align-items:center;flex-shrink:0;gap:2px}
.analytics-primary{background:var(--ink);color:var(--paper);min-width:100px;min-height:46px;padding:12px 24px;font-size:15px}
.analytics-primary:hover{background:var(--signal-ink)}
.analytics-secondary{font-size:12px;min-height:44px;padding:9px 12px;color:var(--quiet)}
.analytics-secondary:hover{color:var(--ink)}
.analytics-dialog{width:min(530px,calc(100% - 32px));max-height:calc(100dvh - 40px);padding:30px;background:var(--paper);color:var(--ink);border:1px solid var(--rule)}
.analytics-dialog::backdrop{background:#1f241f40}
.analytics-dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}
.analytics-dialog h2{font-size:24px;letter-spacing:-.04em;line-height:1.2;margin:0}
.analytics-close{width:44px;height:44px;flex-shrink:0;font-size:28px;color:var(--quiet)}
.analytics-dialog p{font-size:15px;line-height:1.7}
.analytics-option{display:flex;align-items:center;gap:12px;border-block:1px solid var(--rule);padding:20px 0;margin:24px 0;cursor:pointer;font-size:15px}
.analytics-option input{appearance:auto;width:20px;height:20px;accent-color:var(--ink);flex-shrink:0}
.analytics-dialog .analytics-help{font-size:13px;color:var(--quiet)}
.analytics-dialog-actions{display:flex;align-items:center;gap:16px;margin-top:24px}
@media(max-width:700px){.analytics-notice{right:12px;bottom:12px;width:calc(100% - 24px);padding:17px 18px;gap:15px}.analytics-notice p{font-size:12px}.analytics-primary{min-width:82px;padding:12px 18px}.analytics-dialog{padding:22px}.analytics-dialog h2{font-size:22px}.footer-legal button{min-height:44px}}
.legal-page .reading-header h1{font-size:clamp(38px,5vw,72px)}.legal-draft{font-size:14px;line-height:1.7;color:var(--signal-ink);border-left:2px solid var(--signal);padding-left:18px;margin-top:28px;max-width:690px}
@media(max-width:700px){.footer-legal{display:block;padding:24px 0 28px}.footer-legal nav{margin-top:15px;gap:10px 20px}.footer-legal a{display:inline-block;padding:10px 0}.contact-people{gap:35px}.legal-page .reading-header h1{font-size:38px}.legal-page .reading-top{gap:20px}.legal-draft{font-size:13px}}
