/* Nivaro — paper & redaction theme */
:root{
  --pp-paper:#F3EFE6;
  --pp-sheet:#FBF9F4;
  --pp-ink:#1B1726;
  --pp-ink-soft:#4A4458;
  --pp-rule:#D9D2C3;
  --pp-red:#D9472B;
  --pp-red-dark:#B0351D;
  --pp-ochre:#C99A2E;
  --pp-head:'Sora',system-ui,sans-serif;
  --pp-body:'IBM Plex Sans',system-ui,sans-serif;
  --pp-mono:'IBM Plex Mono',ui-monospace,monospace;
}
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0}
html{scroll-behavior:smooth}
body{background:var(--pp-paper);color:var(--pp-ink);font:400 17px/1.65 var(--pp-body);overflow-x:hidden}
img{max-width:100%;display:block}
a{color:var(--pp-red-dark)}
a:hover{color:var(--pp-ink)}
h1,h2,h3{font-family:var(--pp-head);line-height:1.12;letter-spacing:-.025em;margin:0}
p{margin:0 0 1em}
:focus-visible{outline:3px solid var(--pp-ochre);outline-offset:3px}
.jump{position:absolute;left:-999px;top:8px;background:var(--pp-ink);color:var(--pp-sheet);padding:10px 16px;z-index:200;border-radius:4px}
.jump:focus{left:12px}
.col{width:min(1120px,100% - 40px);margin-inline:auto}
.col-narrow{width:min(760px,100% - 40px);margin-inline:auto}

/* masthead */
.mast{border-bottom:2px solid var(--pp-ink);background:var(--pp-paper);position:sticky;top:0;z-index:60}
.mast-row{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px}
.logo{display:inline-flex;align-items:center;gap:10px;font:700 19px var(--pp-head);color:var(--pp-ink);text-decoration:none}
.logo svg{width:28px;height:28px}
.mast-nav{display:flex;gap:26px;font:500 14px var(--pp-mono);text-transform:lowercase}
.mast-nav a{color:var(--pp-ink-soft);text-decoration:none}
.mast-nav a:hover{color:var(--pp-red)}
@media(max-width:780px){.mast-nav{display:none}}

/* buttons */
.dl{display:inline-flex;align-items:center;gap:10px;background:var(--pp-ink);color:var(--pp-sheet);text-decoration:none;font:600 15px var(--pp-head);padding:14px 22px;border-radius:6px;border:2px solid var(--pp-ink);transition:background .15s,color .15s}
.dl:hover{background:var(--pp-red);border-color:var(--pp-red);color:#fff}
.dl svg{width:18px;height:18px}
.dl-sm{padding:9px 15px;font-size:13px}
.dl-line{background:transparent;color:var(--pp-ink)}
.dl-line:hover{background:var(--pp-ink);color:var(--pp-sheet);border-color:var(--pp-ink)}

/* redaction signature */
.redact{position:relative;display:inline-block;white-space:nowrap}
.redact::after{content:"";position:absolute;left:-4px;right:-4px;top:12%;bottom:8%;background:var(--pp-ink);transform-origin:left;animation:strike 1.1s .5s cubic-bezier(.7,0,.2,1) both}
@keyframes strike{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.bar{display:inline-block;height:.8em;vertical-align:-.05em;background:var(--pp-ink);border-radius:2px}

/* intro */
.intro{padding:72px 0 56px}
.intro-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center}
.tagline{font:500 13px var(--pp-mono);color:var(--pp-red);letter-spacing:.06em;text-transform:uppercase;margin-bottom:18px}
.intro h1{font-size:clamp(38px,6.2vw,72px);font-weight:700}
.intro .sub{font-size:19px;color:var(--pp-ink-soft);max-width:520px;margin:24px 0 32px}
.facts{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:26px;font:400 13px var(--pp-mono);color:var(--pp-ink-soft)}
.facts span::before{content:"▪ ";color:var(--pp-red)}
@media(max-width:860px){.intro-grid{grid-template-columns:1fr}}

/* iphone frame */
.iph{position:relative;width:min(280px,100%);margin-inline:auto;aspect-ratio:9/19.5;background:#111;border-radius:46px;padding:11px;box-shadow:0 0 0 2px #2b2833,0 30px 60px -30px rgba(27,23,38,.55)}
.iph::before{content:"";position:absolute;top:20px;left:50%;transform:translateX(-50%);width:30%;height:24px;background:#000;border-radius:14px;z-index:2}
.iph img{width:100%;height:100%;object-fit:cover;border-radius:36px;background:#222}
.iph-tilt{transform:rotate(3deg)}
@media(prefers-reduced-motion:reduce){.iph-tilt{transform:none}}

/* file sections */
.sheet{background:var(--pp-sheet);border-top:2px solid var(--pp-ink);border-bottom:2px solid var(--pp-ink)}
.block{padding:88px 0}
.block-head{display:flex;align-items:baseline;gap:18px;margin-bottom:44px;flex-wrap:wrap}
.block-head .idx{font:500 14px var(--pp-mono);color:var(--pp-red)}
.block-head h2{font-size:clamp(28px,4vw,44px)}
.block-lead{color:var(--pp-ink-soft);max-width:600px;margin:-26px 0 40px}

/* dossier list */
.dossier{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--pp-rule)}
.dossier li{padding:28px 26px 28px 0;border-bottom:1px solid var(--pp-rule)}
.dossier li:nth-child(odd){border-right:1px solid var(--pp-rule)}
.dossier li:nth-child(even){padding-left:26px}
.dossier h3{font-size:21px;margin-bottom:10px;display:flex;gap:12px;align-items:baseline}
.dossier h3 small{font:500 12px var(--pp-mono);color:var(--pp-red)}
.dossier p{color:var(--pp-ink-soft);margin:0}
@media(max-width:760px){.dossier{grid-template-columns:1fr}.dossier li:nth-child(odd){border-right:0}.dossier li:nth-child(even){padding-left:0}}

/* screenshots strip */
.reel{display:flex;gap:28px;overflow-x:auto;padding:10px 4px 26px;scroll-snap-type:x mandatory}
.reel figure{margin:0;flex:0 0 220px;scroll-snap-align:start}
.reel .iph{width:220px;border-radius:38px;padding:9px}
.reel .iph img{border-radius:30px}
.reel .iph::before{top:16px;height:18px}
.reel figcaption{font:500 12px var(--pp-mono);color:var(--pp-ink-soft);text-align:center;margin-top:14px}

/* tools table */
.toolrow{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:2px solid var(--pp-ink);border-radius:8px;overflow:hidden}
.toolrow div{padding:28px 24px;background:var(--pp-sheet)}
.toolrow div+div{border-left:2px solid var(--pp-ink)}
.toolrow b{display:block;font:700 18px var(--pp-head);margin-bottom:8px}
.toolrow span{color:var(--pp-ink-soft);font-size:15px}
@media(max-width:760px){.toolrow{grid-template-columns:1fr}.toolrow div+div{border-left:0;border-top:2px solid var(--pp-ink)}}

/* faq */
.qa{border-top:2px solid var(--pp-ink)}
.qa details{border-bottom:1px solid var(--pp-rule);padding:20px 0}
.qa summary{cursor:pointer;font:600 18px var(--pp-head);list-style:none;display:flex;justify-content:space-between;gap:16px}
.qa summary::-webkit-details-marker{display:none}
.qa summary::after{content:"+";font-family:var(--pp-mono);color:var(--pp-red)}
.qa details[open] summary::after{content:"−"}
.qa details p{margin:12px 0 0;color:var(--pp-ink-soft)}

/* closing */
.closing{background:var(--pp-ink);color:var(--pp-sheet);padding:84px 0;text-align:center}
.closing h2{font-size:clamp(30px,4.6vw,50px)}
.closing p{color:#C9C3D3;max-width:520px;margin:18px auto 30px}
.closing .dl{background:var(--pp-red);border-color:var(--pp-red);color:#fff}
.closing .dl:hover{background:var(--pp-sheet);border-color:var(--pp-sheet);color:var(--pp-ink)}

/* footer */
.foot{padding:40px 0 48px;font-size:14px;color:var(--pp-ink-soft)}
.foot-row{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:center}
.foot nav{display:flex;gap:20px;flex-wrap:wrap}
.foot a{color:var(--pp-ink-soft)}
.foot button{background:none;border:0;padding:0;font:inherit;color:var(--pp-ink-soft);text-decoration:underline;cursor:pointer}

/* documents */
.doc-top{padding:64px 0 34px;border-bottom:2px solid var(--pp-ink)}
.doc-top h1{font-size:clamp(34px,5vw,54px)}
.stamp{display:inline-block;margin-top:18px;font:500 13px var(--pp-mono);border:1.5px solid var(--pp-red);color:var(--pp-red);padding:5px 12px;border-radius:3px;transform:rotate(-1.5deg)}
.doc-body{padding:44px 0 80px}
.doc-body h2{font-size:22px;color:var(--pp-red);margin:40px 0 12px}
.doc-body ul{padding-left:22px;margin:0 0 1em}
.doc-body li{margin-bottom:8px}
.doc-body .intro-p{font-size:19px;color:var(--pp-ink-soft)}
.mailbox{display:flex;flex-wrap:wrap;gap:14px 24px;align-items:center;border:2px solid var(--pp-ink);border-radius:8px;padding:26px;background:var(--pp-sheet);margin:8px 0 36px}
.mailbox span{font:500 12px var(--pp-mono);text-transform:uppercase;color:var(--pp-ink-soft);display:block}
.mailbox a{font:700 21px var(--pp-head);color:var(--pp-ink)}

/* 404 */
.lost{min-height:62vh;display:grid;place-items:center;text-align:center;padding:60px 0}
.lost h1{font-size:clamp(60px,14vw,150px)}
.lost p{color:var(--pp-ink-soft);margin:16px 0 28px}

/* consent */
.consent{position:fixed;left:16px;right:16px;bottom:16px;z-index:150;max-width:520px;background:var(--pp-sheet);border:2px solid var(--pp-ink);border-radius:8px;padding:20px 22px;box-shadow:6px 6px 0 var(--pp-ink)}
.consent[hidden]{display:none}
.consent p{font-size:14px;margin:0 0 14px;color:var(--pp-ink-soft)}
.consent-btns{display:flex;gap:10px;flex-wrap:wrap}
.consent button{font:600 14px var(--pp-head);padding:9px 16px;border-radius:5px;border:2px solid var(--pp-ink);cursor:pointer;background:transparent;color:var(--pp-ink)}
.consent button.ok{background:var(--pp-ink);color:var(--pp-sheet)}

@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
