/* ---------- Base reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0}
img{max-width:100%;display:block}
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* Layout: dark studio wall. Giant condensed letters act as windows into IT work (code, circuits, dashboards, networks, servers), layered with offset neon outlines and brush-script accents. Deliberately single dark theme. */
:root{
  color-scheme:dark;
  --bg:#131315;
  --bg-2:#1C1C20;
  --fg:#F2EFE9;
  --muted:#9C9AA3;
  --line:#34343B;
  --cyan:#3FB8E8;
  --coral:#F0644A;
  --sun:#F5C84B;
  --f-display:"Anton","Impact","Arial Narrow Bold",sans-serif;
  --f-script:"Mr Dafoe","Brush Script MT","Segoe Script",cursive;
  --f-body:"Urbanist","Avenir Next","Helvetica Neue",Arial,sans-serif;
  --f-mono:"Fira Code",ui-monospace,Menlo,monospace;
  --gutter:clamp(16px,4vw,56px);
}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--fg);font-family:var(--f-body);font-size:1.0625rem;line-height:1.6;padding-inline:var(--gutter);padding-block:0 40px;-webkit-font-smoothing:antialiased;overflow-x:hidden}
.wrap{max-width:1360px;margin-inline:auto}
a{color:inherit}
:focus-visible{outline:2px solid var(--cyan);outline-offset:4px;border-radius:4px}
h1,h2,h3{margin:0;text-wrap:balance}
.label{font-weight:700;font-size:.8rem;letter-spacing:.24em;text-transform:uppercase}

/* NAV */
.nav{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding-block:24px}
.logo{display:flex;align-items:center;gap:12px;text-decoration:none;font-weight:800;font-size:1.02rem;letter-spacing:-.005em}
.logo svg{width:38px;height:38px;flex:none}
.nav ul{display:flex;gap:clamp(16px,3.5vw,48px);list-style:none;margin:0;padding:0;flex-wrap:wrap}
.nav ul a{text-decoration:none;color:var(--fg);opacity:.9}
.nav ul a:hover{color:var(--cyan)}

/* HERO */
.hero{position:relative;padding-block:clamp(24px,5vw,56px) clamp(32px,5vw,64px)}
.script{font-family:var(--f-script);font-weight:400;line-height:1;color:var(--fg);position:relative;z-index:4;text-shadow:0 2px 18px rgba(0,0,0,.6)}
.script.top{font-size:clamp(2.6rem,8vw,6.6rem);margin-left:4%;margin-bottom:-.38em;transform:rotate(-4deg);transform-origin:left}
.script.bottom{font-size:clamp(2.4rem,7vw,6rem);text-align:right;margin-right:4%;margin-top:-.2em;transform:rotate(-5deg)}
.word-stage{position:relative;display:flex;justify-content:center}
.word{position:relative;font-family:var(--f-display);font-weight:400;text-transform:uppercase;font-size:clamp(5.2rem,21.5vw,21rem);line-height:.82;letter-spacing:.005em;white-space:nowrap;display:flex}
.word span{display:inline-block}
.word.main{z-index:2}
.word.main span{
  color:transparent;-webkit-background-clip:text;background-clip:text;
  background-size:cover;background-position:center;
  background-image:linear-gradient(135deg,var(--cyan),var(--coral));
  animation:rise 1s cubic-bezier(.2,.75,.15,1) both;
  transition:transform .35s cubic-bezier(.2,.75,.15,1);
}
.word.main span:hover{transform:translateY(-3%)}
.word.main span:nth-child(2){animation-delay:.05s}.word.main span:nth-child(3){animation-delay:.1s}.word.main span:nth-child(4){animation-delay:.15s}.word.main span:nth-child(5){animation-delay:.2s}.word.main span:nth-child(6){animation-delay:.25s}.word.main span:nth-child(7){animation-delay:.3s}
@keyframes rise{from{transform:translateY(12%)}to{transform:none}}
.word.ghost{position:absolute;inset:0;color:transparent;pointer-events:none;justify-content:center}
.word.ghost span{-webkit-text-stroke:1.5px var(--cyan)}
.word.ghost.g1{z-index:3;transform:translate(1.4%,-5%) scale(1.02)}
.word.ghost.g2{z-index:1;transform:translate(-2.6%,7%) scale(1.06)}
.word.ghost.g2 span{-webkit-text-stroke:1px var(--coral);opacity:.75}
.word.ghost.g3{z-index:0;transform:translate(-5%,10%) scale(1.12)}
.word.ghost.g3 span{-webkit-text-stroke:1px var(--sun);opacity:.3}
.scribble{position:absolute;right:1%;bottom:4%;width:clamp(80px,12vw,170px);height:auto;z-index:3;pointer-events:none}

/* INTRO */
.intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(28px,5vw,72px);align-items:start;padding-block:clamp(24px,4vw,48px) clamp(56px,8vw,112px)}
.pills{display:flex;flex-wrap:wrap;gap:14px}
.pill{display:inline-flex;align-items:center;padding:16px 26px;border:1.5px solid var(--line);border-radius:999px;text-decoration:none;background:rgba(255,255,255,.015);transition:border-color .2s,color .2s,background .2s}
.pill:hover{border-color:var(--cyan);color:var(--cyan);background:rgba(63,184,232,.06)}
.intro p{margin:0;font-size:clamp(1.25rem,2vw,1.7rem);line-height:1.42;font-weight:400;max-width:34ch}
.intro p b{font-weight:700;color:var(--cyan)}
.intro .cta-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}
.btn{display:inline-flex;gap:10px;align-items:center;padding:16px 28px;border-radius:999px;background:var(--fg);color:var(--bg);text-decoration:none;font-weight:800;letter-spacing:.14em;text-transform:uppercase;font-size:.82rem}
.btn:hover{background:var(--coral);color:var(--fg)}

/* SECTION HEAD */
.sec{padding-block:clamp(56px,8vw,112px);border-top:1px solid var(--line)}
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:16px 40px;flex-wrap:wrap;margin-bottom:clamp(32px,5vw,56px)}
.sec-head h2{font-family:var(--f-display);font-weight:400;text-transform:uppercase;font-size:clamp(3rem,9vw,8rem);line-height:.85;position:relative}
.sec-head h2 .s{font-family:var(--f-script);text-transform:none;font-size:.62em;color:var(--cyan);display:block;margin-bottom:-.2em;transform:rotate(-4deg);transform-origin:left}
.sec-head h2 .o{color:transparent;-webkit-text-stroke:1.5px var(--fg)}
.sec-head p{margin:0;max-width:38ch;color:var(--muted)}

/* WORK GRID */
.work{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,2vw,24px)}
.tile{position:relative;display:flex;flex-direction:column;gap:14px;min-width:0}
.tile .art{position:relative;aspect-ratio:4/5;max-width:100%;border-radius:18px;overflow:hidden;background:var(--bg-2)}
.tile canvas{position:absolute;inset:0;width:100%;height:100%;display:block;transition:transform .6s cubic-bezier(.2,.75,.15,1)}
.tile:hover canvas{transform:scale(1.06)}
.tile .code{position:absolute;top:14px;left:14px;font-family:var(--f-mono);font-size:.72rem;background:rgba(19,19,21,.82);padding:5px 10px;border-radius:999px;z-index:1}
.tile .big{position:absolute;right:14px;bottom:4px;font-family:var(--f-display);font-size:clamp(4rem,8vw,7rem);line-height:1;color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,.85);z-index:1}
.tile h3{font-family:var(--f-display);font-weight:400;text-transform:uppercase;font-size:clamp(1.7rem,2.6vw,2.3rem);line-height:1;letter-spacing:.01em}
.tile p{margin:0;color:var(--muted);max-width:40ch}
.tile .tags{font-family:var(--f-mono);font-size:.75rem;color:var(--sun)}
.work .tile:nth-child(3n+2){margin-top:clamp(0px,6vw,80px)}

/* PORTFOLIO */
.notice{display:inline-flex;align-items:center;gap:10px;font-family:var(--f-mono);font-size:.78rem;color:var(--sun);border:1px dashed rgba(245,200,75,.5);border-radius:999px;padding:6px 14px;margin-bottom:22px}
.filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:clamp(24px,4vw,40px)}
.chip{font:inherit;font-weight:700;font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;padding:12px 20px;border-radius:999px;border:1.5px solid var(--line);background:transparent;color:var(--fg);cursor:pointer;transition:border-color .2s,background .2s,color .2s}
.chip:hover{border-color:var(--cyan);color:var(--cyan)}
.chip[aria-pressed="true"]{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.cases{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2vw,24px)}
.case{display:grid;grid-template-rows:auto 1fr;border:1.5px solid var(--line);border-radius:24px;overflow:hidden;background:var(--bg-2);min-width:0;transition:border-color .25s}
.case:hover{border-color:var(--cyan)}
.case .art{position:relative;aspect-ratio:16/9;max-width:100%;overflow:hidden;background:#000}
.case canvas{position:absolute;inset:0;width:100%;height:100%;display:block;transition:transform .7s cubic-bezier(.2,.75,.15,1)}
.case:hover canvas{transform:scale(1.05)}
.case .tagline{position:absolute;top:14px;left:14px;z-index:1;font-family:var(--f-mono);font-size:.72rem;background:rgba(19,19,21,.85);padding:5px 11px;border-radius:999px}
.case .tagline b{color:var(--sun);font-weight:500}
.case .sector{position:absolute;left:12px;right:12px;bottom:-.12em;z-index:1;font-family:var(--f-display);text-transform:uppercase;font-size:clamp(3rem,7vw,6rem);line-height:1;color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,.9);white-space:nowrap;overflow:hidden}
.case .body{padding:clamp(20px,2.5vw,30px);display:flex;flex-direction:column;gap:16px;min-width:0}
.case .client{color:var(--muted);font-size:.72rem}
.case h3{font-family:var(--f-display);font-weight:400;text-transform:uppercase;font-size:clamp(1.9rem,3vw,2.7rem);line-height:.98}
.story{margin:0;display:grid;gap:10px}
.story div{display:grid;grid-template-columns:7.5rem minmax(0,1fr);gap:12px;border-top:1px solid var(--line);padding-top:10px}
.story dt{font-weight:700;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;padding-top:.25em}
.story div:nth-child(1) dt{color:var(--coral)}
.story div:nth-child(2) dt{color:var(--cyan)}
.story div:nth-child(3) dt{color:var(--sun)}
.story dd{margin:0;color:var(--muted)}
.metrics{display:flex;flex-wrap:wrap;gap:12px 32px;margin-top:auto;padding-top:6px}
.metric{display:flex;flex-direction:column;min-width:0}
.metric .v{font-family:var(--f-display);font-size:clamp(2.6rem,4.4vw,3.8rem);line-height:1;font-variant-numeric:tabular-nums}
.metric:nth-child(2) .v{color:transparent;-webkit-text-stroke:1.5px var(--cyan)}
.metric .k{font-size:.85rem;color:var(--muted);max-width:18ch;line-height:1.3}
.case .stack-tags{font-family:var(--f-mono);font-size:.75rem;color:var(--sun)}
.case.feature{grid-column:1/-1;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);grid-template-rows:auto}
.case.feature .art{aspect-ratio:auto;min-height:420px}
.case.feature .sector{font-size:clamp(4rem,10vw,9rem)}
.case.feature.flip{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr)}
.case.feature.flip .art{order:2}
.cases-empty{color:var(--muted)}

/* MARQUEE */
.marquee{overflow:hidden;border-block:1px solid var(--line);margin-inline:calc(var(--gutter)*-1);padding-block:18px}
.track{display:flex;gap:48px;width:max-content;animation:slide 40s linear infinite}
.track span{font-family:var(--f-display);text-transform:uppercase;font-size:clamp(1.8rem,4vw,3.2rem);line-height:1;white-space:nowrap}
.track span:nth-child(even){color:transparent;-webkit-text-stroke:1px var(--cyan)}
.track i{font-family:var(--f-script);font-style:normal;color:var(--coral);font-size:clamp(1.8rem,4vw,3.2rem);line-height:1}
@keyframes slide{to{transform:translateX(-50%)}}

/* PROCESS */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,2.5vw,32px)}
.steps li{display:flex;flex-direction:column;gap:12px;min-width:0;padding:22px;border:1.5px solid var(--line);border-radius:22px;background:var(--bg-2)}
.steps .n{font-family:var(--f-display);font-size:clamp(4rem,7vw,6rem);line-height:.85;color:transparent;font-variant-numeric:tabular-nums}
.steps li:nth-child(1) .n{-webkit-text-stroke:1.5px var(--cyan)}
.steps li:nth-child(2) .n{-webkit-text-stroke:1.5px var(--coral)}
.steps li:nth-child(3) .n{-webkit-text-stroke:1.5px var(--sun)}
.steps li:nth-child(4) .n{-webkit-text-stroke:1.5px var(--fg)}
.steps h3{font-family:var(--f-display);font-weight:400;text-transform:uppercase;font-size:2rem;line-height:1}
.steps p{margin:0;color:var(--muted)}
.steps .t{margin-top:auto;font-family:var(--f-mono);font-size:.78rem;color:var(--fg)}

/* SECTORS */
.sectors{display:flex;flex-wrap:wrap;gap:4px 22px;font-family:var(--f-display);text-transform:uppercase;font-size:clamp(2.4rem,6.4vw,5.6rem);line-height:1.02;margin:0;padding:0;list-style:none}
.sectors li:nth-child(odd){color:var(--fg)}
.sectors li:nth-child(even){color:transparent;-webkit-text-stroke:1.5px var(--fg)}
.sectors li:hover{color:var(--coral);-webkit-text-stroke:0}

/* CONTACT */
.contact{position:relative;text-align:center;padding-block:clamp(64px,10vw,140px) clamp(40px,6vw,72px);border-top:1px solid var(--line)}
.contact .script{font-size:clamp(2.6rem,8vw,6.4rem);transform:rotate(-5deg);margin-bottom:-.36em;color:var(--sun)}
.contact .word{font-size:clamp(5rem,20vw,19rem);justify-content:center}
.contact .sub{margin:28px auto 0;max-width:46ch;color:var(--muted);font-size:1.15rem}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:clamp(36px,5vw,56px);text-align:left}
.card{border:1.5px solid var(--line);border-radius:22px;padding:20px 22px;display:flex;flex-direction:column;gap:8px;min-width:0;background:var(--bg-2)}
.card .label{color:var(--muted);font-size:.72rem}
.card .val{font-weight:700;font-size:1.2rem;overflow-wrap:anywhere;user-select:all}
.copy{align-self:flex-start;font:inherit;font-weight:700;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;background:transparent;color:var(--fg);border:1.5px solid var(--line);border-radius:999px;padding:8px 14px;cursor:pointer}
.copy:hover{border-color:var(--cyan);color:var(--cyan)}

footer{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-top:24px;border-top:1px solid var(--line);color:var(--muted);font-size:.9rem}

@media (max-width:960px){
  .intro{grid-template-columns:1fr}
  .work{grid-template-columns:repeat(2,minmax(0,1fr))}
  .work .tile:nth-child(3n+2){margin-top:0}
  .work .tile:nth-child(even){margin-top:clamp(0px,8vw,64px)}
  .steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cards{grid-template-columns:1fr}
  .cases{grid-template-columns:1fr}
  .case.feature,.case.feature.flip{grid-template-columns:1fr;grid-template-rows:auto 1fr}
  .case.feature.flip .art{order:0}
  .case.feature .art{aspect-ratio:16/9;min-height:0}
}
@media (max-width:560px){
  .story div{grid-template-columns:1fr;gap:2px}
  .case .sector{font-size:3rem}
}
@media (max-width:560px){
  .work{grid-template-columns:1fr}
  .work .tile:nth-child(even){margin-top:0}
  .steps{grid-template-columns:1fr}
  .pill{padding:12px 18px;font-size:.72rem}
  .nav ul{gap:16px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .word.main span{animation:none;transition:none}
  .track{animation:none}
  .tile canvas{transition:none}
}
