:root{
  --cream:#EEF3ED;
  --ink:#000;
  --pad:40px;
  --mono:'Geist Mono', ui-monospace, monospace;
  --ui:'Geist', Helvetica, Arial, sans-serif;
  --display:'Space Grotesk','Geist', Helvetica, Arial, sans-serif; /* substitute for licensed PPPierSans */
}
*{ margin:0; padding:0; box-sizing:border-box; }
html,body{ height:100%; }
body{
  background:var(--cream);
  color:#000;
  font-family:var(--ui);
  overflow:hidden;
  -webkit-font-smoothing:antialiased;
}

/* full-screen ink canvas — the shared background engine */
#ink{ position:fixed; inset:0; width:100vw; height:100vh; display:block; z-index:0; background:#000; }

/* ---------- CHROME ---------- */
.chrome{
  position:fixed; inset:var(--pad) var(--pad) auto var(--pad);
  z-index:8; display:grid;
  grid-template-columns:1fr auto 1fr auto;
  align-items:start; gap:24px;
  pointer-events:none; mix-blend-mode:exclusion; color:#fff;
}
.chrome > *{ pointer-events:auto; }
.brand{ font-family:var(--ui); font-weight:700; font-size:15px; letter-spacing:.02em; text-decoration:none; color:inherit; justify-self:start; }
.slot2{ background:none; border:0; cursor:pointer; color:inherit; font-family:var(--mono); font-size:12px; letter-spacing:.14em; justify-self:center; }
.slot2 .lbl-close{ display:none; }
.slot3{ font-family:var(--mono); font-size:12px; letter-spacing:.14em; justify-self:center; opacity:.55; }
.slot3 .lbl-date{ display:none; }
.nav{ justify-self:end; display:flex; gap:22px; font-family:var(--ui); font-weight:500; font-size:15px; }
.nav a{ text-decoration:none; color:inherit; opacity:.5; transition:opacity .3s ease; }
.nav a.active, .nav a:hover{ opacity:1; }

/* ---------- WORK VIEW ---------- */
.work{ position:fixed; inset:0; z-index:2; }
.cream{ position:absolute; left:0; right:0; background:var(--cream); z-index:3; }
.cream-top{ top:0; height:24vh; }
.cream-bottom{ bottom:0; height:24vh; }

.band{ position:absolute; left:0; right:0; top:24vh; bottom:24vh; z-index:2; overflow:hidden; }
/* thin cream gutters over the ink band -> reads as vertical ink bars */
.bars{
  position:absolute; inset:0; z-index:3;
  background:repeating-linear-gradient(90deg,
    rgba(238,243,237,0) 0, rgba(238,243,237,0) 58px,
    var(--cream) 58px, var(--cream) 92px);
}
/* center project gate */
.gate{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:340px; height:52vh; max-height:520px; z-index:4;
  overflow:hidden; background:var(--cream);
}
.reel{ position:absolute; inset:0; display:flex; transition:transform .9s cubic-bezier(.7,0,.15,1); }
.panel{ position:relative; flex:0 0 100%; height:100%; overflow:hidden; }
.panel .ph{ position:absolute; inset:0; }
.panel .ph::after{ /* subtle grain/vignette to feel photographic */
  content:""; position:absolute; inset:0; mix-blend-mode:overlay; opacity:.5;
  background:radial-gradient(120% 90% at 50% 20%, rgba(255,255,255,.18), rgba(0,0,0,.35));
}

/* HUD: bottom-left project + bottom-right counter */
.hud{
  position:fixed; inset:auto var(--pad) var(--pad) var(--pad); z-index:6;
  display:flex; justify-content:space-between; align-items:flex-end;
  pointer-events:none; mix-blend-mode:exclusion; color:#fff;
}
.proj-title{ font-family:var(--ui); font-weight:600; font-size:15px; letter-spacing:.01em; }
.proj-meta{ font-family:var(--mono); font-size:11px; letter-spacing:.12em; opacity:.6; margin-top:6px; text-transform:uppercase; }
.count{ display:flex; gap:52px; align-items:baseline; font-family:var(--mono); font-size:12px; letter-spacing:.14em; }
.count .tot{ opacity:.5; } .count .rom{ opacity:.5; }

/* ---------- CLOCK TAKEOVER ---------- */
.clock{
  position:fixed; inset:0; z-index:5; display:none;
  color:#fff;
}
.clock .c-sec{ position:absolute; left:var(--pad); top:50%; transform:translateY(-140%); font-family:var(--mono); font-size:13px; letter-spacing:.12em; }
.clock .c-ampm{ position:absolute; left:50%; top:50%; transform:translate(-50%,-140%); font-family:var(--mono); font-size:13px; letter-spacing:.12em; }
.clock .c-msg{ position:absolute; right:var(--pad); top:50%; transform:translateY(-140%); font-family:var(--mono); font-size:13px; letter-spacing:.05em; max-width:220px; line-height:1.35; }
.clock .c-big{
  position:absolute; left:0; right:0; top:52%; transform:translateY(-42%);
  text-align:center; font-family:var(--display); font-weight:500;
  font-size:34vw; line-height:.8; letter-spacing:-.02em; white-space:nowrap;
}

/* ---------- VIEW STATES ---------- */
/* clock open: hide cream (full ink), show clock, swap chrome labels */
body.view-clock .cream, body.view-clock .band, body.view-clock .hud{ display:none; }
body.view-clock .clock{ display:block; }
body.view-clock .slot2 .lbl-time{ display:none; }
body.view-clock .slot2 .lbl-close{ display:inline; }
body.view-clock .slot3 .lbl-place{ display:none; }
body.view-clock .slot3 .lbl-date{ display:inline; opacity:1; }

/* ---------- ABOUT PAGE ---------- */
.about{ position:fixed; inset:0; z-index:2; display:flex; align-items:center; justify-content:center; color:#fff; }
.about .about-inner{ max-width:640px; text-align:center; padding:0 24px; }
.about .about-tag{ font-family:var(--mono); font-size:11px; letter-spacing:.2em; opacity:.5; margin-bottom:22px; }
.about .about-body{ font-family:var(--display); font-weight:400; font-size:clamp(20px,2.4vw,30px); line-height:1.35; color:rgba(255,255,255,.82); }
.about .about-body b{ font-weight:600; color:#fff; }

/* ---------- INTRO ---------- */
.intro{ position:fixed; inset:0; z-index:20; background:var(--cream); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:20px; transition:opacity .6s ease, visibility .6s; }
.intro.done{ opacity:0; visibility:hidden; }
.intro-mark{ font-family:var(--ui); font-weight:700; font-size:18px; letter-spacing:.04em; }
.intro-bar{ width:180px; height:1px; background:rgba(0,0,0,.15); overflow:hidden; }
.intro-bar span{ display:block; height:100%; width:100%; background:#000; transform:scaleX(0); transform-origin:left center; transition:transform 1.1s ease; }

/* ---------- RESPONSIVE ---------- */
@media (max-width:760px){
  :root{ --pad:20px; }
  .chrome{ grid-template-columns:1fr auto; row-gap:6px; }
  .slot2{ grid-column:1; justify-self:start; } .slot3{ display:none; }
  .nav{ grid-row:1; }
  .gate{ width:70vw; height:46vh; }
  .bars{ background:repeating-linear-gradient(90deg, rgba(238,243,237,0) 0 34px, var(--cream) 34px 54px); }
  .clock .c-big{ font-size:44vw; }
  .count{ gap:26px; }
  .proj-title{ font-size:13px; }
}
@media (prefers-reduced-motion: reduce){
  .reel{ transition:none; } .intro{ transition:none; }
}
