@font-face{font-family:Plex;src:url(fonts/IBMPlexSans-Regular-lat.woff2) format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Plex;src:url(fonts/IBMPlexSans-SemiBold-lat.woff2) format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:Corm;src:url(fonts/cormorant-garamond-latin-300-normal.woff2) format('woff2');font-weight:300;font-display:swap}
@font-face{font-family:Corm;src:url(fonts/cormorant-garamond-latin-300-italic.woff2) format('woff2');font-weight:300;font-style:italic;font-display:swap}
@font-face{font-family:Corm;src:url(fonts/cormorant-garamond-latin-400-normal.woff2) format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Corm;src:url(fonts/cormorant-garamond-latin-400-italic.woff2) format('woff2');font-weight:400;font-style:italic;font-display:swap}

:root{--k:#1f2326;--k2:#181b1e;--serif:Corm,"Cormorant Garamond",Georgia,serif;--w:#f1efea;--m:rgba(241,239,234,.58);--l:rgba(241,239,234,.14);--pad:clamp(20px,3.4vw,52px);--ease:cubic-bezier(.7,0,.2,1)}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--k)}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{font:400 17px/1.5 Plex,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--w);background:var(--k);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;overflow-x:clip}
a{color:inherit}
img,video{display:block;max-width:100%}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
:focus-visible{outline:1px solid var(--w);outline-offset:4px}
[hidden]{display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.skip{position:fixed;left:-999px;top:12px;z-index:99;background:var(--w);color:var(--k);padding:8px 12px}.skip:focus{left:12px}
::selection{background:var(--w);color:var(--k)}

.grain{position:fixed;inset:-50%;z-index:90;pointer-events:none;opacity:.06;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:grain 1.2s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-6%,4%)}40%{transform:translate(4%,-6%)}60%{transform:translate(-3%,-3%)}80%{transform:translate(6%,3%)}100%{transform:translate(0,0)}}

/* section themes, Palantir rhythm: black media, grey statements, white content */
[data-theme=black]{background:#000}
[data-theme=grey]{background:var(--k)}
[data-theme=light]{--w:#151719;--m:rgba(21,23,25,.62);--l:rgba(21,23,25,.14);background:#fff;color:var(--w)}
[data-theme=light] .card,[data-theme=light] .card *{--w:#f1efea;--m:rgba(241,239,234,.62);color:#f1efea}
[data-theme=light] .card-l{border-color:#f1efea}
[data-theme=light] .avatar{background:radial-gradient(circle at 50% 40%,#e9eaeb,#cfd2d4 75%);border-color:rgba(21,23,25,.12)}
[data-theme=light] .in{border-color:rgba(21,23,25,.45)}
[data-theme=light] .in:hover{background:#151719;color:#fff;border-color:#151719}
[data-theme=light] ::selection{background:#151719;color:#fff}
.foot{background:#1d2124}

/* top bar */
.nav{position:fixed;top:10px;left:10px;right:10px;z-index:50;height:60px;display:flex;align-items:center;padding:0 10px 0 22px;border-radius:8px;background:rgba(45,50,54,.45);backdrop-filter:blur(18px) saturate(1.2);-webkit-backdrop-filter:blur(18px) saturate(1.2);border:1px solid rgba(241,239,234,.08)}
.nav-mark{display:flex;align-items:center;gap:10px;font-weight:600;font-size:19px;letter-spacing:-.03em;text-decoration:none}
.nav-mark img{height:30px;width:auto}.nav-mark .mk-l{display:none}.nav.light .mk-d{display:none}.nav.light .mk-l{display:block}
.nav-label{position:absolute;left:50%;transform:translateX(-50%);font-size:15px;letter-spacing:.01em;white-space:nowrap;opacity:0;transition:opacity .4s;color:var(--m)}
.nav.scrolled .nav-label{opacity:1}
.nav-actions{margin-left:auto;display:flex;gap:6px;align-items:center}
.nav-cta{display:inline-flex;align-items:center;height:40px;padding:0 22px;border:1px solid var(--w);text-decoration:none;font-size:15px;margin-right:6px;transition:background .25s,color .25s}
.nav-cta:hover{background:var(--w);color:var(--k)}
.nav-btn{width:40px;height:40px;display:grid;place-items:center;border:1px solid rgba(241,239,234,.5);transition:border-color .25s,background .25s}
.nav-btn:hover,.nav-btn[aria-expanded=true]{border-color:var(--w);background:rgba(241,239,234,.08)}
.nav,.nav *{transition:background .35s,color .35s,border-color .35s}
.nav.light{background:rgba(255,255,255,.72);border-color:rgba(21,23,25,.08);color:#151719}
.nav.light .nav-cta{border-color:#151719;background:#151719;color:#fff}.nav.light .nav-cta:hover{background:transparent;color:#151719}
.nav.light .nav-btn{border-color:rgba(21,23,25,.4)}.nav.light .nav-label{color:rgba(21,23,25,.6)}
.rail.light .rail-name{color:rgba(21,23,25,.6)}.rail.light .rail-line{background:rgba(21,23,25,.15)}.rail.light .rail-fill{background:#151719}

.search{position:fixed;top:80px;left:10px;right:10px;z-index:51;border-radius:8px;padding:18px 22px 10px;background:rgba(40,45,49,.6);backdrop-filter:blur(22px) saturate(1.2);-webkit-backdrop-filter:blur(22px) saturate(1.2);border:1px solid rgba(241,239,234,.08)}
.search input{width:100%;background:transparent;border:0;border-bottom:1px solid var(--l);color:var(--w);font:300 clamp(1.6rem,1rem + 2vw,2.6rem)/1.2 Plex,sans-serif;letter-spacing:-.02em;padding:4px 0 14px;outline:none}
.search input::-webkit-search-cancel-button{-webkit-appearance:none}
.search input::placeholder{color:rgba(241,239,234,.32)}
.results{list-style:none;max-height:50vh;overflow:auto}
.results a{display:grid;grid-template-columns:150px 1fr;gap:16px;padding:12px 0;border-bottom:1px solid var(--l);text-decoration:none}
.results a:hover,.results a:focus-visible{background:rgba(241,239,234,.05)}
.results small{color:var(--m);font-size:13px;padding-top:3px}
.results span{font-size:15px}
.results mark{background:none;color:var(--w);text-decoration:underline;text-underline-offset:3px}
.results .none{display:block;color:var(--m);padding:12px 0;font-size:15px}

.menu{position:fixed;inset:0;z-index:45;background:rgba(31,35,38,.82);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);display:flex;align-items:center;padding:0 var(--pad)}
.menu ol{list-style:none;width:100%}
.menu a{display:block;padding:12px 0;border-bottom:1px solid var(--l);text-decoration:none;font-weight:400;font-size:clamp(2.4rem,1rem + 5vw,6rem);letter-spacing:-.04em;line-height:1;transition:padding .3s}
.menu a:hover{padding-left:16px}

/* left contents: one hairline per section, the current one grows (Gotham-like, our own form) */
.toc{position:fixed;left:12px;top:50%;transform:translateY(-50%);z-index:40;display:flex;flex-direction:column;gap:9px;opacity:0;transition:opacity .5s;--tc:241,239,234}
.toc.show{opacity:1}
.toc.light{--tc:21,23,25;--tb:255,255,255}
.toc a{position:relative;display:block;height:9px;width:30px;text-decoration:none}
.toc a i{position:absolute;left:0;top:4px;height:1px;width:calc(6px + 16px * var(--g,0));background:rgba(var(--tc),calc(.28 + .72 * var(--g,0)));transition:width .45s var(--ease),background .45s}
.toc a span{position:absolute;left:30px;top:-5px;white-space:nowrap;font-size:12px;letter-spacing:.02em;color:rgba(var(--tc),.85);padding:2px 6px;border-radius:2px;background:rgba(var(--tb,0,0,0),.6);opacity:0;transform:translateX(-6px);transition:opacity .3s,transform .3s;pointer-events:none}
.toc a:hover span{opacity:1;transform:none}

/* hero */
.hero{position:relative;height:100svh;min-height:620px;overflow:hidden;background:radial-gradient(60% 55% at 50% 38%,#1a1a1a 0%,#000 70%)}
.hero-head{position:absolute;left:50%;top:6vh;width:min(62vw,110vh);transform:translateX(-50%);will-change:transform}
.hero-head img{width:100%;height:auto;-webkit-mask-image:linear-gradient(#000 62%,transparent 94%);mask-image:linear-gradient(#000 62%,transparent 94%)}
.hero-meta{position:absolute;left:var(--pad);bottom:calc(19.6vw + 4vh);display:flex;flex-direction:column;gap:18px;font-size:13px;line-height:1.3}
.hero-meta p{display:flex;flex-direction:column;padding-left:12px;border-left:1px solid rgba(241,239,234,.5)}
.word{position:absolute;left:0;right:0;bottom:0;height:19.6vw;overflow:hidden;font-weight:600;line-height:.78;letter-spacing:-.065em;white-space:nowrap;font-size:26vw;padding-left:1.4vw;-webkit-mask-image:linear-gradient(#000 52%,rgba(0,0,0,.35) 78%,transparent 100%);mask-image:linear-gradient(#000 52%,rgba(0,0,0,.35) 78%,transparent 100%)}
.word-in{display:block;transform-origin:50% 100%}
.word .char{display:inline-block;will-change:transform}

/* shared heads */
.head-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:end;margin-bottom:40px}
.head-row h2{font-weight:400;font-size:clamp(2.6rem,1.4rem + 4vw,6.4rem);line-height:.95;letter-spacing:-.045em}
.head-row p{font:300 italic clamp(1.3rem,1rem + .8vw,1.8rem)/1.2 var(--serif);color:var(--m);max-width:22em;justify-self:end}

.intro{min-height:80svh;display:flex;align-items:center;padding:18vh var(--pad)}
.intro-text{font-weight:400;font-size:clamp(2rem,1rem + 3.4vw,4.8rem);line-height:1.04;letter-spacing:-.03em;max-width:19em;text-wrap:pretty}
.js .intro-text .w{opacity:.14}

/* image cards: always a background and a link */
.build,.live,.work,.team{padding:12vh var(--pad)}
.cards{display:grid;gap:10px;counter-reset:card}
.cards-6 .card::marker{content:none}
.cards-6 .card .card-n{position:absolute;top:18px;left:24px;font:300 italic 2rem/1 var(--serif);color:rgba(241,239,234,.8)}
.cards-6{grid-template-columns:repeat(3,minmax(0,1fr))}
.cards-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.card{position:relative;isolation:isolate;counter-increment:card;display:flex;flex-direction:column;justify-content:flex-end;min-height:clamp(260px,30vw,420px);padding:26px 26px 24px;text-decoration:none;overflow:hidden;border-radius:4px;background:#111}
.card::before{content:"";position:absolute;inset:0;z-index:-2;background:var(--bg) left top/cover no-repeat;filter:brightness(.92);transform:scale(1.02);transition:transform 1.2s var(--ease),filter .6s}
.card::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(0,0,0,.05) 0%,rgba(0,0,0,.25) 45%,rgba(0,0,0,.88) 100%)}
.card:hover::before{transform:scale(1.07);filter:brightness(1)}
.card-tall{min-height:clamp(380px,40vw,560px)}
.card-k{font:italic 300 1.15rem/1.2 var(--serif);color:var(--m);margin-bottom:8px}
.card-t{font-weight:400;font-size:clamp(1.7rem,1.1rem + 1.4vw,2.6rem);line-height:.98;letter-spacing:-.03em}
.card-d{margin-top:10px;color:rgba(241,239,234,.75);font-size:15px;max-width:24em}
.card-l{margin-top:18px;align-self:flex-start;font-size:14px;padding-bottom:3px;border-bottom:1px solid var(--w)}

/* software: one sticky stage, three apps that swap while scrolling */
.live{position:relative;height:200svh;padding:0 var(--pad)}
.live-pin{position:sticky;top:0;height:100svh;display:grid;grid-template-columns:minmax(0,.62fr) minmax(0,1.38fr);gap:48px;align-items:center;padding-top:60px}
.live-side h2{font-weight:400;font-size:clamp(2.2rem,1.2rem + 2.6vw,4.4rem);line-height:.98;letter-spacing:-.045em;margin-bottom:36px}
.live-cap{position:relative;height:clamp(260px,34vh,340px)}
.cap-item{position:absolute;inset:0;visibility:hidden}
.cap-item.on{visibility:visible}
.cap-item>*{transform:translateY(105%);opacity:0;transition:transform .9s var(--ease),opacity .5s}
.cap-item.on>*{transform:none;opacity:1}
.cap-item.on>:nth-child(2){transition-delay:.06s}.cap-item.on>:nth-child(3){transition-delay:.12s}.cap-item.on>:nth-child(4){transition-delay:.18s}
.cap-n{font:300 italic clamp(3.4rem,2rem + 3vw,5.6rem)/1 var(--serif);color:var(--m);margin-bottom:18px}
.cap-item h3{font-weight:400;font-size:clamp(1.6rem,1.1rem + 1.3vw,2.5rem);line-height:1.05;letter-spacing:-.035em;max-width:12em}
.cap-item p:not(.cap-n){color:var(--m);margin-top:12px;font-size:17px;max-width:24em}
.cap-item a{display:inline-block;margin-top:22px;font-size:15px;text-decoration:none;border-bottom:1px solid var(--w);padding-bottom:3px}
.live-stage{position:relative;aspect-ratio:16/10;border-radius:10px;overflow:hidden;background:#111;box-shadow:0 30px 80px rgba(0,0,0,.5);border:1px solid rgba(241,239,234,.12)}
.live-stage{transform-origin:50% 100%;will-change:transform}
.live-frame{position:absolute;inset:0;clip-path:inset(100% 0 0 0);transition:clip-path 1s var(--ease)}
.live-frame iframe{transition:transform 1.4s var(--ease)}
.live-frame.on{clip-path:inset(0 0 0 0);z-index:2}
.live-frame.out{clip-path:inset(0 0 100% 0);z-index:1}
.live-frame iframe{position:absolute;left:0;top:0;width:1440px;height:900px;border:0;transform-origin:0 0;pointer-events:none;background:#fff}
@media (max-width:900px){
  .live{height:auto;padding:12vh var(--pad)}
  .live-pin{position:relative;height:auto;grid-template-columns:1fr;gap:28px;padding-top:0}
  .live-cap{height:auto}.cap-item{position:relative;visibility:visible;display:none}.cap-item.on{display:block}
}

/* fields: plain full-bleed video, no scroll effect */
.field{position:relative;height:100svh;min-height:560px;overflow:hidden}
.field-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.field::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.35),rgba(0,0,0,.1) 40%,rgba(0,0,0,.75))}
.field-copy{position:absolute;left:var(--pad);right:var(--pad);bottom:10vh;z-index:1}
.field-copy h2{font-weight:400;font-size:clamp(2.4rem,1.2rem + 4vw,6rem);line-height:.98;letter-spacing:-.05em;max-width:10em}
.field-copy ul{list-style:none;display:flex;flex-wrap:wrap;gap:12px 40px;margin-top:32px;font-size:17px}
.field-copy li{padding-left:12px;border-left:1px solid rgba(241,239,234,.6)}

/* gallery: websites hung like works in a museum room */
.gallery{position:relative;height:240svh}
.gal-pin{position:sticky;top:0;height:100svh;overflow:hidden;display:flex;flex-direction:column;justify-content:center;padding:70px var(--pad) 0;
  background:radial-gradient(28% 50% at 20% 34%,rgba(241,239,234,.075),transparent 70%),radial-gradient(30% 55% at 50% 30%,rgba(241,239,234,.1),transparent 72%),radial-gradient(28% 50% at 80% 34%,rgba(241,239,234,.075),transparent 70%),#050505}
.gal-title{font-weight:400;font-size:clamp(1.8rem,1rem + 2.2vw,3.4rem);letter-spacing:-.04em;line-height:1;max-width:16em;margin-bottom:5vh}
.gal-wall{display:grid;grid-template-columns:1fr 1.25fr 1fr;gap:4vw;align-items:end;perspective:1400px}
.gal-work{margin:0;transform-style:preserve-3d}
.gal-frame{display:block;position:relative;aspect-ratio:3/4;overflow:hidden;background:#0d0d0d;border:10px solid #0b0b0b;outline:1px solid rgba(241,239,234,.16);box-shadow:0 40px 80px rgba(0,0,0,.7),inset 0 0 0 1px rgba(255,255,255,.04)}
.gal-main .gal-frame{aspect-ratio:3/3.6}
.gal-frame::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.07),transparent 30%,transparent 70%,rgba(0,0,0,.35))}
.gal-page{position:absolute;left:0;top:0;width:100%;height:auto;will-change:transform}
.gal-frame:hover .gal-page{filter:brightness(1.05)}
.plaque{display:grid;grid-template-columns:auto 1fr;column-gap:10px;margin-top:22px;max-width:22em;font-size:13px;line-height:1.45;color:var(--m)}
.plaque i{font:300 italic 1.4rem/1 var(--serif);color:var(--w);grid-row:span 3}
.plaque b{font-weight:400;color:var(--w);font-size:15px}
@media (max-width:900px){
  .gallery{height:auto}.gal-pin{position:relative;height:auto;padding:12vh var(--pad)}
  .gal-wall{grid-template-columns:1fr;gap:56px}.gal-frame,.gal-main .gal-frame{aspect-ratio:4/5}
}

/* method band with marble head (Palantir grey section) */
.quote{position:relative;min-height:100svh;display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:center;gap:48px;padding:12vh var(--pad);overflow:hidden}
.quote-bg{position:absolute;inset:0;opacity:.12;pointer-events:none}
.quote-bg img{width:100%;height:130%;object-fit:cover;filter:grayscale(1)}
.quote-head{position:relative}
.quote-head img{width:100%;max-width:560px;height:auto;margin-left:auto;-webkit-mask-image:linear-gradient(#000 70%,transparent 98%);mask-image:linear-gradient(#000 70%,transparent 98%)}
.quote-txt{position:relative}
.quote-txt h2{font-weight:400;font-size:clamp(2.3rem,1.2rem + 3.6vw,5.4rem);line-height:1;letter-spacing:-.045em;max-width:13em}
.quote-txt p{margin-top:32px;color:var(--m);max-width:32em;font-size:18px}
.lk{display:inline-block;margin-top:28px;text-decoration:none;position:relative;padding-bottom:4px}
.lk::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--w);transform-origin:right;transition:transform .5s var(--ease)}
.lk:hover::after{transform:scaleX(0)}

/* team: round portraits */
.people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px;max-width:1000px}
.person{display:flex;align-items:center;gap:28px}
.avatar{position:relative;flex:none;width:clamp(150px,14vw,200px);aspect-ratio:1;border-radius:50%;overflow:hidden;background:radial-gradient(circle at 50% 40%,rgba(241,239,234,.14),rgba(241,239,234,.03) 70%);border:1px solid rgba(241,239,234,.16);backdrop-filter:blur(8px)}
.avatar img{position:absolute;left:50%;bottom:-24%;transform:translateX(-50%);height:128%;width:auto;max-width:none;filter:grayscale(1) contrast(1.06);transition:transform 1s var(--ease)}
.person:first-child .avatar img{height:110%;bottom:-8%;transform:translateX(-46%)}
.person:last-child .avatar img{transform:translateX(-40%)}
.person:first-child:hover .avatar img{transform:translateX(-46%) scale(1.05)}
.person:last-child:hover .avatar img{transform:translateX(-40%) scale(1.05)}
.person:hover .avatar img{transform:translateX(-50%) scale(1.05)}
.person h3{font-weight:400;font-size:clamp(1.5rem,1.1rem + 1vw,2.2rem);letter-spacing:-.03em;line-height:1}
.person p{color:var(--m);margin-top:8px;max-width:22em;font-size:15px}
.in{display:inline-flex;align-items:center;gap:8px;margin-top:14px;padding:7px 12px 7px 10px;border:1px solid rgba(241,239,234,.5);border-radius:3px;font-size:13px;text-decoration:none;transition:background .25s,color .25s,border-color .25s}
.in:hover{background:var(--w);color:var(--k);border-color:var(--w)}

/* contact */
.contact{position:relative;min-height:90svh;display:flex;align-items:center;padding:14vh var(--pad);overflow:hidden;border-top:1px solid var(--l)}
.contact-col{position:absolute;right:2vw;top:6vh;bottom:0;width:min(36vw,560px);overflow:hidden}
.contact-col img{width:100%;height:118%;object-fit:contain;object-position:50% 0;opacity:.55;-webkit-mask-image:linear-gradient(#000 55%,transparent 92%);mask-image:linear-gradient(#000 55%,transparent 92%)}
.contact-in{position:relative;max-width:min(62vw,900px)}
.contact h2{font-weight:400;font-size:clamp(3.4rem,1.4rem + 7vw,10rem);line-height:.88;letter-spacing:-.04em;margin-bottom:36px}
.contact p{color:var(--m);max-width:30em;margin-bottom:44px;font-size:18px}
.mail{font:300 italic clamp(1.8rem,1rem + 2.6vw,3.6rem)/1.1 var(--serif);text-decoration:none;position:relative;padding-bottom:6px}
.mail::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--w);transform:scaleX(.18);transform-origin:left;transition:transform .7s var(--ease)}
.mail:hover::after{transform:scaleX(1)}

.stack{padding:72px 0 56px;border-top:1px solid var(--l);overflow:hidden}
.stack h2{font-weight:400;font-size:15px;letter-spacing:.02em;color:var(--m);padding:0 var(--pad);margin-bottom:28px}
.marquee{display:flex;width:max-content;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.mq-row{display:flex;gap:72px;padding-right:72px;list-style:none;animation:mq 38s linear infinite}
.marquee:hover .mq-row{animation-play-state:paused}
.mq-row li{display:flex;align-items:center;font-weight:400;font-size:clamp(1.6rem,1rem + 1.6vw,2.6rem);letter-spacing:-.04em;color:rgba(241,239,234,.62);white-space:nowrap}
.mq-row li::after{content:"";width:6px;height:6px;border-radius:50%;background:rgba(241,239,234,.25);margin-left:72px}
.mq-row .lg{display:flex;color:rgba(241,239,234,.85)}.mq-row .lg-word svg{height:30px;width:auto}
@keyframes mq{to{transform:translateX(-100%)}}
.stack-note{padding:0 var(--pad);margin-top:30px;font-size:12px;color:rgba(241,239,234,.45)}
.stack-note a{color:inherit}
@media (prefers-reduced-motion:reduce){.mq-row{animation:none}}
.foot a{color:inherit}
.foot{display:grid;grid-template-columns:1.2fr 1fr auto;gap:32px;padding:40px var(--pad) 48px;border-top:1px solid var(--l);font-size:13px;color:var(--m)}

.js [data-reveal] .line{display:block;overflow:hidden;padding-bottom:.06em}

@media (prefers-reduced-motion:reduce){.grain{animation:none}.js .intro-text .w{opacity:1}.card::before,.person-photo img{transition:none}}
@media (max-width:1000px){
  .cards-6{grid-template-columns:repeat(2,minmax(0,1fr))}
  .live-grid{grid-template-columns:1fr}
}
@media (max-width:760px){
  .toc,.nav-cta,.nav-label{display:none}
  .hero-head{width:120vw;top:9vh}
  .head-row{grid-template-columns:1fr;gap:16px}.head-row p{justify-self:start}
  .cards-6,.cards-3,.people{grid-template-columns:1fr}
  .person{gap:18px}.avatar{width:120px}
  .card{min-height:280px}
  .live-item figcaption{flex-direction:column;gap:6px}
  .contact-col{display:none}.contact-in{max-width:none}
  .quote{grid-template-columns:1fr;min-height:0}.quote-head img{max-width:60vw;margin:0 auto}
  .foot{grid-template-columns:1fr}
  .results a{grid-template-columns:1fr;gap:2px}
}
.foot .foot-links a{margin-right:14px;text-decoration:none;border-bottom:1px solid rgba(241,239,234,.25)}
.field-copy li a{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px;text-decoration-color:rgba(241,239,234,.35);transition:text-decoration-color .3s ease}
.field-copy li a:hover,.field-copy li a:focus-visible{text-decoration-color:#f1efea}
.field-copy li:hover{border-left-color:#f1efea}

@keyframes hhIn{from{opacity:0;transform:scale(1.12);filter:blur(18px)}to{opacity:1;transform:none;filter:none}}
@keyframes hhShow{to{opacity:1}}
@media (prefers-reduced-motion:no-preference){.js .hh-in{opacity:0;animation:hhShow .6s 3s forwards}.js .hh-in.hh-on{animation:hhIn 2.4s cubic-bezier(.215,.61,.355,1) both}}
/* Section backdrops (09/11): antique art behind Software and Websites, faint, lazy, never above the text */
.sec-bg{position:absolute;pointer-events:none;z-index:0}
.sec-bg img{display:block;width:100%;height:100%;filter:grayscale(1)}
.live-side,.live-stage{position:relative;z-index:1}
.live-bg{left:-5vw;bottom:-10vh;width:min(30vw,56vh);height:auto;opacity:.26;-webkit-mask-image:linear-gradient(transparent 0%,#000 38%,#000 82%,transparent 100%);mask-image:linear-gradient(transparent 0%,#000 38%,#000 82%,transparent 100%)}
.live-bg img{height:auto}
.gal-bg{inset:0;opacity:.11;-webkit-mask-image:radial-gradient(70% 60% at 50% 55%,#000 30%,transparent 100%);mask-image:radial-gradient(70% 60% at 50% 55%,#000 30%,transparent 100%)}
.gal-bg img{object-fit:cover;object-position:50% 40%}
.gal-pin>:not(.sec-bg){position:relative;z-index:1}
@media (max-width:900px){.live-bg{display:none}.gal-bg{opacity:.07}}
