  :root{
    --bg:#F7F4EE;
    --bg-alt:#EFE7D6;
    --surface:#FFFFFF;
    --navy:#10192B;
    --navy-2:#1C2B45;
    --crimson:#8C1220;
    --crimson-bright:#B3182B;
    --cream:#EFE4CC;
    --text:#1E2430;
    --text-muted:#5C6470;
    --line:rgba(16,25,43,0.14);
    --line-strong:rgba(16,25,43,0.26);
    --radius:2px;
    --maxw:1180px;
  }

  *,*::before,*::after{ box-sizing:border-box; }
  html{ scroll-behavior:smooth; }
  @media (prefers-reduced-motion: reduce){
    html{ scroll-behavior:auto; }
    *,*::before,*::after{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; }
  }

  body{
    margin:0;
    background:var(--bg);
    color:var(--text);
    font-family:'Work Sans',system-ui,sans-serif;
    font-size:16px;
    line-height:1.65;
    -webkit-font-smoothing:antialiased;
  }

  h1,h2,h3{
    font-family:'Playfair Display',serif;
    font-weight:700;
    margin:0 0 0.5em;
    letter-spacing:-0.01em;
  }
  h1,h2{ color:var(--navy); }

  p{ margin:0 0 1em; }
  a{ color:inherit; }

  .eyebrow{
    font-family:'Space Mono',monospace;
    font-size:0.74rem;
    letter-spacing:0.16em;
    text-transform:uppercase;
    color:var(--crimson-bright);
    margin:0 0 1em;
    display:flex; align-items:center; gap:0.6em;
  }
  .eyebrow::before{
    content:"";
    display:inline-block;
    width:1.6em; height:2px;
    background:var(--crimson-bright);
  }
  .eyebrow.on-dark{ color:var(--cream); }
  .eyebrow.on-dark::before{ background:var(--cream); }

  a:focus-visible, button:focus-visible{
    outline:2px solid var(--crimson-bright);
    outline-offset:3px;
  }

  /* redacted-bar signature motif */
  .redacted{
    display:inline-flex; gap:6px; margin-bottom:1.4rem;
  }
  .redacted span{
    display:block; height:9px; background:var(--navy); opacity:0.85;
  }
  .redacted span:nth-child(1){ width:34px; }
  .redacted span:nth-child(2){ width:14px; }
  .redacted span:nth-child(3){ width:22px; }
  .redacted.on-dark span{ background:var(--cream); }

  /* ---------- Header ---------- */
  .site-header{
    position:sticky; top:0; z-index:50;
    background:rgba(247,244,238,0.9);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line);
  }
  .header-inner{
    max-width:var(--maxw);
    margin:0 auto;
    padding:1.1rem 1.5rem;
    display:flex; align-items:center; justify-content:space-between;
  }
  .wordmark{
    font-family:'Playfair Display',serif;
    font-weight:700;
    font-size:1.2rem;
    letter-spacing:0.03em;
    color:var(--navy);
    text-decoration:none;
    text-transform:uppercase;
  }
  .nav{ display:flex; gap:2.2rem; }
  .nav a{
    text-decoration:none;
    font-size:0.93rem;
    font-weight:500;
    color:var(--text);
    position:relative;
    padding-bottom:2px;
  }
  .nav a::after{
    content:"";
    position:absolute; left:0; right:0; bottom:0;
    height:2px; background:var(--crimson-bright);
    transform:scaleX(0); transform-origin:left;
    transition:transform 0.25s ease;
  }
  .nav a:hover::after, .nav a:focus-visible::after{ transform:scaleX(1); }

  .nav-toggle{
    display:none;
    background:none; border:1px solid var(--line-strong);
    border-radius:var(--radius);
    font-family:'Work Sans',sans-serif; font-size:0.85rem; font-weight:500;
    color:var(--navy); padding:0.5rem 0.9rem; cursor:pointer;
  }
  .mobile-nav{
    display:flex; flex-direction:column;
    padding:0 1.5rem 1.2rem;
    border-bottom:1px solid var(--line);
  }
  .mobile-nav a{
    text-decoration:none; color:var(--text); font-weight:500;
    padding:0.7rem 0; border-top:1px solid var(--line);
  }
  .mobile-nav[hidden]{ display:none; }

  @media (max-width:780px){
    .nav{ display:none; }
    .nav-toggle{ display:inline-block; }
  }

  /* ---------- Buttons ---------- */
  .btn{
    display:inline-flex; align-items:center; justify-content:center;
    padding:0.85rem 1.6rem;
    font-family:'Work Sans',sans-serif;
    font-weight:600; font-size:0.95rem;
    text-decoration:none;
    border-radius:var(--radius);
    border:1px solid transparent;
    cursor:pointer;
    transition:background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.15s ease;
  }
  .btn-primary{ background:var(--crimson); color:#fff; }
  .btn-primary:hover{ background:var(--crimson-bright); transform:translateY(-1px); }
  .btn-outline-dark{ border-color:var(--cream); color:var(--cream); }
  .btn-outline-dark:hover{ background:rgba(239,228,204,0.1); }
  .btn-outline-light{ border-color:var(--line-strong); color:var(--navy); }
  .btn-outline-light:hover{ background:rgba(16,25,43,0.05); }
  .btn-row{ display:flex; flex-wrap:wrap; gap:0.9rem; align-items:center; }

  .badge{
    display:inline-flex; align-items:center; gap:0.5em;
    font-family:'Space Mono',monospace;
    font-size:0.78rem;
    padding:0.5rem 0.9rem;
    border:1px solid rgba(239,228,204,0.35);
    border-radius:var(--radius);
    color:var(--cream);
  }

  /* ---------- Hero ---------- */
  .hero{
    background:var(--navy);
    background-image:radial-gradient(ellipse at 78% 12%, rgba(140,18,32,0.22), transparent 55%);
    color:var(--cream);
    overflow:hidden;
  }
  .hero-inner{
    max-width:var(--maxw);
    margin:0 auto;
    padding:6rem 1.5rem 4.5rem;
    display:grid;
    grid-template-columns:1.15fr 0.85fr;
    gap:3.5rem;
    align-items:center;
  }
  .hero h1{
    color:var(--cream);
    font-size:clamp(2.6rem, 6vw, 4.4rem);
    line-height:1.02;
    text-transform:uppercase;
    letter-spacing:0.01em;
  }
  .hero-tagline{
    font-family:'Playfair Display',serif;
    font-style:italic;
    font-weight:500;
    font-size:1.3rem;
    color:#D8C9A3;
    margin-bottom:1rem;
  }
  .hero-desc{
    color:#B7C1CE;
    max-width:46ch;
    font-size:1.03rem;
  }
  .hero-badge-row{ margin:1.6rem 0 2rem; }
  .hero-cover{
    position:relative;
    display:flex; justify-content:center;
  }
  .hero-cover img{
    width:100%; max-width:340px; height:auto;
    box-shadow:0 30px 70px -20px rgba(0,0,0,0.6), 0 0 0 1px rgba(239,228,204,0.08);
    border-radius:3px;
  }
  .hero-cover::before{
    content:"";
    position:absolute;
    top:-30px; right:10%;
    width:220px; height:220px;
    background:radial-gradient(circle, rgba(179,24,43,0.35), transparent 70%);
    filter:blur(10px);
    z-index:0;
  }

  @media (max-width:860px){
    .hero-inner{ grid-template-columns:1fr; padding-top:3.5rem; }
    .hero-cover{ order:-1; max-width:260px; margin:0 auto; }
  }

  /* ---------- Sections ---------- */
  .section{ padding:5.5rem 1.5rem; }
  .section--alt{ background:var(--bg-alt); }
  .section--dark{ background:var(--navy); color:var(--cream); }
  .section-inner{ max-width:var(--maxw); margin:0 auto; }
  .section h2{ font-size:clamp(1.7rem, 2.8vw, 2.35rem); max-width:24ch; }
  .section--dark h2{ color:var(--cream); }

  .reveal{
    opacity:0; transform:translateY(16px);
    transition:opacity 0.7s ease, transform 0.7s ease;
  }
  .reveal.is-visible{ opacity:1; transform:none; }

  /* Om boken */
  .book-copy{ max-width:62ch; }
  .book-copy p{ color:var(--text-muted); font-size:1.03rem; }
  .book-copy .closing-line{
    font-family:'Playfair Display',serif;
    font-style:italic;
    color:var(--navy);
    font-size:1.15rem;
    margin-top:1.5rem;
  }
  .fact-strip{
    margin-top:2.5rem;
    display:flex; flex-wrap:wrap; gap:0.7rem;
  }
  .fact-chip{
    font-family:'Space Mono',monospace;
    font-size:0.78rem;
    padding:0.5rem 0.9rem;
    background:var(--surface);
    border:1px solid var(--line);
    color:var(--text-muted);
  }

  /* Om forfatteren */
  .author-grid{
    display:grid;
    grid-template-columns:0.7fr 1.3fr;
    gap:3.5rem;
    align-items:start;
  }
  .author-photo{
    width:100%;
    aspect-ratio:4/5;
    object-fit:cover;
    object-position:center 12%;
    border:1px solid var(--line-strong);
  }
  .author-copy p{ color:var(--text-muted); max-width:54ch; }
  .author-copy h2{ margin-bottom:0.9em; }

  @media (max-width:820px){
    .author-grid{ grid-template-columns:1fr; }
    .author-photo{ max-width:220px; aspect-ratio:4/5; }
  }

  /* Anmeldelser */
  .review-summary{
    margin-top:2.5rem;
    display:flex; align-items:baseline; gap:1rem; flex-wrap:wrap;
  }
  .review-summary .score{
    font-family:'Playfair Display',serif;
    font-weight:700;
    font-size:2.4rem;
    color:var(--navy);
  }
  .review-summary .score-detail{
    font-size:0.95rem;
    color:var(--text-muted);
  }
  .review-summary .score-detail a{ color:var(--crimson-bright); text-decoration:underline; text-underline-offset:2px; }

  .review-featured{
    margin-top:2rem;
    background:var(--surface);
    border:1px solid var(--line);
    border-left:3px solid var(--crimson);
    padding:2.2rem 2.2rem;
  }
  .review-featured .review-quote{ font-size:1.35rem; }
  .review-featured .review-rating{ margin-bottom:0.7rem; }

  .review-grid{
    margin-top:1.5rem;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1.25rem;
  }
  .review-card{
    background:var(--surface);
    border:1px solid var(--line);
    padding:1.6rem 1.6rem;
    display:flex; flex-direction:column; gap:0.7rem;
  }
  .review-rating{
    font-family:'Space Mono',monospace;
    font-size:0.82rem;
    color:var(--crimson-bright);
    font-weight:700;
    letter-spacing:0.02em;
  }
  .review-quote{
    font-family:'Playfair Display',serif;
    font-style:italic;
    font-size:1.05rem;
    color:var(--navy);
    margin:0;
  }
  .review-source{
    font-size:0.88rem;
    color:var(--text-muted);
  }
  .review-source a{ color:var(--text-muted); text-decoration:underline; text-underline-offset:2px; }

  .review-more{
    margin-top:2rem;
    font-size:0.95rem;
    color:var(--text-muted);
  }
  .review-more a{ color:var(--crimson-bright); text-decoration:underline; text-underline-offset:2px; font-weight:500; }

  @media (max-width:900px){
    .review-grid{ grid-template-columns:repeat(2,1fr); }
  }
  @media (max-width:600px){
    .review-grid{ grid-template-columns:1fr; }
  }

  /* Kjøp boken */
  .buy-layout{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:3rem;
    align-items:start;
  }
  .buy-formats{ display:flex; flex-direction:column; gap:0.9rem; margin-bottom:2rem; }
  .buy-format-row{
    display:flex; justify-content:space-between; gap:1rem;
    padding-bottom:0.9rem;
    border-bottom:1px solid rgba(239,228,204,0.18);
    font-size:0.98rem;
  }
  .buy-format-row span:first-child{ color:var(--cream); }
  .buy-format-row span:last-child{ font-family:'Space Mono',monospace; color:#D8C9A3; }
  .buy-note{
    margin-top:1.6rem;
    font-size:0.88rem;
    color:#9AA7B4;
  }

  @media (max-width:820px){
    .buy-layout{ grid-template-columns:1fr; }
  }

  /* ---------- Footer ---------- */
  .footer{
    position:relative;
    background:var(--navy-2);
    color:#A9B6C4;
    padding:3.5rem 1.5rem 1.75rem;
    overflow:hidden;
  }
  .footer-inner{
    max-width:var(--maxw);
    margin:0 auto;
    display:flex; flex-wrap:wrap; gap:2rem; justify-content:space-between;
    padding-bottom:2rem;
    border-bottom:1px solid rgba(255,255,255,0.1);
    position:relative; z-index:1;
  }
  .footer-wordmark{
    font-family:'Playfair Display',serif;
    font-weight:700; font-size:1.3rem; color:var(--cream);
    text-transform:uppercase; margin:0 0 0.3em;
  }
  .footer-tag{ margin:0; font-size:0.92rem; color:#8494A3; }
  .footer-meta p{ margin:0 0 0.3em; font-size:0.9rem; }
  .footer-bottom{
    max-width:var(--maxw); margin:0 auto; padding-top:1.4rem;
    display:flex; justify-content:space-between; flex-wrap:wrap; gap:0.5rem;
    font-size:0.8rem; color:#66727F;
    font-family:'Space Mono',monospace;
    position:relative; z-index:1;
  }
  .fingerprint{
    position:absolute; right:-40px; bottom:-40px;
    width:220px; height:220px;
    opacity:0.06;
    z-index:0;
  }

  /* ---------- Vilkår / tekstsider ---------- */
  .legal{ max-width:78ch; margin:0 auto; padding:4rem 1.5rem 5rem; }
  .legal h1{ color:var(--navy); font-size:clamp(2rem,4vw,2.8rem); margin-bottom:0.3em; }
  .legal h2{ font-size:1.35rem; margin:2.2em 0 0.5em; max-width:none; }
  .legal p, .legal li{ color:var(--text); }
  .legal ul{ padding-left:1.2rem; margin:0 0 1em; }
  .legal .lead{ color:var(--text-muted); font-size:1.05rem; }
  .legal .seller{ background:var(--surface); border:1px solid var(--line); border-left:3px solid var(--crimson); padding:1.2rem 1.5rem; margin:1.5rem 0; }
  .legal .seller p{ margin:0 0 0.3em; }
  .legal a{ color:var(--crimson-bright); text-underline-offset:2px; }
  .legal .updated{ font-family:'Space Mono',monospace; font-size:0.78rem; color:var(--text-muted); }
  .footer-meta a{ color:#A9B6C4; text-underline-offset:2px; }
  .footer-meta a:hover{ color:var(--cream); }
  .pay-methods{ margin:0.9rem 0 0; font-size:0.9rem; color:#9AA7B4; }
  .btn-vipps{ background:#FF5B24; color:#fff; }
  .btn-vipps:hover{ background:#E64E1A; transform:translateY(-1px); }
  .btn-vipps:disabled, .btn-primary:disabled{ opacity:0.6; cursor:wait; }
