:root{
  --bg:#070910;
  --surface:#0d111c;
  --surface-2:#121827;
  --surface-3:#171f31;
  --text:#f5f7fb;
  --muted:#a4aec2;
  --subtle:#8e98ad;
  --line:rgba(255,255,255,.1);
  --line-strong:rgba(255,255,255,.19);
  --violet:#8b7cff;
  --violet-bright:#a99fff;
  --cyan:#61ddec;
  --glow:rgba(139,124,255,.22);
  --serif:"Source Serif 4","Iowan Old Style",Baskerville,serif;
  --sans:Inter,"Helvetica Neue",Arial,sans-serif;
  --radius:22px;
  --shadow:0 30px 80px rgba(0,0,0,.32)
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{
  margin:0;
  overflow-x:hidden;
  background:
    radial-gradient(circle at 78% 8%,rgba(139,124,255,.12),transparent 30rem),
    radial-gradient(circle at 18% 62%,rgba(97,221,236,.055),transparent 34rem),
    var(--bg);
  color:var(--text);
  font-family:var(--sans);
  text-rendering:optimizeLegibility
}
body:before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  opacity:.32;
  background-image:
    linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);
  background-size:64px 64px;
  mask-image:linear-gradient(to bottom,black,transparent 72%)
}
::selection{background:var(--violet);color:white}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--cyan);outline-offset:5px}
.site-header,.hero,.proof,.work,.approach,footer{width:min(1340px,calc(100% - 72px));margin-inline:auto}
.site-header{
  position:sticky;
  top:16px;
  z-index:20;
  min-height:72px;
  margin-top:16px;
  padding:0 24px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border:1px solid var(--line);
  border-radius:18px;
  background:rgba(9,12,20,.78);
  box-shadow:0 12px 40px rgba(0,0,0,.22);
  backdrop-filter:blur(18px)
}
.wordmark{font:500 1.2rem/1 var(--sans);letter-spacing:-.025em}
.wordmark:before{
  content:"";
  display:inline-block;
  width:9px;
  height:9px;
  margin-right:11px;
  border-radius:50%;
  background:linear-gradient(135deg,var(--cyan),var(--violet));
  box-shadow:0 0 18px var(--violet)
}
.site-header nav{display:flex;gap:22px;align-items:center;color:var(--muted);font-size:.78rem;font-weight:600;letter-spacing:.04em}
.site-header nav span{color:var(--muted)}
.site-header nav a{padding:9px 4px;transition:color .2s ease}
.site-header nav a:hover{color:var(--text)}
.eyebrow,.project-type{
  margin:0;
  color:var(--violet-bright);
  font-size:.69rem;
  font-weight:700;
  letter-spacing:.19em;
  line-height:1.45;
  text-transform:uppercase
}
.hero{
  padding-block:clamp(90px,10vw,150px);
  display:grid;
  grid-template-columns:minmax(0,1fr);
  align-items:center;
  gap:clamp(42px,7vw,110px)
}
.hero-copy{position:relative;z-index:2}
.hero h1{
  max-width:800px;
  margin:24px 0 30px;
  font:500 clamp(4.4rem,7vw,7.4rem)/.9 var(--sans);
  letter-spacing:-.07em
}
.hero h1::first-line{color:var(--text)}
.hero-intro{
  max-width:670px;
  margin:0;
  color:var(--muted);
  font-size:clamp(1rem,1.35vw,1.18rem);
  line-height:1.75
}
.actions,.project-links{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.actions{margin-top:36px}
.button{
  min-height:52px;
  padding:0 23px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  border:1px solid var(--line-strong);
  border-radius:12px;
  font-size:.84rem;
  font-weight:650;
  transition:transform .2s ease,border-color .2s ease,background .2s ease
}
.button:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.4)}
.primary{
  border-color:transparent;
  background:linear-gradient(135deg,#6a5aec,#5344c4);
  box-shadow:0 14px 38px rgba(103,87,219,.3)
}
.primary:hover{background:linear-gradient(135deg,#6a5aec,#4a3cb8)}
.secondary{background:rgba(255,255,255,.035)}

.proof{
  min-height:140px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:rgba(255,255,255,.025);
  overflow:hidden
}
.proof>div{display:grid;place-content:center;text-align:center;padding:26px}
.proof>div+div{border-left:1px solid var(--line)}
.proof strong{font:600 clamp(2.3rem,4vw,4rem)/1 var(--sans);letter-spacing:-.06em}
.proof span{margin-top:9px;color:var(--muted);font-size:.76rem;letter-spacing:.04em}
.work,.approach{padding-block:clamp(100px,11vw,165px)}
.section-heading,.approach-intro{
  display:grid;
  grid-template-columns:.55fr 1.35fr .8fr;
  gap:clamp(28px,4vw,68px);
  align-items:end;
  margin-bottom:68px
}
.section-heading h2,.approach-intro h2,.contact h2{
  margin:0;
  font:520 clamp(2.8rem,5vw,5.5rem)/.98 var(--sans);
  letter-spacing:-.06em
}
.section-heading>p:last-child,.approach-intro>p:not(.eyebrow),.contact-copy>p{
  margin:0;
  color:var(--muted);
  font-size:.94rem;
  line-height:1.75
}
.featured{
  display:grid;
  grid-template-columns:.34fr 1.25fr .62fr;
  column-gap:clamp(28px,4vw,62px);
  padding:44px;
  border:1px solid var(--line-strong);
  border-radius:28px;
  background:
    linear-gradient(120deg,rgba(139,124,255,.1),transparent 38%),
    var(--surface);
  box-shadow:var(--shadow)
}
.index,.card-top{color:var(--muted);font-size:.65rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.project-main h3,.project-card h3{
  margin:13px 0 19px;
  font:540 clamp(2.5rem,4.2vw,4.8rem)/.98 var(--sans);
  letter-spacing:-.06em
}
.summary{margin:0;color:var(--muted);line-height:1.7}
.project-main>.summary{max-width:720px;font-size:1.02rem}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:25px;align-items:flex-start;align-content:flex-start}
.tags span{
  padding:7px 10px;
  border:1px solid var(--line);
  border-radius:999px;
  background:rgba(255,255,255,.025);
  color:#c3cada;
  font-size:.66rem
}
.project-links{margin-top:31px;gap:25px}
.project-links a{padding-bottom:4px;border-bottom:1px solid var(--line-strong);font-size:.79rem;font-weight:600}
.project-links a:hover{color:var(--cyan);border-color:var(--cyan)}
.evidence{display:flex;flex-direction:column;justify-content:center}
.evidence>div{
  display:grid;
  grid-template-columns:63px 1fr;
  align-items:baseline;
  gap:13px;
  padding:16px 0;
  border-bottom:1px solid var(--line)
}
.evidence>div:first-child{border-top:1px solid var(--line)}
.evidence strong{font:600 2.1rem/1 var(--sans);letter-spacing:-.05em}
.evidence span{color:var(--muted);font-size:.69rem;line-height:1.4}
.case{margin-top:30px;border-top:1px solid var(--line)}
.featured-case{grid-column:2/4}
.case summary{
  min-height:54px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  cursor:pointer;
  list-style:none;
  color:#d4daea;
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase
}
.case summary::-webkit-details-marker{display:none}
.case summary span{color:var(--violet-bright);font-size:1.5rem;transition:transform .2s}
.case[open] summary span{transform:rotate(45deg)}
.case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;padding:12px 0 26px}
.case-stack{display:grid;gap:20px;padding:12px 0 26px}
.case h4{margin:0 0 8px;color:var(--cyan);font-size:.66rem;letter-spacing:.13em;text-transform:uppercase}
.case p{margin:0;color:var(--muted);font-size:.83rem;line-height:1.65}
.project-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:22px}
.project-grid>.project-card:last-child:nth-child(odd){grid-column:1/-1}
.project-card{
  min-width:0;
  padding:34px;
  display:flex;
  flex-direction:column;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:linear-gradient(145deg,rgba(255,255,255,.04),rgba(255,255,255,.012));
  transition:transform .22s ease,border-color .22s ease,background .22s ease
}
.project-card:hover{transform:translateY(-4px);border-color:rgba(139,124,255,.45);background:linear-gradient(145deg,rgba(139,124,255,.07),rgba(255,255,255,.014))}
.card-top{min-height:34px;display:flex;justify-content:space-between;gap:18px}
.card-top span:last-child{text-align:right}
.project-card .project-type{margin-top:42px}
.project-card h3{font-size:clamp(2rem,2.8vw,3.25rem)}
.project-card>.summary{min-height:106px;font-size:.9rem}
.project-card .tags{min-height:70px}
.project-card .case{margin-top:auto}
.approach{border-top:1px solid var(--line)}
.approach-intro{grid-template-columns:.55fr 1.35fr .8fr;align-items:start}
.experience{
  grid-column:2/4;
  padding-top:28px!important;
  border-top:1px solid var(--line);
  color:#dce2ef!important;
  font-size:1rem!important;
  font-weight:550
}
.principles{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:76px 0 108px}
.principles article{
  min-height:280px;
  padding:28px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--surface)
}
.principles>article>span{color:var(--violet-bright);font-size:.66rem;font-weight:700;letter-spacing:.13em}
.principles h3{margin:74px 0 14px;font:550 2.2rem/1 var(--sans);letter-spacing:-.045em}
.principles p{max-width:330px;margin:0;color:var(--muted);font-size:.87rem;line-height:1.7}
.contact{
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:clamp(48px,8vw,120px);
  padding:clamp(48px,7vw,86px);
  border:1px solid rgba(255,255,255,.16);
  border-radius:30px;
  background:
    radial-gradient(circle at 88% 0,rgba(97,221,236,.23),transparent 26rem),
    linear-gradient(135deg,#342d77,#171d3a 66%,#101624);
  box-shadow:var(--shadow)
}
.contact:after{content:"";position:absolute;width:360px;height:360px;right:-180px;bottom:-220px;border:1px solid rgba(255,255,255,.18);border-radius:50%}
.contact .eyebrow{color:#bcb4ff;margin-bottom:27px}
.contact h2{font-size:clamp(2.8rem,5vw,5.2rem)}
.contact-copy{align-self:end;position:relative;z-index:2}
.contact-copy>p{color:#c7cee0}
.light{border-color:white;background:white;color:#171a28}
.ghost{border-color:rgba(255,255,255,.32)}
.light:hover,.ghost:hover{background:var(--cyan);border-color:var(--cyan);color:#071015}
footer{
  min-height:130px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  color:var(--subtle);
  font-size:.7rem
}
.reveal{animation:reveal .75s cubic-bezier(.2,.7,.2,1) both}
.delay{animation-delay:.12s}
@keyframes reveal{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.skip-link{position:fixed;top:12px;left:12px;z-index:100;background:white;color:#070910;padding:14px 20px;transform:translateY(-180%)}
.skip-link:focus{transform:translateY(0)}
.contact :focus-visible{outline-color:white}
.project-card .project-links{margin-bottom:27px}
@media(max-width:1080px){
  .hero{grid-template-columns:1fr}
  .hero h1{max-width:900px}
  
  .section-heading,.approach-intro{grid-template-columns:.55fr 1.45fr}
  .section-heading>p:last-child,.approach-intro>p:not(.eyebrow),.experience{grid-column:2}
  .featured{grid-template-columns:.3fr 1.25fr .65fr}
}
@media(max-width:780px){
  .site-header,.hero,.proof,.work,.approach,footer{width:calc(100% - 34px)}
  .site-header{top:10px;margin-top:10px;min-height:64px;padding-inline:18px}
  .site-header nav{gap:13px;font-size:.72rem}
  .site-header nav span{display:none}
  .hero{min-height:auto;padding-block:76px}
  .hero h1{font-size:clamp(3.5rem,15vw,5.7rem)}
  
  
  .proof{grid-template-columns:1fr}
  .proof>div{min-height:108px}
  .proof>div+div{border-left:0;border-top:1px solid var(--line)}
  .section-heading,.approach-intro,.featured,.contact{grid-template-columns:1fr}
  .section-heading>p:last-child,.approach-intro>p:not(.eyebrow),.experience,.featured-case{grid-column:1}
  .section-heading h2,.approach-intro h2,.contact h2{font-size:clamp(2.8rem,13vw,4.6rem)}
  .featured{padding:30px}
  .evidence{margin-top:22px}
  .case-grid,.project-grid,.principles{grid-template-columns:1fr}
  .project-card>.summary,.project-card .tags{min-height:auto}
  .principles{margin-block:60px}
  .principles article{min-height:240px}
  .contact{gap:40px;padding:42px 28px}
  footer{min-height:160px;flex-direction:column;align-items:flex-start;justify-content:center;gap:13px}
}
@media(max-width:480px){
  body:before{background-size:38px 38px}
  .wordmark{font-size:1rem}
  .site-header nav a:nth-of-type(2){display:none}
  .actions{align-items:stretch;flex-direction:column}
  .button{width:100%}
  .hero h1{font-size:3.55rem}
  
  
  
  
  
  
  
  
  
  .featured,.project-card{padding:25px}
  .card-top{flex-direction:column}
  .card-top span:last-child{text-align:left}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
