*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:auto}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--serif);
  line-height:1.8;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body.locked{overflow:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}
::selection{background:color-mix(in oklab,var(--rose) 70%,white);color:#fff}

:focus-visible{outline:2px solid var(--rose);outline-offset:3px}

.section{position:relative;padding:clamp(88px,13vh,150px) var(--pad-x)}
.wrap{max-width:var(--maxw);margin:0 auto}

h1,h2,h3{text-wrap:balance;letter-spacing:0;font-weight:700}
p{text-wrap:pretty;letter-spacing:0}

.kicker{
  font-family:var(--sans);
  font-size:.78rem;
  color:var(--ink-faint);
  margin-bottom:1.2em;
}
.kicker::before{
  content:"";
  display:inline-block;
  width:18px;height:1px;
  background:var(--rose);
  vertical-align:middle;
  margin-right:.6em;
}

[data-reveal]{
  opacity:0;
  transform:translateY(10px);
  filter:blur(2px);
  transition:opacity .55s var(--ease),transform .55s var(--ease),filter .55s var(--ease);
}
[data-reveal].inview{opacity:1;transform:none;filter:none}

#progress{
  position:fixed;top:0;left:0;height:2px;width:100%;z-index:80;
  background:var(--rose);transform-origin:left;transform:scaleX(0);
  pointer-events:none;
}

.paper-fiber{
  position:fixed;inset:0;z-index:90;pointer-events:none;opacity:.25;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.9'/%3E%3C/svg%3E");
}

.file-guard{
  position:fixed;inset:0;z-index:300;background:rgba(28,18,14,.94);
  display:flex;align-items:center;justify-content:center;padding:6vw;
}
.file-guard-card{
  max-width:540px;background:var(--paper);color:var(--ink);
  border-radius:16px;padding:32px 30px;
  box-shadow:0 30px 80px rgba(0,0,0,.45);
}
.file-guard-title{font-size:1.25rem;font-weight:700;margin-bottom:.7em}
.file-guard-text{font-size:.95rem;line-height:1.8;color:var(--ink-soft);margin-bottom:1em}
.file-guard-cmd{
  display:block;font-family:ui-monospace,Consolas,monospace;
  background:var(--night);color:var(--night-text);
  border-radius:10px;padding:12px 16px;font-size:.9rem;margin:0 0 1em;user-select:all;
}
.file-guard-btns{display:flex;gap:12px;margin-top:1.1em;flex-wrap:wrap}
.file-guard-btns button{
  border:1px solid var(--paper-edge);border-radius:99px;
  padding:.65em 1.3em;font-size:.88rem;color:var(--ink-soft);transition:.25s;
}
.file-guard-btns button:hover{border-color:var(--rose);color:var(--ink)}
.file-guard-note{margin-top:1.3em;font-size:.78rem;color:var(--ink-faint);line-height:1.7}

.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
  [data-reveal]{opacity:1;transform:none;filter:none}
}
