@charset "utf-8";

/* ============================================================
   nyport AS, app-simulasjon
   Palett: fjordnatt / nordlys-mint / gletsjer-cyan / jugendstil-amber
   ============================================================ */

/* --- Ytre scene: følger seerens tema ---
   color-scheme forteller nettleseren at siden finnes i begge utgaver. Uten den
   tegner Safari sine egne linjer i lys drakt selv over en mørk side. */
:root{
  color-scheme:light dark;
  --stage-1:#e9edef;
  --stage-2:#cfd8dc;
  --stage-glow:rgba(61,227,168,.20);
  --stage-text:#2b3338;
  --stage-dim:#6b787f;
  --stage-line:rgba(20,30,35,.14);
  --stage-glass:rgba(255,255,255,.66);
  --stage-glass-2:rgba(255,255,255,.96);
  --stage-line-ink:rgba(20,30,35,.34);
  --sketch-fill:rgba(20,30,35,.08);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --stage-1:#07090c;
    --stage-2:#0f151a;
    --stage-glow:rgba(61,227,168,.16);
    --stage-text:#dfe7e9;
    --stage-dim:#7d8b92;
    --stage-line:rgba(255,255,255,.12);
    --stage-glass:rgba(255,255,255,.07);
    --stage-glass-2:rgba(255,255,255,.17);
    --stage-line-ink:rgba(255,255,255,.30);
    --sketch-fill:rgba(255,255,255,.10);
  }
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --stage-1:#07090c;
  --stage-2:#0f151a;
  --stage-glow:rgba(61,227,168,.16);
  --stage-text:#dfe7e9;
  --stage-dim:#7d8b92;
  --stage-line:rgba(255,255,255,.12);
  --stage-glass:rgba(255,255,255,.07);
  --stage-glass-2:rgba(255,255,255,.17);
  --stage-line-ink:rgba(255,255,255,.30);
  --sketch-fill:rgba(255,255,255,.10);
}

/* --- Appens indre palett: mørk som standard --- */
:root{
  --ink:#05070b;
  --ink-2:#0a0f15;
  --aurora:#3de3a8;
  --glacier:#64d2ff;
  --amber:#ffb443;
  --rose:#ff6e86;
  --label:#ffffff;
  --label-2:rgba(226,240,238,.62);
  --label-3:rgba(210,228,228,.38);
  --fill:rgba(255,255,255,.075);
  --fill-2:rgba(255,255,255,.05);
  --hair:rgba(255,255,255,.10);
  --hair-soft:rgba(255,255,255,.06);

  --press:rgba(255,255,255,.06);
  --chip:rgba(255,255,255,.07);
  --seg-track:rgba(255,255,255,.08);
  --seg-on:rgba(255,255,255,.15);
  --seg-shadow:0 1px 3px rgba(0,0,0,.4);
  --accent-soft:rgba(61,227,168,.13);
  --accent-line:rgba(61,227,168,.34);
  --chrome-a:rgba(5,7,11,.82);
  --chrome-b:rgba(5,7,11,.62);
  --bar-a:rgba(5,7,11,.55);
  --bar-b:rgba(5,7,11,.9);
  --sheet-bg:rgba(16,22,28,.86);
  --sheet-shadow:0 -20px 50px rgba(0,0,0,.55);
  --scrim:rgba(0,0,0,.5);
  --overlay:rgba(5,7,11,.66);
  --grabber:rgba(255,255,255,.28);
  --home-ind:rgba(255,255,255,.85);
  --grain:rgba(255,255,255,.05);
  --icon-shadow:0 6px 14px -6px rgba(0,0,0,.8);
  --b1:#1d9e77;
  --b2:#2a6ea8;
  --b3:#7a4a86;
  --wall-op:.5;
  --spot-a:rgba(61,227,168,.16);
  --spot-b:rgba(61,227,168,.07);
  --spot-c:rgba(255,255,255,.045);
  --spot-border:rgba(61,227,168,.28);
  --spot-glow:rgba(61,227,168,.35);

  --sf:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","Helvetica Neue",Inter,system-ui,sans-serif;
  --mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,monospace;
  /* håndskrift til notatene ved siden av enheten */
  --hand:"Bradley Hand","Segoe Print","Marker Felt","Chalkboard SE","Comic Sans MS",cursive;

  --ease:cubic-bezier(.32,.72,0,1);
  --scale:1;
}

/* --- Lyst tema for appen. Styres for seg, uavhengig av scenen --- */
:root[data-theme="light"]{color-scheme:light}

:root[data-app="light"]{
  --ink:#eceff2;
  --ink-2:#ffffff;
  --aurora:#0e9b6b;
  --glacier:#0a74b5;
  --amber:#b96f00;
  --rose:#d63f5b;
  --label:#0a141b;
  --label-2:rgba(18,34,43,.68);
  --label-3:rgba(18,34,43,.48);
  --fill:rgba(255,255,255,.72);
  --fill-2:rgba(255,255,255,.48);
  --hair:rgba(14,32,42,.12);
  --hair-soft:rgba(14,32,42,.08);

  --press:rgba(14,32,42,.06);
  --chip:rgba(14,32,42,.05);
  --seg-track:rgba(14,32,42,.07);
  --seg-on:rgba(255,255,255,.95);
  --seg-shadow:0 1px 3px rgba(14,32,42,.18);
  --accent-soft:rgba(14,155,107,.12);
  --accent-line:rgba(14,155,107,.32);
  --chrome-a:rgba(240,244,247,.86);
  --chrome-b:rgba(240,244,247,.62);
  --bar-a:rgba(240,244,247,.58);
  --bar-b:rgba(240,244,247,.94);
  --sheet-bg:rgba(250,252,253,.9);
  --sheet-shadow:0 -20px 50px rgba(14,32,42,.22);
  --scrim:rgba(16,28,36,.3);
  --overlay:rgba(255,255,255,.8);
  --grabber:rgba(14,32,42,.22);
  --home-ind:rgba(10,20,26,.42);
  --grain:rgba(10,25,35,.045);
  --icon-shadow:0 6px 14px -6px rgba(14,32,42,.4);
  --b1:#8ef0cd;
  --b2:#a8d6f7;
  --b3:#dcc2ea;
  --wall-op:.55;
  --spot-a:rgba(14,155,107,.14);
  --spot-b:rgba(14,155,107,.06);
  --spot-c:rgba(255,255,255,.7);
  --spot-border:rgba(14,155,107,.28);
  --spot-glow:rgba(14,155,107,.22);
}

*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}

body{
  font-family:var(--sf);
  background:
    radial-gradient(90rem 60rem at 50% -10%, var(--stage-glow), transparent 60%),
    linear-gradient(168deg, var(--stage-1) 0%, var(--stage-2) 100%);
  color:var(--stage-text);
  min-height:100dvh;
  display:grid;
  grid-template-rows:1fr auto;
  place-items:center;
  padding:12px 16px 0;
  overflow:hidden;
}

/* ── Scene ───────────────────────────────────────────── */
.stage{display:flex;align-items:center;justify-content:center;gap:22px;width:100%}
.device{
  --dev-w:390px;
  --dev-h:844px;
  transform:scale(var(--scale));
  transform-origin:center center;
  position:relative;
  /* skalering endrer ikke layoutboksen, kompenser med marger */
  margin:calc((var(--scale) - 1) * var(--dev-h) / 2) calc((var(--scale) - 1) * var(--dev-w) / 2);
}
.device.fold{--dev-w:614px}
.device::after{ /* reflekslys på glasset */
  content:"";position:absolute;inset:0;border-radius:56px;pointer-events:none;
  background:linear-gradient(122deg,rgba(255,255,255,.13) 0%,transparent 34%,transparent 66%,rgba(255,255,255,.05) 100%);
  z-index:60;mix-blend-mode:screen;
  transition:border-radius .55s var(--ease);
}
.device.fold::after{border-radius:44px}

.phone{
  width:var(--dev-w);height:var(--dev-h);position:relative;
  border-radius:56px;
  transition:width .55s var(--ease),border-radius .55s var(--ease);
  background:#000;
  padding:12px;
  box-shadow:
    0 0 0 2px rgba(255,255,255,.09),
    0 0 0 12px #0b0d10,
    0 2px 0 13px rgba(255,255,255,.05),
    0 44px 90px -20px rgba(0,0,0,.7),
    0 10px 30px rgba(0,0,0,.4);
}
/* sideknapper */
.btn-side{position:absolute;background:linear-gradient(180deg,#2a2f34,#14181c);border-radius:2px;width:3px}
.btn-side.vol-up{left:-15px;top:180px;height:56px}
.btn-side.vol-dn{left:-15px;top:250px;height:56px}
.btn-side.mute{left:-15px;top:130px;height:32px}
.btn-side.power{right:-15px;top:220px;height:92px}

.screen{
  position:relative;width:100%;height:100%;
  border-radius:46px;overflow:hidden;
  background:var(--ink);
  color:var(--label);
  isolation:isolate;
  transition:border-radius .55s var(--ease);
}
.fold .screen{border-radius:34px}

/* hengselen midt på den utbrettede skjermen */
.crease{
  position:absolute;left:50%;top:0;bottom:0;width:26px;z-index:37;
  transform:translateX(-50%);pointer-events:none;
  opacity:0;transition:opacity .45s ease;
  background:linear-gradient(90deg,
    transparent,rgba(0,0,0,.14) 34%,rgba(255,255,255,.06) 50%,rgba(0,0,0,.14) 66%,transparent);
}
.fold .crease{opacity:1}

/* ── Bakgrunn: nordlys over fjord ─────────────────────── */
.wall{position:absolute;inset:-20%;z-index:0}
.blob{position:absolute;border-radius:50%;filter:blur(58px);opacity:var(--wall-op)}
.b1{width:340px;height:340px;left:-14%;top:2%;background:radial-gradient(circle,var(--b1),transparent 70%);animation:drift1 22s var(--ease) infinite alternate}
.b2{width:300px;height:300px;right:-18%;top:22%;background:radial-gradient(circle,var(--b2),transparent 70%);animation:drift2 26s var(--ease) infinite alternate}
.b3{width:280px;height:280px;left:10%;bottom:2%;background:radial-gradient(circle,var(--b3),transparent 72%);opacity:calc(var(--wall-op) * .76);animation:drift3 30s var(--ease) infinite alternate}
@keyframes drift1{to{transform:translate3d(40px,60px,0) scale(1.15)}}
@keyframes drift2{to{transform:translate3d(-50px,40px,0) scale(1.1)}}
@keyframes drift3{to{transform:translate3d(30px,-50px,0) scale(1.18)}}
.grain{position:absolute;inset:0;z-index:1;opacity:.5;pointer-events:none;
  background-image:radial-gradient(var(--grain) .5px,transparent .5px);
  background-size:3px 3px}

/* ── Statuslinje ──────────────────────────────────────── */
.status{
  position:absolute;inset:0 0 auto;height:54px;z-index:40;
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 32px 0;font-size:15px;font-weight:600;letter-spacing:-.2px;
  pointer-events:none;
}
.status .clock{font-variant-numeric:tabular-nums;padding-left:6px}
.status .glyphs{display:flex;align-items:center;gap:6px}
.status svg{display:block}

/* ── Dynamic Island ───────────────────────────────────── */
.island{
  position:absolute;left:50%;top:13px;z-index:50;
  transform:translateX(-50%);
  height:36px;width:124px;
  background:#000;color:#fff;border-radius:22px;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;
  transition:width .5s var(--ease),height .5s var(--ease),border-radius .5s var(--ease);
}
.island.open{width:300px;height:46px;border-radius:24px}
.island .pill{
  display:flex;align-items:center;gap:10px;width:100%;padding:0 12px;
  opacity:0;transform:scale(.9);transition:opacity .28s ease .12s,transform .4s var(--ease) .1s;
}
.island.open .pill{opacity:1;transform:scale(1)}
.island .dot{
  width:26px;height:26px;border-radius:9px;display:grid;place-items:center;flex:none;
  background:rgba(255,255,255,.12);color:#3de3a8;
}
.island .dot svg{width:15px;height:15px}
.island .txt{font-size:12.5px;line-height:1.15;min-width:0}
.island .txt b{display:block;font-weight:600;letter-spacing:-.1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.island .txt span{color:rgba(255,255,255,.55);font-size:11px}
.island .wave{margin-left:auto;display:flex;gap:2.5px;align-items:flex-end;height:16px;flex:none}
.island .wave i{width:2.5px;background:#3de3a8;border-radius:2px;animation:eq .9s ease-in-out infinite}
.island .wave i:nth-child(1){height:6px;animation-delay:0s}
.island .wave i:nth-child(2){height:14px;animation-delay:.15s}
.island .wave i:nth-child(3){height:9px;animation-delay:.3s}
.island .wave i:nth-child(4){height:12px;animation-delay:.45s}
@keyframes eq{50%{transform:scaleY(.4)}}

/* ── Visninger ────────────────────────────────────────── */
.views{position:absolute;inset:0;z-index:10}
.view{
  position:absolute;inset:0;
  overflow-y:auto;overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  padding:54px 0 108px;
  opacity:0;visibility:hidden;transform:scale(.97);
  transition:opacity .3s ease,transform .35s var(--ease),visibility .35s;
}
.view::-webkit-scrollbar{display:none}
.view{scrollbar-width:none}
.view.active{opacity:1;visibility:visible;transform:none}

.pad{padding-inline:20px}

/* Kollapsende stor tittel */
.navbar{
  position:absolute;top:0;left:0;right:0;height:98px;z-index:30;
  display:flex;align-items:flex-end;justify-content:center;padding-bottom:9px;
  pointer-events:none;opacity:0;transition:opacity .25s ease;
  background:linear-gradient(180deg,var(--chrome-a),var(--chrome-b));
  backdrop-filter:blur(22px) saturate(180%);
  -webkit-backdrop-filter:blur(22px) saturate(180%);
  border-bottom:.5px solid var(--hair-soft);
}
.navbar.show{opacity:1}
.navbar b{font-size:16.5px;font-weight:600;letter-spacing:-.3px}

.hero{padding:6px 20px 4px}
.eyebrow{
  font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--aurora);margin-bottom:7px;
}
.title{font-size:36px;font-weight:700;letter-spacing:-1.1px;line-height:1.05;text-wrap:balance}
.subtitle{margin-top:7px;font-size:15.5px;line-height:1.45;color:var(--label-2);max-width:31ch}

/* ── Kort ─────────────────────────────────────────────── */
.card{
  background:var(--fill);
  border:.5px solid var(--hair);
  border-radius:22px;
  backdrop-filter:blur(24px) saturate(160%);
  -webkit-backdrop-filter:blur(24px) saturate(160%);
}
.stack{display:flex;flex-direction:column;gap:12px}
.section{display:flex;flex-direction:column;gap:11px;margin-top:26px}
.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.section-head h2{font-family:var(--hand);font-size:24px;font-weight:600;letter-spacing:0;line-height:1.1}

/* Håndskrevet overskrift inne i appen, med strek trukket under */
.scribble-h{
  position:relative;display:inline-block;
  font-family:var(--hand);font-size:29px;font-weight:600;
  line-height:1;letter-spacing:-.2px;color:var(--label);
  transform:rotate(-1deg);transform-origin:left bottom;
}
.scribble-h .ul{
  display:block;width:102%;height:11px;margin-top:6px;overflow:visible;color:var(--aurora);
  stroke-dasharray:250;stroke-dashoffset:250;
  animation:draw 1.1s var(--ease) .9s forwards;
}
.section-head span{font-size:13px;color:var(--label-3);font-family:var(--mono)}

/* Signaturkort på hjem */
.spotlight{
  position:relative;overflow:hidden;padding:20px;
  background:linear-gradient(150deg,var(--spot-a),var(--spot-b) 46%,var(--spot-c) 100%);
  border:.5px solid var(--spot-border);border-radius:26px;
}
.spotlight::after{
  content:"";position:absolute;width:220px;height:220px;right:-70px;top:-90px;border-radius:50%;
  background:radial-gradient(circle,var(--spot-glow),transparent 68%);filter:blur(12px);
}
.spotlight h3{font-size:22px;font-weight:700;letter-spacing:-.6px;line-height:1.2;position:relative}
.spotlight p{margin-top:8px;font-size:14.5px;line-height:1.5;color:var(--label-2);position:relative;max-width:27ch}

/* App-ikon-rutenett */
.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.tile{
  position:relative;overflow:hidden;
  display:flex;flex-direction:column;gap:13px;padding:17px 16px 16px;text-align:left;
  background:var(--fill);border:.5px solid var(--hair);border-radius:22px;
  color:inherit;font:inherit;cursor:pointer;
  transition:transform .32s var(--ease),background .2s ease,border-color .3s ease;
}
.tile:active{transform:scale(.955);background:var(--fill-2)}

/* Ikoner i en ramme som ser tegnet ut, blekk i glyfen, fargen bare i streken */
.appicon{
  display:grid;place-items:center;flex:none;
  width:44px;height:44px;background:none;box-shadow:none;
  border:1.4px solid var(--acc-line);
  border-radius:16px 12px 17px 11px / 12px 16px 11px 17px;
}
.appicon svg{width:22px;height:22px;color:var(--label);opacity:.92;filter:none}
.grid .tile:nth-child(odd) .appicon{transform:rotate(-1.6deg)}
.grid .tile:nth-child(even) .appicon{transform:rotate(1.3deg)}

.i-swift  {--acc:var(--aurora); --acc-line:rgba(61,227,168,.42)}
.i-compose{--acc:var(--glacier);--acc-line:rgba(100,210,255,.36)}
.i-migrate{--acc:var(--rose);   --acc-line:rgba(255,110,134,.36)}
.i-store  {--acc:var(--amber);  --acc-line:rgba(255,180,67,.36)}
:root[data-app="light"] .i-swift  {--acc-line:rgba(14,155,107,.46)}
:root[data-app="light"] .i-compose{--acc-line:rgba(10,116,181,.40)}
:root[data-app="light"] .i-migrate{--acc-line:rgba(214,63,91,.38)}
:root[data-app="light"] .i-store  {--acc-line:rgba(185,111,0,.40)}

.tile b{font-size:15px;font-weight:600;letter-spacing:-.3px;display:block;position:relative}
.tile em{font-style:normal;font-size:12.5px;line-height:1.4;color:var(--label-2);display:block;margin-top:3px;position:relative}

/* Liste i iOS-stil */
.list{background:var(--fill);border:.5px solid var(--hair);border-radius:20px;overflow:hidden}
.row{
  display:flex;align-items:center;gap:13px;width:100%;
  padding:13px 15px;background:none;border:0;color:inherit;font:inherit;text-align:left;
  cursor:pointer;position:relative;transition:background .18s ease;
}
.row+.row::before{content:"";position:absolute;left:54px;right:0;top:0;height:.5px;background:var(--hair-soft)}
.row:active{background:var(--press)}
.row .ric{width:26px;height:26px;display:grid;place-items:center start;flex:none}
.row .ric svg{width:22px;height:22px;color:var(--label);opacity:.88}
.row .rtx{min-width:0;flex:1}
.row .rtx b{display:block;font-size:15.5px;font-weight:500;letter-spacing:-.3px}
.row .rtx span{display:block;font-size:12.5px;color:var(--label-3);margin-top:1px}
.row .chev{color:var(--label-3);flex:none}
.row .val{font-size:14px;color:var(--label-2);font-family:var(--mono);flex:none}

/* Tjenestekort */
.svc{
  display:block;width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer;
  padding:17px;border-radius:22px;background:var(--fill);border:.5px solid var(--hair);
  transition:transform .32s var(--ease),background .2s ease;
}
.svc:active{transform:scale(.975);background:var(--fill-2)}
.svc-top{display:flex;align-items:center;gap:11px}
.svc-top .appicon{width:36px;height:36px;border-radius:13px 10px 14px 9px / 10px 13px 9px 14px}
.svc-top .appicon svg{width:19px;height:19px}
.svc-top b{font-size:16.5px;font-weight:600;letter-spacing:-.4px;flex:1}
.svc .svc-p{display:block;margin-top:11px;font-size:14px;line-height:1.5;color:var(--label-2)}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:13px}
.tag{
  font-family:var(--mono);font-size:11px;letter-spacing:-.2px;
  padding:4px 9px;border-radius:7px;background:var(--chip);
  border:.5px solid var(--hair-soft);color:var(--label-2);
}
/* lokkemerket: sier at det ligger noe å ta på bak kortet */
.tag.hot{background:var(--accent-soft);border-color:var(--accent-line);color:var(--aurora)}

/* ── Før og etter: samme skjerm, to tiår ──────────────
   Den nye flaten ligger nederst i full bredde, den gamle oppå og klippes bort
   mot høyre. Skillet er én variabel, --pos, og alt annet følger den. */
.mig{margin:16px 0 2px}
.mig[hidden]{display:none}
.mig-box{
  --pos:50%;
  position:relative;height:216px;border-radius:16px;overflow:hidden;
  background:var(--ink-2);box-shadow:inset 0 0 0 1px var(--hair);
  cursor:ew-resize;user-select:none;-webkit-user-select:none;
  touch-action:pan-y;      /* loddrett rulling er fortsatt nettleserens jobb */
}
.mig-face{position:absolute;inset:0;overflow:hidden}
.mig-face.old{clip-path:inset(0 calc(100% - var(--pos)) 0 0)}

/* 2014: forløpninger, blank knapp og tekst med skygge.
   Begge flatene er spalter med samme stripe ledig nederst, da havner de to
   knappene i samme høyde og årstallene får plassen sin i fred. */
.mig-face.old{
  background:#c8ced7;font-family:Helvetica,Arial,sans-serif;color:#1b1d22;
  display:flex;flex-direction:column;padding-bottom:27px;
}
.of-nav{
  position:relative;height:38px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(180deg,#b9c2ce,#8d99a8);
  border-bottom:1px solid #6a747f;
  color:#fff;font-size:13px;font-weight:700;text-shadow:0 -1px 0 rgba(0,0,0,.45);
}
.of-back{
  position:absolute;left:8px;width:40px;height:22px;border-radius:4px;
  background:linear-gradient(180deg,#9ba6b4,#77828f);border:1px solid #5c6774;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35);
}
.of-rows{
  margin:11px 9px 0;border-radius:8px;overflow:hidden;
  border:1px solid #a3abb7;background:#fff;
}
.of-row{
  display:flex;align-items:center;gap:8px;padding:9px;
  font-size:12px;border-bottom:1px solid #d6dbe2;
  background:linear-gradient(180deg,#fff,#f1f4f7);
}
.of-row:last-child{border-bottom:0}
.of-row i{width:17px;height:17px;flex:none;border-radius:3px;
  background:linear-gradient(180deg,#818d9c,#5c6672)}
.of-row b{flex:1;font-weight:400;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.of-row em{font-style:normal;color:#9aa2ad;font-size:15px;line-height:1}
.of-btn{
  display:block;margin:auto 9px 0;padding:8px;text-align:center;border-radius:7px;
  font-size:12px;font-weight:700;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.4);
  background:linear-gradient(180deg,#5f9fee,#1f62c7);
  border:1px solid #17509f;box-shadow:inset 0 1px 0 rgba(255,255,255,.45);
}

/* i dag: appens egen palett, myke flater, ingen forløpninger */
.mig-face.new{
  background:var(--ink);display:flex;flex-direction:column;gap:9px;padding:14px 12px 27px;
}
.nf-title{font-size:20px;font-weight:700;letter-spacing:-.55px;color:var(--label)}
.nf-rows{display:flex;flex-direction:column;gap:6px}
.nf-row{
  display:flex;align-items:center;gap:9px;padding:10px 11px;border-radius:13px;
  background:var(--fill-2);font-size:12px;color:var(--label-2);
}
.nf-row i{
  width:21px;height:21px;flex:none;border-radius:7px;
  background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent-line);
}
.nf-row b{font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nf-btn{
  margin-top:auto;padding:10px;text-align:center;border-radius:12px;
  background:var(--accent-soft);color:var(--aurora);
  font-size:12px;font-weight:600;box-shadow:inset 0 0 0 1px var(--accent-line);
}

/* årstallene i hvert sitt hjørne, de klippes med flaten de hører til */
.mig-tag{
  position:absolute;bottom:7px;padding:3px 7px;border-radius:7px;pointer-events:none;
  font-family:var(--mono);font-size:9px;letter-spacing:.02em;white-space:nowrap;
}
.mig-tag.left{left:9px;background:rgba(18,22,28,.62);color:#eef1f5}
.mig-tag.right{right:9px;background:var(--chip);color:var(--label-2);
  box-shadow:inset 0 0 0 .5px var(--hair)}

/* skillet og håndtaket */
.mig-line{
  position:absolute;top:0;bottom:0;left:var(--pos);width:2px;margin-left:-1px;
  background:var(--label);opacity:.9;pointer-events:none;
  box-shadow:0 0 12px rgba(0,0,0,.55);
}
.mig-grip{
  position:absolute;top:50%;left:var(--pos);width:34px;height:34px;margin:-17px 0 0 -17px;
  border-radius:50%;display:grid;place-items:center;cursor:ew-resize;
  background:var(--label);color:var(--ink);
  box-shadow:0 3px 12px rgba(0,0,0,.5);
  transition:transform .25s var(--ease);
}
.mig-box:hover .mig-grip{transform:scale(1.07)}
.mig-grip:active{transform:scale(.94)}
.mig-grip svg{width:17px;height:17px}
.mig figcaption{
  margin-top:9px;text-align:center;font-size:11.5px;line-height:1.4;color:var(--label-3);
}

/* Segmentert kontroll */
.seg{
  display:flex;gap:3px;padding:3px;border-radius:12px;
  background:var(--seg-track);border:.5px solid var(--hair-soft);
}
.seg button{
  flex:1;padding:7px 4px;border:0;border-radius:9px;background:none;cursor:pointer;
  font:inherit;font-size:13px;font-weight:600;letter-spacing:-.2px;color:var(--label-2);
  transition:background .25s var(--ease),color .2s ease;
}
.seg button[aria-selected="true"]{background:var(--seg-on);color:var(--label);box-shadow:var(--seg-shadow)}

/* Prosess-tidslinje */
.steps{display:flex;flex-direction:column;gap:0;padding:4px 2px}
.step{display:grid;grid-template-columns:34px 1fr;gap:14px;position:relative;padding-bottom:22px}
.step:last-child{padding-bottom:0}
.step::before{content:"";position:absolute;left:16.5px;top:32px;bottom:-2px;width:1.5px;
  background:linear-gradient(180deg,var(--hair),transparent)}
.step:last-child::before{display:none}
.step .num{
  width:34px;height:34px;border-radius:50%;display:grid;place-items:center;
  font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;
  background:var(--accent-soft);border:1px solid var(--accent-line);color:var(--aurora);
}
.step b{font-size:16px;font-weight:600;letter-spacing:-.35px;display:block;padding-top:6px}
.step p{margin-top:5px;font-size:13.5px;line-height:1.5;color:var(--label-2)}

/* Kontakt */
.knapp{
  display:flex;align-items:center;justify-content:center;gap:9px;width:100%;
  padding:15px;border-radius:16px;border:0;cursor:pointer;
  font:inherit;font-size:16px;font-weight:600;letter-spacing:-.3px;text-decoration:none;
  background:linear-gradient(170deg,#5cf0bb,#22c894);color:#032018;
  transition:transform .3s var(--ease),filter .2s ease;
}
.knapp:active{transform:scale(.965);filter:brightness(.94)}
.knapp.ghost{background:var(--fill);color:var(--label);border:.5px solid var(--hair)}
.knapp svg{width:18px;height:18px}

.mapcard{position:relative;height:132px;border-radius:20px;overflow:hidden;border:.5px solid var(--hair)}
.mapcard canvas{display:block;width:100%;height:100%}
.mapcard .pin{
  position:absolute;left:20px;bottom:14px;display:flex;align-items:center;gap:8px;
  padding:7px 12px;border-radius:100px;background:var(--overlay);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border:.5px solid var(--hair);font-size:12.5px;font-weight:600;
}
.mapcard .pin i{width:6px;height:6px;border-radius:50%;background:var(--glacier)}

.footnote{margin-top:20px;text-align:center;font-family:var(--mono);font-size:11px;color:var(--label-3);line-height:1.6}
.legal-links{
  margin-top:11px;display:flex;align-items:center;justify-content:center;gap:10px;
  font-family:var(--mono);font-size:11px;color:var(--label-3);
}
.legal-links button{
  background:none;border:0;padding:4px 2px;cursor:pointer;font:inherit;
  color:var(--label-2);text-decoration:underline;text-underline-offset:3px;
  text-decoration-color:var(--hair);transition:color .2s ease,text-decoration-color .2s ease;
}
.legal-links button:active{color:var(--aurora);text-decoration-color:var(--accent-line)}

/* juridiske ark: avsnitt med overskrift i stedet for punktliste */
.legal{display:flex;flex-direction:column;gap:15px}
.legal:not(:empty){margin-top:18px}
.legal h4{font-family:var(--hand);font-size:16.5px;font-weight:600;letter-spacing:0;color:var(--label)}
.legal p{margin-top:4px;font-size:13.5px;line-height:1.55;color:var(--label-2)}

/* ── Tab-bar ──────────────────────────────────────────── */
.tabbar{
  position:absolute;left:0;right:0;bottom:0;z-index:35;height:88px;
  display:grid;grid-template-columns:repeat(4,1fr);align-items:start;
  padding:9px 6px 0;
  background:linear-gradient(180deg,var(--bar-a),var(--bar-b));
  backdrop-filter:blur(26px) saturate(180%);
  -webkit-backdrop-filter:blur(26px) saturate(180%);
  border-top:.5px solid var(--hair-soft);
}
.tab{
  display:flex;flex-direction:column;align-items:center;gap:4px;
  background:none;border:0;cursor:pointer;font:inherit;padding:4px 0;
  color:var(--label-3);transition:color .22s ease;
}
.tab svg{width:25px;height:25px;transition:transform .4s var(--ease)}
.tab span{font-size:10.5px;font-weight:500;letter-spacing:-.1px}
.tab[aria-selected="true"]{color:var(--aurora)}
.tab[aria-selected="true"] svg{transform:translateY(-1.5px) scale(1.06)}
.tab:active svg{transform:scale(.9)}

.home-ind{
  position:absolute;left:50%;bottom:8px;transform:translateX(-50%);z-index:45;
  width:140px;height:5px;border-radius:5px;background:var(--home-ind);
}

/* ── Ark (sheet) ──────────────────────────────────────── */
.scrim{
  position:absolute;inset:0;z-index:55;background:var(--scrim);
  opacity:0;visibility:hidden;transition:opacity .35s ease,visibility .35s;
  backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);
}
.scrim.open{opacity:1;visibility:visible}
.sheet{
  position:absolute;left:0;right:0;bottom:0;z-index:56;
  max-height:78%;display:flex;flex-direction:column;
  background:var(--sheet-bg);
  backdrop-filter:blur(34px) saturate(180%);
  -webkit-backdrop-filter:blur(34px) saturate(180%);
  border-top:.5px solid var(--hair);
  border-radius:28px 28px 0 0;
  transform:translateY(100%);
  transition:transform .48s var(--ease);
  box-shadow:var(--sheet-shadow);
}
.sheet.open{transform:translateY(0)}
.sheet.dragging{transition:none}
.grabber{padding:9px 0 4px;display:grid;place-items:center;cursor:grab;touch-action:none}
.grabber i{width:38px;height:5px;border-radius:5px;background:var(--grabber)}
.sheet-body{padding:8px 22px 30px;overflow-y:auto;scrollbar-width:none}
.sheet-body::-webkit-scrollbar{display:none}
.sheet-head{display:flex;align-items:center;gap:13px;margin-bottom:15px}
.sheet-head .appicon{width:46px;height:46px;border-radius:17px 13px 18px 12px / 13px 17px 12px 18px}
.sheet-head .appicon svg{width:24px;height:24px}
.sheet-head h3{font-size:21px;font-weight:700;letter-spacing:-.6px;line-height:1.15}
.sheet-head p{font-size:12.5px;color:var(--label-3);margin-top:2px;font-family:var(--mono)}
.sheet-body>p{font-size:15px;line-height:1.55;color:var(--label-2)}
.bullets{list-style:none;display:flex;flex-direction:column;gap:10px;margin-top:16px}
.bullets li{display:flex;gap:10px;font-size:14px;line-height:1.45;color:var(--label-2)}
.bullets li svg{width:17px;height:17px;flex:none;margin-top:1px;color:var(--aurora)}
.sheet-body .knapp{margin-top:20px}

/* ── Oppstartsskjerm ──────────────────────────────────── */
.boot{
  position:absolute;inset:0;z-index:70;background:var(--ink);
  display:grid;place-items:center;
  animation:bootout .55s var(--ease) 1.6s forwards;
}
/* ordmerket skrives fram, så trekkes streken under */
.boot .mark{
  position:relative;isolation:isolate;
  transform:rotate(-1.6deg);
  animation:bootin .7s var(--ease) both;
}
.boot .mark::after{      /* nordlys bak navnet */
  content:"";position:absolute;inset:-90% -22%;z-index:-1;border-radius:50%;
  background:radial-gradient(circle,var(--accent-line),transparent 68%);
  filter:blur(18px);opacity:0;
  animation:bootglow 1.3s var(--ease) .45s both;
}
.boot .word{
  display:block;
  font-family:var(--hand);font-size:40px;font-weight:600;
  letter-spacing:-.8px;line-height:1;color:var(--label);
  animation:write .9s var(--ease) .18s both;
}
.boot .ul{
  display:block;width:104%;height:11px;margin-top:7px;overflow:visible;color:var(--aurora);
  stroke-dasharray:190;stroke-dashoffset:190;
  animation:draw .75s var(--ease) .82s forwards;
}
@keyframes bootin{from{opacity:0;transform:rotate(-1.6deg) scale(.94)}
                  to{opacity:1;transform:rotate(-1.6deg) scale(1)}}
@keyframes write{from{clip-path:inset(-14% 100% -34% -4%)}
                 to{clip-path:inset(-14% -8% -34% -4%)}}
@keyframes bootglow{45%{opacity:1}100%{opacity:.5}}
@keyframes bootout{to{opacity:0;visibility:hidden}}

/* ── Kontroller utenfor telefonen: språk og tema ──────── */
.toolbar{
  position:fixed;top:18px;right:18px;z-index:80;
  display:flex;align-items:center;gap:8px;
}
.switcher{
  display:flex;gap:2px;padding:3px;border-radius:13px;
  background:var(--stage-glass);border:.5px solid var(--stage-line);
  backdrop-filter:blur(18px) saturate(160%);
  -webkit-backdrop-filter:blur(18px) saturate(160%);
}
.switcher button{
  border:0;background:none;cursor:pointer;font:inherit;
  font-size:11.5px;font-weight:700;letter-spacing:.07em;
  padding:7px 11px;border-radius:10px;color:var(--stage-dim);
  transition:background .25s var(--ease),color .2s ease;
}
.switcher button[aria-pressed="true"]{background:var(--stage-glass-2);color:var(--stage-text)}
.themebtn{
  width:39px;height:39px;flex:none;display:grid;place-items:center;
  border-radius:13px;cursor:pointer;color:var(--stage-text);
  background:var(--stage-glass);border:.5px solid var(--stage-line);
  backdrop-filter:blur(18px) saturate(160%);
  -webkit-backdrop-filter:blur(18px) saturate(160%);
  transition:transform .3s var(--ease),background .2s ease;
}
.themebtn:active{transform:scale(.92)}
.themebtn svg{width:19px;height:19px;display:block}
.themebtn .ic-moon{display:none}
:root[data-theme="light"] .themebtn .ic-sun{display:none}
:root[data-theme="light"] .themebtn .ic-moon{display:block}

/* ── Sidepanel ved siden av telefonen ─────────────────── */
.aside{width:216px;flex:none;display:flex;flex-direction:column;gap:20px}
.burger,.sitemenu,.aiswitch{display:none}   /* bare på telefon */

/* ── Skisselaget: håndskrift i blekk, ingen flater ───── */
.sketch{color:var(--stage-text)}

.brand{
  position:relative;display:inline-block;
  font-family:var(--hand);font-size:31px;font-weight:600;
  letter-spacing:-.4px;line-height:1;
  transform:rotate(-1.4deg);transform-origin:left bottom;
  cursor:pointer;
}

/* ── Påskeegget: raketten bak ordmerket ───────────────
   Hun står gjemt til noen trykker. Da rister hun seg løs, tenner og går rett
   opp og ut av bildet, med et røykspor som tegner seg selv underveis. */
.rocket{
  position:absolute;right:-6px;bottom:2px;width:30px;height:56px;
  pointer-events:none;opacity:0;color:var(--stage-text);
}
.rocket>svg:first-child{
  width:100%;height:100%;overflow:visible;display:block;
}
.rocket .r-fire{opacity:0;color:var(--aurora);stroke:currentColor}
.rocket .trail{
  position:absolute;left:50%;top:100%;width:22px;height:90px;
  margin-left:-11px;overflow:visible;opacity:0;
  color:var(--stage-line-ink);
  stroke-dasharray:150;stroke-dashoffset:150;
}
.rocket .puff{
  position:absolute;left:50%;top:100%;width:9px;height:9px;margin-left:-4.5px;
  border-radius:50%;border:1.6px solid var(--stage-line-ink);
  opacity:0;
}

/* selve ferden */
.rocket.fly{animation:launch 2.2s cubic-bezier(.55,0,.5,1) forwards}
.rocket.fly .r-fire{animation:fire .09s steps(2) .35s 14 alternate}
.rocket.fly .trail{animation:trail 1.9s ease-out .3s forwards}
.rocket.fly .p1{animation:puff 1s ease-out .34s forwards}
.rocket.fly .p3{animation:puff 1s ease-out .72s forwards}

@keyframes launch{
  0%   {opacity:0;transform:translate(0,0) rotate(0)}
  6%   {opacity:1;transform:translate(0,0) rotate(0)}
  /* nedtellingen: hun rister seg løs før hun slipper bakken */
  12%  {transform:translate(-1.5px,-1px) rotate(-2deg)}
  18%  {transform:translate(1.5px,-3px) rotate(2deg)}
  24%  {transform:translate(-1.5px,-5px) rotate(-2deg)}
  30%  {transform:translate(1px,-8px) rotate(1deg)}
  46%  {transform:translate(-2px,-42px) rotate(-4deg) scale(.97)}
  70%  {opacity:1}
  100% {opacity:0;transform:translate(9px,-300px) rotate(7deg) scale(.6)}
}
@keyframes fire{from{opacity:.35}to{opacity:1}}
@keyframes trail{
  0%  {opacity:0;stroke-dashoffset:150}
  15% {opacity:.85}
  70% {opacity:.85;stroke-dashoffset:0}
  100%{opacity:0;stroke-dashoffset:0}
}
@keyframes puff{
  0%  {opacity:0;transform:translate(0,0) scale(.4)}
  20% {opacity:.7}
  100%{opacity:0;transform:translate(-13px,26px) scale(2.4)}
}
.rocket.fly .p2{animation:puff2 1s ease-out .52s forwards}
@keyframes puff2{
  0%  {opacity:0;transform:translate(0,0) scale(.4)}
  20% {opacity:.7}
  100%{opacity:0;transform:translate(14px,30px) scale(2.2)}
}
.brand .ul{ /* strek trukket for hånd under ordmerket */
  display:block;width:104%;height:11px;margin-top:5px;overflow:visible;
  stroke-dasharray:190;stroke-dashoffset:190;
  animation:draw 1s var(--ease) .5s forwards;
}

.hint{margin-top:22px;transform:rotate(-.7deg);transform-origin:left top}
.hint b{
  display:block;font-family:var(--hand);font-size:19px;font-weight:600;
  line-height:1.3;letter-spacing:-.1px;
}
.hint p{
  margin-top:9px;font-family:var(--hand);font-size:14.5px;line-height:1.62;
  color:var(--stage-text);opacity:.7;   /* håndskrift tegner tynt, trenger litt mer kontrast */
}
.hint .arrow{
  display:flex;align-items:center;gap:9px;margin-top:16px;
  font-family:var(--hand);font-size:12.5px;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--stage-text);
}
.hint .scrawl{
  width:86px;height:24px;flex:none;overflow:visible;stroke-width:2.4;
  animation:nudge 2.6s var(--ease) infinite;
}
.hint .a-line{stroke-dasharray:120;stroke-dashoffset:120;animation:draw 1.1s var(--ease) 1.1s forwards}
.hint .a-head{stroke-dasharray:34;stroke-dashoffset:34;animation:draw .4s var(--ease) 2s forwards}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes nudge{50%{transform:translateX(5px)}}

/* velgeren tegnet i samme blekk, ujevn radius gir håndtrukket kant */
.devsel{
  display:flex;flex-wrap:wrap;gap:4px;padding:4px;background:none;
  border:1.7px solid var(--stage-line-ink);
  border-radius:16px 13px 17px 12px / 13px 16px 12px 17px;
  transform:rotate(-.5deg);
}
/* fire valg får ikke plass på én linje, to og to leser bedre enn fire smale */
.devsel button{
  flex:1 1 calc(50% - 4px);display:flex;flex-direction:column;align-items:center;gap:6px;
  padding:10px 6px 8px;border:0;background:none;cursor:pointer;
  border-radius:12px 10px 13px 9px / 10px 13px 9px 12px;
  font-family:var(--hand);font-size:13px;font-weight:600;letter-spacing:.02em;
  color:var(--stage-dim);
  transition:background .25s var(--ease),color .2s ease,transform .3s var(--ease);
}
.devsel button:active{transform:scale(.94)}
.devsel button[aria-pressed="true"]{background:var(--sketch-fill);color:var(--stage-text)}
.devsel svg{width:20px;height:20px;display:block}

/* AI-ikonet står i samme blekk og samme størrelse som de andre, så etikettene
   holder linjen. Det som skiller det ut, er blinket, ikke målene. */
.devsel [data-device="ai"] svg,
.aiswitch [data-device="ai"] svg{
  color:inherit;
  transform-origin:50% 55%;
  transition:transform .32s var(--ease),filter .32s ease;
}
.devsel [data-device="ai"]:hover svg,
.aiswitch [data-device="ai"]:hover svg{
  transform:scale(1.09) rotate(-6deg);
  filter:drop-shadow(0 0 5px currentColor);
}
.devsel [data-device="ai"][aria-pressed="true"] svg,
.aiswitch [data-device="ai"][aria-pressed="true"] svg{
  animation:sparkle 3.4s var(--ease) infinite;
}
/* gnisten trekker pusten, glansen låner fargen fra ikonet selv */
@keyframes sparkle{
  0%,58%,100%{transform:none;filter:drop-shadow(0 0 0 transparent)}
  30%{transform:scale(1.12) rotate(8deg);filter:drop-shadow(0 0 6px currentColor)}
}
.lblrow{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:-13px}
.appthemebtn{
  width:24px;height:24px;flex:none;display:grid;place-items:center;
  border:0;background:none;cursor:pointer;padding:0;
  color:var(--stage-dim);opacity:.6;
  transition:opacity .25s ease,color .25s ease,transform .3s var(--ease);
}
.appthemebtn:hover,.appthemebtn:focus-visible{opacity:1;color:var(--stage-text)}
.appthemebtn:active{transform:scale(.88)}
.appthemebtn svg{width:15px;height:15px;display:block}
.appthemebtn .ic-moon{display:none}
:root[data-app="light"] .appthemebtn .ic-sun{display:none}
:root[data-app="light"] .appthemebtn .ic-moon{display:block}

.aside .lbl{
  font-family:var(--hand);font-size:12px;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:var(--stage-dim);
  padding-left:3px;transform:rotate(-.5deg);
}

/* ── Utbrettet: full bredde, fanene blir liggende nederst ─ */
@media (min-width:901px){
  .fold .hero{padding:14px 34px 4px}
  .fold .title{font-size:44px;letter-spacing:-1.4px}
  .fold .subtitle{font-size:16.5px;max-width:58ch}
  .fold .pad{padding-inline:34px}
  .fold .grid{grid-template-columns:repeat(4,1fr)}
  .fold .tile{padding:14px}
  .fold .tile b{font-size:13.5px;letter-spacing:-.4px;hyphens:auto;overflow-wrap:break-word}
  .fold .tile em{font-size:11.5px}
  .fold .appicon{width:40px;height:40px}
  .fold #svc-list{display:grid;grid-template-columns:1fr 1fr;align-items:start}
  .fold .spotlight{padding:26px}
  .fold .spotlight h3{font-size:25px}
  .fold .spotlight p{max-width:48ch;font-size:15.5px}
  .fold .mapcard{height:170px}
  .fold .home-ind{width:180px}
  .fold .sheet{ /* midtstilt ark, som på nettbrett */
    left:0;right:0;margin-inline:auto;width:min(560px,74%);
    border-radius:28px 28px 0 0;
  }
}

/* ── AI-modus: innholdet servert som en samtale ──────── */
.chat{
  display:none;position:relative;flex-direction:column;
  border-radius:26px;overflow:hidden;
  background:var(--ink);color:var(--label);
  border:.5px solid var(--hair);
  box-shadow:0 34px 70px -24px rgba(0,0,0,.62),0 8px 22px rgba(0,0,0,.28);
}
:root.ai:not(.site) .device{display:none}
:root.ai:not(.site) .chat{
  display:flex;
  width:min(548px,100%);height:min(820px,calc(100dvh - 108px));
}
.chat-head{
  display:flex;align-items:center;gap:11px;flex:none;
  padding:15px 18px;border-bottom:.5px solid var(--hair-soft);
  background:linear-gradient(180deg,var(--chrome-a),var(--chrome-b));
}
.chat-av{
  width:32px;height:32px;border-radius:11px;flex:none;display:grid;place-items:center;
  background:var(--accent-soft);border:1px solid var(--accent-line);color:var(--aurora);
}
.chat-av svg{width:17px;height:17px}
/* «genererer»-tilstand: rolig glød rundt panelet og avataren */
.chat::after{
  content:"";position:absolute;inset:0;border-radius:26px;pointer-events:none;z-index:2;
  border:1px solid transparent;opacity:0;transition:opacity .45s ease;
}
.chat.busy::after{opacity:1;border-color:var(--accent-line);animation:ring 2.1s ease-in-out infinite}
@keyframes ring{50%{box-shadow:inset 0 0 30px -8px var(--accent-line)}}
.chat.busy .chat-av{animation:avpulse 1.7s ease-in-out infinite}
@keyframes avpulse{50%{box-shadow:0 0 0 5px var(--accent-soft)}}
.chat-who{min-width:0}
.chat-who b{display:block;font-size:14.5px;font-weight:600;letter-spacing:-.25px}
.chat-who span{display:block;font-size:11.5px;color:var(--label-3);margin-top:1px}

.chat-thread{
  flex:1;min-height:0;overflow-y:auto;scrollbar-width:none;
  display:flex;flex-direction:column;gap:12px;padding:18px 17px 20px;
}
.chat-thread::-webkit-scrollbar{display:none}

.msg{display:flex;opacity:0;transform:translateY(9px);
  transition:opacity .34s ease,transform .44s var(--ease)}
.msg.in{opacity:1;transform:none}
.msg .bubble{max-width:87%;padding:12px 14px;border-radius:19px;font-size:14px;line-height:1.5}
.msg.me{justify-content:flex-end}
.msg.me .bubble{
  background:linear-gradient(170deg,#5cf0bb,#22c894);color:#032018;
  font-weight:500;border-bottom-right-radius:7px;
}
.msg.bot .bubble{
  background:var(--fill);border:.5px solid var(--hair);color:var(--label-2);
  border-bottom-left-radius:7px;
}
.msg.bot .bubble p+p{margin-top:9px}
.msg.bot .bubble p b{color:var(--label);font-weight:600;letter-spacing:-.2px}
.msg.bot .bubble .lede{color:var(--label);font-weight:500}
/* ordvis strøm, som når et svar blir generert */
.w{display:inline-block;opacity:0;animation:wordin .34s var(--ease) forwards}
.done .w{opacity:1;animation:none}
@keyframes wordin{
  from{opacity:0;filter:blur(4px);transform:translateY(3px)}
  to{opacity:1;filter:none;transform:none}
}
.caret{
  display:inline-block;width:.46em;height:1.02em;margin-left:2px;vertical-align:-.16em;
  border-radius:2px;background:var(--aurora);animation:caret .95s steps(1) infinite;
}
@keyframes caret{50%{opacity:.15}}
.chat-mail{
  display:inline-flex;align-items:center;gap:7px;margin-top:12px;
  padding:9px 13px;border-radius:12px;text-decoration:none;
  background:var(--accent-soft);border:1px solid var(--accent-line);
  color:var(--aurora);font-size:13.5px;font-weight:600;letter-spacing:-.1px;
  animation:wordin .4s var(--ease) both;
}
.chat-mail svg{width:15px;height:15px}

/* ── Den «genererte» bildefila ─────────────────────────
   Uskarpheten styres av --sharp, som skriptet teller opp fra 0 til 1 mens
   framdriften går. Ingenting genereres, men det ser slik ut. */
.gen{
  --sharp:0;
  margin-top:12px;display:flex;flex-direction:column;gap:8px;
  animation:wordin .4s var(--ease) both;
}
.gen-frame{
  position:relative;display:block;overflow:hidden;border-radius:14px;
  background:var(--fill-2);box-shadow:inset 0 0 0 1px var(--hair);
  aspect-ratio:3 / 2;
}
.gen-img{
  display:block;width:100%;height:100%;object-fit:cover;
  transform:scale(1.06);            /* skjuler kantene uskarpheten drar med seg */
  filter:
    blur(calc((1 - var(--sharp)) * 30px))
    saturate(calc(.2 + var(--sharp) * .8))
    contrast(calc(.72 + var(--sharp) * .28));
}
/* et slør av støy som letner etter hvert */
.gen-veil{
  position:absolute;inset:0;pointer-events:none;
  opacity:calc((1 - var(--sharp)) * .85);
  background:
    repeating-linear-gradient(115deg,rgba(255,255,255,.07) 0 2px,transparent 2px 5px),
    radial-gradient(120% 90% at 30% 20%,var(--accent-soft),transparent 60%),
    radial-gradient(100% 80% at 75% 80%,rgba(100,210,255,.16),transparent 62%);
}
.gen-row{
  display:flex;align-items:baseline;justify-content:space-between;gap:10px;
  font-size:11.5px;color:var(--label-3);
}
.gen-step{font-variant-numeric:tabular-nums}
.gen-pct{font-weight:600;color:var(--label-2);font-variant-numeric:tabular-nums}
.gen-bar{
  display:block;height:4px;border-radius:3px;overflow:hidden;background:var(--fill-2);
}
.gen-bar i{
  display:block;height:100%;width:0;border-radius:3px;
  background:linear-gradient(90deg,var(--glacier),var(--aurora));
}
.gen-file{
  font-family:var(--mono);font-size:11px;color:var(--label-3);
  display:flex;align-items:center;gap:6px;
}
.gen.done .gen-file::after{
  content:"";width:5px;height:5px;border-radius:50%;background:var(--aurora);
}
/* skriver-prikker */
.msg.typing .bubble{display:flex;align-items:center;gap:4px;padding:15px}
.msg.typing i{width:6px;height:6px;border-radius:50%;background:var(--label-3);
  animation:blip 1.25s ease-in-out infinite}
.msg.typing i:nth-child(2){animation-delay:.16s}
.msg.typing i:nth-child(3){animation-delay:.32s}
@keyframes blip{30%{transform:translateY(-4px);background:var(--aurora)}}

.chat-bar{
  flex:none;display:flex;align-items:center;gap:10px;
  padding:12px 14px;border-top:.5px solid var(--hair-soft);
  background:linear-gradient(180deg,var(--bar-a),var(--bar-b));
}
.chat-field{
  flex:1;min-width:0;padding:11px 14px;border-radius:14px;
  background:var(--fill-2);border:.5px solid var(--hair);
  font:inherit;font-size:13.5px;color:var(--label);
  transition:border-color .25s ease,background .25s ease;
}
.chat-field::placeholder{color:var(--label-3)}
.chat-field:focus{outline:none;border-color:var(--accent-line);background:var(--fill)}
.chat-send{
  width:36px;height:36px;flex:none;border-radius:12px;display:grid;place-items:center;
  background:var(--accent-soft);border:1px solid var(--accent-line);color:var(--aurora);
  cursor:pointer;transition:transform .28s var(--ease),background .2s ease;
}
.chat-send:active{transform:scale(.9)}
.chat-send svg{width:15px;height:15px}

/* ── Notatene i høyre marg ────────────────────────────
   Samme blekk som til venstre, men løsere: en verktøykasse og en pil tilbake
   mot enheten. Bare tegnet, aldri fylt. Panelet er en luksus for brede
   vinduer, under 1280px forsvinner det og gir plassen til enheten. */
.aside-r{
  width:150px;flex:none;color:var(--stage-text);
  display:flex;flex-direction:column;align-items:center;gap:34px;
}
@media (max-width:1279px){ .aside-r{display:none} }
/* kronen og sideknappen stikker ut av klokkekassen, så den trenger mer luft */
:root.watch .stage{gap:46px}

/* verktøykassa */
.toolbox{width:100%}
.toolbox .lbl{
  font-family:var(--hand);font-size:12px;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--stage-dim);
  margin-bottom:9px;transform:rotate(-.6deg);
}
.toolrow{display:flex;align-items:stretch;gap:9px}
.brace{
  width:11px;flex:none;color:var(--stage-line-ink);overflow:visible;
  stroke-dasharray:110;stroke-dashoffset:110;
  animation:draw 1.1s var(--ease) .9s forwards;
}
.toolbox ul{list-style:none;display:flex;flex-direction:column;gap:7px;padding:2px 0}
.toolbox li{
  font-family:var(--hand);font-size:14px;line-height:1.25;
  color:var(--stage-text);opacity:.78;
  transform:rotate(-.4deg);transform-origin:left center;
  transition:opacity .25s ease,transform .3s var(--ease);
}
.toolbox li:nth-child(2){transform:rotate(.5deg)}
.toolbox li:nth-child(3){transform:rotate(-.9deg)}
.toolbox li:hover{opacity:1;transform:rotate(0) translateX(2px)}

/* pilen tilbake mot enheten */
.backnote{
  display:flex;flex-direction:column;align-items:flex-end;gap:7px;
  width:100%;text-align:right;transform:rotate(-1deg);
}
.backnote span{
  font-family:var(--hand);font-size:13px;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;color:var(--stage-text);
  line-height:1.35;
}
.backarrow{width:96px;height:26px;flex:none;overflow:visible;color:var(--stage-text)}
.backarrow .b-line{stroke-dasharray:120;stroke-dashoffset:120;animation:draw 1.1s var(--ease) 1.5s forwards}
.backarrow .b-head{stroke-dasharray:34;stroke-dashoffset:34;animation:draw .4s var(--ease) 2.4s forwards}
.backnote{animation:nudge-l 2.8s var(--ease) infinite}
@keyframes nudge-l{50%{transform:rotate(-1deg) translateX(-5px)}}

/* ── Klokka ───────────────────────────────────────────
   Samme app, lest på et blikk. Kassen er ett stykke metall, skjermen et
   vindu i den, og alt innhold er kokt ned til det et håndledd rekker å lese.
   Tre flater deler vinduet: skiven, appgitteret og ett kort om gangen. */
.wdevice{display:none;position:relative;z-index:0;width:214px;height:262px}
:root.watch:not(.site) .phone{display:none}
:root.watch:not(.site) .wdevice{display:block}
:root.watch .device{--dev-w:214px;--dev-h:262px}
:root.watch .device::after{border-radius:60px}

/* remmen, bare to stubber, resten forsvinner ut av bildet */
/* stubbene stikker et godt stykke inn under kassen, ellers ser de løse ut */
.wstrap{
  position:absolute;left:50%;width:152px;height:54px;z-index:-1;
  transform:translateX(-50%);
  background:linear-gradient(180deg,#2b3238,#1b2126);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.05);
}
.wstrap.up{top:-28px;border-radius:22px 22px 10px 10px;
  background:linear-gradient(180deg,#333a41,#20262c)}
.wstrap.dn{bottom:-28px;border-radius:10px 10px 22px 22px}

.wcase{
  position:absolute;inset:0;padding:8px;border-radius:60px;
  background:linear-gradient(148deg,#4a5158,#22282e 42%,#171c21 78%,#343b42);
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.14),
    0 30px 60px -18px rgba(0,0,0,.72),
    0 8px 22px rgba(0,0,0,.4);
}
.wscreen{
  position:relative;width:100%;height:100%;overflow:hidden;
  border-radius:53px;background:var(--ink);color:var(--label);
  font-family:var(--sf);isolation:isolate;
}
/* et pust av nordlys bak tallene, ellers blir skiven flat */
.wglow{
  position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;
  background:
    radial-gradient(90% 62% at 50% 8%,var(--spot-a),transparent 70%),
    radial-gradient(80% 50% at 50% 104%,var(--spot-b),transparent 72%);
}
/* nordlyset står ikke stille, det sveiper langsomt rundt bak skiven */
.wglow::before{
  content:"";position:absolute;left:50%;top:50%;
  width:168%;aspect-ratio:1;border-radius:50%;
  background:conic-gradient(from 0deg,
    transparent 0deg,var(--spot-a) 52deg,transparent 132deg,
    var(--spot-b) 214deg,transparent 300deg,var(--spot-a) 356deg,transparent 360deg);
  filter:blur(24px);opacity:.9;
  transform:translate(-50%,-50%);
  animation:wsweep 21s linear infinite;
}
@keyframes wsweep{to{transform:translate(-50%,-50%) rotate(360deg)}}

/* lysdraget når skjermen våkner: glasset fanger lyset én gang og slipper det */
.wshine{
  position:absolute;inset:-10% -30%;z-index:9;pointer-events:none;opacity:0;
  background:linear-gradient(102deg,
    transparent 34%,rgba(255,255,255,.055) 44%,rgba(255,255,255,.20) 50%,
    rgba(255,255,255,.055) 56%,transparent 66%);
}
.wscreen.wake .wshine{animation:wwake .95s var(--ease)}
@keyframes wwake{
  0%{opacity:0;transform:translateX(-64%)}
  22%{opacity:1}
  100%{opacity:0;transform:translateX(64%)}
}

/* Digital Crown og sideknapp, begge gjør noe */
.wcrown,.wside{
  position:absolute;border:0;padding:0;cursor:pointer;z-index:2;
  background:linear-gradient(90deg,#20262b,#79838c 40%,#c9d2d8 62%,#5c666e);
  box-shadow:0 1px 3px rgba(0,0,0,.5);
}
.wcrown{
  right:-8px;top:74px;width:12px;height:36px;border-radius:4px;
  background-image:
    repeating-linear-gradient(0deg,rgba(0,0,0,.55) 0 1px,transparent 1px 3.2px),
    linear-gradient(90deg,#20262b,#79838c 40%,#c9d2d8 62%,#5c666e);
  background-position:0 calc(var(--spin,0) * 1px),0 0;
  transition:background-position .3s var(--ease),transform .2s var(--ease);
}
.wcrown:active,.wside:active{transform:translateX(2px)}
.wside{right:-6px;top:126px;width:8px;height:32px;border-radius:3px}

/* den lille beskjeden, klokkas svar på Dynamic Island */
.wtoast{
  position:absolute;top:9px;left:50%;z-index:8;
  display:flex;align-items:center;gap:5px;max-width:84%;
  padding:5px 10px;border-radius:20px;
  background:rgba(0,0,0,.62);border:.5px solid var(--hair);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  opacity:0;pointer-events:none;
  transform:translate(-50%,-16px) scale(.9);
  transition:opacity .3s ease,transform .42s var(--ease);
}
.wtoast.open{opacity:1;transform:translate(-50%,0) scale(1)}
.wtoast svg{width:10px;height:10px;flex:none;color:var(--aurora)}
.wtoast b{font-size:9px;font-weight:600;letter-spacing:-.1px;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}

/* de tre flatene ligger oppå hverandre og zoomer inn og ut, som på en ekte klokke */
.wpane{
  position:absolute;inset:0;z-index:1;
  display:flex;flex-direction:column;align-items:center;
  padding:13px 13px 14px;
  opacity:0;visibility:hidden;transform:scale(.78);
  transition:opacity .3s ease,transform .44s var(--ease),visibility .44s;
}
.wpane.show{opacity:1;visibility:visible;transform:none}
/* et knappetrykk skal kjennes, hele flaten gir litt etter */
.wscreen.press .wpane.show{transform:scale(.962)}

/* ── Flate 1: urskiven ── */
.wdate{
  font-size:9px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
  color:var(--aurora);flex:none;
}
.wdial{position:relative;width:132px;height:132px;margin:5px 0 2px;flex:none}
.wticks{position:absolute;inset:0;width:100%;height:100%}
.wring{fill:none;stroke:var(--hair);stroke-width:.6}
.wticks .t1{stroke:var(--label-3);stroke-width:.7}
.wticks .t5{stroke:var(--label-2);stroke-width:1.6;stroke-linecap:round}
.whand{
  position:absolute;left:50%;bottom:50%;border-radius:3px;background:var(--label);
  transform-origin:50% 100%;
  transform:translateX(-50%) rotate(var(--rot,0deg));
}
.wh{width:4.6px;height:38px}
.wm{width:3.4px;height:55px}
/* sekundviseren tar steget med et lite overslag, slik et ekte verk gjør */
.ws{
  width:1.6px;height:59px;background:var(--aurora);border-radius:1px;
  transition:transform .34s cubic-bezier(.34,1.8,.5,1);
  filter:drop-shadow(0 0 3px var(--accent-line));
}
.ws::after{   /* motvekten som stikker forbi midten */
  content:"";position:absolute;left:50%;top:100%;width:1.6px;height:13px;
  transform:translateX(-50%);background:var(--aurora);border-radius:1px;
}
.wpin{
  position:absolute;left:50%;top:50%;width:7px;height:7px;border-radius:50%;
  transform:translate(-50%,-50%);background:var(--aurora);
  box-shadow:0 0 0 2px var(--ink);
}
/* midtpunktet puster, som en liten puls i verket */
.wpin::after{
  content:"";position:absolute;inset:-3px;border-radius:50%;
  border:1px solid var(--accent-line);
  animation:wpulse 3.2s var(--ease) infinite;
}
@keyframes wpulse{
  0%,70%,100%{transform:scale(1);opacity:0}
  18%{transform:scale(1.9);opacity:.85}
  55%{transform:scale(2.6);opacity:0}
}
.wbig{
  font-size:47px;font-weight:250;letter-spacing:-2px;line-height:1.06;
  margin:6px 0 2px;font-variant-numeric:tabular-nums;color:var(--label);
}
/* minuttskiftet får et hjerteslag, ikke et hopp */
.wbig.beat{animation:wbeat .62s var(--ease)}
@keyframes wbeat{
  0%{opacity:.25;transform:translateY(-5px) scale(.985)}
  60%{opacity:1}
  100%{opacity:1;transform:none}
}
.wticker{
  font-size:8.5px;letter-spacing:.03em;color:var(--label-2);
  text-align:center;flex:none;transition:opacity .13s ease;
}
.wcomps{display:flex;gap:5px;width:100%;margin-top:auto}
.wcomp{
  position:relative;overflow:hidden;
  flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:3px;
  border:0;padding:7px 2px 6px;border-radius:13px;cursor:pointer;
  background:var(--fill-2);color:var(--label-2);font-family:inherit;
  transition:background .2s ease,transform .25s var(--ease),color .2s ease,
             box-shadow .25s ease;
}
.wcomp:hover{background:var(--chip);color:var(--label);box-shadow:inset 0 0 0 1px var(--accent-line)}
.wcomp:active{transform:scale(.93)}
/* ringen som brer seg under fingeren og blir stående et øyeblikk */
.wcomp::after{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(circle at 50% 55%,var(--accent-soft),transparent 68%);
  opacity:0;transform:scale(.35);
  transition:opacity .5s ease,transform .5s var(--ease);
}
.wcomp:active::after{opacity:1;transform:scale(1);transition-duration:0s}
.wcomp svg{
  width:14px;height:14px;flex:none;color:var(--aurora);
  transition:transform .3s var(--ease);
}
.wcomp:hover svg{transform:scale(1.14)}
.wcomp .c-short{font-size:7.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.wcomp .c-name,.wcomp .c-sub{display:none}

/* modulær skive: tallene tar plassen viserne hadde, og feltene blir lesbare */
.wface[data-face="modular"] .wdial{display:none}
.wface[data-face="classic"] .wbig{display:none}
/* uten tallrekka deles den ledige plassen likt over og under klokkeslettet,
   slik at rommet ser villet ut og ikke som et hull */
.wface[data-face="modular"] .wbig{margin-top:auto}
.wface[data-face="modular"] .wcomps{
  display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:auto;
}
/* navnene er lange og feltene smale, så skriften holdes stram her */
.wface[data-face="modular"] .wcomp{
  display:grid;grid-template-columns:auto 1fr;column-gap:5px;
  align-items:center;text-align:left;padding:7px 7px;
}
.wface[data-face="modular"] .wcomp svg{grid-row:1 / span 2}
.wface[data-face="modular"] .c-short{display:none}
.wface[data-face="modular"] .c-name{
  display:block;font-size:8.5px;font-weight:600;letter-spacing:-.1px;color:var(--label);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.wface[data-face="modular"] .c-sub{
  display:block;font-size:6.5px;letter-spacing:-.05px;color:var(--label-3);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}

/* ── Flate 2: appgitteret, bikuben ── */
.whive-cap{
  font-size:8px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--label-3);flex:none;
}
.whive{position:relative;width:152px;height:152px;margin:auto}
.whive-b{
  position:absolute;left:50%;top:50%;width:44px;height:44px;margin:-22px 0 0 -22px;
  border:0;border-radius:50%;cursor:pointer;display:grid;place-items:center;
  background:var(--fill);color:var(--label);
  transform:translate(var(--x,0px),var(--y,0px)) scale(1);
  transition:transform .3s var(--ease),background .2s ease;
}
.whive-b:hover{transform:translate(var(--x,0px),var(--y,0px)) scale(1.13);background:var(--chip)}
.whive-b:active{transform:translate(var(--x,0px),var(--y,0px)) scale(.94)}
.whive-b svg{width:19px;height:19px}
.whive-b.mid{
  width:50px;height:50px;margin:-25px 0 0 -25px;
  background:var(--accent-soft);color:var(--aurora);
  box-shadow:inset 0 0 0 1px var(--accent-line);
}
/* bikuben ligger aldri helt stille, cellene vugger i utakt */
.whive-b{animation:wfloat 5.6s var(--ease) infinite}
.whive-b:nth-child(2){animation-delay:-.4s}
.whive-b:nth-child(3){animation-delay:-1.1s}
.whive-b:nth-child(4){animation-delay:-1.9s}
.whive-b:nth-child(5){animation-delay:-2.6s}
.whive-b:nth-child(6){animation-delay:-3.3s}
.whive-b:nth-child(7){animation-delay:-4.1s}
@keyframes wfloat{50%{translate:0 -2.6px}}
.whive-b.mid::after{   /* midtcellen har et svakt skjær rundt seg */
  content:"";position:absolute;inset:-4px;border-radius:50%;
  border:1px solid var(--accent-line);opacity:0;
  animation:wpulse 3.6s var(--ease) infinite;
}

/* ── Flate 3: kortet for én app ── */
.wapp{padding:0;align-items:stretch}
.wapp-head{
  display:flex;align-items:center;gap:7px;flex:none;
  padding:13px 14px 8px;
}
.wapp-ic{
  width:22px;height:22px;flex:none;border-radius:50%;display:grid;place-items:center;
  background:var(--accent-soft);color:var(--aurora);
}
.wapp-ic svg{width:13px;height:13px}
.wapp-head b{font-size:13px;font-weight:600;letter-spacing:-.2px}
.wapp-body{
  flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;
  padding:0 14px 16px;scrollbar-width:none;
}
.wapp-body::-webkit-scrollbar{display:none}
.wapp-kicker{
  font-size:7.5px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
  color:var(--aurora);
}
.wapp-list{list-style:none;display:flex;flex-direction:column;gap:4px;margin-top:8px}
.wapp-list li{
  font-size:9.5px;line-height:1.42;color:var(--label-2);
  background:var(--fill-2);border-radius:10px;padding:7px 9px;
}
/* linjene faller på plass etter hverandre når kortet åpnes */
.wapp.show .wapp-list li{animation:wrise .46s var(--ease) backwards}
.wapp.show .wapp-list li:nth-child(1){animation-delay:.05s}
.wapp.show .wapp-list li:nth-child(2){animation-delay:.11s}
.wapp.show .wapp-list li:nth-child(3){animation-delay:.17s}
.wapp.show .wapp-list li:nth-child(4){animation-delay:.23s}
.wapp.show .wapp-list li:nth-child(5){animation-delay:.29s}
.wapp.show .wapp-mail{animation:wrise .46s var(--ease) .33s backwards}
@keyframes wrise{from{opacity:0;transform:translateY(8px)}}
.wapp-mail{
  display:flex;align-items:center;justify-content:center;gap:5px;
  margin-top:8px;padding:8px;border-radius:12px;text-decoration:none;
  background:var(--accent-soft);color:var(--aurora);
  font-size:9px;font-weight:600;letter-spacing:.02em;
  box-shadow:inset 0 0 0 1px var(--accent-line);
}
.wapp-mail[hidden]{display:none}
.wapp-mail svg{width:11px;height:11px}

/* ── Nettside-modus: samme innhold, uten telefonen ───── */
:root.site body{display:block;overflow:auto;padding:0;place-items:stretch}
:root.site .stage{
  display:block;max-width:680px;margin:0 auto;padding:20px 16px 0;
}
:root.site .aside{
  width:100%;flex-direction:row;align-items:center;justify-content:space-between;
  gap:14px;margin-bottom:18px;
}
:root.site .hint,:root.site .lblrow,:root.site .aside-r{display:none}
:root.site .brand{font-size:27px;margin:0}
:root.site .brand .ul{display:none}
:root.site .devsel{flex:none;transform:none}

:root.site .device{transform:none;margin:0}
:root.site .device::after{display:none}
:root.site .phone{
  width:100%;height:auto;border-radius:0;padding:0;background:none;box-shadow:none;
}
:root.site .btn-side,:root.site .status,:root.site .island,:root.site .navbar,
:root.site .tabbar,:root.site .home-ind,:root.site .crease,
:root.site .wall,:root.site .grain,:root.site .boot{display:none}

:root.site .screen{height:auto;border-radius:20px;overflow:hidden;background:var(--ink)}
:root.site .views{position:static}
:root.site .view{
  position:static;opacity:1;visibility:visible;transform:none;
  overflow:visible;padding:26px 0 30px;
}
:root.site .view+.view{border-top:.5px solid var(--hair)}
:root.site .hero{padding-top:0}
/* arket blir liggende mot vinduet, ikke mot «skjermen» */
:root.site .scrim,:root.site .sheet{position:fixed}
:root.site .scrim{z-index:90}                 /* over de flytende kontrollene */
:root.site .sheet{z-index:91;max-height:82vh;max-width:680px;margin-inline:auto}
:root.site .caption{padding-bottom:34px}

/* ── Bildetekst under enheten ─────────────────────────── */
.caption{
  padding:13px 0 15px;text-align:center;font-size:12.5px;color:var(--stage-dim);
  letter-spacing:.02em;line-height:1.6;
}
/* på lave vinduer får telefonen plassen i stedet */
@media (max-height:700px){ .caption{display:none} }
/* samme linje under enheten, i scenens toner */
.caption .legal-links{margin-top:9px;font-size:10.5px;color:var(--stage-dim)}
.caption .legal-links button{color:var(--stage-dim);text-decoration-color:var(--stage-line)}
.caption .legal-links button:hover,.caption .legal-links button:active{color:var(--stage-text)}

:focus-visible{outline:2.5px solid var(--aurora);outline-offset:3px;border-radius:8px}

/* ── Fullskjerm på ekte telefoner ─────────────────────── */
/* ── Under 900px er siden alltid et vanlig nettsted ────
   Grensen må stemme med SITE_MAX i skriptet. Over den er det en
   enhetssimulering med panel ved siden av, under den et nettsted. Noe
   midt imellom, der panelet la seg under telefonen, finnes ikke lenger. */
@media (max-width:900px){
  body{padding:0}
  .caption{display:none}

  /* Som nettsted er bildeteksten ingen bildetekst lenger, den er sidefoten.
     Der hører de lovpålagte lenkene hjemme, så de finnes uten å måtte lete.
     Rommet nederst holder dem klar av de flytende kontrollene i hjørnet. */
  :root.site .caption{
    display:block;margin-top:30px;
    padding:18px 15px calc(82px + env(safe-area-inset-bottom, 0px));
    border-top:.5px solid var(--stage-line);
    font-size:11.5px;line-height:1.7;
  }
  :root.site .caption .legal-links{
    flex-wrap:wrap;gap:2px 9px;margin-top:0;font-size:11.5px;
  }
  :root.site .caption .legal-links button{padding:7px 2px}
  /* selskapslinja tar sin egen rad, så de to lenkene står samlet under den
     og ingen skilletegn blir hengende igjen på slutten av en linje */
  :root.site .caption .legal-links>span[data-i18n-html]{flex:0 0 100%;margin-bottom:1px}
  :root.site .caption .legal-links>span[data-i18n-html]+span[aria-hidden]{display:none}
  .toolbar{top:auto;right:12px;bottom:14px}
  .switcher button{padding:6px 9px;font-size:11px}
  .themebtn{width:35px;height:35px}

  :root.site .stage{padding:0 13px}
  :root.site .screen{border-radius:16px}
  :root.site .devsel,:root.site .lblrow{display:none}   /* enhetsvalg er en skrivebordssak */

  /* klebrig topplinje med ordmerke og meny */
  :root.site .aside{
    position:sticky;top:0;z-index:70;
    margin:0 -13px 14px;padding:13px 15px;
    /* dekkende bunn + glasstone, så den ikke er avhengig av backdrop-filter */
    background:linear-gradient(var(--stage-glass),var(--stage-glass)),var(--stage-1);
    backdrop-filter:blur(20px) saturate(160%);
    -webkit-backdrop-filter:blur(20px) saturate(160%);
    border-bottom:.5px solid var(--stage-line);
  }
  :root.site .brand{font-size:22px}
  :root.site .view{scroll-margin-top:72px}

  .burger{
    display:grid;place-content:center;gap:5px;flex:none;
    width:43px;height:43px;cursor:pointer;background:none;
    border:1.6px solid var(--stage-line-ink);
    border-radius:15px 11px 16px 10px / 11px 15px 10px 16px;
  }
  .burger span{
    display:block;width:18px;height:1.8px;border-radius:2px;background:var(--stage-text);
    transition:transform .32s var(--ease),opacity .2s ease;
  }
  .burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6.8px) rotate(45deg)}
  .burger[aria-expanded="true"] span:nth-child(2){opacity:0}
  .burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.8px) rotate(-45deg)}

  .sitemenu{
    display:flex;flex-direction:column;
    position:absolute;left:15px;right:15px;top:calc(100% + 6px);
    padding:5px;border-radius:20px 17px 21px 16px / 17px 20px 16px 21px;
    background:linear-gradient(var(--stage-glass),var(--stage-glass)),var(--stage-2);
    border:1.4px solid var(--stage-line-ink);
    box-shadow:0 18px 40px -12px rgba(0,0,0,.55);
    backdrop-filter:blur(22px) saturate(170%);
    -webkit-backdrop-filter:blur(22px) saturate(170%);
    opacity:0;visibility:hidden;transform:translateY(-9px);
    transition:opacity .24s ease,transform .32s var(--ease),visibility .32s;
  }
  .sitemenu.open{opacity:1;visibility:visible;transform:none}
  .sitemenu button{
    border:0;background:none;cursor:pointer;text-align:left;
    padding:13px 14px;border-radius:13px;
    font-family:var(--hand);font-size:17px;color:var(--stage-text);
  }
  .sitemenu button+button{border-top:.5px solid var(--stage-line)}
  .sitemenu button:active{background:var(--sketch-fill)}
}

/* ── Assistenten er en telefonsak ──────────────────────
   På skrivebordet velges han i enhetsvelgeren. Den lille bryteren i toppen
   hører hjemme der det faktisk er en telefon, ikke på nettbrettbredder,
   der ville den bare sett ut som en rest fra simuleringen. */
@media (max-width:700px){
  /* ── Bryter mellom innhold og assistent ── */
  .aiswitch{
    position:relative;display:flex;flex:none;padding:3px;
    border:1.6px solid var(--stage-line-ink);
    border-radius:15px 12px 16px 11px / 12px 15px 11px 16px;
  }
  .aiswitch::before{           /* markøren som glir under ikonene */
    content:"";position:absolute;top:3px;bottom:3px;left:3px;width:40px;
    border-radius:12px;background:var(--sketch-fill);
    transition:transform .42s var(--ease),background .3s ease,box-shadow .3s ease;
  }
  .aiswitch button{
    position:relative;z-index:1;width:40px;height:34px;flex:none;
    display:grid;place-items:center;border:0;background:none;cursor:pointer;
    color:var(--stage-dim);transition:color .25s ease;
  }
  .aiswitch button[aria-pressed="true"]{color:var(--stage-text)}
  .aiswitch svg{width:17px;height:17px}

  :root.ai .aiswitch::before{
    transform:translateX(40px);
    background:var(--accent-soft);box-shadow:0 0 15px -2px var(--accent-line);
  }

  /* assistenten tar plassen til innholdet */
  :root.site.ai body{overflow:hidden}
  :root.site.ai .burger,:root.site.ai .sitemenu{display:none}
  :root.site.ai .device{display:none}
  :root.site.ai .chat{
    display:flex;width:100%;height:calc(100dvh - 134px);
    border-radius:18px;
  }
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.12s!important}
}
