/* Bjergarternes kredsløb. Farver og skrifter som atlasset; grupperne har faste farver
   (magma orange, magmatisk laks, sediment gul, sedimentær grøn, metamorf blå), men
   navnene står altid ved farven. */
:root{
  --paper:#fff9ee;--papir2:#fffdf7;--ink:#17211f;--slate:#49615b;--blue:#0e86c8;--lys:#c7e6f6;
  --p:#0e86c8;--s:#d62a63;--r:#e3721d;--fokus:#7a4fd6;
  --display:'Archivo',system-ui,sans-serif;--body:'Source Serif 4',Georgia,serif;--mono:'IBM Plex Mono',monospace;
  --top:0px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.45 var(--body)}
[hidden]{display:none!important}
a{color:inherit}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer;min-height:40px;border:2px solid var(--ink);border-radius:6px;background:var(--paper);padding:6px 12px;font:600 14px var(--display);-webkit-tap-highlight-color:transparent}
button:hover{background:var(--lys)}
button:disabled{opacity:.4;cursor:default;background:var(--paper)}
button[aria-pressed=true]{background:var(--ink);color:var(--paper)}
button.lille{min-height:34px;padding:4px 10px;font-size:13px;border-width:1.5px}
:focus-visible{outline:3px solid var(--fokus);outline-offset:2px}
.spring{position:absolute;left:10px;top:-80px;z-index:10;background:#fff;padding:12px}.spring:focus{top:8px}
.kun-oplaesning{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* Sidehoved som atlasset */
.regnbue{height:6px;background:linear-gradient(90deg,#e8336d 0 14.3%,#ff6a3d 14.3% 28.6%,#ffb300 28.6% 42.9%,#5fb030 42.9% 57.2%,#0fa593 57.2% 71.5%,#0e86c8 71.5% 85.8%,#7a4fd6 85.8%)}
.site-linje{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 24px;border-bottom:2px solid var(--ink);font:600 13px var(--display)}
.site-linje nav{display:flex;gap:18px}.site-linje nav a{text-decoration:none}.site-linje nav a:hover{text-decoration:underline}
.brand{display:flex;align-items:center;gap:6px;text-decoration:none;font:bold 22px var(--display)}.brand small{font:12px var(--mono);margin-left:-5px}
.brand span{width:22px;height:22px;border:2px solid var(--ink);border-radius:7px;background:conic-gradient(#e8336d,#ffb300,#5fb030,#0e86c8,#7a4fd6,#e8336d)}

main{padding:0 24px 14px;max-width:1800px;margin:auto}
.intro{display:flex;align-items:center;gap:18px;padding:10px 0}
.overlinje{font:500 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;margin:0 0 3px;color:var(--slate)}
h1{font:800 clamp(22px,2.4vw,34px)/1.1 var(--display);letter-spacing:-.035em;margin:0}
h1 span{color:var(--blue)}h1 em{font:italic 400 .8em var(--body);letter-spacing:0;color:var(--s)}
.intro-tekst{margin:0 0 0 auto;font-size:15px;color:var(--slate);max-width:28em;text-align:right}
.intro-knapper{display:flex;gap:8px;flex:none}

/* Laboratoriet */
.lab{border:2px solid var(--ink);border-radius:9px;box-shadow:4px 4px 0 var(--ink);overflow:hidden;background:var(--papir2)}
.faner{display:flex;border-bottom:2px solid var(--ink);background:var(--paper)}
.faner button{flex:1;display:flex;align-items:center;gap:10px;border:0;border-right:1.5px solid var(--ink);border-radius:0;min-height:50px;padding:6px 16px;text-align:left;background:transparent}
.faner button:last-child{border-right:0}
.faner b{display:grid;place-items:center;flex:none;width:28px;height:28px;border:2px solid currentColor;border-radius:50%;font:700 14px var(--mono)}
.faner span{display:flex;flex-direction:column;font:700 16px/1.1 var(--display)}
.faner small{font:500 11px var(--mono);color:var(--slate);margin-top:2px}
.faner button[aria-selected=true]{background:var(--ink);color:var(--paper)}
.faner button[aria-selected=true] small{color:#c9d6d1}
.faner button:not([aria-selected=true]):hover{background:var(--lys)}

.del{display:grid;grid-template-columns:minmax(0,1fr) 340px;height:calc(100svh - var(--top));min-height:400px;max-height:760px}
.figur{position:relative;min-width:0;min-height:0;background:#f4ead6;overflow:hidden}
.figur>canvas,.kortrum>canvas{position:absolute;inset:0;display:block;width:100%;height:100%}
.maerke{position:absolute;top:10px;left:12px;font:500 10px var(--mono);letter-spacing:.06em;text-transform:uppercase;background:var(--paper);border:1px solid var(--ink);border-radius:4px;padding:3px 7px;pointer-events:none}
.figurtekst{position:absolute;right:12px;top:8px;margin:0;font:500 12px var(--mono);background:var(--paper);border:1px solid var(--ink);border-radius:4px;padding:3px 7px;pointer-events:none}
.figurtekst:empty{display:none}
.panel{border-left:2px solid var(--ink);padding:14px 16px;overflow:auto;background:var(--papir2);display:flex;flex-direction:column;gap:12px}
.panel>*{margin:0}

.vaelger{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.vaelger button{display:flex;align-items:center;gap:8px;justify-content:flex-start}
.vaelger button[aria-checked=true]{background:var(--ink);color:var(--paper);box-shadow:2px 2px 0 var(--slate)}
.lille-vaelger{display:flex;gap:4px}.lille-vaelger button{min-height:34px;padding:3px 10px;justify-content:center;font-size:13px;border-width:1.5px}
.prik{display:inline-block;width:12px;height:12px;border-radius:50%;border:2px solid var(--paper);box-shadow:0 0 0 1.5px var(--ink);flex:none}
.prik.p{background:var(--p)}.prik.s{background:var(--s)}.prik.r{background:var(--r)}
.prik.alle{background:conic-gradient(var(--p) 0 33%,var(--s) 0 66%,var(--r) 0)}
.knaprad{display:flex;flex-wrap:wrap;gap:6px}
.knaprad button{min-height:36px;font-size:13px;display:flex;align-items:center;gap:6px}

.kort{border:1.5px solid var(--ink);border-radius:8px;background:var(--paper);padding:10px 12px;font-size:15px}
.kort h2{font:800 19px/1.15 var(--display);margin:0 0 4px;display:flex;align-items:center;gap:8px}
.kort h2 .bogstav{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;color:#fff;font:700 14px var(--mono)}
.kort p{margin:4px 0}
.kort dl{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;margin:8px 0 0;font-size:14px}
.kort dt{font:600 12px var(--display);color:var(--slate);padding-top:2px}.kort dd{margin:0}

.hvorfor{border-top:1.5px solid var(--ink);padding-top:8px;font-size:14.5px}
.hvorfor summary{cursor:pointer;font:700 14px var(--display);list-style:none;display:flex;justify-content:space-between;gap:8px}
.hvorfor summary::-webkit-details-marker{display:none}
.hvorfor summary::after{content:'+';font:700 16px var(--mono)}
.hvorfor[open] summary::after{content:'−'}
.hvorfor p{margin:8px 0}
.formel{display:inline-block;font:500 13.5px var(--mono);background:#fff;border:1px solid var(--ink);border-radius:4px;padding:2px 6px;white-space:nowrap}
.formel.stor{display:block;text-align:center;white-space:normal;padding:6px}
.smaa{font-size:13.5px;color:var(--slate);line-height:1.4}

.fodnote{font-size:13.5px;color:var(--slate);margin:10px 2px 0}

dialog{max-width:640px;width:calc(100% - 24px);border:2px solid var(--ink);border-radius:10px;box-shadow:6px 6px 0 var(--ink);background:var(--paper);color:var(--ink);padding:18px 22px;max-height:calc(100svh - 40px)}
dialog::backdrop{background:#17211f80}
dialog h2{font:800 24px/1.15 var(--display);margin:2px 0 10px}
dialog li{margin-bottom:6px}
.dialog-top{display:flex;justify-content:space-between;align-items:center}
.noscript{padding:20px}

/* Fokus: skjul sidehoved og intro, giv figuren pladsen. */
body.fokus .site-header,body.fokus .intro,body.fokus .fodnote{display:none}
body.fokus main{padding-top:10px}
body.fokus .lab::before{content:none}
#fokus-ud{position:fixed;right:14px;top:8px;z-index:5}

/* Mellemstore skærme: smallere panel */
@media(max-width:1180px){.del{grid-template-columns:minmax(0,1fr) 300px}.panel{padding:12px}.intro-tekst{display:none}}
/* Lave laptopvinduer: kompakt intro */
@media(min-width:861px) and (max-height:700px){.intro{padding:5px 0}h1{font-size:24px}.overlinje{display:none}.faner button{min-height:42px}.faner small{display:none}.site-linje{padding:3px 24px}}

/* Smal visning og mobil: alt under hinanden, siden må rulle lodret. */
@media(max-width:860px){
  main{padding:0 10px 12px}
  .site-linje{padding:6px 10px}.site-linje nav{gap:10px}.site-linje nav a:last-child{display:none}
  .intro{flex-wrap:wrap;gap:8px}.intro-knapper{margin-left:auto}
  .del{display:block;height:auto;max-height:none}
  .figur{height:min(64svh,520px)}
  .panel{border-left:0;border-top:2px solid var(--ink);overflow:visible}
  .faner button{padding:6px 8px;gap:6px;min-height:46px}.faner span{font-size:14px}.faner small{display:none}
  .faner b{width:24px;height:24px;font-size:12px}
}
@media(max-width:420px){h1 em{display:block;font-size:.7em}.vaelger button{font-size:13px;padding:6px 8px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.kun-smal{display:none}
@media(max-width:860px){.kun-smal{display:inline-block;min-height:30px;padding:2px 10px;font-size:12px}}

/* Grupperne */
:root{--kappe:#c98a4b;--magma:#e8562a;--magmatisk:#f29a76;--sediment:#e9c46a;--sedimentaer:#8cc084;--metamorf:#79b4d9}
h1 span{color:var(--blue)}
.valgfelt{display:flex;align-items:center;gap:8px;font:600 13px var(--display)}
.valgfelt select{flex:1;min-width:0;min-height:36px;border:1.5px solid var(--ink);border-radius:5px;background:#fff;padding:3px 6px;font:500 14px var(--display)}
.panel h2{font:800 15px var(--display);margin:0}

/* Stenkortet: billede eller tegning fra stensamlingen */
.stenkort{display:grid;grid-template-columns:96px minmax(0,1fr);gap:10px;align-items:start;border:1.5px solid var(--ink);border-radius:8px;background:var(--paper);padding:8px}
.stenbillede{width:96px;height:72px;border-radius:6px;overflow:hidden;background:#efe6d3;display:grid;place-items:center}
.stenbillede img{width:100%;height:100%;object-fit:cover;display:block}
.stenbillede svg{width:100%;height:100%;display:block}
.stenkort h3{font:800 18px/1.1 var(--display);margin:0 0 3px}
.stenkort p{margin:3px 0;font-size:14px;line-height:1.35}
.stenkort a{font:600 12.5px var(--display)}
.gruppe{display:inline-flex;align-items:center;gap:5px;font:500 11px var(--mono);letter-spacing:.03em;text-transform:uppercase;color:var(--slate)}
.gruppe i{width:11px;height:11px;border-radius:3px;border:1.5px solid var(--ink)}

/* Mulighederne */
.muligheder{display:flex;flex-direction:column;gap:6px}
.mulighed{display:grid;grid-template-columns:auto 1fr;gap:2px 8px;text-align:left;align-items:center;padding:6px 10px;min-height:48px;font-weight:600}
.mulighed .pil{grid-row:span 2;font:700 18px var(--display)}
.mulighed small{grid-column:2;font:400 12.5px var(--body);color:var(--slate)}
.mulighed[data-proces]{border-left-width:7px}
.forklaring:empty{display:none}
.forklaring h3{font:800 15px var(--display);margin:0 0 3px}
.forklaring .meta{font:500 12px var(--mono);color:var(--slate);margin-top:4px}
.rejse{border-top:1.5px solid var(--ink);padding-top:8px}
.rejse-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.rejsetid{font:600 13px var(--mono)}
.rejse ol{margin:6px 0;padding-left:22px;font-size:13.5px;line-height:1.35;max-height:180px;overflow:auto}
.rejse li{margin-bottom:2px}.rejse li small{color:var(--slate)}
.maalliste{list-style:none;padding:0;margin:6px 0 0;display:flex;flex-direction:column;gap:5px}
.maalliste button{width:100%;text-align:left;min-height:36px;font-size:13px;display:flex;gap:8px;align-items:center}
.maalliste .flueben{display:inline-grid;place-items:center;width:20px;height:20px;border:1.5px solid currentColor;border-radius:50%;flex:none;font-size:12px}
.maalliste [data-klaret=true] .flueben{background:var(--ink);color:var(--paper)}
.maalliste [data-klaret=true]{color:var(--slate)}

/* Diagrammet */
.diagramfigur{background:#f4ead6}
.diagramfigur svg{position:absolute;inset:0;width:100%;height:100%;display:block}
#diagram .knude rect{stroke:var(--ink);stroke-width:2}
#diagram .knude text{font:800 15px var(--display);fill:var(--ink)}
#diagram .knude .navne{font:500 10.5px var(--mono);fill:#17211fb3}
#diagram .knude .navne .her{fill:#b0174a;font-weight:700}
#diagram .pil path{fill:none;stroke:#17211f66;stroke-width:3}
#diagram .pil text{font:600 11.5px var(--display);fill:#17211fcc;paint-order:stroke;stroke:#f4ead6;stroke-width:4px}
#diagram .pil.mulig path{stroke:var(--ink);stroke-width:4}
#diagram .pil.mulig text{fill:var(--ink)}
#diagram .pil.mulig{cursor:pointer}
#diagram .pil.mulig:focus{outline:none}
#diagram .pil.mulig:focus-visible path{stroke:var(--fokus)}
#diagram .spor path{fill:none;stroke:var(--s);stroke-width:2.5;stroke-dasharray:5 4}
#diagram .spor circle{fill:var(--s);stroke:#fff;stroke-width:1.5}
#diagram .spor text{font:700 10px var(--mono);fill:#fff}
#diagram .token circle{fill:#fff;stroke:var(--s);stroke-width:3}
@media(prefers-reduced-motion:no-preference){#diagram .token{transition:transform .5s ease}}

/* Snittet */
.snitfigur{background:#cfe6f0}
.snitrum{position:absolute;inset:0;display:grid;place-items:center}
.snitrum svg{width:100%;height:100%;display:block}
.stedknapper{position:absolute;inset:0;pointer-events:none}
.stedknap{position:absolute;pointer-events:auto;transform:translate(-50%,-50%);min-height:0;width:34px;height:34px;padding:0;border-radius:50%;border:2.5px solid var(--ink);background:#fff;font:800 14px var(--mono);box-shadow:2px 2px 0 var(--ink);display:grid;place-items:center}
.stedknap[aria-pressed=true]{background:var(--ink);color:var(--paper)}
.stedknap.rigtig{background:#2e8b57;color:#fff}.stedknap.forkert{background:var(--s);color:#fff}
.stedknap .navn{position:absolute;left:50%;top:calc(100% + 3px);transform:translateX(-50%);white-space:nowrap;font:700 11px var(--display);background:#fff9eee6;border:1px solid var(--ink);border-radius:4px;padding:1px 5px;pointer-events:none}
.snitfigur.smal .stedknap .navn{display:none}
.stedkort h3{font:800 18px var(--display);margin:0 0 4px}
.stedkort p{margin:4px 0;font-size:14.5px}
.stedkort .eksempel{font-size:13.5px;color:var(--slate)}
.dannes{display:grid;grid-template-columns:repeat(auto-fill,minmax(82px,1fr));gap:6px;margin-top:6px}
.dannes a{display:flex;flex-direction:column;gap:2px;text-decoration:none;font:600 12px var(--display);border:1px solid #17211f40;border-radius:6px;padding:4px;background:#fff}
.dannes a:hover{border-color:var(--ink)}
.dannes .stenbillede{width:100%;height:52px}
.quizspoergsmaal{margin:0;font:700 15px var(--display)}
.quizsvar.rigtigt{border-color:#2e8b57;background:#eef7ef}.quizsvar.forkert{border-color:var(--s);background:#fdf0f4}
.quizsvar p{margin:4px 0;font-size:14px}
.quizpoint{font:600 13px var(--mono);margin-left:auto;align-self:center}
button.hoved{background:var(--s);color:#fff;border-color:var(--ink);box-shadow:2px 2px 0 var(--ink);font-size:15px}
button.hoved:hover{background:#b81f52}
.kort h3{font:800 17px var(--display);margin:0 0 3px}

/* Afkøling */
.afkoelingsfigur{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);background:#efe6d3}
.skorpe,.lupe{position:relative;min-height:0;min-width:0}
.skorpe svg{position:absolute;inset:0;width:100%;height:100%}
.lupe{display:grid;place-items:center;border-left:1.5px solid var(--ink);background:#f7f0e2}
.lupe canvas{width:min(92%,92%);aspect-ratio:1;max-height:92%;display:block}
.lupe-ur{position:absolute;right:12px;top:8px;margin:0;font:600 13px var(--mono);background:var(--paper);border:1px solid var(--ink);border-radius:4px;padding:3px 7px}
.lupe-ur:empty{display:none}
.krop-vaelger{grid-template-columns:1fr}
.skyder{display:flex;flex-direction:column;gap:4px;font:600 13px var(--display)}
.skyder output{font:600 13px var(--mono);background:var(--ink);color:var(--paper);padding:1px 6px;border-radius:4px}
.skyder input{width:100%;accent-color:var(--ink);min-height:30px}
.resultat dl{display:grid;grid-template-columns:auto 1fr;gap:3px 10px;margin:0;font-size:14px}
.resultat dt{font:600 12px var(--display);color:var(--slate);padding-top:2px}.resultat dd{margin:0}
.resultat .stenkort{margin-top:8px}

@media(max-width:860px){
  .figur.diagramfigur{height:auto;aspect-ratio:640/540}
  .figur.snitfigur{height:min(62vw,460px)}
  .figur.afkoelingsfigur{height:auto;display:block}
  .skorpe{height:min(80vw,380px)}
  .lupe{height:min(96vw,420px);border-left:0;border-top:1.5px solid var(--ink)}
  .rejse ol{max-height:none}
}
@media(max-width:560px){.stedknap{width:28px;height:28px;font-size:12px}}
#snit .lagnavn{font:600 12px var(--display)}
#snit .isonavn{font:700 11px var(--mono);fill:#b3122e;paint-order:stroke;stroke:#fff9eecc;stroke-width:3px}
#skorpe .dybde{font:500 11px var(--mono);fill:#17211fb3}
#skorpe .kropnavn{font:700 13px var(--display);fill:var(--ink)}
#skorpe [data-legeme]{opacity:.4}
#skorpe [data-legeme].valgt{opacity:1}
#skorpe [data-legeme].valgt path{stroke:var(--s);stroke-width:3}
.forklaring .klaret{font:700 14px var(--display);color:#2e8b57}
.stedknap .navn{color:var(--ink)}
#diagram .knude text{font-size:16px}
#diagram .knude .navne{font-size:11.5px}
.lupe-tekst{position:absolute;left:12px;top:8px;margin:0;font:700 13px var(--display);background:var(--paper);border:1.5px solid var(--ink);border-radius:4px;padding:3px 8px;box-shadow:2px 2px 0 var(--ink);z-index:1}
.lupe .lupe-ur{top:auto;bottom:8px}
