:root{
  --bg:#0a0a0b;
  --fg:#f1efea;
  --grey:#4d4b50;
  --muted:#8b898e;
  --line:rgba(241,239,234,.14);
  --paper:#f4f2ee;
  --accent:#f1efea;
  --pad:clamp(16px,2.4vw,36px);
  --ease:cubic-bezier(.77,0,.18,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
  --sans:"Archivo",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"JetBrains Mono",ui-monospace,Consolas,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--fg);font-family:var(--sans);font-size:16px;line-height:1.5;overflow-x:hidden;-webkit-font-smoothing:antialiased}
body.is-loading{overflow:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
::selection{background:var(--fg);color:var(--bg)}
.mono{font-family:var(--mono);font-size:12px;letter-spacing:.04em;text-transform:uppercase}
body.has-cursor,body.has-cursor a,body.has-cursor button,body.has-cursor img{cursor:none}

.mark .w{fill:var(--fg)}
.mark .g{fill:var(--grey)}
.mark--mini{width:34px;height:auto}

/* loader */
.loader{position:fixed;inset:0;z-index:100;background:var(--bg);display:grid;place-items:center;transition:clip-path 1.1s var(--ease)}
.loader.done{clip-path:inset(0 0 100% 0)}
.mark--loader{width:min(46vw,340px);overflow:visible}
.mark--loader path{transform-box:fill-box;transform-origin:center;opacity:0;transform:translateY(40%) scale(.6);transition:opacity .5s var(--ease-out),transform .9s var(--ease-out)}
.mark--loader.in path{opacity:1;transform:none}
.loader__meta{position:absolute;left:var(--pad);right:var(--pad);bottom:var(--pad);display:flex;justify-content:space-between;color:var(--muted)}

/* wipe transition */
.wipe{position:fixed;inset:0;z-index:90;pointer-events:none;display:grid;grid-template-rows:repeat(5,1fr)}
.wipe i{display:block;background:var(--fg);transform:scaleX(0);transform-origin:left;border-radius:0 999px 999px 0}
.wipe i:nth-child(even){background:var(--grey);transform-origin:right;border-radius:999px 0 0 999px}
.wipe.cover i{transform:scaleX(1.02);transition:transform .55s var(--ease)}
.wipe.reveal i{transform:scaleX(0);transform-origin:right;transition:transform .6s var(--ease)}
.wipe.reveal i:nth-child(even){transform-origin:left}
.wipe i:nth-child(2){transition-delay:.05s}
.wipe i:nth-child(3){transition-delay:.1s}
.wipe i:nth-child(4){transition-delay:.15s}
.wipe i:nth-child(5){transition-delay:.2s}

/* cursor */
.cursor{position:fixed;left:0;top:0;z-index:95;pointer-events:none;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:#fff;mix-blend-mode:difference;transition:width .35s var(--ease-out),height .35s var(--ease-out),margin .35s var(--ease-out),background .3s,opacity .3s;display:grid;place-items:center;opacity:0}
body.has-cursor .cursor{opacity:1}
.cursor__label{color:var(--bg);opacity:0;transition:opacity .2s;font-size:10px;white-space:nowrap}
.cursor.is-link{width:44px;height:44px;margin:-22px 0 0 -22px}
.cursor.is-label{width:84px;height:84px;margin:-42px 0 0 -42px;mix-blend-mode:normal;background:var(--fg)}
.cursor.is-label .cursor__label{opacity:1}
@media (hover:none),(pointer:coarse){.cursor,.preview{display:none!important}}

/* hover preview */
.preview{--w:clamp(240px,24vw,420px);position:fixed;left:0;top:0;z-index:5;pointer-events:none;width:var(--w);aspect-ratio:4/3;margin:calc(var(--w) * -.375) 0 0 calc(var(--w) * -.5)}
.preview__inner{position:absolute;inset:0;overflow:hidden;clip-path:inset(50% 50% 50% 50% round 6px);transition:clip-path .7s var(--ease-out);background:#111}
.preview.on .preview__inner{clip-path:inset(0 0 0 0 round 6px)}
.preview img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.1);transition:opacity .35s,transform 1.4s var(--ease-out)}
.preview img.on{opacity:1;transform:scale(1)}

/* header */
.hdr{position:fixed;top:0;left:0;right:0;z-index:50;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:var(--pad);mix-blend-mode:difference;color:#fff;pointer-events:none}
.hdr>*{pointer-events:auto}
.hdr .mark .w{fill:#fff}.hdr .mark .g{fill:#8a8a8a}
.hdr__brand{display:flex;align-items:center;gap:12px;justify-self:start}
.hdr__word{font-weight:700;font-stretch:125%;letter-spacing:.06em;font-size:15px}
.hdr__nav{display:flex;gap:clamp(14px,2.4vw,40px)}
.hdr__nav a{position:relative;padding:4px 0}
.hdr__nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease-out)}
.hdr__nav a:hover::after,.hdr__nav a.active::after{transform:scaleX(1);transform-origin:left}
.hdr__clock{justify-self:end;color:#bbb}
@media (max-width:720px){.hdr{grid-template-columns:auto 1fr}.hdr__nav{justify-self:end}.hdr__clock,.hdr__word{display:none}}

/* reveals */
.rv{opacity:0;transform:translateY(40px);transition:opacity 1s var(--ease-out),transform 1.2s var(--ease-out)}
.rv.in{opacity:1;transform:none}
.line{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.line>span{display:block;transform:translateY(110%);transition:transform 1.2s var(--ease-out)}
.in .line>span{transform:none}
.wd{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.wd>span{display:inline-block;transform:translateY(110%);transition:transform 1.1s var(--ease-out)}
.split.in .wd>span{transform:none}
.img-rv{clip-path:inset(10% 10% 10% 10%);transition:clip-path 1.4s var(--ease-out)}
.img-rv img{transform:scale(1.18);transition:transform 1.8s var(--ease-out)}
.img-rv.in{clip-path:inset(0)}
.img-rv.in img{transform:scale(1)}

/* lightbox */
.lightbox{position:fixed;inset:0;z-index:80;background:rgba(6,6,7,.96);display:grid;place-items:center;opacity:0;visibility:hidden;transition:opacity .45s,visibility .45s}
.lightbox.open{opacity:1;visibility:visible}
.lightbox img{max-width:86vw;max-height:84vh;object-fit:contain;transform:scale(.96);transition:transform .6s var(--ease-out)}
.lightbox.open img{transform:none}
.lightbox__close{position:absolute;top:var(--pad);right:var(--pad)}
.lightbox__nav{position:absolute;top:50%;transform:translateY(-50%);font-size:22px;padding:20px}
.lightbox__nav--prev{left:var(--pad)}
.lightbox__nav--next{right:var(--pad)}
.lightbox__count{position:absolute;bottom:var(--pad);left:50%;transform:translateX(-50%);color:var(--muted)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}
}
