  :root{
    --ink:#0a0a0a;
    --paper:#ffffff;
    --grey:#f4f4f2;
    --card:#ffffff;
    --line:#e3e3df;
    --muted:#5c5c58;
    --accent:#1b4aef;
    --accent-soft:rgba(27,74,239,.13);
    --onink:#ffffff;
    --band-bg:#0a0a0a;
    --band-fg:#ffffff;
    --band-muted:#b9b9b4;
    --band-kicker:#8fa3ff;
    --headerbg:rgba(255,255,255,.92);
    --hover:rgba(10,10,10,.055);
    --shadow:0 12px 34px rgba(10,10,10,.12);
    --err-bg:#fff5f4;--err-fg:#8f1f17;--err-line:#d4342a;
    --ok:#0f7a4a;
    --maxw:1120px;
    --arrow:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%230a0a0a' stroke-width='1.6' fill='none' stroke-linecap='square'/%3E%3C/svg%3E");
  }
  html[data-theme="dark"]{
    --ink:#f1f1ee;
    --paper:#0b0b0c;
    --grey:#121214;
    --card:#141417;
    --line:#2a2a2f;
    --muted:#9c9c98;
    --accent:#8aa0ff;
    --accent-soft:rgba(138,160,255,.18);
    --onink:#0b0b0c;
    --band-bg:#16161a;
    --band-fg:#f1f1ee;
    --band-muted:#9c9c98;
    --band-kicker:#8aa0ff;
    --headerbg:rgba(11,11,12,.9);
    --hover:rgba(255,255,255,.07);
    --shadow:0 12px 34px rgba(0,0,0,.55);
    --err-bg:rgba(212,52,42,.12);--err-fg:#ff9c92;--err-line:#d4342a;
    --ok:#4bd08b;
    --arrow:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23f1f1ee' stroke-width='1.6' fill='none' stroke-linecap='square'/%3E%3C/svg%3E");
  }
  html.i18n-pending body{visibility:hidden}
  *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth;scroll-padding-top:80px}
  body{
    font-family:"Helvetica Neue",Helvetica,Arial,system-ui,sans-serif;
    color:var(--ink);background:var(--paper);
    line-height:1.6;font-size:17px;
    -webkit-font-smoothing:antialiased;
    transition:background-color .25s ease,color .25s ease;
  }
  .mono{font-family:"SF Mono",ui-monospace,Menlo,Consolas,monospace}
  a{color:inherit}
  img{max-width:100%}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
  ::selection{background:var(--accent);color:#fff}
  :focus-visible{outline:3px solid var(--accent-soft);outline-offset:2px}
  .skip{
    position:absolute;left:-9999px;top:0;z-index:200;background:var(--ink);color:var(--onink);
    padding:12px 20px;font-weight:600;text-decoration:none;
  }
  .skip:focus{left:0}

  /* ---------- header ---------- */
  header{
    position:sticky;top:0;z-index:60;
    background:var(--headerbg);backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  .nav{display:flex;align-items:center;gap:22px;height:68px}
  .nav .brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-weight:700;letter-spacing:.02em;white-space:nowrap}
  .nav .brand img{height:26px;width:auto;display:block}
  img.lg-dark{display:none!important}
  html[data-theme="dark"] img.lg-light{display:none!important}
  html[data-theme="dark"] img.lg-dark{display:block!important}
  .nav nav{margin-left:auto;display:flex;gap:16px;align-items:center}
  .nav nav a{text-decoration:none;font-size:14.5px;color:var(--muted);position:relative;padding:4px 0}
  .nav nav a:hover{color:var(--ink)}
  .nav nav a[aria-current="true"]{color:var(--ink)}
  .nav nav a[aria-current="true"]::after{
    content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--accent);
  }
  .navtools{display:flex;align-items:center;gap:8px;margin-left:16px}
  .btn{
    display:inline-block;background:var(--ink);color:var(--onink);
    padding:12px 26px;text-decoration:none;font-weight:600;font-size:15px;
    border:2px solid var(--ink);transition:.15s;white-space:nowrap;cursor:pointer;
    font-family:inherit;
  }
  .btn:hover{background:transparent;color:var(--ink)}
  .btn.ghost{background:transparent;color:var(--ink)}
  .btn.ghost:hover{background:var(--ink);color:var(--onink)}
  .nav .btn{padding:9px 20px}
  .nav nav a.btn{color:var(--onink)}
  .nav nav a.btn:hover{color:var(--ink);background:transparent}

  .iconbtn{
    display:inline-flex;align-items:center;justify-content:center;gap:6px;
    height:38px;min-width:38px;padding:0 9px;
    border:1px solid var(--line);background:transparent;color:var(--ink);
    font-family:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:.15s;
  }
  .iconbtn:hover{border-color:var(--ink);background:var(--hover)}
  .iconbtn svg{width:17px;height:17px;display:block}
  .iconbtn svg.icon-sun{display:none}
  html[data-theme="dark"] .iconbtn svg.icon-moon{display:none}
  html[data-theme="dark"] .iconbtn svg.icon-sun{display:block}

  /* språkvelger */
  .lang{position:relative}
  .lang .flag{font-size:16px;line-height:1}
  .lang .caret{width:8px;height:8px;flex:none;opacity:.55}
  .langmenu{
    position:absolute;top:calc(100% + 8px);right:0;min-width:172px;z-index:80;
    background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);
    padding:5px;
  }
  .langmenu[hidden]{display:none}
  .langmenu a{
    display:flex;align-items:center;gap:10px;padding:10px 12px;
    text-decoration:none;font-size:15px;color:var(--ink);
  }
  .langmenu a[hidden]{display:none}
  .langmenu a:hover{background:var(--hover)}
  .langmenu a .flag{font-size:17px}

  /* hamburger */
  .menubtn{display:none}
  .menubtn .bars{position:relative;width:17px;height:12px}
  .menubtn .bars span{
    position:absolute;left:0;right:0;height:2px;background:var(--ink);transition:.2s;
  }
  .menubtn .bars span:nth-child(1){top:0}
  .menubtn .bars span:nth-child(2){top:5px}
  .menubtn .bars span:nth-child(3){top:10px}
  .menubtn[aria-expanded="true"] .bars span:nth-child(1){top:5px;transform:rotate(45deg)}
  .menubtn[aria-expanded="true"] .bars span:nth-child(2){opacity:0}
  .menubtn[aria-expanded="true"] .bars span:nth-child(3){top:5px;transform:rotate(-45deg)}
  #mobilemenu{
    border-top:1px solid var(--line);background:var(--headerbg);
  }
  #mobilemenu[hidden]{display:none}
  #mobilemenu .wrap{display:flex;flex-direction:column;padding-top:10px;padding-bottom:20px}
  #mobilemenu a{
    text-decoration:none;font-size:17px;color:var(--ink);padding:13px 0;
    border-bottom:1px solid var(--line);
  }
  #mobilemenu a.btn{border-bottom:0;text-align:center;margin-top:18px;color:var(--onink)}

  /* lesefremdrift */
  .progress{
    position:absolute;left:0;bottom:-1px;height:2px;width:0;
    background:var(--accent);transition:width .1s linear;z-index:61;
  }

  @media(max-width:1150px){
    .nav nav a:not(.btn){display:none}
    .menubtn{display:inline-flex}
    .nav nav a.btn{display:none}
    .navtools .btn{display:none}
  }
  @media(max-width:480px){
    .nav{gap:10px}
    .nav .brand span{display:none}
    .lang .code{display:none}
  }

  /* ---------- hero ---------- */
  .hero{padding:88px 0 64px;border-bottom:1px solid var(--line)}
  .hero .tag{
    display:inline-block;border:1px solid var(--ink);
    padding:5px 14px;font-size:13px;letter-spacing:.14em;text-transform:uppercase;
    margin-bottom:28px;
  }
  .hero img.logo{height:88px;width:auto;display:block;margin-bottom:36px}
  .hero h1{font-size:clamp(40px,6.5vw,76px);line-height:1.03;letter-spacing:-.02em;font-weight:800;max-width:16ch}
  .hero p.lead{font-size:clamp(18px,2.2vw,22px);color:var(--muted);max-width:52ch;margin:26px 0 38px}
  .hero .cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
  .status{
    display:inline-flex;align-items:center;gap:9px;font-size:14px;color:var(--muted);
  }
  .status .dot{
    width:8px;height:8px;border-radius:50%;background:var(--ok);flex:none;
    box-shadow:0 0 0 0 var(--ok);animation:pulse 2.4s infinite;
  }
  @keyframes pulse{
    0%{box-shadow:0 0 0 0 rgba(15,122,74,.45)}
    70%{box-shadow:0 0 0 8px rgba(15,122,74,0)}
    100%{box-shadow:0 0 0 0 rgba(15,122,74,0)}
  }

  /* ---------- nøkkelinfo ---------- */
  .facts{border-bottom:1px solid var(--line);background:var(--grey)}
  .facts .grid{display:grid;grid-template-columns:repeat(5,1fr)}
  .facts .cell{padding:26px 20px;border-left:1px solid var(--line)}
  .facts .cell:first-child{border-left:none}
  .facts .k{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
  .facts .v{font-weight:700;font-size:18px}
  @media(max-width:820px){
    .facts .grid{grid-template-columns:repeat(2,1fr)}
    .facts .cell{border-left:none;border-top:1px solid var(--line)}
    .facts .cell:nth-child(-n+2){border-top:none}
  }

  /* ---------- seksjoner ---------- */
  section{padding:84px 0;border-bottom:1px solid var(--line)}
  .kicker{font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);font-weight:700;margin-bottom:14px}
  h2{font-size:clamp(28px,4vw,40px);letter-spacing:-.01em;line-height:1.15;margin-bottom:22px;max-width:24ch}
  .cols{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
  @media(max-width:820px){.cols{grid-template-columns:1fr}}
  p.body{color:var(--muted);max-width:60ch;margin-bottom:16px}
  p.body strong{color:var(--ink)}

  .cardgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:44px}
  @media(max-width:820px){.cardgrid{grid-template-columns:1fr}}
  .card{border:1px solid var(--line);padding:28px;background:var(--card);transition:.2s}
  .card:hover{border-color:var(--ink)}
  .card .num{font-weight:800;font-size:14px;color:var(--accent);letter-spacing:.1em;margin-bottom:12px}
  .card h3{font-size:19px;margin-bottom:8px}
  .card p{color:var(--muted);font-size:15px}

  /* ---------- sted ---------- */
  .sted{background:var(--grey)}
  .crest{
    display:flex;align-items:center;justify-content:center;
    background:#0a0a0a;border:1px solid var(--line);overflow:hidden;
  }
  /* Bannerbilde (BI Startup Village + BI) som fyller hele boksen i begge temaer:
     bredden styrer, høyden følger. */
  .crest img{width:100%;height:auto;aspect-ratio:1290/711;object-fit:cover;display:block}
  .adresse{
    margin:0 0 22px;font-size:16px;line-height:1.9;color:var(--ink);
  }
  .adresse a{color:var(--ink)}
  .pill{
    display:inline-block;background:var(--card);border:1px solid var(--line);
    padding:6px 14px;font-size:14px;margin:0 8px 10px 0;color:var(--muted);
  }

  /* ---------- program ---------- */
  .timeline{margin-top:36px;border-left:2px solid var(--ink);padding-left:0;list-style:none}
  .timeline li{position:relative;padding:0 0 30px 34px}
  .timeline li::before{
    content:"";position:absolute;left:-7px;top:7px;
    width:12px;height:12px;background:var(--ink);
  }
  .timeline .t{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
  .timeline .e{font-weight:700;font-size:18px}
  .timeline .d{color:var(--muted);font-size:15px;max-width:52ch}
  .timeline li.win::before{background:var(--accent)}
  .daylabel{font-weight:800;font-size:22px;margin:36px 0 18px}
  .daylabel:first-of-type{margin-top:0}

  /* ---------- regler ---------- */
  ol.rules{counter-reset:r;list-style:none;margin-top:8px}
  ol.rules li{
    counter-increment:r;position:relative;
    padding:22px 0 22px 64px;border-top:1px solid var(--line);
  }
  ol.rules li:first-child{border-top:none}
  ol.rules li::before{
    content:"0" counter(r);position:absolute;left:0;top:22px;
    font-family:"SF Mono",ui-monospace,Menlo,monospace;
    font-weight:700;color:var(--accent);
  }
  ol.rules h3{font-size:18px;margin-bottom:4px}
  ol.rules p{color:var(--muted);font-size:15px;max-width:64ch}

  /* ---------- priser ---------- */
  .prisgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:44px}
  @media(max-width:820px){.prisgrid{grid-template-columns:1fr}}

  /* ---------- FAQ ---------- */
  .faq{background:var(--grey)}
  .faqlist{margin-top:8px;border-top:1px solid var(--line)}
  .faqlist details{border-bottom:1px solid var(--line)}
  .faqlist summary{
    list-style:none;cursor:pointer;padding:22px 44px 22px 0;position:relative;
    font-weight:700;font-size:18px;
  }
  .faqlist summary::-webkit-details-marker{display:none}
  .faqlist summary::after{
    content:"";position:absolute;right:8px;top:31px;width:11px;height:11px;
    border-right:2px solid var(--accent);border-bottom:2px solid var(--accent);
    transform:rotate(45deg) translateY(-3px);transition:transform .2s;
  }
  .faqlist details[open] summary::after{transform:rotate(-135deg) translateY(-3px)}
  .faqlist summary:hover{color:var(--accent)}
  .faqlist .a{color:var(--muted);font-size:15.5px;max-width:70ch;padding:0 44px 24px 0}

  /* ---------- skjema ---------- */
  .meld{background:var(--paper)}
  .formhead{max-width:58ch;margin-bottom:44px}
  .form{background:var(--card);border:1px solid var(--line);padding:40px;max-width:880px}
  @media(max-width:600px){.form{padding:26px 20px}}
  .fgrid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
  @media(max-width:600px){.fgrid{grid-template-columns:1fr}}
  .field{display:flex;flex-direction:column;min-width:0}
  .field.full{grid-column:1/-1}
  .field label{font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;margin-bottom:8px}
  .req{color:var(--accent)}
  .field input,.field select,.field textarea{
    font-family:inherit;font-size:16px;color:var(--ink);line-height:1.5;
    background:var(--card);border:1px solid var(--line);border-radius:0;
    padding:13px 14px;width:100%;
    -webkit-appearance:none;appearance:none;
    transition:border-color .15s,box-shadow .15s;
  }
  .field textarea{resize:vertical;min-height:118px}
  .field input::placeholder,.field textarea::placeholder{color:var(--muted);opacity:.65}
  .field select{
    background-image:var(--arrow);
    background-repeat:no-repeat;background-position:right 15px center;padding-right:40px;cursor:pointer;
  }
  .field input:focus,.field select:focus,.field textarea:focus{
    outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);
  }
  .field .hint{font-size:13px;color:var(--muted);margin-top:7px}
  .field .err{font-size:13.5px;color:var(--err-fg);margin-top:7px;font-weight:600}
  .field .err[hidden]{display:none}
  .field.invalid input,.field.invalid textarea{border-color:var(--err-line)}
  .counter{font-size:12.5px;color:var(--muted);margin-top:7px;text-align:right;font-family:"SF Mono",ui-monospace,Menlo,monospace}
  .counter.near{color:var(--err-fg)}
  .hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
  .consent{
    grid-column:1/-1;display:flex;gap:13px;align-items:flex-start;
    font-size:14.5px;color:var(--muted);border-top:1px solid var(--line);padding-top:26px;
  }
  .consent.plain{border-top:0;padding-top:0}
  .consent input{width:19px;height:19px;flex:none;margin-top:2px;accent-color:var(--accent);-webkit-appearance:auto;appearance:auto;padding:0}
  .checkerr{display:block;font-size:13.5px;color:var(--err-fg);margin-top:12px;font-weight:600}
  .checkerr[hidden]{display:none}
  .consent label{cursor:pointer}
  .formactions{grid-column:1/-1;display:flex;align-items:center;gap:20px;flex-wrap:wrap}
  .form button{font-family:inherit;cursor:pointer}
  .form button[disabled]{opacity:.55;cursor:progress}
  .formnote{font-size:13.5px;color:var(--muted);max-width:38ch}
  .formmsg{grid-column:1/-1;padding:15px 18px;font-size:15px;border:1px solid var(--err-line);background:var(--err-bg);color:var(--err-fg);margin-bottom:20px}

  .draftbar{
    display:flex;align-items:center;gap:16px;flex-wrap:wrap;
    border:1px solid var(--line);border-left:3px solid var(--accent);
    background:var(--grey);padding:13px 18px;font-size:14px;color:var(--muted);
    max-width:880px;margin-bottom:20px;
  }
  .draftbar[hidden]{display:none}
  .draftbar button{
    background:none;border:0;padding:0;font-family:inherit;font-size:14px;color:var(--ink);
    text-decoration:underline;text-underline-offset:3px;cursor:pointer;margin-left:auto;
  }
  .draftbar button:hover{color:var(--accent)}

  .fsec + .fsec{margin-top:40px;border-top:1px solid var(--line);padding-top:36px}
  .fsectitle{font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;margin-bottom:8px}
  .fsecdesc{font-size:14.5px;color:var(--muted);max-width:62ch;margin-bottom:26px}
  .fsec .fgrid + .persons{margin-top:24px}

  .persons{display:flex;flex-direction:column;gap:20px}
  .person{border:1px solid var(--line);background:var(--grey);padding:22px 22px 24px}
  @media(max-width:600px){.person{padding:20px 16px}}
  .person[hidden]{display:none}
  .person .field input{background:var(--card)}
  .personhead{
    display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:18px;
    font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;
  }
  .removeperson{
    margin-left:auto;background:none;border:0;padding:0;font-family:inherit;
    font-size:13.5px;font-weight:400;letter-spacing:0;text-transform:none;color:var(--muted);
    text-decoration:underline;text-underline-offset:3px;cursor:pointer;
  }
  .removeperson:hover{color:var(--err-fg)}
  .addrow{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:22px}
  .addperson{
    font-family:inherit;font-size:15px;font-weight:600;cursor:pointer;transition:.15s;
    background:transparent;color:var(--ink);border:2px solid var(--ink);padding:11px 22px;
  }
  .addperson:hover{background:var(--ink);color:var(--onink)}
  .addperson[disabled]{opacity:.4;cursor:not-allowed;background:transparent;color:var(--ink)}

  .modeswitch{display:inline-flex;border:2px solid var(--ink);margin-bottom:24px}
  .modeswitch button{
    font-family:inherit;font-size:14px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
    background:transparent;color:var(--ink);border:0;padding:11px 30px;cursor:pointer;transition:.15s;
  }
  .modeswitch button + button{border-left:2px solid var(--ink)}
  .modeswitch button:hover{background:var(--hover)}
  .modeswitch button[aria-selected="true"]{background:var(--ink);color:var(--onink)}
  @media(max-width:420px){.modeswitch{display:flex;width:100%}.modeswitch button{flex:1;padding:11px 10px}}
  .panel[hidden]{display:none}
  .panelnote{
    font-size:14.5px;color:var(--muted);max-width:62ch;margin-bottom:24px;
    border-left:3px solid var(--accent);padding-left:16px;
  }

  /* logo-opplasting (valgfritt) */
  .valgfri{
    font-family:"SF Mono",ui-monospace,Menlo,Consolas,monospace;
    font-size:10.5px;letter-spacing:.12em;color:var(--muted);
    border:1px solid var(--line);padding:2px 7px;margin-left:4px;
    text-transform:uppercase;font-weight:600;
  }
  .filinput{
    font:inherit;font-size:14.5px;color:var(--muted);background:var(--paper);
    border:1.5px solid var(--line);padding:9px 12px;width:100%;cursor:pointer;
  }
  .filinput::file-selector-button{
    font:inherit;font-size:13.5px;font-weight:700;cursor:pointer;margin-right:12px;
    border:1.5px solid var(--ink);background:transparent;color:var(--ink);padding:6px 14px;
  }
  .filinput::file-selector-button:hover{background:var(--ink);color:var(--onink)}
  .filinput:focus{border-color:var(--accent);outline:none}
  .logopreview{display:flex;align-items:center;gap:14px;margin-top:12px}
  .logopreview[hidden]{display:none}
  .logopreview img{
    width:56px;height:56px;object-fit:contain;flex:none;
    border:1px solid var(--line);background:var(--paper);padding:4px;
  }
  .logopreview button{
    font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;background:none;
    border:0;border-bottom:1px solid var(--line);color:var(--muted);padding:2px 0;
  }
  .logopreview button:hover{color:var(--err-fg);border-bottom-color:var(--err-fg)}
  .success{
    background:var(--card);border:1px solid var(--ink);border-left:5px solid var(--accent);
    padding:40px;max-width:880px;
  }
  .success[hidden]{display:none}
  .success h3{font-size:24px;margin-bottom:12px;letter-spacing:-.01em}
  .success p{color:var(--muted);max-width:56ch}

  /* ---------- sponsor / band ---------- */
  .sponsor{background:var(--band-bg);color:var(--band-fg);border-bottom:none}
  .sponsor .kicker{color:var(--band-kicker)}
  .sponsor h2{color:var(--band-fg)}
  .sponsor p.body{color:var(--band-muted)}
  .sponsor p.body strong{color:var(--band-fg)}
  .sponsor .btn{background:var(--band-fg);color:var(--band-bg);border-color:var(--band-fg)}
  .sponsor .btn:hover{background:transparent;color:var(--band-fg)}

  /* ---------- kontakt ---------- */
  .kontaktgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:44px;max-width:1080px}
  @media(max-width:980px){.kontaktgrid{grid-template-columns:1fr 1fr}}
  @media(max-width:640px){.kontaktgrid{grid-template-columns:1fr}}
  .kontakt-card{border:1px solid var(--line);padding:28px;background:var(--card)}
  .kontakt-card h3{font-size:19px;margin-bottom:2px}
  .kontakt-card .role{color:var(--muted);font-size:14px;margin-bottom:14px}
  .kontakt-card a{display:block;font-size:15px;color:var(--ink);text-decoration:none;margin-top:6px;overflow-wrap:anywhere}
  .kontakt-card a:hover{color:var(--accent)}
  .copybtn{
    margin-top:16px;background:transparent;border:1px solid var(--line);color:var(--muted);
    font-family:inherit;font-size:13px;padding:7px 13px;cursor:pointer;transition:.15s;
  }
  .copybtn:hover{border-color:var(--ink);color:var(--ink)}
  .copybtn.done{border-color:var(--accent);color:var(--accent)}

  /* ---------- personbilder (alltid 3:4) ---------- */
  .pfp{
    display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;
    background:var(--grey);border:1px solid var(--line);
  }

  /* ---------- jury-teaser på forsiden ---------- */
  .teasergrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
  .teaserperson .navn{font-size:14.5px;font-weight:700;margin-top:12px;line-height:1.3}
  .teaserperson .rolle{font-size:13px;color:var(--muted);margin-top:2px}
  @media(max-width:420px){.teasergrid{gap:12px}.teaserperson .navn{font-size:13.5px}}

  /* ---------- jury-side ---------- */
  .jurycat{margin-top:66px}
  .jurycat:first-of-type{margin-top:0}
  .jurycat > h3{
    font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);
    font-weight:700;margin-bottom:26px;padding-bottom:14px;border-bottom:1px solid var(--line);
  }
  .jurygrid{display:grid;grid-template-columns:repeat(4,1fr);gap:26px}
  .juryperson .navn{font-size:17px;font-weight:700;margin-top:15px;line-height:1.3}
  .juryperson .om{font-size:14.5px;color:var(--muted);margin-top:7px}
  .juryperson.tbd .pfp{opacity:.5}
  .juryperson.tbd .navn{color:var(--muted)}
  @media(max-width:900px){.jurygrid{grid-template-columns:repeat(3,1fr);gap:22px}}
  @media(max-width:640px){
    .jurygrid{grid-template-columns:repeat(2,1fr);gap:18px}
    .juryperson .navn{font-size:16px}
    .juryperson .om{font-size:14px}
    .jurycat{margin-top:48px}
  }

  /* ---------- sponsorlogoer ---------- */
  .sponsorlogos{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:42px}
  @media(max-width:820px){.sponsorlogos{grid-template-columns:repeat(2,1fr)}}
  @media(max-width:420px){.sponsorlogos{grid-template-columns:1fr}}
  .sponsortile{
    background:#fff;border:1px solid var(--line);
    display:flex;align-items:center;justify-content:center;
    padding:30px 26px;min-height:136px;
  }
  .sponsortile.mork{background:#0a0a0a}
  .sponsortile img{max-width:100%;max-height:74px;width:auto;height:auto;object-fit:contain;display:block}
  a.sponsortile{text-decoration:none;color:inherit;cursor:pointer}
  a.sponsortile:hover{border-color:var(--ink)}
  a.sponsortile.mork:hover{border-color:#777}
  .sponsortile.aukonomi{background:#222163}
  a.sponsortile.aukonomi:hover{border-color:#777}
  .sponsortile.o3c{padding:0;overflow:hidden}
  .sponsortile.o3c img{width:100%;height:136px;max-height:none;object-fit:cover}
  .sponsortile.bi-flis{padding:0;overflow:hidden;background:#0a0a0a}
  .sponsortile.bi-flis img{width:100%;height:136px;max-height:none;object-fit:cover}
  a.sponsortile.bi-flis:hover{border-color:#777}
  /* To kolonner gir fliser ned mot 170 px bredde, og da ville cover klippe logoene
     i BI-banneret sidelengs. Vertskapet får derfor hele raden i dette spennet. */
  @media(min-width:421px) and (max-width:820px){
    .sponsortile.bi-flis{grid-column:1/-1}
    .sponsortile.bi-flis img{height:clamp(136px,24vw,200px)}
  }

  /* ---------- sponsor- og partnerside ---------- */
  .partnergruppe{margin-top:66px}
  .partnergruppe:first-of-type{margin-top:0}
  .partnergruppe > h2{
    font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);
    font-weight:700;margin-bottom:6px;padding-bottom:14px;border-bottom:1px solid var(--line);
    max-width:none;line-height:1.2;
  }
  .partnergruppe > .gruppetekst{color:var(--muted);font-size:15px;max-width:64ch;margin:18px 0 4px}
  .partnerrad{
    display:grid;grid-template-columns:300px minmax(0,1fr);gap:34px;align-items:center;
    padding:34px 0;border-bottom:1px solid var(--line);
  }
  .partnerrad .logo-boks{
    background:#fff;border:1px solid var(--line);
    display:flex;align-items:center;justify-content:center;
    padding:26px;min-height:150px;
  }
  .partnerrad .logo-boks.mork{background:#0a0a0a}
  .partnerrad .logo-boks img{max-width:100%;max-height:88px;width:auto;height:auto;object-fit:contain;display:block}
  .partnerrad .logo-boks.bi{padding:0;overflow:hidden;background:#0a0a0a;min-height:0}
  .partnerrad .logo-boks.bi img{width:100%;height:auto;max-height:none;aspect-ratio:1070/590;object-fit:cover}
  .partnerrad .logo-boks.aukonomi{background:#222163}
  .partnerrad .logo-boks.o3c img{max-height:108px}
  .partnerrad .merkelapp{
    font-family:"SF Mono",ui-monospace,Menlo,monospace;
    font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);
  }
  .partnerrad h3{font-size:24px;margin:8px 0 10px;line-height:1.25}
  .partnerrad p{color:var(--muted);font-size:15.5px;max-width:60ch}
  .partnerrad .lenke{display:inline-block;margin-top:14px;font-weight:700;font-size:15px}
  @media(max-width:820px){
    .partnerrad{grid-template-columns:1fr;gap:22px;padding:28px 0}
    .partnerrad .logo-boks{max-width:320px;min-height:130px}
    .partnerrad h3{font-size:21px}
    .partnergruppe{margin-top:48px}
  }

  /* ---------- kontaktkort med bilde ---------- */
  .kontakt-card .pfp{width:132px;margin-bottom:20px}
  @media(max-width:600px){.kontakt-card .pfp{width:112px}}

  /* ---------- footer ---------- */
  footer{padding:44px 0;background:var(--band-bg);color:var(--band-muted);font-size:14px}
  footer .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
  footer .fbrand{height:22px;width:auto;flex:none;display:block}

  /* ---------- til toppen ---------- */
  .totop{
    position:fixed;right:24px;bottom:24px;z-index:55;
    width:44px;height:44px;display:flex;align-items:center;justify-content:center;
    background:var(--card);border:1px solid var(--line);color:var(--ink);cursor:pointer;
    opacity:0;pointer-events:none;transform:translateY(8px);transition:.2s;box-shadow:var(--shadow);
  }
  .totop.show{opacity:1;pointer-events:auto;transform:none}
  .totop:hover{border-color:var(--ink)}
  .totop svg{width:16px;height:16px}
  @media(max-width:600px){.totop{right:16px;bottom:16px}}

  /* ---------- animasjon ---------- */
  .reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}
  .reveal.in{opacity:1;transform:none}
  @media(prefers-reduced-motion:reduce){
    html{scroll-behavior:auto}
    .reveal{opacity:1;transform:none;transition:none}
    .status .dot{animation:none}
  }
  @media print{
    header,.totop,#mobilemenu,.modeswitch,.form,.draftbar{display:none!important}
    body{font-size:12pt}
    section{padding:24px 0;break-inside:avoid}
  }

  /* større trykkflater på telefon */
  @media(max-width:700px){
    .iconbtn{height:44px;min-width:44px}
    .copybtn{padding:12px 16px;font-size:14px}
    .modeswitch button{padding:14px 24px}
    .addperson{padding:14px 22px}
    .removeperson{padding:6px 0}
  }
