/* StudySlim 0.1.1: zonnig bureau, sticker-collage. Mobiel eerst. Licht is de standaard; donker alleen via de knop. */

/* ---------- Lettertypes (lokaal) ---------- */
@font-face{font-family:"Fraunces";src:url(../fonts/fraunces-latin-full-normal.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Fraunces";src:url(../fonts/fraunces-latin-ext-full-normal.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Fraunces";src:url(../fonts/fraunces-latin-full-italic.woff2) format("woff2");font-weight:100 900;font-style:italic;font-display:swap}
@font-face{font-family:"Atkinson Hyperlegible Next";src:url(../fonts/atkinson-hyperlegible-next-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Atkinson Hyperlegible Next";src:url(../fonts/atkinson-hyperlegible-next-latin-ext-400-normal.woff2) format("woff2");font-weight:400;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Atkinson Hyperlegible Next";src:url(../fonts/atkinson-hyperlegible-next-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Atkinson Hyperlegible Next";src:url(../fonts/atkinson-hyperlegible-next-latin-ext-600-normal.woff2) format("woff2");font-weight:600;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Atkinson Hyperlegible Next";src:url(../fonts/atkinson-hyperlegible-next-latin-700-normal.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url(../fonts/ibm-plex-mono-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url(../fonts/ibm-plex-mono-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap}

/* ---------- Tokens ---------- */
:root{
	--paper:#FFFCF5;       /* warm wit bureaublad */
	--card:#FFFFFF;        /* sticker, polaroid */
	--ink:#14120F;         /* tekst */
	--ink-2:#5E574C;       /* gedempte tekst */
	--line:#ECE4D3;        /* dunne lijn */
	--line-strong:#D9CDB6;
	--wash:#F6EFE1;        /* zacht vlak */
	/* Vakkleuren */
	--s-tomato:#FF5A36;--s-cobalt:#2B5CFF;--s-sunflower:#FFC736;--s-mint:#2FCB8A;--s-blush:#FFB3C7;--s-tangerine:#FF9A3C;
	--on-tomato:#14120F;--on-cobalt:#FFFFFF;--on-sunflower:#14120F;--on-mint:#14120F;--on-blush:#14120F;--on-tangerine:#14120F;
	/* Actief vak (standaard tomaat). Leeromgeving en voorbeeld zetten dit per vak. */
	--accent:var(--s-tomato);--on-accent:var(--on-tomato);
	/* Nakijkpennen en formules */
	--ok:#14895A;--warn:#B8650F;--bad:#D93A17;--in:#2B5CFF;--out:#C7401F;
	--focus:#2B5CFF;
	--tape:rgba(255,199,54,.62);
	/* Papierschaduw in lagen: contactlijn, korte schaduw, lange zachte schaduw. Leest als papier dat iets loskomt, nooit als gloed. */
	--shadow:0 0 0 1px rgba(60,44,20,.04),0 1px 1px rgba(60,44,20,.06),0 3px 6px -2px rgba(60,44,20,.08),0 14px 28px -14px rgba(60,44,20,.26);
	--shadow-lift:0 0 0 1px rgba(60,44,20,.04),0 2px 2px rgba(60,44,20,.05),0 10px 16px -8px rgba(60,44,20,.14),0 30px 46px -22px rgba(60,44,20,.32);
	--r-s:8px;--r-l:22px;
	--display:"Fraunces",Georgia,"Times New Roman",serif;
	--sans:"Atkinson Hyperlegible Next",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
	--mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
	--spring:cubic-bezier(.34,1.56,.64,1);
	--r:14px;--gutter:16px;--max:1180px;--tap:44px;
	--bar-h:64px;--wpbar:0px;
	color-scheme:light;
}
body.admin-bar{--wpbar:32px}
@media (max-width:782px){body.admin-bar{--wpbar:46px}}
/* Studeermodus: alleen als iemand hem zelf aanzet. Nooit automatisch. */
:root[data-theme="dark"]{
	--paper:#17140F;--card:#221E18;--ink:#F6F0E4;--ink-2:#C9BFAE;--line:#3A342B;--line-strong:#4A4337;--wash:#2A251E;
	--ok:#5FD7A0;--warn:#FFB35C;--bad:#FF8466;--in:#8EA8FF;--out:#FF9B7E;--focus:#8EA8FF;
	--tape:rgba(255,199,54,.42);
	--shadow:0 0 0 1px rgba(255,255,255,.04),0 1px 1px rgba(0,0,0,.3),0 4px 8px -3px rgba(0,0,0,.35),0 16px 30px -14px rgba(0,0,0,.65);
	--shadow-lift:0 0 0 1px rgba(255,255,255,.05),0 2px 2px rgba(0,0,0,.3),0 12px 18px -8px rgba(0,0,0,.4),0 32px 48px -22px rgba(0,0,0,.75);
	color-scheme:dark;
}

/* ---------- Basis ---------- */
*,*::before,*::after{box-sizing:border-box}
[hidden]:not(.grading__col){display:none!important}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:88px}
body{margin:0;min-height:100vh;color:var(--ink);background:var(--paper);font:400 17px/1.6 var(--sans);overflow-x:hidden;-webkit-font-smoothing:antialiased}
img,video{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration-thickness:1.5px;text-underline-offset:3px}
a:hover{text-decoration-color:var(--accent);text-decoration-thickness:3px}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:4px}
::selection{background:color-mix(in srgb,var(--s-sunflower) 60%,transparent)}
p{margin:0 0 12px;text-wrap:pretty}
h1,h2,h3{margin:0;font-weight:600}
.wrap{width:100%;max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.main{display:block}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:var(--paper);padding:8px 12px;z-index:100;border-radius:6px}
.skip:focus{left:8px}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.muted{color:var(--ink-2)}
.small{font-size:14.5px;line-height:1.5}
.num{font-family:var(--mono);font-feature-settings:"tnum" 1;letter-spacing:-.01em}
.eyebrow{display:inline-block;font:500 12.5px/1.4 var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-2)}
.display{font-family:var(--display);font-weight:780;font-size:clamp(46px,11.2vw,112px);line-height:.94;letter-spacing:-.038em;margin:0 0 24px;font-variation-settings:"SOFT" 60,"WONK" 1,"opsz" 144;text-wrap:balance}
.display--s{font-size:clamp(38px,8vw,68px)}
.h1{font:740 clamp(34px,6.6vw,56px)/1.02 var(--display);letter-spacing:-.03em;margin:0 0 14px;font-variation-settings:"SOFT" 60,"WONK" 1,"opsz" 120;text-wrap:balance}
.h2{font:740 clamp(30px,5.2vw,52px)/1.03 var(--display);letter-spacing:-.03em;margin:0 0 16px;font-variation-settings:"SOFT" 60,"WONK" 1,"opsz" 120;text-wrap:balance}
.h3{font:700 19px/1.3 var(--sans);margin:0 0 8px;letter-spacing:-.005em;text-wrap:balance}
.hand{font-family:var(--display);font-style:italic;font-weight:500;font-variation-settings:"SOFT" 100,"WONK" 1,"opsz" 48}
.lead{font-size:clamp(18px,1.6vw,20px);line-height:1.55;max-width:34em;text-wrap:pretty}
.hide-s{display:none}
@media (min-width:720px){.hide-s{display:inline-flex}}

/* ---------- Doodles ---------- */
.doodle{display:block;pointer-events:none;overflow:visible}
.hl{position:relative;white-space:nowrap;display:inline-block}
.hl__line{position:absolute;left:-2%;right:-2%;bottom:-.08em;width:104%;height:.26em;color:var(--accent);stroke-width:5;stroke-dasharray:420;stroke-dashoffset:420;animation:draw 1.1s .35s cubic-bezier(.6,.1,.2,1) forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.circle{position:relative;display:inline-block;padding:0 .24em;margin:0 -.08em 0 .02em}
.circle::after{content:"";position:absolute;inset:-.35em -.45em -.3em -.5em;pointer-events:none;background:no-repeat center/100% 100% url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 50' preserveAspectRatio='none'%3E%3Cpath d='M8 27c0-12 26-20 54-20 30 0 52 7 51 18-1 13-30 19-58 19C27 44 6 38 7 26 8 16 30 9 52 8' fill='none' stroke='%23FF5A36' stroke-width='2.6' stroke-linecap='round'/%3E%3C/svg%3E");clip-path:inset(0 100% 0 0);transition:clip-path 1s ease .3s}
.circle.is-in::after{clip-path:inset(0 0 0 0)}
.mark{background-image:linear-gradient(transparent 58%,color-mix(in srgb,var(--s-sunflower) 70%,transparent) 58%,color-mix(in srgb,var(--s-sunflower) 70%,transparent) 92%,transparent 92%);background-repeat:no-repeat;background-size:0 100%;transition:background-size .9s cubic-bezier(.3,.7,.2,1) .15s;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:0 .06em}
.mark.is-in,.mark--on{background-size:100% 100%}

/* ---------- Knipvlakken (cut paper) ---------- */
.cut{position:absolute;z-index:-1;pointer-events:none;background:var(--c)}
.cut--sun{--c:var(--s-sunflower)}.cut--blush{--c:var(--s-blush)}.cut--cobalt{--c:var(--s-cobalt)}.cut--mint{--c:var(--s-mint)}.cut--tangerine{--c:var(--s-tangerine)}.cut--tomato{--c:var(--s-tomato)}
:root[data-theme="dark"] .cut{filter:brightness(.82) saturate(.92)}
section{position:relative;isolation:isolate;overflow-x:clip}

/* ---------- Stickers, polaroids, plakband ---------- */
.polaroid{position:relative;margin:0;padding:10px 10px 34px;background:var(--card);border-radius:3px;box-shadow:var(--shadow);transform:rotate(var(--tilt,0deg));transition:transform .5s var(--spring),box-shadow .35s ease}
.polaroid--small{padding:7px 7px 22px}
.polaroid--wide{padding-bottom:12px}
.polaroid img,.polaroid video,.polaroid .ph{width:100%;border-radius:2px;background:var(--wash);object-fit:cover}
.polaroid:hover{transform:rotate(calc(var(--tilt,0deg) * .4)) translateY(-6px);box-shadow:var(--shadow-lift)}
.sheet-card{position:relative;background:var(--card);border-radius:var(--r);box-shadow:var(--shadow);padding:18px;transform:rotate(var(--tilt,0deg))}
.tape{position:absolute;top:-13px;left:50%;width:96px;height:26px;margin-left:-48px;background:var(--tape);transform:rotate(-4deg);transform-origin:8% 50%;z-index:2;transition:transform .45s var(--spring),filter .3s;
	background-image:linear-gradient(180deg,rgba(255,255,255,.28),rgba(255,255,255,0) 45%,rgba(0,0,0,.04));
	clip-path:polygon(0 0,4% 18%,0 36%,4% 54%,0 72%,4% 90%,0 100%,100% 100%,96% 82%,100% 64%,96% 46%,100% 28%,96% 10%,100% 0)}
.tape--blush{background:color-mix(in srgb,var(--s-blush) 75%,transparent)}
.tape--mint{background:color-mix(in srgb,var(--s-mint) 55%,transparent)}
.tape--sun{background:var(--tape)}
.stamp{display:inline-block;font:600 13px/1 var(--mono);text-transform:uppercase;letter-spacing:.14em;color:var(--s-tomato);border:2px solid currentColor;border-radius:6px;padding:6px 10px;transform:rotate(-6deg)}

/* Foto-placeholder: zichtbaar tot er een foto is. */
.ph{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:100%;min-height:120px;padding:12px;text-align:center;
	background:repeating-linear-gradient(-45deg,var(--wash) 0 12px,color-mix(in srgb,var(--wash) 60%,var(--card)) 12px 24px);border:2px dashed var(--line-strong);border-radius:4px;color:var(--ink-2)}
.ph__stamp{font:600 13px/1 var(--mono);letter-spacing:.14em;color:var(--s-tomato);border:2px solid currentColor;border-radius:5px;padding:5px 8px;transform:rotate(-4deg);background:var(--card)}
.ph__name,.ph__size{font-size:12px;line-height:1.3;word-break:break-all}

/* Video in een lijst. Nooit tekst eroverheen. */
.vid{width:100%;height:auto;background:var(--wash);object-fit:cover}

/* ---------- Logo (0.1.3): woordmerk met potlood-l en slijper als punt ---------- */
/* Vloeiend verloop door het vakkenpalet. Alleen buren die zuiver mengen (geen paars of cyaan):
   letters tomaat, mandarijn, amber, blush; potlood zonnebloem, mandarijn, tomaat, blush. Kobalt en mint komen via de slijper (vakkleur). */
@property --ld1{syntax:"<color>";inherits:true;initial-value:#F2492A}
@property --ld2{syntax:"<color>";inherits:true;initial-value:#EE7414}
@property --ld3{syntax:"<color>";inherits:true;initial-value:#DB9200}
@property --ld4{syntax:"<color>";inherits:true;initial-value:#E2508A}
@property --lb1{syntax:"<color>";inherits:true;initial-value:#FFC736}
@property --lb2{syntax:"<color>";inherits:true;initial-value:#FF9A3C}
@property --lb3{syntax:"<color>";inherits:true;initial-value:#FF6A47}
.logo{display:inline-flex;align-items:center;min-height:var(--tap);text-decoration:none;color:var(--ink);-webkit-tap-highlight-color:transparent;position:relative}
.sitebar .logo,.appbar .logo{view-transition-name:ss-logo}
.logo svg{display:block;overflow:visible}
.logo__full svg{height:36px;width:auto;aspect-ratio:7900/1820}
.logo__mono{display:none}
.logo__mono svg{height:40px;width:40px}
.logo:focus-visible{outline-offset:6px}
.lg-ink{fill:var(--ink)}
.lg-eraser{fill:#F7A8BC}.lg-eraser-d{fill:#E98AA3}
.lg-metal{fill:#D8D2C6}.lg-metal-d{fill:#B3AB9C}
.lg-hi{fill:#fff;fill-opacity:.26}.lg-lo{fill:#000;fill-opacity:.12}
.lg-wood{fill:#F3DDB8}.lg-wood-d{fill:#E2BF8C}
.lg-lead{fill:#14120F}
.lg-sharp{fill:var(--logo-accent,var(--accent));transition:fill .5s ease}
.lg-sharpener .lg-hi{fill-opacity:.2}
.lg-hole{fill:#14120F;fill-opacity:.38}.lg-hole-in{fill:#14120F}
.lg-spark{fill:#FFFCF5;stroke:#DB9200;stroke-width:10;stroke-linejoin:round}
.lg-wood-s{stroke:#F3DDB8}.lg-sharp-s{stroke:var(--logo-accent,var(--accent))}
.lg-underline{stroke:var(--ink);stroke-dasharray:9000;stroke-dashoffset:9000;opacity:0}
.lg-shine{opacity:0}
.lg-tip--sharp{opacity:0}
.logo.is-sharp .lg-tip--sharp{opacity:1}.logo.is-sharp .lg-tip--blunt{opacity:0}
.lg-pencil,.lg-pencil-slot{transform-box:fill-box;transform-origin:50% 100%}
.lg-sharpener{transform-box:fill-box;transform-origin:50% 100%}
.lg-facets,.lg-shaving,.lg-sparkle,.lg-l{transform-box:fill-box;transform-origin:50% 50%}
.lg-sparkle{opacity:0}
/* Lichte vakkleuren: een diepere tint voor de slijper, zodat hij naast het potlood blijft staan. */
[data-accent="sunflower"],.accent-sunflower{--logo-accent:#E39A00}
[data-accent="blush"],.accent-blush{--logo-accent:#E2508A}
[data-accent="mint"],.accent-mint{--logo-accent:#14935F}
[data-accent="tangerine"],.accent-tangerine{--logo-accent:#E86A0C}
:root[data-theme="dark"] .logo svg{--ld1:#FF6A47;--ld2:#FF9A3C;--ld3:#FFC736;--ld4:#FF9DB8}
@keyframes lg-flow{
	0%,100%{--ld1:#F2492A;--ld2:#EE7414;--ld3:#DB9200;--ld4:#E2508A;--lb1:#FFC736;--lb2:#FF9A3C;--lb3:#FF6A47}
	25%{--ld1:#EE7414;--ld2:#DB9200;--ld3:#E2508A;--ld4:#F2492A;--lb1:#FF9A3C;--lb2:#FF6A47;--lb3:#FF9DB8}
	50%{--ld1:#DB9200;--ld2:#E2508A;--ld3:#F2492A;--ld4:#EE7414;--lb1:#FF6A47;--lb2:#FF9DB8;--lb3:#FFC736}
	75%{--ld1:#E2508A;--ld2:#F2492A;--ld3:#EE7414;--ld4:#DB9200;--lb1:#FF9DB8;--lb2:#FFC736;--lb3:#FF9A3C}
}
@keyframes lg-flow-dark{
	0%,100%{--ld1:#FF6A47;--ld2:#FF9A3C;--ld3:#FFC736;--ld4:#FF9DB8;--lb1:#FFC736;--lb2:#FF9A3C;--lb3:#FF6A47}
	25%{--ld1:#FF9A3C;--ld2:#FFC736;--ld3:#FF9DB8;--ld4:#FF6A47;--lb1:#FF9A3C;--lb2:#FF6A47;--lb3:#FF9DB8}
	50%{--ld1:#FFC736;--ld2:#FF9DB8;--ld3:#FF6A47;--ld4:#FF9A3C;--lb1:#FF6A47;--lb2:#FF9DB8;--lb3:#FFC736}
	75%{--ld1:#FF9DB8;--ld2:#FF6A47;--ld3:#FF9A3C;--ld4:#FFC736;--lb1:#FF9DB8;--lb2:#FFC736;--lb3:#FF9A3C}
}
/* Glans: een zachte streep licht schuift over het woordmerk, zoals licht over glanzend papier. */
@keyframes lg-shine{0%{opacity:0;transform:translateX(0) skewX(-18deg)}4%{opacity:1}22%{opacity:1;transform:translateX(9800px) skewX(-18deg)}24%,100%{opacity:0;transform:translateX(9800px) skewX(-18deg)}}
@keyframes lg-spark{0%,86%,100%{opacity:0;transform:scale(.2) rotate(0)}91%{opacity:1;transform:scale(1) rotate(45deg)}96%{opacity:0;transform:scale(.5) rotate(90deg)}}
@keyframes lg-wave{0%,100%{transform:none}40%{transform:translateY(-130px)}70%{transform:translateY(26px)}}
@media (prefers-reduced-motion:no-preference){
	.logo svg{animation:lg-flow 16s linear infinite}
	:root[data-theme="dark"] .logo svg{animation-name:lg-flow-dark}
	.logo .lg-shine{animation:lg-shine 7.5s cubic-bezier(.45,.05,.35,1) 1.6s infinite}
	.logo .lg-sparkle{animation:lg-spark 9s ease-out 3s infinite}
	.logo.is-wave .lg-l{animation:lg-wave .62s var(--spring) both;animation-delay:calc(var(--i) * 45ms)}
}
.logo.is-busy .lg-sparkle,.logo.is-busy .lg-shine{animation-play-state:paused;opacity:0}
/* Ingeklapte kop: alleen het monogram (potlood in de slijper). */
.is-condensed .logo__full{display:none}
.is-condensed .logo__mono{display:block}
.logo--static .logo__full svg{height:32px}
.logo--static svg{animation:none!important}

/* ---------- Knoppen ---------- */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:var(--tap);padding:10px 22px;border:2px solid var(--ink);border-radius:999px;background:var(--ink);color:var(--paper);font-weight:700;letter-spacing:-.005em;text-decoration:none;cursor:pointer;
	box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 1px 2px rgba(20,18,15,.18),0 8px 18px -10px rgba(20,18,15,.5);transition:transform .35s var(--spring),box-shadow .25s ease,background-color .2s,translate .5s var(--spring)}
.btn:hover{text-decoration:none;transform:translateY(-2px);box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 2px 3px rgba(20,18,15,.16),0 16px 26px -12px rgba(20,18,15,.5)}
.btn:active{transform:translateY(0) scale(.985);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 2px rgba(20,18,15,.2)}
.btn .icon{transition:transform .35s var(--spring)}
.btn:hover .icon:last-child{transform:translateX(3px)}
.btn:focus-visible{outline:3px solid var(--focus);outline-offset:4px;border-radius:999px}
.btn[disabled]{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
.btn--big{min-height:56px;padding:14px 26px;font-size:17.5px}
.btn--full{width:100%}
.btn--small{min-height:var(--tap);padding:8px 16px;font-size:15px}
.btn--ghost{background:transparent;color:var(--ink);border-color:var(--ink);box-shadow:none}
.btn--ghost:hover{background:var(--card);box-shadow:var(--shadow)}
.btn--paper{background:var(--paper);color:var(--ink);border-color:var(--paper);box-shadow:0 1px 2px rgba(20,18,15,.15),0 10px 22px -12px rgba(20,18,15,.45)}
.btn--accent{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.btn .icon{width:20px;height:20px}
.icon{width:22px;height:22px;flex:none}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:var(--tap);height:var(--tap);flex:none;border:0;border-radius:999px;background:transparent;cursor:pointer;color:var(--ink);text-decoration:none;transition:background-color .2s,transform .3s var(--spring)}
.icon-btn:hover{background:var(--wash)}
.icon-btn--ink{background:var(--ink);color:var(--paper)}
.icon-btn--ink:hover{background:var(--ink);transform:rotate(-8deg)}
.icon-btn--accent{background:var(--accent);color:var(--on-accent)}
.icon-btn--accent:hover{background:var(--accent);transform:rotate(-8deg) scale(1.05)}
.icon-btn[aria-pressed="true"]{background:var(--s-tomato);color:#14120F}
.js-theme[aria-pressed="true"]{background:var(--wash);color:var(--ink)}
.link-btn{display:inline-flex;align-items:center;gap:4px;min-height:var(--tap);padding:0 4px;border:0;background:none;cursor:pointer;color:var(--ink);font-size:15px;font-weight:600;text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:4px}
.link-btn:hover{text-decoration-thickness:4px}
.link-btn .icon{width:18px;height:18px}

/* ---------- Koppen (site en app) ---------- */
.sitebar,.appbar{position:sticky;top:var(--wpbar);z-index:30;background:color-mix(in srgb,var(--paper) 94%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:box-shadow .3s}
.sitebar.is-condensed,.appbar.is-condensed{box-shadow:0 6px 18px -14px rgba(60,44,20,.5)}
.sitebar__in{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:var(--bar-h)}
.sitebar__tools{display:flex;align-items:center;gap:2px}
.sitebar__link{display:inline-flex;align-items:center;min-height:var(--tap);padding:0 12px;font-weight:700;text-decoration:none;font-size:15.5px;border-radius:999px}
.sitebar__link:hover{background:var(--wash)}
.lang{display:flex}
.lang a{display:inline-flex;align-items:center;justify-content:center;min-width:var(--tap);min-height:var(--tap);font:500 13px var(--mono);text-decoration:none;color:var(--ink-2);border-radius:999px}
.lang a[aria-current="true"]{color:var(--ink);text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:3px;text-underline-offset:6px}
.appbar__in{display:flex;align-items:center;gap:8px;min-height:var(--bar-h);padding:0 var(--gutter);max-width:1440px;margin:0 auto}
.appbar .logo__full svg{height:32px}
.appnav{display:none}
.appbar__tools{margin-left:auto;display:flex;align-items:center;gap:2px}
.appbar__tools .lang,.appbar__tools .js-theme{display:none}
.avatar{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--accent);color:var(--on-accent);font-size:14px;font-weight:600}
.sheet{position:fixed;inset:calc(var(--bar-h) + var(--wpbar)) 0 auto 0;z-index:29;background:var(--paper);box-shadow:var(--shadow);padding:8px var(--gutter) 16px}
.sheet nav{display:grid}
.sheet nav a{display:flex;align-items:center;min-height:52px;border-bottom:1px solid var(--line);text-decoration:none;font-weight:700;font-size:18px}
.sheet nav a[aria-current="page"]{color:var(--ink);text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:4px;text-underline-offset:6px}
.sheet__tools{display:flex;align-items:center;gap:8px;padding-top:8px}
@media (min-width:900px){
	.appnav{display:flex;gap:2px;margin-left:20px}
	.appnav a{display:inline-flex;align-items:center;min-height:var(--tap);padding:0 14px;text-decoration:none;font-weight:700;color:var(--ink-2);border-radius:999px;transition:background-color .2s,transform .3s var(--spring)}
	.appnav a:hover{color:var(--ink);background:var(--wash)}
	.appnav a[aria-current="page"]{color:var(--on-accent);background:var(--accent);transform:rotate(-2deg)}
	.appbar__tools .lang,.appbar__tools .js-theme{display:inline-flex}
	.appbar__menu{display:none}
	.sheet{display:none!important}
}

/* ---------- Landingspagina: hero ---------- */
.hero{padding:28px 0 40px;overflow:hidden}
.hero__in{display:grid;gap:36px;align-items:center}
.hero__cut{width:68vw;max-width:560px;aspect-ratio:1;right:-18vw;top:38%;clip-path:polygon(8% 12%,62% 0,100% 18%,94% 70%,70% 100%,16% 92%,0 48%);
	background:radial-gradient(circle at var(--mx,70%) var(--my,30%),color-mix(in srgb,#fff 34%,var(--c)) 0,var(--c) 46%),var(--c)}
.hero__cut2{width:150px;height:110px;left:-40px;top:62%;clip-path:polygon(0 20%,80% 0,100% 70%,20% 100%);opacity:.8}
.hero__actions{margin:26px 0 12px}
.hero__note{display:flex;align-items:center;gap:10px;color:var(--ink-2);font-size:15px;margin:0}
.hero__arrow{width:52px;height:36px;color:var(--accent);transform:scaleY(-1) rotate(10deg);flex:none}
.hero__visual{position:relative;width:min(100%,420px);margin:0 auto;padding:0 28px 0 0}
.hero__polaroid{width:78%;margin-left:auto}
.hero__polaroid .vid{aspect-ratio:4/5}
.qmark{position:absolute;left:6px;top:12%;width:34%;max-width:150px;aspect-ratio:120/200;z-index:3;padding:10% 8%;background:var(--card);border-radius:18px;box-shadow:var(--shadow);transform:rotate(-8deg)}
.qmark__svg{width:100%;height:100%;overflow:visible}
.qmark__glyph{stroke:var(--s-cobalt);transition:stroke .3s}
.qmark__dot{fill:var(--s-cobalt);transition:fill .3s}
.qmark.is-bang .qmark__glyph{stroke:var(--s-tomato)}
.qmark.is-bang .qmark__dot{fill:var(--s-tomato)}
.hero__star{position:absolute;width:44px;height:44px;right:0;top:-6px;color:var(--s-tangerine);stroke-width:4}
.hero__squiggle{position:absolute;width:110px;height:36px;left:6%;bottom:-18px;color:var(--s-mint);stroke-width:5}
@media (min-width:960px){
	.hero{padding:56px 0 72px}
	.hero__in{grid-template-columns:1.15fr .85fr;gap:56px}
	.hero__visual{width:100%;max-width:440px}
	.hero__cut{right:-5vw;top:6%;width:min(42vw,560px)}
}

/* ---------- Voorbeeld per vak ---------- */
.demo-sec__cut{left:0;right:0;top:120px;bottom:40px;clip-path:polygon(0 6%,22% 0,64% 4%,100% 0,100% 92%,74% 100%,30% 95%,0 100%);opacity:.12}
:root[data-theme="dark"] .demo-sec__cut{opacity:.2}
.demo-sec__in{display:grid;gap:24px}
.demo-sec__head{position:relative}
.demo-sec__arrow{width:40px;height:64px;color:var(--accent);margin-top:8px}
@media (min-width:960px){.demo-sec__in{grid-template-columns:.8fr 1.2fr;gap:56px;align-items:start}.demo-sec__head{position:sticky;top:120px}}
.demo{min-width:0}
.demo__tabs{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 22px}
.demo__tab{min-height:var(--tap);padding:0 16px;border:0;border-radius:8px;background:var(--card);color:var(--ink);cursor:pointer;font-weight:700;font-size:15px;box-shadow:var(--shadow);transform:rotate(var(--tilt,0deg));transition:transform .4s var(--spring),background-color .2s,color .2s}
.demo__tab:hover{transform:rotate(0) translateY(-3px)}
.demo__tab[aria-selected="true"]{background:var(--tab);color:var(--on-tab);transform:rotate(0) scale(1.06)}
.demo__card{padding:22px 18px 18px}
.quick--demo{margin-top:14px}

/* ---------- Zo werkt het ---------- */
.section{padding:56px 0}
@media (min-width:960px){.section{padding:96px 0}}
.how__head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:28px}
.how__squiggle{width:110px;height:36px;color:var(--s-tomato);stroke-width:5}
.steps{list-style:none;margin:0;padding:0;display:grid;gap:44px}
.step{position:relative}
.step__media{margin:0 auto 22px;max-width:320px}
.step__media .vid,.step__media .ph{aspect-ratio:4/5}
.step__n{position:absolute;top:-14px;left:2px;z-index:3;display:flex;align-items:center;justify-content:center;width:52px;height:52px;margin:0;border-radius:50%;background:var(--accent);color:var(--on-accent);font:800 26px/1 var(--display);transform:rotate(-10deg);box-shadow:var(--shadow)}
.step:nth-child(2) .step__n{background:var(--s-cobalt);color:#fff}
.step:nth-child(3) .step__n{background:var(--s-mint);color:#14120F}
@media (min-width:860px){
	.steps{grid-template-columns:repeat(3,1fr);gap:36px;align-items:start}
	.step:nth-child(2){margin-top:56px}
	.step:nth-child(3){margin-top:18px}
}
.lecture{display:grid;gap:24px;align-items:center;margin-top:56px}
.lecture__media{max-width:520px}
.lecture__media .vid{aspect-ratio:16/9}
@media (min-width:860px){.lecture{grid-template-columns:1.1fr 1fr;gap:48px;margin-top:80px}.lecture__copy{max-width:30em}}

/* ---------- Avond voor de toets ---------- */
.promise__cut{width:70%;height:78%;left:-6%;top:12%;clip-path:polygon(0 8%,70% 0,100% 30%,88% 100%,10% 92%);opacity:.22}
.promise__in{display:grid;gap:36px;align-items:center}
.promise__media{max-width:360px;margin:0 auto}
.promise__media .vid{aspect-ratio:4/5}
@media (min-width:860px){.promise__in{grid-template-columns:5fr 7fr;gap:64px}}
.note{position:relative;margin-top:26px;max-width:30em;padding:20px 20px 12px;background:#FFF3B8;color:#14120F;border-radius:3px;box-shadow:var(--shadow);transform:rotate(var(--tilt,0deg))}
:root[data-theme="dark"] .note{background:#3A3420;color:var(--ink)}
.note__star{position:absolute;right:-14px;top:-18px;width:44px;height:44px;color:var(--s-tomato);stroke-width:4}
.miniplan{list-style:none;margin:0;padding:0}
.miniplan li{display:grid;grid-template-columns:64px 1fr;gap:8px;padding:8px 0;border-bottom:1px dashed rgba(20,18,15,.18)}
.miniplan li:last-child{border-bottom:0}
.miniplan .is-break{opacity:.7}
.miniplan .is-sleep{font-weight:700}

/* ---------- Vakken ---------- */
.strip{position:relative;max-width:760px;margin:0 auto 34px;transform:rotate(var(--tilt,0deg));filter:drop-shadow(0 10px 14px rgba(60,44,20,.2))}
.strip .vid{aspect-ratio:8/3;width:100%;
	--torn:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 800 300' preserveAspectRatio='none'%3E%3Cpath d='M0 9 L23 4 L41 10 L67 3 L88 8 L117 2 L139 9 L166 5 L190 11 L214 4 L243 8 L262 3 L291 10 L318 5 L340 9 L371 2 L396 8 L419 4 L447 10 L470 3 L498 7 L523 2 L549 9 L571 5 L602 11 L627 3 L650 8 L679 4 L703 10 L731 3 L756 8 L780 4 L800 8 L800 292 L776 297 L749 290 L722 296 L698 291 L671 298 L646 292 L620 297 L593 289 L566 296 L541 291 L512 298 L489 292 L461 297 L437 290 L410 296 L384 291 L357 298 L331 293 L306 297 L279 290 L252 296 L229 291 L201 298 L176 292 L150 297 L123 290 L97 296 L72 291 L46 298 L21 292 L0 296 Z'/%3E%3C/svg%3E");
	-webkit-mask:var(--torn) center/100% 100% no-repeat;mask:var(--torn) center/100% 100% no-repeat}
.strip--bottom{margin:40px auto 0;max-width:640px}
.subjects__head{text-align:center;max-width:36em;margin:0 auto 28px}
.tiles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 16px}
@media (min-width:760px){.tiles{grid-template-columns:repeat(3,1fr);gap:28px}}
@media (min-width:1100px){.tiles{grid-template-columns:repeat(6,1fr);gap:20px}}
.tile{position:relative;display:flex;flex-direction:column;align-items:center;gap:10px;padding:14px 12px 16px;background:var(--tile);color:var(--on-tile);border-radius:22px 18px 24px 16px;box-shadow:var(--shadow);transform:rotate(var(--tilt,0deg));transition:transform .45s var(--spring),box-shadow .3s}
.tile:hover{transform:rotate(0) translateY(-6px) scale(1.03);box-shadow:var(--shadow-lift)}
.tile__art{position:relative;display:block;width:100%;aspect-ratio:1;border-radius:14px;overflow:hidden;background:color-mix(in srgb,var(--card) 82%,var(--tile))}
.tile__doodle{position:absolute;inset:16%;width:68%;height:68%;color:#14120F;stroke-width:4}
.tile__photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tile .ph.tile__photo{background:none;border:0;min-height:0;justify-content:flex-end;align-items:flex-end;padding:6px}
.tile .ph.tile__photo .ph__name,.tile .ph.tile__photo .ph__size{display:none}
.tile .ph.tile__photo .ph__stamp{font-size:9.5px;padding:3px 5px}
.tile__name{font:740 clamp(16px,4.4vw,21px)/1.1 var(--display);letter-spacing:-.015em;font-variation-settings:"SOFT" 60,"WONK" 1;text-align:center;max-width:100%}
@media (min-width:760px){.tile__name{font-size:20px}}
@media (min-width:1100px){.tile__name{font-size:clamp(16px,1.3vw,19px);letter-spacing:-.02em}}
.tiles__more{text-align:center;margin:26px auto 0;max-width:40em;color:var(--ink-2);display:flex;justify-content:center;align-items:center;gap:8px;flex-wrap:wrap}
.tiles__spark{width:26px;height:26px;color:var(--s-sunflower);stroke-width:5}

/* ---------- Testcase en oprichter ---------- */
.proof__cut{width:52%;height:70%;right:0;top:16%;clip-path:polygon(12% 0,100% 8%,100% 100%,0 86%);opacity:.18}
.proof__in{display:grid;gap:48px;align-items:center}
.proof__copy{padding:30px 22px 26px;max-width:40em}
.proof__copy .stamp{position:absolute;top:-16px;right:18px;background:var(--card)}
.proof__result{display:inline-block;margin:6px 0 0;padding:6px 10px;border:2px dashed var(--line-strong);border-radius:6px;color:var(--ink-2)}
.proof__bulb{position:absolute;width:56px;height:56px;right:-12px;bottom:-22px;color:var(--s-sunflower);stroke-width:4}
.founder{display:grid;gap:26px;align-items:center;grid-template-columns:minmax(0,1fr)}
.founder__photo{max-width:250px;margin:0 auto;padding-bottom:12px}
.founder__photo img{aspect-ratio:4/5}
.founder__photo figcaption{text-align:center;font-size:21px;margin-top:8px;color:#14120F}
:root[data-theme="dark"] .founder__photo figcaption{color:var(--ink)}
.founder__text{margin:8px 0 6px;font:500 21px/1.45 var(--display);font-variation-settings:"SOFT" 100,"opsz" 24}
.founder__text p{margin:0}
.founder__sign{position:relative;display:inline-block;font-size:30px;margin:4px 0 0}
.founder__line{position:absolute;left:0;bottom:-6px;width:100%;height:12px;color:var(--s-blush);stroke-width:6}
@media (min-width:600px){.founder{grid-template-columns:220px minmax(0,1fr)}.founder__photo{margin:0}}
@media (min-width:1024px){.proof__in{grid-template-columns:1fr 1fr;gap:64px}}

/* ---------- Prijzen ---------- */
.plans{display:grid;gap:22px;margin-top:28px}
@media (min-width:760px){.plans{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}}
.plan-card{position:relative;display:flex;flex-direction:column;gap:6px;padding:28px 26px 26px;background:var(--card);border-radius:var(--r);box-shadow:var(--shadow);transform:rotate(-.5deg);transition:transform .45s var(--spring),box-shadow .3s}
.plan-card:nth-child(2){transform:rotate(.5deg)}
.plan-card:hover{transform:rotate(0) translateY(-4px);box-shadow:var(--shadow-lift)}
.plan-card::before{content:"";position:absolute;top:-12px;left:28px;width:84px;height:24px;background:var(--tape);transform:rotate(-5deg)}
.plan-card:nth-child(2)::before{background:color-mix(in srgb,var(--s-blush) 75%,transparent);left:auto;right:28px;transform:rotate(4deg)}
.plan-card--pick{cursor:pointer}
.plan-card--pick input{position:absolute;top:24px;right:24px;width:24px;height:24px;accent-color:var(--s-tomato)}
.plan-card--pick:has(input:checked){outline:3px solid var(--accent);outline-offset:3px}
.plan-card__name{font:750 30px/1.1 var(--display);font-variation-settings:"SOFT" 100,"WONK" 1}
.plan-card__price{display:flex;flex-direction:column;gap:2px;margin:12px 0;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.price{font-size:30px;font-weight:500}
.price--tbd{font-size:20px;color:var(--ink-2)}
.plan-card .btn{margin-top:auto;align-self:stretch}
.ticks{list-style:none;margin:0 0 18px;padding:0}
.ticks li{display:flex;gap:8px;padding:5px 0}
.ticks .icon{color:var(--ok);width:20px;height:20px;margin-top:2px}

/* ---------- Eerlijke vragen ---------- */
.faq__in{display:grid;gap:18px}
@media (min-width:860px){.faq__in{grid-template-columns:4fr 8fr;gap:56px}}
.faq__arrow{width:40px;height:66px;color:var(--s-cobalt);margin-top:8px}
.faq__list{margin:0}
.faq__list>div{padding:18px 0;border-bottom:2px dotted var(--line-strong)}
.faq__list dt{font-weight:700;font-size:18px;margin-bottom:4px}
.faq__list dd{margin:0;color:var(--ink-2)}

/* ---------- Slot ---------- */
.cta{padding-bottom:72px}
.cta__in{display:grid;gap:44px;align-items:center}
.cta__block{position:relative;padding:34px 24px;background:var(--s-tomato);color:#14120F;border-radius:6px 28px 8px 24px;transform:rotate(-1deg)}
.cta__block .lead{color:#14120F}
.cta__block .btn--paper{background:#FFFCF5;color:#14120F;border-color:#FFFCF5}
.cta__art{position:relative;max-width:460px;margin:0 auto;width:100%;padding-bottom:40px}
.cta__photo .ph,.cta__photo img{aspect-ratio:3/2}
.cta__sticker{position:absolute;right:-14px;bottom:-30px;width:30%;max-width:132px}
.cta__sticker .vid{aspect-ratio:4/5}
@media (min-width:860px){.cta__in{grid-template-columns:1fr 1fr;gap:64px}.cta__block{padding:48px 40px}}

/* ---------- Footer ---------- */
.footer{padding:40px 0 calc(36px + env(safe-area-inset-bottom));background:var(--wash);font-size:15px}
.footer__in{display:grid;gap:18px}
.footer__links{display:flex;flex-wrap:wrap;gap:0 16px}
.footer__links a{display:inline-flex;align-items:center;min-height:var(--tap)}
@media (min-width:760px){.footer__in{grid-template-columns:1fr 1fr}}

/* ---------- Formulieren ---------- */
.form{display:block}
.field{margin:0 0 18px;border:0;padding:0;min-width:0}
.field label,.field legend{display:block;font-weight:700;margin-bottom:6px;font-size:15.5px;padding:0}
.field label input,.field label select{margin-top:6px}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],input[type=time],input[type=url],select,textarea{width:100%;min-width:0;min-height:50px;padding:12px 14px;border:1.5px solid var(--line-strong);border-radius:var(--r);background:var(--card);font-size:16px;line-height:1.4;box-shadow:inset 0 1px 2px rgba(60,44,20,.05);transition:border-color .2s,box-shadow .2s}
input:hover,select:hover,textarea:hover{border-color:color-mix(in srgb,var(--ink) 35%,var(--line-strong))}
::placeholder{color:color-mix(in srgb,var(--ink-2) 75%,transparent)}
textarea{resize:vertical}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 4px color-mix(in srgb,var(--s-sunflower) 50%,transparent)}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none}
input[type=number],input[type=date],input[type=time]{font-family:var(--mono)}
.pass{position:relative;display:block}
.pass input{padding-right:54px}
.pass .icon-btn{position:absolute;right:3px;top:3px}
.choices{display:flex;flex-wrap:wrap;gap:10px}
.choices--grid .choice,.choices--row .choice{flex:1 1 140px}
.choice,.field .choice{display:flex;align-items:center;gap:10px;min-height:50px;min-width:0;padding:8px 14px;border:1.5px solid var(--line-strong);border-radius:var(--r);background:var(--card);cursor:pointer;font-weight:500!important;font-size:16px;margin:0!important;line-height:1.3;transition:border-color .2s,transform .3s var(--spring),box-shadow .2s}
.choice span{min-width:0;overflow-wrap:anywhere}
.choice:hover{border-color:var(--line-strong)}
.choice input{width:20px;height:20px;flex:none;accent-color:var(--s-tomato);margin:0}
.choice:has(input:checked){border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);transform:rotate(-.6deg)}
.choice--plain,.field .choice--plain{border:0;background:none;align-items:flex-start;padding:8px 0;box-shadow:none}
.choice--plain:has(input:checked){transform:none;box-shadow:none;border-color:transparent}
.choice--plain input{margin-top:3px}
.choice--sub{flex-basis:100%!important;margin-top:10px!important}
.row2,.row3{display:grid;gap:0 12px}
@media (min-width:520px){.row2{grid-template-columns:1fr 1fr}.row3{grid-template-columns:repeat(3,minmax(0,1fr))}}
input[type=time]{padding-left:10px;padding-right:8px}
.ss-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.notice{display:flex;gap:10px;align-items:flex-start;margin:0 0 16px;padding:2px 0;font-weight:700}
.notice .icon{margin-top:1px}
.notice--error .icon{color:var(--bad)}
.notice--ok .icon{color:var(--ok)}
.margin-note{display:flex;gap:10px;align-items:flex-start;margin:0 0 16px}
.margin-note .icon{color:var(--s-tomato);margin-top:2px}

/* ---------- Aanmelden en inloggen ---------- */
.auth{position:relative;padding:28px var(--gutter) 56px}
.auth__card{position:relative;max-width:580px;margin:0 auto}
@media (min-width:720px){.auth{padding-top:56px}.auth__card{background:var(--card);border-radius:14px;box-shadow:var(--shadow);padding:44px}.auth__card::before{content:"";position:absolute;top:-13px;left:50%;width:110px;height:26px;margin-left:-55px;background:var(--tape);transform:rotate(-3deg)}}
.stepbar{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0 24px}
.stepbar span{height:6px;border-radius:6px;background:var(--line)}
.stepbar .is-on{background:var(--accent)}

/* ---------- App-pagina's ---------- */
.app-page{padding-top:28px;padding-bottom:56px}
.app-page__head{margin-bottom:28px}
@media (min-width:960px){.app-page{padding-top:44px}}
.empty{padding:24px;background:var(--card);border-radius:var(--r);box-shadow:var(--shadow);transform:rotate(-.6deg)}
.kv{margin:0 0 16px}
.kv>div{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--line)}
.kv dt{color:var(--ink-2)}
.kv dd{margin:0;text-align:right}
.table{width:100%;border-collapse:collapse;font-size:15px}
.table th,.table td{text-align:left;padding:10px 8px 10px 0;border-bottom:1px solid var(--line);vertical-align:top}
.table th{font:500 12px var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2)}
.r{text-align:right!important}

/* ---------- Opgavekaart ---------- */
.taskcard{min-width:0}
.taskcard__top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.taskcard__meta{font-size:12.5px;color:var(--ink-2);margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.taskcard--demo .taskcard__meta{margin-bottom:6px}
.taskcard__title{font:750 23px/1.2 var(--display);font-variation-settings:"SOFT" 100,"WONK" 1;margin:2px 0 6px}
.taskcard__body{font-size:16.5px;overflow-x:auto;max-width:100%}
.taskcard__body .katex-display{margin:6px 0;text-align:left}
.taskcard__formula{overflow-x:auto;overflow-y:hidden}
.taskcard__body pre,.bubble pre{margin:6px 0;padding:10px 12px;background:var(--wash);border-radius:8px;font:14px/1.5 var(--mono);overflow-x:auto;white-space:pre}
.taskcard__focus{margin:12px 0 0;padding-top:10px;border-top:2px dotted var(--line-strong);font-size:15px}
.taskcard__progress{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin-top:8px}
.segments{display:inline-flex;gap:5px;flex:1 1 80px;min-width:60px;max-width:220px}
.segments i{height:7px;flex:1;border-radius:7px;background:var(--line)}
.segments i.is-done{background:var(--accent)}
.segments i.is-now{background:color-mix(in srgb,var(--accent) 45%,var(--line))}
.taskcard__more .icon{transition:transform .2s}
.taskcard__more[aria-expanded="true"] .icon{transform:rotate(180deg)}

/* ---------- Snelle knoppen ---------- */
.quick{display:flex;gap:8px;padding:2px 0}
.qa{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:var(--tap);padding:0 14px;border:2px solid var(--ink);border-radius:999px;background:var(--card);cursor:pointer;font-size:15px;font-weight:600;white-space:nowrap;transition:transform .3s var(--spring),background-color .2s}
.qa:hover{transform:translateY(-2px) rotate(-1.5deg)}
.qa[aria-pressed="true"]{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.qa[disabled]{opacity:.5;transform:none}
.qa--quiet{border-color:var(--line-strong);color:var(--ink-2)}
.qa .icon{width:18px;height:18px}
.quick--demo{flex-wrap:wrap}

/* ---------- Berichten ---------- */
.bubble{position:relative;max-width:100%;padding:13px 16px;border-radius:16px;overflow-wrap:anywhere}
.bubble p:last-child{margin-bottom:0}
.bubble--coach{background:var(--card);box-shadow:var(--shadow);border-top-left-radius:4px}
.demo .bubble--coach{margin-top:16px;background:var(--wash);box-shadow:none}
.bubble--student{background:var(--accent);color:var(--on-accent);margin-left:auto;max-width:88%;border-top-right-radius:4px}
.bubble ul,.bubble ol{margin:0 0 12px;padding-left:20px}
.bubble code{font:.92em var(--mono);background:var(--wash);padding:1px 4px;border-radius:4px}
.bubble img{border-radius:8px;max-height:260px;width:auto;margin-top:6px}
.bubble .katex{font-size:1.06em}
.bubble .katex-display{overflow-x:auto;overflow-y:hidden;padding:2px 0}
.ss-in{color:var(--in)}
.ss-out{color:var(--out)}
.bubble--student .ss-in,.bubble--student .ss-out{color:inherit}
.msg{display:flex;flex-direction:column;gap:4px;margin:0 0 16px;animation:rise .3s var(--spring)}
.msg__who{font:500 11.5px var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-2)}
.msg--student .msg__who{text-align:right}
.msg__tag{font:12.5px var(--mono);color:var(--ink-2)}
.msg__tag .icon{width:14px;height:14px;vertical-align:-2px}
.msg__heard{font-size:14px;color:var(--ink-2);text-align:right}
.msg__notice{font-size:14.5px;display:flex;gap:6px}
.msg__notice .icon{width:18px;height:18px;color:var(--s-tomato)}
.msg__action{align-self:flex-start}
@keyframes rise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.typing{display:inline-flex;align-items:center;gap:8px;color:var(--ink-2);font-size:15px;padding:8px 0}
/* Rustige "denkt na"-indicator: drie potloodkrabbels die om de beurt getekend worden. Geen typemachine. */
.typing .scribble{width:46px;height:18px;flex:none;color:var(--logo-accent,var(--accent))}
.scribble path{fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-dasharray:22;stroke-dashoffset:22;animation:scribble 1.8s cubic-bezier(.6,.1,.3,1) infinite}
.scribble path:nth-child(2){animation-delay:.25s}.scribble path:nth-child(3){animation-delay:.5s}
@keyframes scribble{0%{stroke-dashoffset:22;opacity:1}38%{stroke-dashoffset:0;opacity:1}75%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
@keyframes blink{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}

/* ---------- Nakijken ---------- */
.grading{background:var(--card);border-radius:14px;box-shadow:var(--shadow);padding:16px 18px;min-width:0}
.grading__head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:8px}
.grading__pts{font-size:20px}
.grading__tabs{display:flex;gap:6px;margin:8px 0 4px}
.grading__tabs button{min-height:var(--tap);padding:0 14px;border:2px solid var(--line);border-radius:999px;background:none;cursor:pointer;color:var(--ink-2);font-size:15px;font-weight:600}
.grading__tabs button[aria-selected="true"]{color:var(--on-accent);background:var(--accent);border-color:var(--accent)}
.grading__cols{display:grid;gap:16px}
.grading__col[hidden]{display:none}
.glines,.mlines{list-style:none;margin:0;padding:0}
.gline{display:grid;grid-template-columns:28px minmax(0,1fr);gap:4px 8px;padding:10px 0;border-bottom:1px solid var(--line)}
.gline__mark{grid-row:span 3;padding-top:2px}
.gline--goed .gline__mark,.gline--goed .gline__status{color:var(--ok)}
.gline--bijna .gline__mark,.gline--bijna .gline__status{color:var(--warn)}
.gline--fout .gline__mark,.gline--fout .gline__status{color:var(--bad)}
.gline__f{overflow-x:auto;overflow-y:hidden;min-width:0}
.gline__note{font-size:14.5px;color:var(--ink-2)}
.gline__status{font:12px var(--mono);text-transform:uppercase;letter-spacing:.06em}
.gline.is-resolved .gline__f{text-decoration:line-through;text-decoration-color:var(--ok)}
.mline{padding:10px 0;border-bottom:1px solid var(--line);min-width:0}
.mline__f{overflow-x:auto;overflow-y:hidden}
.mline__rule{font:12.5px var(--mono);color:var(--ink-2)}
@media (min-width:760px){.grading__tabs{display:none}.grading__cols{grid-template-columns:1fr 1fr}.grading__col[hidden]{display:block}}
.check{display:inline-flex;align-items:center;gap:10px;cursor:pointer;min-height:var(--tap)}
.check input{width:20px;height:20px;accent-color:var(--s-mint);flex:none;margin:0}
.check:has(input:checked) span{text-decoration:line-through;text-decoration-color:var(--ink-2);color:var(--ink-2)}

/* ---------- Drill ---------- */
.drill{background:var(--card);border-radius:14px;box-shadow:var(--shadow);padding:16px 18px}
.drill__q{font-weight:700;margin:8px 0}
.drill__opts{display:grid;gap:8px}
.drill__opt{text-align:left;min-height:var(--tap);padding:8px 14px;border:2px solid var(--line-strong);border-radius:12px;background:var(--card);cursor:pointer;transition:transform .3s var(--spring)}
.drill__opt:hover{border-color:var(--ink);transform:translateX(3px)}
.drill__opt.is-right{border-color:var(--ok);color:var(--ok)}
.drill__opt.is-wrong{border-color:var(--bad);color:var(--bad);text-decoration:line-through}
.drill__fb{margin-top:8px;font-size:15px}

/* ---------- Leeromgeving ---------- */
body.ss-page-leren{height:100vh;height:100dvh;overflow:hidden}
.chat{
	/* Hoogte: zichtbaar venster min WP-beheerbalk min kop. JS zet --app-h op de echte hoogte (visualViewport). */
	--app-h:100dvh;
	display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;grid-template-areas:"task" "info" "log" "composer";
	height:calc(var(--app-h) - var(--wpbar) - var(--bar-h));max-width:1440px;margin:0 auto;
}
.chat__task{grid-area:task;padding:10px var(--gutter) 0;min-width:0;max-height:52vh;overflow-y:auto}
.chat__task .taskcard{position:relative;background:var(--card);border-radius:14px;box-shadow:var(--shadow);padding:12px 16px;border-top:6px solid var(--accent)}
.chat__info{grid-area:info;padding:0 var(--gutter);display:none;min-width:0;max-height:40vh;overflow-y:auto}
.chat__info.is-open{display:block}
.chat__info .info{background:var(--card);border-radius:0 0 14px 14px;padding:12px 16px;box-shadow:var(--shadow)}
.chat__info .eyebrow{margin-top:10px}
.chat__info p{font-size:15px}
.chat__log{grid-area:log;overflow-y:auto;overscroll-behavior:contain;padding:18px var(--gutter) 8px;min-width:0;-webkit-overflow-scrolling:touch}
.log{max-width:760px;margin:0 auto}
.log__intro{margin-bottom:16px}
.chat__composer{grid-area:composer;padding:8px var(--gutter) calc(10px + env(safe-area-inset-bottom));background:var(--paper);min-width:0;position:relative}
.chat__composer::before{content:"";position:absolute;left:0;right:0;top:-18px;height:18px;background:linear-gradient(transparent,var(--paper));pointer-events:none}
.chat__composer .quick,.composer,.composer__status{max-width:760px;margin-left:auto;margin-right:auto}
/* Chips: op mobiel bewust scrollen met een vervaagde rand, vanaf tablet over meerdere regels. */
.quick--chat{overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;padding:2px 2px 4px;
	-webkit-mask:linear-gradient(90deg,transparent 0,#000 12px,#000 calc(100% - 28px),transparent);mask:linear-gradient(90deg,transparent 0,#000 12px,#000 calc(100% - 28px),transparent)}
.quick--chat::-webkit-scrollbar{display:none}
@media (min-width:820px){.quick--chat .chip,.quick--chat button{font-size:14px;padding:7px 14px;min-height:36px;white-space:nowrap}}
.chat.is-empty .quick--chat,.chat.is-empty .js-task,.chat.is-empty .js-info-task{display:none}
.composer{display:flex;align-items:flex-end;gap:6px;margin-top:8px;padding:5px;background:var(--card);border-radius:28px;box-shadow:var(--shadow);border:2px solid var(--ink)}
.composer:focus-within{box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 35%,transparent)}
.composer__input{flex:1;min-width:0;min-height:var(--tap)!important;max-height:160px;padding:10px 6px!important;resize:none;line-height:1.4;border:0!important;background:transparent!important;box-shadow:none!important}
.composer__status{min-height:0;margin:4px auto 0;font-size:13.5px}
.composer__status:empty{display:none}
.composer__photo{position:relative}
.popover{position:absolute;bottom:54px;left:0;z-index:5;min-width:250px;background:var(--card);border-radius:14px;box-shadow:var(--shadow-lift);padding:6px}
.popover__item{display:flex;align-items:center;width:100%;min-height:48px;padding:0 12px;border:0;background:none;text-align:left;cursor:pointer;border-radius:10px;font-weight:600}
.popover__item:hover{background:var(--wash)}
/* Lege staat: uitnodigend, geen voortgang of checklist zolang er geen opgave is. */
.startcard{position:relative;max-width:760px;margin:6px auto 0;padding:22px 18px 18px;background:var(--card);border-radius:16px;box-shadow:var(--shadow);transform:rotate(-.5deg)}
.startcard::before{content:"";position:absolute;top:-12px;left:32px;width:90px;height:24px;background:var(--tape);transform:rotate(-5deg)}
.startcard__bulb{position:absolute;right:14px;top:-20px;width:54px;height:54px;color:var(--s-sunflower);stroke-width:4;background:var(--paper);border-radius:50%;padding:6px}
.startcard__title{font:800 clamp(28px,6vw,40px)/1.05 var(--display);font-variation-settings:"SOFT" 100,"WONK" 1;margin:0 48px 8px 0}
.startcard__lead{color:var(--ink-2);margin-bottom:14px}
.startcard__actions{display:flex;flex-wrap:wrap;gap:10px}
.startcard__or{margin:16px 0 8px}
.examples{list-style:none;margin:0;padding:0;display:grid;gap:10px}
@media (min-width:640px){.examples{grid-template-columns:repeat(3,minmax(0,1fr))}}
.example{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;min-height:72px;padding:10px 14px;border:0;border-radius:14px;background:var(--tile);color:var(--on-tile);cursor:pointer;text-align:left;box-shadow:var(--shadow);transition:transform .4s var(--spring)}
.examples li:nth-child(1) .example{transform:rotate(-1.5deg)}.examples li:nth-child(2) .example{transform:rotate(1deg)}.examples li:nth-child(3) .example{transform:rotate(-.6deg)}
.example:hover{transform:rotate(0) translateY(-4px)!important}
.example__subject{font:500 12px var(--mono);text-transform:uppercase;letter-spacing:.08em;opacity:.85}
.example__title{font:750 18px/1.2 var(--display);font-variation-settings:"SOFT" 100}
.howto{margin:6px 0 0;padding-left:20px}
.howto li{margin-bottom:8px}
.info__arrow{width:60px;height:42px;color:var(--accent);margin-top:8px}
.schema{list-style:none;margin:6px 0 12px;padding:0;counter-reset:s}
.schema li{counter-increment:s;position:relative;padding:6px 0 6px 36px;font-size:15px}
.schema li::before{content:counter(s);position:absolute;left:0;top:5px;width:26px;height:26px;border-radius:50%;background:var(--accent);color:var(--on-accent);display:flex;align-items:center;justify-content:center;font:600 12px var(--mono)}
.checklist{list-style:none;margin:4px 0 12px;padding:0}
.checklist li{border-bottom:1px solid var(--line)}
.checklist .check{font-size:15px;width:100%}
.seg{display:inline-flex;gap:4px;padding:3px;border-radius:999px;background:var(--wash)}
.seg__btn{min-height:var(--tap);padding:0 14px;border:0;border-radius:999px;background:transparent;cursor:pointer;font:14px var(--mono)}
.seg__btn[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
/* "aha"-stempel bij een afgeronde stap */
.aha{position:fixed;left:50%;top:38%;z-index:60;pointer-events:none;opacity:0;transform:translate(-50%,-50%) rotate(-12deg) scale(2.2)}
.aha span{display:block;font:900 64px/1 var(--display);font-variation-settings:"SOFT" 100,"WONK" 1;color:var(--s-tomato);border:6px solid currentColor;border-radius:14px;padding:8px 22px;background:color-mix(in srgb,var(--paper) 85%,transparent)}
.aha.is-on{animation:stamp 1.3s var(--spring) forwards}
@keyframes stamp{0%{opacity:0;transform:translate(-50%,-50%) rotate(-12deg) scale(2.2)}18%{opacity:1;transform:translate(-50%,-50%) rotate(-8deg) scale(1)}75%{opacity:1;transform:translate(-50%,-50%) rotate(-8deg) scale(1)}100%{opacity:0;transform:translate(-50%,-50%) rotate(-8deg) scale(.96)}}
@media (min-width:1024px){
	.chat{grid-template-columns:minmax(0,1fr) 340px;grid-template-rows:auto minmax(0,1fr) auto;grid-template-areas:"task info" "log info" "composer info"}
	.chat__info{display:block!important;max-height:none;padding:18px 20px;overflow-y:auto;background:var(--wash)}
	.chat__info .info{background:transparent;box-shadow:none;padding:0}
	.taskcard__more{display:none}
	.chat__task{padding-top:16px;max-height:46vh}
	.chat__task .taskcard{max-width:760px;margin:0 auto}
}
@media (max-width:479px){
	.js-newtask span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
	.js-newtask{width:var(--tap);justify-content:center;border-radius:999px;background:var(--wash);text-decoration:none}
	.taskcard__title{font-size:20px}
	.sitebar .lang a[aria-current="true"]{display:none}
	.sitebar__link{padding:0 8px}
	.logo__full svg{height:28px}
	.sitebar__tools .js-theme{width:40px}
	.lang a{min-width:40px}
}

/* ---------- Dialoog ---------- */
.dialog{width:min(560px,calc(100vw - 2 * var(--gutter)));max-height:calc(100dvh - 32px);padding:22px;border:0;border-radius:16px;background:var(--card);color:var(--ink);box-shadow:var(--shadow-lift)}
.dialog::backdrop{background:rgba(20,18,15,.4)}
.dialog__head{display:flex;justify-content:space-between;align-items:center;margin:-8px -8px 8px 0}
.dialog__actions{margin:16px 0 0}

/* ---------- Planner ---------- */
.planner__grid{display:grid;gap:36px}
@media (min-width:1024px){.planner__grid{grid-template-columns:420px minmax(0,1fr);gap:56px;align-items:start}.planner__form{position:sticky;top:calc(var(--bar-h) + var(--wpbar) + 16px)}}
.chapters{display:grid;gap:12px;margin-bottom:12px}
.chapter{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) var(--tap);gap:0 8px;align-items:end;padding:12px;background:var(--wash);border-radius:12px}
.chapter .field{margin:0}
.chapter .field label{font-size:13.5px}
.chapter__title{grid-column:1 / -1;margin-bottom:8px!important}
.chapter__rm{grid-column:4;grid-row:2}
.chapter input{min-height:var(--tap)}
.js-plan-error{color:var(--bad);font-weight:700}
.js-plan-error:empty{display:none}
.plan__lead{font-size:18px}
.plan__table{width:100%;border-collapse:collapse;margin:8px 0 28px;font-size:15px}
.plan__table th,.plan__table td{text-align:left;padding:8px 8px 8px 0;border-bottom:1px solid var(--line)}
.plan__table th{font:500 12px var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2)}
.plan__table .is-niet td,.plan__table .is-deels td:last-child{color:var(--ink-2)}
.plan__days{list-style:none;margin:0;padding:0;display:grid;gap:26px}
@media (min-width:1280px){.plan__days{grid-template-columns:repeat(2,minmax(0,1fr))}}
.day{background:var(--card);border-radius:14px;box-shadow:var(--shadow);padding:16px 18px}
.day:nth-child(odd){transform:rotate(-.4deg)}.day:nth-child(even){transform:rotate(.4deg)}
.day__head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;font:750 22px/1.2 var(--display);font-variation-settings:"SOFT" 100;padding-bottom:8px;border-bottom:3px solid var(--accent)}
.day__min{margin-left:auto;font-size:13px}
.day--exam{background:color-mix(in srgb,var(--s-sunflower) 22%,var(--card))}
.blocks{list-style:none;margin:0;padding:0}
.block{display:grid;grid-template-columns:104px minmax(0,1fr);gap:8px;padding:9px 0;border-bottom:1px solid var(--line);font-size:15.5px}
.block__time{color:var(--ink-2);font-size:13.5px;padding-top:2px}
.block__body{display:flex;flex-direction:column}
.block__title{font-weight:700}
.block__detail{font-size:14px;color:var(--ink-2)}
.block--break .block__title,.block--meal .block__title{font-weight:400;color:var(--ink-2)}
.block--review .block__title{background:linear-gradient(transparent 58%,color-mix(in srgb,var(--s-sunflower) 70%,transparent) 58%,color-mix(in srgb,var(--s-sunflower) 70%,transparent) 92%,transparent 92%);align-self:flex-start}
.block--sleep{border-bottom:0}
.block--sleep .block__title::before{content:"";display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--s-cobalt);margin-right:8px;vertical-align:1px}
.block--exam .block__title{font:750 20px var(--display)}
.block--mixed .block__title{font-style:italic}

/* ---------- Voortgang ---------- */
.progress__grid{display:grid;gap:44px}
@media (min-width:1024px){.progress__grid{grid-template-columns:1fr 1fr;gap:60px}}
.concepts,.pitfalls{list-style:none;margin:0 0 32px;padding:0}
.concept{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;padding:14px 0;border-bottom:1px solid var(--line)}
.concept__mark{width:28px;height:28px;border:2px solid var(--line-strong);border-radius:8px;display:flex;align-items:center;justify-content:center;margin-top:2px}
.concept.is-begrepen .concept__mark{border-color:var(--s-mint);background:var(--s-mint);color:#14120F}
.concept.is-bezig .concept__mark{border-color:var(--s-sunflower);color:var(--warn)}
.concept__label{font-weight:700;margin:0 0 2px}
.concept__label .eyebrow{margin-left:6px;font-size:10.5px}
.concept__own{font:italic 500 18px/1.45 var(--display);margin:6px 0}
.concept__own .eyebrow{font-style:normal;display:block}
.concept__actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.concept__status{color:var(--ink-2)}
.concept__form{display:grid;gap:8px;margin-top:8px}
.pitfall{padding:14px 0;border-bottom:1px solid var(--line)}
.pitfall__head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:0 0 4px}
.pitfall__label{font-weight:700}
.pitfall.is-resolved .pitfall__label{text-decoration:line-through;text-decoration-color:var(--ok)}
.tally{color:var(--s-tomato);letter-spacing:.12em;white-space:nowrap}

/* ---------- Account ---------- */
.account__grid{display:grid;gap:40px}
@media (min-width:960px){.account__grid{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:64px}}
.account__side{align-self:start;background:var(--card);border-radius:14px;box-shadow:var(--shadow);padding:20px;transform:rotate(.6deg)}
.account__side .h3{margin-top:8px}

/* ---------- Spiekkaart ---------- */
.braindump{position:relative;background:#FFF3B8;color:#14120F;border-radius:4px;box-shadow:var(--shadow);padding:20px;margin-bottom:44px;transform:rotate(-.5deg)}
:root[data-theme="dark"] .braindump{background:#3A3420;color:var(--ink)}
.braindump__head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin-bottom:8px}
.braindump__head .h3{margin:0}
.braindump .seg{background:rgba(255,255,255,.55)}
.timer{margin-left:auto;font-size:28px}
.timer.is-low{color:var(--bad)}
.braindump__text{font-family:var(--mono);font-size:15px}
.braindump__actions{display:flex;gap:8px;margin:12px 0 0}
.braindump__result h3{margin-top:16px}
.braindump__result ul{margin:0;padding-left:20px}
.cards{list-style:none;margin:0 0 26px;padding:0;display:grid;gap:16px}
@media (min-width:640px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1024px){.cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
.card{position:relative;padding:16px 50px 16px 18px;background:var(--card);border-radius:12px;box-shadow:var(--shadow);min-width:0;transition:transform .4s var(--spring)}
.card:nth-child(3n+1){transform:rotate(-.8deg)}.card:nth-child(3n+2){transform:rotate(.6deg)}.card:nth-child(3n){transform:rotate(-.3deg)}
.card:hover{transform:rotate(0) translateY(-3px)}
.card__title{font:500 12px var(--mono);text-transform:uppercase;letter-spacing:.07em;color:var(--ink-2);margin:0 0 6px}
.card__body{margin:0;overflow-x:auto;overflow-y:hidden}
.card__rm{position:absolute;top:6px;right:6px}
.addcard{padding-top:8px;margin-bottom:44px}
.lists{display:grid;gap:24px;margin-bottom:44px}
@media (min-width:760px){.lists{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1100px){.lists{grid-template-columns:repeat(3,minmax(0,1fr))}}
.list{background:var(--card);border-radius:14px;box-shadow:var(--shadow);padding:18px}
.plain{list-style:none;margin:0;padding:0}
.num-list li{font:14.5px/1.5 var(--mono);padding:8px 0;border-bottom:1px solid var(--line)}

/* ---------- Abonnement ---------- */
.subscribe__current{margin-bottom:40px;max-width:640px}
.checkout__step{display:flex;align-items:center;gap:10px;margin-top:36px}
.checkout__step .num{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--accent);color:var(--on-accent);font-size:14px}
.methods{max-width:600px;margin-top:8px}
.checkout__go{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:28px 0 12px}
.sim{display:grid;gap:10px;margin-top:16px}
.page-plain{padding-top:48px;padding-bottom:64px}
.prose{max-width:40em}

/* ---------- Minder beweging ---------- */
@media (prefers-reduced-motion:reduce){
	*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
	.hl__line{stroke-dashoffset:0}
	.circle::after{clip-path:none}
	.mark{background-size:100% 100%}
	.aha{display:none}
}
@media (max-width:379px){.sitebar .logo__full svg{height:24px}.sitebar__link{padding:0 6px;font-size:15px}.sitebar .lang a{min-width:36px}}
.sitebar__link.hide-s{display:none}
@media (min-width:720px){.sitebar__link.hide-s{display:inline-flex}}
@media (max-width:959px){.hero__cut{top:auto;bottom:4%;right:-10vw;width:66vw}}
/* Lege staat: de startkaart krijgt de ruimte, het gesprek (alleen de begroeting) blijft klein. */
.chat.is-empty{grid-template-rows:minmax(0,1fr) auto auto auto}
.chat.is-empty .chat__task{max-height:none;padding-bottom:12px}
.chat.is-empty .chat__log{max-height:96px;padding-top:4px}
@media (max-width:639px){.example{min-height:56px;padding:8px 12px}.startcard{padding:18px 14px 14px}.startcard__actions .btn{flex:1 1 auto}}
@media (min-width:1024px){.chat.is-empty{grid-template-rows:auto minmax(0,1fr) auto}.chat.is-empty .chat__log{max-height:none}}

/* =====================================================================
   0.1.3: verfijning en effecten. Alles respecteert "minder beweging".
   ===================================================================== */

/* ---------- Papierkorrel (heel subtiel, SVG-ruis op de achtergrond, geen afbeelding; kaarten blijven schoon) ---------- */
body{background-color:var(--paper);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .24 0 0 0 0 .18 0 0 0 0 .1 0 0 0 .075 0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E");background-size:200px 200px}
:root[data-theme="dark"] body{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 .95 0 0 0 0 .85 0 0 0 .05 0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E")}

/* ---------- Typografie ---------- */
html{font-optical-sizing:auto}
.display,.h1,.h2{word-spacing:.06em}
.hero .display{max-width:none}
.hero__br{display:block}
.hl{white-space:nowrap}
.hl__line{left:-4%;right:-4%;width:108%;bottom:-.1em;height:.3em;stroke-width:4.5}
.hl__line path:nth-child(2){stroke-width:3;opacity:.55;stroke-dasharray:420;stroke-dashoffset:420;animation:draw .9s 1.15s cubic-bezier(.6,.1,.2,1) forwards}
.hero__note{text-wrap:balance}
.hero__note span{max-width:30ch}
.section .h2+.muted,.section .h2+p{max-width:38em}

/* ---------- Plakband tilt een hoekje op bij hover ---------- */
.polaroid:hover .tape,.sheet-card:hover .tape,.tile:hover .tape{transform:rotate(-9deg) translate(-2px,-3px);filter:drop-shadow(0 4px 3px rgba(60,44,20,.18))}
.tape::after{content:"";position:absolute;right:0;top:0;width:14px;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.35));opacity:0;transition:opacity .3s}
.polaroid:hover .tape::after,.sheet-card:hover .tape::after{opacity:1}

/* ---------- Zo werkt het: op mobiel naast elkaar, dan minder scrollen ---------- */
@media (max-width:859px){
	.steps{gap:34px}
	.step{display:grid;grid-template-columns:minmax(0,42%) minmax(0,1fr);gap:4px 18px;align-items:center}
	.step__media{grid-row:span 3;margin:0;max-width:none}
	.step__n{top:-12px;left:-6px;width:42px;height:42px;font-size:21px}
	.step .h3{margin-top:0}
	.step p:last-child{margin:0;font-size:16px}
	.step:nth-child(2){grid-template-columns:minmax(0,1fr) minmax(0,42%)}
	.step:nth-child(2) .step__media{grid-column:2;grid-row:1 / span 3}
	.step:nth-child(2) .step__n{left:auto;right:-6px}
	.step:nth-child(2) .h3,.step:nth-child(2) p{grid-column:1}
}
.step__n{font-variation-settings:"SOFT" 60,"WONK" 1}

/* ---------- College: strakkere compositie ---------- */
.lecture{position:relative}
.lecture__copy .h3{font:740 clamp(24px,2.6vw,32px)/1.08 var(--display);letter-spacing:-.025em;font-variation-settings:"SOFT" 60,"WONK" 1}
.lecture__arrow{width:64px;height:44px;color:var(--accent);margin:4px 0 0 -6px;transform:scaleX(-1) rotate(-14deg)}
@media (min-width:860px){.lecture{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:56px}.lecture__media{max-width:none}}

/* ---------- Vakken: compacter op mobiel ---------- */
@media (max-width:759px){
	.tiles{gap:16px 12px}
	.tile{padding:10px 10px 12px;gap:8px;border-radius:18px 14px 20px 13px}
	.tile__art{aspect-ratio:5/4}
	.tile__doodle{inset:14% 22%;width:56%;height:72%}
}
.tile .ph.tile__photo{background:none;border:0}

/* ---------- Testcase en oprichter ---------- */
.proof__copy .h2{font-size:clamp(28px,3.4vw,42px)}
@media (min-width:1024px){.proof__in{align-items:center}.founder{padding:28px 0}}

/* ---------- Eerlijk gezegd ---------- */
.faq__aside{margin-top:14px;color:var(--ink-2);max-width:22em}
.faq__aside a{color:var(--ink);font-weight:700}
.faq__list dt{font:700 19px/1.3 var(--sans);letter-spacing:-.005em}
.faq__list>div{padding:20px 0}

/* ---------- Slot: opluchting-video ---------- */
.cta__photo .vid{aspect-ratio:3/2}
.cta__block .display--s{max-width:11ch}

/* ---------- Footer ---------- */
.footer{padding:44px 0 calc(28px + env(safe-area-inset-bottom))}
.footer__base{grid-column:1 / -1;display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 20px;padding-top:18px;margin-top:6px;border-top:1px solid var(--line-strong);font-size:13.5px;color:var(--ink-2)}

/* ---------- Leeromgeving: lege staat ---------- */
.startcard__hi{margin:0 0 4px;font-weight:700}
.startcard__note{margin:16px 0 0;font-size:13.5px;color:var(--ink-2)}
.chat.is-empty .chat__log{display:none}
.startcard__title{text-wrap:balance}
.chat.is-empty{grid-template-rows:minmax(0,1fr) auto auto}
@media (min-width:1024px){.chat.is-empty{grid-template-rows:minmax(0,1fr) auto}.chat.is-empty .chat__task{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:clamp(24px,7vh,72px)}.chat.is-empty .startcard{width:100%}}

/* ---------- Planner: lege staat als notitie ---------- */
.planner__empty{position:relative;background:#FFF3B8;color:#14120F;border-radius:3px;transform:rotate(.6deg)}
:root[data-theme="dark"] .planner__empty{background:#3A3420;color:var(--ink)}

/* ---------- Telwerk: cijfers rollen rustig naar hun waarde ---------- */
.num[data-roll]{display:inline-block;min-width:var(--roll-w,auto)}

/* ---------- Effecten: inscrollen (CSS scroll-driven, met IntersectionObserver als terugval) ---------- */
@keyframes settle{from{opacity:0;translate:0 34px;rotate:4deg;scale:.96}to{opacity:1;translate:0 0;rotate:0deg;scale:1}}
@keyframes slide-in-l{from{translate:-14% 0}to{translate:0 0}}
@keyframes slide-in-r{from{translate:14% 0}to{translate:0 0}}
@media (prefers-reduced-motion:no-preference){
	/* Terugval (en ook voor browsers zonder scroll-timeline): app.js zet .is-in als het element in beeld komt. */
	.js .reveal{opacity:0;translate:0 26px;rotate:3deg;transition:opacity .7s ease,translate .9s var(--spring),rotate .9s var(--spring)}
	.js .reveal.is-in{opacity:1;translate:0 0;rotate:0deg}
	@supports (animation-timeline:view()){
		.reveal,.js .reveal,.js .reveal.is-in{opacity:1;translate:none;rotate:none;transition:none;animation:settle linear both;animation-timeline:view();animation-range:entry 0% cover 28%}
		.cut{animation:slide-in-r linear both;animation-timeline:view();animation-range:entry 0% cover 40%}
		.cut--blush,.promise__cut,.demo-sec__cut{animation-name:slide-in-l}
		.mark{transition:none;animation:swipe linear both;animation-timeline:view();animation-range:entry 10% cover 40%}
	}
}
@keyframes swipe{from{background-size:0 100%}to{background-size:100% 100%}}
html.no-reveal .reveal,html.no-reveal .cut,html.no-reveal .mark{translate:none!important;rotate:none!important;animation:none!important}
html.no-reveal .reveal{opacity:1!important}
html.no-reveal .mark{background-size:100% 100%}

/* ---------- Pagina-overgangen (View Transitions) ---------- */
@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){animation-duration:.32s;animation-timing-function:cubic-bezier(.4,0,.2,1)}
::view-transition-group(ss-logo){animation-duration:.45s}
.sitebar,.appbar{view-transition-name:ss-bar}
.demo__card{view-transition-name:demo-card}
::view-transition-group(demo-card){animation-duration:.42s;animation-timing-function:var(--spring)}
/* Voorbeeldopgave scheurt los en wordt de opgavekaart. */
::view-transition-group(ss-task){animation-duration:.6s;animation-timing-function:cubic-bezier(.5,0,.2,1)}
::view-transition-old(ss-task){animation:tear-off .45s cubic-bezier(.5,0,.2,1) both}
::view-transition-new(ss-task){animation:tear-in .5s .12s cubic-bezier(.2,.8,.2,1) both}
@keyframes tear-off{0%{clip-path:polygon(0 0,100% 0,100% 100%,0 100%);opacity:1}100%{clip-path:polygon(0 0,100% 0,100% 0,96% 8%,92% 2%,88% 9%,84% 3%,80% 10%,0 0);opacity:0;transform:rotate(-3deg)}}
@keyframes tear-in{from{opacity:0;transform:translateY(10px) rotate(-1deg)}to{opacity:1;transform:none}}

/* ---------- Hero: kantelen met de muis (alleen desktop) ---------- */
.hero__visual{perspective:1100px}
.hero__stack{transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transform-style:preserve-3d;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.hero__stack .qmark{translate:calc(var(--ry,0deg) * -2.2) calc(var(--rx,0deg) * 2.2)}

@media (prefers-reduced-motion:reduce){
	.reveal,.cut,.mark{animation:none!important;opacity:1!important;translate:none!important;rotate:none!important}
	.hero__stack{transform:none!important}
	.scribble path{stroke-dashoffset:0;animation:none}
	::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}
	.hl__line path:nth-child(2){stroke-dashoffset:0}
}

/* =====================================================================
   0.1.3: rooster, proactieve coach, opnemen, mijn gegevens
   ===================================================================== */
.only-touch{display:none!important}
@media (pointer:coarse){.only-touch{display:inline-flex!important}}
.label{display:block;font-weight:700;margin-bottom:6px;font-size:15.5px}
.inline-field{display:flex;gap:8px;align-items:center}
.inline-field input{flex:1}
.btn .icon,.link-btn .icon{flex:none}
/* Zes app-pagina's: menu in de kop vanaf 1120 px, daaronder het uitklapmenu. */
@media (min-width:900px) and (max-width:1119px){.appnav{display:none}.appbar__menu{display:inline-flex}.sheet{display:block!important}.sheet[hidden]{display:none!important}}

/* ---------- Proactieve coach: rustige kaart ---------- */
.nudges{max-width:760px;margin:0 auto;display:grid;gap:10px}
.nudges:empty{display:none}
.nudges:not(:empty){margin-bottom:12px}
.nudge{position:relative;display:grid;grid-template-columns:12px minmax(0,1fr);gap:4px 12px;align-items:start;padding:14px 16px;background:var(--card);border-radius:var(--r);box-shadow:var(--shadow)}
.nudge__dot{width:12px;height:12px;margin-top:6px;border-radius:50%;background:var(--nc,var(--s-sunflower));box-shadow:0 0 0 3px color-mix(in srgb,var(--nc,var(--s-sunflower)) 22%,transparent)}
.nudge__text{margin:0;font-size:16px;line-height:1.5}
.nudge__actions{grid-column:2;display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 0}
.nudge.is-done{opacity:.7}
@media (max-width:599px){.nudge:nth-child(n+2){display:none}}
.nudge.is-done .nudge__text{grid-column:1 / -1}
/* ---------- Terugblik op een toets (0.1.6) ---------- */
.rcard{position:relative;max-width:760px;margin:6px auto 14px;padding:18px 18px 14px;background:var(--card);border-radius:16px;box-shadow:var(--shadow);border-top:6px solid var(--rc,var(--s-sunflower))}
.rcard::before{content:"";position:absolute;top:-14px;right:36px;width:78px;height:22px;background:var(--tape);transform:rotate(4deg)}
.rcard__eyebrow{display:block;margin:0 0 2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rcard__title{font:800 clamp(22px,4.6vw,28px)/1.1 var(--display);font-variation-settings:"SOFT" 100,"WONK" 1;margin:0 0 12px;text-wrap:balance}
.rcard__feel{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:0 0 14px}
.rchip{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:68px;padding:8px 4px;border:2px solid var(--line-strong);border-radius:14px;background:var(--paper);color:var(--ink);font:600 14px/1.15 inherit;cursor:pointer;transition:transform .3s var(--spring),background-color .15s,border-color .15s}
.rchip span{max-width:100%;overflow-wrap:anywhere;text-align:center}
.rchip .rface{width:28px;height:28px;color:var(--ink-2)}
.rchip:hover{border-color:var(--rc,var(--ink))}
.rchip[aria-checked="true"]{background:var(--rc,var(--ink));border-color:var(--rc,var(--ink));color:var(--on-rc,var(--paper));transform:translateY(-2px)}
.rchip[aria-checked="true"] .rface{color:currentColor}
.rchip:focus-visible{outline:3px solid var(--rc,var(--ink));outline-offset:2px}
.rcard__field{margin:0 0 12px}
.rcard__grade{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}
.rcard__grade input{width:7.5em;flex:none}
.rcard__grade input:disabled{opacity:.45}
.rcard__grade .qa[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.rcard textarea{min-height:64px}
.rcard__more{margin:0 0 12px}
.rcard__more[open] summary{margin-bottom:8px}
.rcard__more summary{cursor:pointer;font-weight:600;list-style:none;display:flex;align-items:center;gap:8px;min-height:var(--tap)}
.rcard__more summary .icon{flex:none}
.rcard__more summary::-webkit-details-marker{display:none}
.rcard__more summary .icon{width:18px;height:18px}
.rcard__more[open] summary .icon{transform:rotate(45deg)}
.rcard__actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;margin:4px 0 0}
.rcard__dismiss{margin-left:auto;font-size:14px;color:var(--ink-2)}
.rcard__status{margin:6px 0 0;min-height:1em}
.rcard__status:empty{display:none}
.rcard__note{margin:-4px 0 10px}
.rcard__thanks{margin:0 0 6px;font-size:17px;font-weight:600}
.rcard__compare{margin:0 0 12px;font-size:18px;line-height:1.4;font-weight:600;text-wrap:pretty}
.rcard__upload{margin-top:14px;padding-top:12px;border-top:1px dashed var(--line-strong)}
.rcard__upload p{margin:0 0 8px}
.rcard__file{cursor:pointer}
.rcard__file .icon{width:18px;height:18px}
.planner .rcard{margin:8px 0 28px;max-width:760px}
.planner__herstel{max-width:760px}
@media (max-width:599px){.rcard{padding:16px 14px 12px}.rchip{min-height:62px;font-size:13px;padding:6px 2px}.rchip .rface{width:24px;height:24px}.rcard__dismiss{margin-left:0;flex-basis:100%;text-align:left}}
@media (prefers-reduced-motion:reduce){.rchip{transition:none}.rchip[aria-checked="true"]{transform:none}}
.today{margin-top:18px}
.today__list{list-style:none;margin:6px 0 0;padding:0}
.today__list li{display:flex;gap:10px;align-items:baseline;padding:8px 0;border-bottom:1px solid var(--line)}
.today__list li::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--lc);flex:none;transform:translateY(-1px)}
.today__add{margin-top:14px}

/* ---------- Rooster ---------- */
.rooster__head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px 24px}
.rooster__head .lead{margin:0}
.rooster__tools{display:flex;flex-wrap:wrap;gap:8px;margin:0}
.intake{padding:24px 20px 18px;margin-bottom:36px}
.intake__grid{display:grid;gap:22px;margin-top:10px}
@media (min-width:960px){.intake__grid{grid-template-columns:1.2fr 1fr 1fr;gap:28px}}
.drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:200px;padding:20px;text-align:center;border:2px dashed var(--line-strong);border-radius:var(--r-l);background:color-mix(in srgb,var(--wash) 60%,var(--card));transition:border-color .2s,background-color .2s,transform .35s var(--spring)}
.drop.is-over{border-color:var(--ink);background:var(--wash);transform:scale(1.01)}
.drop__icon{width:34px;height:34px;color:var(--accent)}
.drop__title{font:740 21px/1.2 var(--display);letter-spacing:-.015em;margin:4px 0 0;font-variation-settings:"SOFT" 60}
.drop__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:10px 0 0}
.drop__actions label{cursor:pointer}
.intake__alt .h3{display:block;margin-bottom:2px}
.intake__alt textarea{font-family:var(--mono);font-size:14.5px}
.intake__status{min-height:1.4em;margin:12px 0 0;color:var(--ink-2)}
.intake__status.is-error{color:var(--bad);font-weight:700}
.rooster.is-busy .intake{opacity:.7;pointer-events:none}
.review{margin-bottom:40px}
.review .is-sample{font-weight:700;color:var(--ink)}
.review__list{list-style:none;margin:16px 0;padding:0;display:grid;gap:14px}
.rrow{position:relative;padding:16px 52px 12px 16px;background:var(--card);border-radius:var(--r);box-shadow:var(--shadow)}
.rrow::before{content:"";position:absolute;left:16px;top:-5px;width:44px;height:10px;border-radius:5px;background:var(--lc)}
.rrow__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}
.rf{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:700;color:var(--ink-2);min-width:0}
.rf input,.rf select{min-height:44px;padding:8px 10px;font-size:15.5px;font-weight:400;color:var(--ink)}
.rf--title,.rf--wide{grid-column:1 / -1}
@media (min-width:860px){.rrow__grid{grid-template-columns:2fr 1.2fr 1.1fr .9fr .9fr 1fr 1fr}.rf--title{grid-column:auto}.rf--wide{grid-column:1 / span 5}}
.rrow__rm{position:absolute;right:6px;top:6px}
.rrow__once{margin:8px 0 0}
.review__go{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.week{display:grid;gap:22px;margin-bottom:28px}
@media (min-width:760px){.week{grid-template-columns:repeat(var(--days),minmax(0,1fr));gap:14px;align-items:start}}
.week__day{min-width:0}
.week__name{display:flex;align-items:baseline;gap:8px;font:740 22px/1.1 var(--display);letter-spacing:-.02em;margin:0 0 10px;padding-bottom:8px;border-bottom:2px solid var(--line-strong);font-variation-settings:"SOFT" 60}
.week__day.is-today .week__name{border-bottom-color:var(--ink)}
.week__free{margin:0}
@media (max-width:759px){.week__day.is-free{display:flex;align-items:baseline;gap:12px}.week__day.is-free .week__name{border:0;margin:0;padding:0;font-size:18px}}
.lesson{position:relative;margin:0 0 12px;padding:12px 14px 10px;background:var(--card);border-radius:var(--r);box-shadow:var(--shadow);transition:transform .45s var(--spring),box-shadow .3s}
.lesson:hover{transform:translateY(-3px);box-shadow:var(--shadow-lift)}
.lesson__time{display:inline-block;margin:0 0 6px;padding:2px 8px;border-radius:6px;background:var(--lc);color:var(--on-lc);font-size:13px}
.lesson__title{font:700 17px/1.25 var(--sans);margin:0 0 2px;overflow-wrap:anywhere}
.lesson__meta,.lesson__topic{margin:0;color:var(--ink-2)}
.lesson__topic{font-style:italic}
.lesson__once{margin:6px 0 0}
.lesson__actions{display:flex;flex-wrap:wrap;gap:0 10px;margin:4px 0 0}
.lesson__actions .link-btn{font-size:14px;min-height:40px}
.lesson__consent{color:var(--ok)}
.rooster__privacy{display:flex;gap:8px;align-items:center;margin-top:12px}
.rooster__privacy .icon{width:18px;height:18px}

/* ---------- Opnemen ---------- */
.record .app-page__head .lead{margin:0}
.resume{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 16px;margin:0 0 20px;background:var(--card);border-radius:var(--r);box-shadow:var(--shadow)}
.recorder{display:grid;gap:24px;padding:24px 20px;margin-bottom:44px}
@media (min-width:960px){.recorder{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:40px;padding:32px}}
.recorder__setup .field{margin-bottom:16px}
.seg--wide{display:flex;width:100%}
.seg--wide .seg__btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;font:600 15px var(--sans)}
.seg__btn .icon{width:18px;height:18px}
.recorder__stage{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:20px 12px;border-radius:var(--r-l);background:color-mix(in srgb,var(--wash) 70%,var(--card))}
.recorder__preview{width:100%;max-width:420px;aspect-ratio:16/9;object-fit:cover;border-radius:10px;background:#14120F}
.meter{display:flex;align-items:center;gap:3px;height:34px}
.meter i{width:5px;height:6px;border-radius:3px;background:var(--line-strong);transition:height .08s linear,background-color .15s}
.meter i:nth-child(3n+1){height:10px}.meter i:nth-child(4n+2){height:8px}
.meter i.is-on{height:calc(10px + var(--lvl,0) * 24px);background:var(--logo-accent,var(--accent))}
.recorder__time{font-size:clamp(40px,8vw,56px);font-weight:500;line-height:1;margin:6px 0 0;letter-spacing:-.02em}
.recorder__state{margin:0;color:var(--ink-2);text-align:center;min-height:1.4em}
.recorder__controls{display:flex;align-items:center;gap:14px;margin-top:6px}
.recbtn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:84px;height:84px;border-radius:50%;border:3px solid var(--ink);background:var(--card);cursor:pointer;box-shadow:var(--shadow);transition:transform .35s var(--spring),box-shadow .25s}
.recbtn:hover{transform:scale(1.04);box-shadow:var(--shadow-lift)}
.recbtn:active{transform:scale(.97)}
.recbtn__dot{width:46px;height:46px;border-radius:50%;background:var(--s-tomato);transition:border-radius .3s var(--spring),width .3s var(--spring),height .3s var(--spring)}
.is-rec .recbtn__dot{width:30px;height:30px;border-radius:7px}
@media (prefers-reduced-motion:no-preference){.is-rec:not(.is-paused) .recbtn::after{content:"";position:absolute;inset:-9px;border-radius:50%;border:2px solid color-mix(in srgb,var(--s-tomato) 55%,transparent);animation:rec-ring 1.8s ease-out infinite}}
@keyframes rec-ring{from{transform:scale(.92);opacity:1}to{transform:scale(1.14);opacity:0}}
.recbtn:disabled{opacity:.4;cursor:not-allowed}
.icon-btn--big{width:56px;height:56px;border:2px solid var(--ink)}
.upbar{width:min(100%,320px);height:6px;border-radius:6px;background:var(--line);overflow:hidden}
.upbar span{display:block;height:100%;width:0;background:var(--ok);transition:width .3s ease}
.recorder__note{grid-column:1 / -1;display:flex;gap:8px;align-items:center;margin:0}
.recorder__note .icon{width:18px;height:18px}
.recs__head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:10px 20px}
.recs__all{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.reclist{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:12px}
.recitem{display:grid;grid-template-columns:44px minmax(0,1fr);gap:4px 14px;align-items:center;padding:14px 16px;background:var(--card);border-radius:var(--r);box-shadow:var(--shadow)}
.recitem__icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:var(--lc);color:#14120F}
.recitem__main{display:flex;flex-direction:column;min-width:0}
.recitem__title{font-weight:700;text-decoration:none;overflow-wrap:anywhere}
.recitem__expiry{color:var(--ink);font-weight:600}
.recitem__actions{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:6px;justify-content:flex-end}
@media (min-width:760px){.recitem{grid-template-columns:44px minmax(0,1fr) auto}.recitem__actions{grid-column:auto}}
.extend-form{display:inline}
.extend{padding:22px 20px;margin-bottom:28px;max-width:640px}
.consent{max-width:500px}
.consent__form{position:relative}
.consent__bulb{position:absolute;right:-6px;top:-10px;width:46px;height:46px;color:var(--s-sunflower);stroke-width:4}
.consent h2{margin-right:44px;font:740 24px/1.15 var(--display);letter-spacing:-.02em;font-variation-settings:"SOFT" 60}
.consent__actions{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 0}
.consent__no{font-weight:700;margin:10px 0 0}
.recdetail__grid{display:grid;gap:28px}
@media (min-width:960px){.recdetail__grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:start}}
.recdetail__player{padding-bottom:14px}
.recdetail__player audio,.recdetail__player video{width:100%;display:block}
.recdetail__wave{display:flex;align-items:center;justify-content:center;aspect-ratio:16/7;margin-bottom:10px;border-radius:2px;background:linear-gradient(135deg,color-mix(in srgb,var(--s-sunflower) 55%,var(--card)),color-mix(in srgb,var(--s-tomato) 35%,var(--card)))}
.recdetail__wave .icon{width:48px;height:48px;color:#14120F}
.chapters{list-style:none;margin:6px 0 16px;padding:0}
.chapter-item{padding:12px 0;border-bottom:1px solid var(--line)}
.chapter-item__seek{display:flex;gap:10px;align-items:baseline;width:100%;min-height:var(--tap);padding:0;border:0;background:none;text-align:left;cursor:pointer;font-weight:700}
.chapter-item__at{color:var(--ink-2);font-weight:500;min-width:3.5em}
.chapter-item p{margin:0 0 2px 3.9em}
.chapter-item .link-btn{margin-left:3.6em}
.transcript summary{cursor:pointer;font-weight:700;min-height:var(--tap);display:flex;align-items:center}

/* ---------- Mijn gegevens en seintjes ---------- */
.mydata{margin-top:56px;max-width:760px}
.mydata__list{list-style:none;margin:16px 0;padding:0}
.mydata__list li{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;padding:12px 0;border-bottom:1px solid var(--line)}
.mydata__what{display:flex;flex-direction:column}
.prefs{margin-bottom:16px}
.prefs .choice--plain{font-size:15px}

/* =====================================================================
   0.1.5: Prijzen (3 kaarten), Google, captcha, community, berichten,
   beveiliging, account, afrekenen, cookies, juridisch, contact, voet.
   ===================================================================== */

/* ---------- Prijzen: Gratis | StudySlim | Onbeperkt ---------- */
@media (min-width:760px){.plans--3{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}}
@media (max-width:759px){.plan-card--main{order:-1}}
.plans .plan-card--free{transform:rotate(.6deg)}
.plans .plan-card--free::before{background:color-mix(in srgb,var(--s-mint) 70%,transparent);transform:rotate(4deg)}
.plans .plan-card--main{outline:3px solid var(--ink);outline-offset:-3px;transform:rotate(-.6deg)}
.plans .plan-card--onbeperkt::before{background:color-mix(in srgb,var(--s-cobalt) 35%,transparent);left:auto;right:28px;transform:rotate(-3deg)}
.plans--pick .plan-card--main{outline:0}
.plan-card__badge{position:absolute;top:20px;right:18px;font:600 11.5px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:7px 9px;border-radius:6px;background:var(--s-sunflower);color:#14120F;transform:rotate(3deg);box-shadow:0 1px 1px rgba(60,44,20,.12)}
.plan-card--onbeperkt .plan-card__badge{background:var(--s-blush)}
.plan-card--pick .plan-card__badge{right:58px}
.plan-card__name{padding-right:96px}
.plan-card__fair{margin:-6px 0 16px;padding-left:12px;border-left:2px solid var(--line-strong)}
@media (min-width:760px) and (max-width:1023px){.plans--3 .plan-card{padding:24px 18px}.plans--3 .plan-card__name{font-size:25px;padding-right:0;margin-top:22px}.plans--3 .plan-card__badge{top:14px;right:14px}}

/* ---------- Google en captcha ---------- */
.btn--google{display:flex;align-items:center;justify-content:center;gap:12px;background:var(--card);margin:18px 0 6px}
.btn--google svg{flex:none}
.auth__or{display:flex;align-items:center;gap:12px;margin:14px 0 4px}
.auth__or::before,.auth__or::after{content:"";flex:1;height:1px;background:var(--line-strong)}
.ss-captcha{margin:6px 0 14px}
.invite-note,.trialnote{display:flex;gap:10px;align-items:flex-start;margin:0 0 16px;padding:12px 14px;background:var(--wash);border-radius:var(--r-s);font-weight:600}
.invite-note .icon,.trialnote .icon{color:var(--s-tomato);flex:none}
.stepbar--3{grid-template-columns:repeat(3,1fr)}
.echo{display:none}

/* ---------- Kleine bouwstenen ---------- */
.badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--s-tomato);color:#14120F;font:600 11px/1 var(--mono)}
.icon-btn{position:relative}
.icon-btn .badge,.bnav__a .badge{position:absolute;top:4px;right:2px;border:2px solid var(--paper)}
.dot{position:absolute;top:9px;right:9px;width:9px;height:9px;border-radius:50%;background:var(--s-tomato);border:2px solid var(--paper)}
.pill-s{display:inline-block;margin-left:6px;padding:2px 7px;border-radius:5px;background:var(--wash);font:500 11.5px/1.5 var(--mono);color:var(--ink-2);vertical-align:1px}
.link-btn--tiny{min-height:28px;padding:0;font-size:13.5px;font-weight:600;color:var(--ink-2)}
.seg__btn[aria-selected="true"]{background:var(--ink);color:var(--paper)}
.seg__btn{display:inline-flex;align-items:center;gap:6px;color:var(--ink-2)}
.seg__btn[aria-selected="true"] .badge{border:0}
.seg--s .seg__btn{min-height:38px;padding:0 12px;font-size:13px}
.state{font:600 13px var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2)}
.state.is-on{color:var(--ok)}
.stamp--check{color:var(--s-cobalt);background:color-mix(in srgb,var(--card) 88%,transparent)}
.stamp--s{font-size:10.5px;padding:4px 6px;letter-spacing:.1em;border-width:1.5px}
.ctoast{position:fixed;left:50%;bottom:calc(88px + env(safe-area-inset-bottom));z-index:60;max-width:min(92vw,440px);margin:0;padding:12px 18px;background:var(--ink);color:var(--paper);border-radius:12px;font-weight:600;font-size:15px;box-shadow:var(--shadow-lift);transform:translate(-50%,16px);opacity:0;pointer-events:none;transition:opacity .25s,transform .4s var(--spring)}
.ctoast.is-on{opacity:1;transform:translate(-50%,0)}
@media (min-width:900px){.ctoast{bottom:32px}}
.mention{font-weight:700;text-decoration:none;color:var(--ink)}
.mention:hover{text-decoration:underline;text-decoration-color:var(--accent)}
.tag{font-weight:600;color:var(--s-cobalt)}
:root[data-theme="dark"] .tag{color:var(--in)}

/* Avatar-stickers: vierkant met zachte hoeken, wit randje, initialen in de vakkleur */
.ava{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:none;width:44px;height:44px;border-radius:32%;background:var(--s-sunflower);color:#14120F;overflow:hidden;box-shadow:0 0 0 2px var(--card),0 1px 3px rgba(60,44,20,.25);font:700 15px/1 var(--sans)}
.ava img{width:100%;height:100%;object-fit:cover}
.ava__i{letter-spacing:-.02em}
.ava--s{width:36px;height:36px;font-size:13px}
.ava--m{width:44px;height:44px}
.ava--l{width:72px;height:72px;font-size:24px}
.ava--xl{width:112px;height:112px;font:780 40px/1 var(--display);box-shadow:0 0 0 4px var(--card),var(--shadow)}
@media (min-width:760px){.ava--xl{width:148px;height:148px;font-size:52px}}
.ava--tomato{background:var(--s-tomato)}.ava--cobalt{background:var(--s-cobalt);color:#fff}.ava--sunflower{background:var(--s-sunflower)}.ava--mint{background:var(--s-mint)}.ava--blush{background:var(--s-blush)}.ava--tangerine{background:var(--s-tangerine)}
.avatar--img{overflow:hidden;background:var(--wash)}
.avatar--img img{width:100%;height:100%;object-fit:cover}
.subjs{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 0;padding:0}
.subjs--inline{margin:0}
.subj{display:inline-flex;align-items:center;min-height:26px;padding:3px 9px;border-radius:6px;background:var(--s-sunflower);color:#14120F;font:600 12.5px/1.2 var(--sans);transform:rotate(-1deg)}
.subj:nth-child(2n){transform:rotate(1deg)}
.subj--tomato{background:var(--s-tomato)}.subj--cobalt{background:var(--s-cobalt);color:#fff}.subj--mint{background:var(--s-mint)}.subj--blush{background:var(--s-blush)}.subj--tangerine{background:var(--s-tangerine)}

/* Skeletten */
.skel{display:block;background:linear-gradient(90deg,var(--wash) 0,color-mix(in srgb,var(--wash) 55%,var(--card)) 50%,var(--wash) 100%);background-size:200% 100%;border-radius:8px;animation:skel 1.3s linear infinite}
@keyframes skel{to{background-position:-200% 0}}
.skel--ava{width:36px;height:36px;border-radius:32%;flex:none}
.skel--ava-xl{width:112px;height:112px;border-radius:32%}
.skel--line{height:12px;width:46%}
.skel--short{width:28%;margin:12px 16px 16px}
.skel--media{aspect-ratio:4/5;border-radius:3px;margin:0 12px}
.skel--sq{aspect-ratio:1;border-radius:4px;list-style:none}
.skel--row{height:64px;margin:8px 0;list-style:none}

/* ---------- App-navigatie: onderbalk op mobiel, rail links op desktop ---------- */
.bnav{position:fixed;left:0;right:0;bottom:0;z-index:31;background:color-mix(in srgb,var(--paper) 96%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--line);padding:4px 6px calc(4px + env(safe-area-inset-bottom))}
.bnav ul{list-style:none;margin:0 auto;padding:0;display:grid;grid-template-columns:repeat(5,1fr);max-width:520px}
.bnav__a{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:54px;text-decoration:none;color:var(--ink-2);font:600 11px/1.1 var(--sans);border-radius:12px;transition:color .2s,transform .3s var(--spring)}
.bnav__a .icon{width:24px;height:24px}
.bnav__a:hover{color:var(--ink)}
.bnav__a[aria-current="page"]{color:var(--ink)}
.bnav__a[aria-current="page"] .icon{stroke-width:2.3}
.bnav__a[aria-current="page"]::after{content:"";position:absolute;bottom:3px;width:18px;height:4px;border-radius:3px;background:var(--accent);transform:rotate(-4deg)}
.bnav__a--nieuw .icon{width:40px;height:32px;padding:4px 8px;border-radius:10px;background:var(--ink);color:var(--paper);transform:rotate(-3deg);transition:transform .35s var(--spring)}
.bnav__a--nieuw:hover .icon{transform:rotate(3deg) scale(1.06)}
.bnav__a--nieuw .bnav__l{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.bnav__a .badge{top:5px;right:calc(50% - 22px)}
body.has-bnav{padding-bottom:calc(70px + env(safe-area-inset-bottom))}
body:not(.has-bnav) .bnav{display:none}
@media (min-width:900px){
	body.has-bnav{padding-bottom:0}
	.bnav{display:none}
	body.ss-c .bnav{display:block;position:fixed;left:0;right:auto;top:calc(var(--bar-h) + var(--wpbar));bottom:0;width:212px;padding:28px 14px;border-top:0;border-right:1px solid var(--line);background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
	body.ss-c .bnav ul{display:flex;flex-direction:column;gap:4px;max-width:none}
	body.ss-c .bnav__a{flex-direction:row;justify-content:flex-start;gap:14px;min-height:50px;padding:0 14px;font-size:16px;font-weight:700}
	body.ss-c .bnav__a:hover{background:var(--wash)}
	body.ss-c .bnav__a[aria-current="page"]{background:var(--card);box-shadow:var(--shadow);transform:rotate(-1.2deg)}
	body.ss-c .bnav__a[aria-current="page"]::after{display:none}
	body.ss-c .bnav__a--nieuw .icon{width:24px;height:24px;padding:0;background:none;color:inherit;transform:none}
	body.ss-c .bnav__a--nieuw{order:9;margin-top:14px;background:var(--ink);color:var(--paper);justify-content:center}
	body.ss-c .bnav__a--nieuw:hover{background:var(--ink);color:var(--paper);transform:rotate(-1deg)}
	body.ss-c .bnav__a--nieuw .bnav__l{position:static;width:auto;height:auto;clip:auto}
	body.ss-c .bnav li:has(.bnav__a--nieuw){order:9}
	body.ss-c .bnav__a .badge{position:static;margin-left:auto;border:0}
	body.ss-c .main{padding-left:212px}
	body.ss-c .footer{margin-left:212px}
}
@media (min-width:900px) and (max-width:1199px){.appnav a{padding:0 10px;font-size:15px}.appnav{margin-left:8px}}
.appnav a.appnav__c{position:relative}

/* ---------- Community: pagina's ---------- */
.cpage{width:100%;max-width:640px;margin:0 auto;padding:18px var(--gutter) 40px}
.cpage--profile{max-width:940px}
.cpage--dm{max-width:1080px;padding-top:0;padding-bottom:0}
.cpage--edit,.cpage--new{max-width:720px;padding-top:28px}
@media (min-width:900px){.cpage{padding-top:36px}}
.chead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.chead__tools{display:flex;gap:6px}
.csearch{position:relative;margin-bottom:22px}
.csearch__in{display:flex;align-items:center;gap:8px;min-height:48px;padding:0 14px;background:var(--card);border:1.5px solid var(--line-strong);border-radius:var(--r)}
.csearch__in:focus-within{border-color:var(--ink);box-shadow:0 0 0 4px color-mix(in srgb,var(--s-sunflower) 50%,transparent)}
.csearch__in .icon{color:var(--ink-2)}
.csearch__in input{flex:1 1 auto;min-width:0;width:100%;border:0!important;box-shadow:none!important;padding:0;min-height:44px;background:transparent;font-size:16px;text-overflow:ellipsis}
.csearch__out{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:20;margin:0;padding:6px;background:var(--card);border-radius:var(--r);box-shadow:var(--shadow-lift)}
.csearch__out li.muted{padding:10px}
.ulist{list-style:none;margin:0;padding:0}
.ulist li{display:flex;align-items:center;gap:10px;justify-content:space-between}
.ulist li>a{display:flex;align-items:center;gap:12px;min-height:56px;padding:6px 8px;flex:1;min-width:0;text-decoration:none;border-radius:10px}
.ulist li>a:hover{background:var(--wash)}
.ulist li>a>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ulist__btns{display:flex;gap:6px;flex:none}
.nlist{list-style:none;margin:0;padding:0}
.nlist li{display:flex;gap:12px;align-items:center;padding:10px 4px;border-bottom:1px solid var(--line)}
.nlist li a{text-decoration:none;flex:1;min-width:0}
.nlist li.is-new a{font-weight:700}
.nlist li.is-new::before{content:"";width:7px;height:7px;flex:none;border-radius:50%;background:var(--s-tomato);margin-right:-4px}

/* Feed en post-kaarten: polaroids op het bureau */
.feed{display:grid;gap:28px}
.post{position:relative;background:var(--card);border-radius:var(--r);box-shadow:var(--shadow);padding-bottom:6px;min-width:0}
.post__head{display:flex;align-items:center;gap:10px;padding:12px 8px 10px 14px}
.post__who{display:flex;align-items:center;gap:10px;min-width:0;flex:1;text-decoration:none}
.post__names{display:flex;flex-direction:column;min-width:0;line-height:1.25}
.post__names strong{font-size:15.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.post__names .small{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.post__head .subj{flex:none}
.post__frame{position:relative;display:block;margin:0 12px;padding:8px 8px 26px;background:var(--paper);border-radius:3px;box-shadow:0 0 0 1px var(--line),0 2px 6px -3px rgba(60,44,20,.2);transform:rotate(var(--tilt,0deg));transition:transform .5s var(--spring);text-decoration:none}
.post__frame:hover{transform:rotate(0deg)}
.ss-page-post .post__frame{transform:none}
.pmedia{position:relative;overflow:hidden;border-radius:2px;background:var(--wash);max-height:78vh}
.pmedia__track{display:flex;width:100%;height:100%;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}
.pmedia__track::-webkit-scrollbar{display:none}
.pmedia__slide{flex:0 0 100%;scroll-snap-align:center;height:100%}
.pmedia__slide img,.pmedia>img,.pmedia video{width:100%;height:100%;object-fit:cover;display:block}
.pmedia__ph{display:block;width:100%;height:100%;min-height:220px;background:repeating-linear-gradient(-45deg,var(--wash) 0 12px,color-mix(in srgb,var(--wash) 60%,var(--card)) 12px 24px)}
.pmedia__dots{position:absolute;left:50%;bottom:10px;display:flex;gap:5px;transform:translateX(-50%)}
.pmedia__dots i{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.6);box-shadow:0 0 0 1px rgba(0,0,0,.15)}
.pmedia__dots i.is-on{background:#fff;width:14px;border-radius:3px}
.pmedia__count{position:absolute;top:10px;right:10px;padding:3px 7px;border-radius:6px;background:rgba(20,18,15,.62);color:#fff;font-size:12px}
.pmedia__play{position:absolute;left:50%;top:50%;width:64px;height:64px;margin:-32px 0 0 -32px;border:0;border-radius:50%;background:rgba(20,18,15,.6);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}
.pmedia__play .icon{width:30px;height:30px;fill:currentColor}
.pmedia .stamp{position:absolute;left:14px;top:14px}
.post.is-pending .pmedia img{filter:saturate(.4) brightness(1.04)}
.heartfx{position:absolute;left:50%;top:44%;width:96px;height:96px;margin:-48px 0 0 -48px;pointer-events:none;opacity:0}
.heartfx svg{width:100%;height:100%}
.heartfx.is-on{animation:heartfx .9s var(--spring) forwards}
@keyframes heartfx{0%{opacity:0;transform:scale(.3) rotate(-14deg)}25%{opacity:1;transform:scale(1.15) rotate(6deg)}55%{transform:scale(.96) rotate(-3deg)}100%{opacity:0;transform:scale(1.05) translateY(-26px) rotate(0)}}
.post__bar{display:flex;align-items:center;gap:2px;padding:8px 8px 0}
.pbtn{display:inline-flex;align-items:center;gap:6px;min-height:var(--tap);min-width:var(--tap);padding:0 10px;border:0;border-radius:999px;background:none;cursor:pointer;color:var(--ink);text-decoration:none;font-size:15px}
.pbtn:hover{background:var(--wash)}
.pbtn .icon{width:25px;height:25px;transition:transform .35s var(--spring)}
.pbtn--save{margin-left:auto}
.js-like[aria-pressed="true"] .icon{fill:var(--s-tomato);stroke:var(--ink);color:var(--ink)}
.js-save[aria-pressed="true"] .icon{fill:var(--ink)}
.pbtn.is-pop .icon{animation:pop .45s var(--spring)}
@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.35) rotate(-10deg)}100%{transform:scale(1)}}
.post__cap{margin:4px 16px 4px;font-size:15.5px;overflow-wrap:anywhere}
.post__capwho{font-weight:700;text-decoration:none;margin-right:2px}
.post__held{margin:4px 16px}
.post__cl{display:inline-block;margin:0 16px 8px;color:var(--ink-2);font-size:14.5px;text-decoration:none}
.post__cl:hover{text-decoration:underline}
.post--skel{padding-bottom:4px}
.post--skel .post__head{gap:12px}
.feed__more{height:1px}
.feed__empty .empty{text-align:center;padding:36px 24px}
.feed__doodle{width:56px;height:56px;color:var(--s-tangerine);margin:0 auto 8px}
.cback{margin:0 0 8px}
.comments{margin-top:26px}
.cmts{list-style:none;margin:0 0 14px;padding:0}
.cmt{display:flex;gap:10px;padding:10px 0}
.cmt__b{flex:1;min-width:0}
.cmt__b p{margin:0;overflow-wrap:anywhere}
.cmt__meta{display:flex;flex-wrap:wrap;align-items:center;gap:0 4px}
.cmt.is-held{opacity:.7}
.cmts--r{margin:6px 0 0;padding-left:4px;border-left:2px solid var(--line)}
.cmts--r .cmt{padding:6px 0 6px 10px}
.cmt--none{padding:8px 0}
.cform{position:sticky;bottom:calc(76px + env(safe-area-inset-bottom));display:flex;gap:8px;align-items:flex-end;padding:8px;background:var(--card);border-radius:var(--r);box-shadow:var(--shadow)}
.cform textarea{min-height:44px;border:0;box-shadow:none!important;resize:none;padding:10px}
@media (min-width:900px){.cform{bottom:16px}}
.postdetail .post{box-shadow:var(--shadow-lift)}

/* Profiel */
.phead{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px 22px;align-items:start;padding:8px 0 22px}
.phead__ava{position:relative;transform:rotate(-3deg)}
.phead__ava .tape{top:-10px;width:62px;height:20px;margin-left:-31px}
.phead__ava .stamp{position:absolute;left:50%;bottom:-8px;transform:translateX(-50%) rotate(-5deg);white-space:nowrap}
.phead__main{min-width:0}
.phead__name{margin:0 0 2px;font-size:clamp(26px,5vw,40px);display:flex;align-items:center;gap:8px;overflow-wrap:anywhere}
.phead__lock .icon{width:22px;height:22px;color:var(--ink-2)}
.phead__handle{margin:0 0 4px;color:var(--ink-2);font-size:15px}
.phead__line{margin:0 0 8px;font-weight:600;font-size:15px}
.pcounts{list-style:none;display:flex;gap:18px;margin:6px 0 10px;padding:0;font-size:14.5px;color:var(--ink-2)}
.pcounts .num{display:block;font-size:20px;font-weight:500;color:var(--ink)}
.pcounts .link-btn{display:block;min-height:0;padding:0;text-align:left;text-decoration:none;font-weight:400;color:var(--ink-2);font-size:14.5px}
.pcounts .link-btn:hover .num{text-decoration:underline;text-decoration-color:var(--accent)}
.pcounts .link-btn[disabled]{cursor:default}
.phead__bio{margin:8px 0 4px;white-space:pre-line;overflow-wrap:anywhere}
.phead__goal{margin:4px 0;font-size:19px;color:var(--ink)}
.phead__goal::before{content:"";display:inline-block;width:20px;height:2px;margin:0 8px 5px 0;background:var(--accent);transform:rotate(-8deg)}
.phead__btns{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px}
@media (max-width:559px){
	.phead{grid-template-columns:96px minmax(0,1fr);gap:12px 16px}
	.phead .ava--xl{width:96px;height:96px;font-size:34px}
	.phead__main{display:contents}
	.phead__name,.phead__handle,.phead__line{grid-column:2}
	.phead__name{align-self:end;margin-top:8px}
	.pcounts,.phead__bio,.phead__goal,.phead__btns,.subjs,.phead__main>.small,.psocial{grid-column:1/-1}
	.phead__btns .btn{flex:1}
}
.ptabs{display:flex;justify-content:center;gap:4px;border-top:1px solid var(--line);margin-bottom:14px}
.ptab{display:inline-flex;align-items:center;gap:6px;min-height:48px;padding:0 16px;border:0;border-top:3px solid transparent;margin-top:-2px;background:none;cursor:pointer;font:600 13px var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2)}
.ptab .icon{width:18px;height:18px}
.ptab[aria-selected="true"]{color:var(--ink);border-top-color:var(--ink)}
.grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}
@media (min-width:760px){.grid{gap:14px}}
.grid__a{position:relative;display:block;aspect-ratio:1;overflow:hidden;background:var(--wash);border-radius:3px}
@media (min-width:760px){.grid li:nth-child(3n+1) .grid__a{transform:rotate(-.6deg)}.grid li:nth-child(3n+2) .grid__a{transform:rotate(.4deg)}.grid__a{box-shadow:var(--shadow);border:6px solid var(--card);transition:transform .4s var(--spring)}.grid__a:hover{transform:rotate(0) scale(1.02)}}
.grid__a img{width:100%;height:100%;object-fit:cover}
.grid__a .pmedia__ph{min-height:0}
.grid__b{position:absolute;top:6px;right:6px;width:20px;height:20px;color:#fff;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5))}
.grid__a .stamp{position:absolute;left:6px;bottom:8px}
.grid__a.is-pending img{filter:saturate(.4)}
.grid__empty{grid-column:1/-1;padding:40px 10px;text-align:center;list-style:none}
.plocked{text-align:center;padding:40px 16px;border:2px dashed var(--line-strong);border-radius:var(--r)}
.plocked>.icon{width:40px;height:40px;margin:0 auto 10px;color:var(--ink-2)}
.psocial{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:12px 0 0;padding:0}
.psocial a{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;background:var(--wash);color:var(--ink);transition:transform .3s var(--spring),background-color .2s}
.psocial a:hover{background:var(--card);box-shadow:var(--shadow);transform:rotate(-6deg)}
.psocial .icon{width:20px;height:20px}
.cgate .auth__card{max-width:620px}
.cgate__note{max-width:620px}

/* Vellen (dialog) en menu's */
.csheet{border:0;padding:0;margin:auto auto 0;width:100%;max-width:100%;max-height:88vh;background:var(--card);color:var(--ink);border-radius:20px 20px 0 0;box-shadow:var(--shadow-lift)}
.csheet::backdrop{background:rgba(20,18,15,.45)}
.csheet[open]{animation:sheetup .35s var(--spring)}
@keyframes sheetup{from{transform:translateY(40px);opacity:0}}
@media (min-width:640px){.csheet{margin:auto;max-width:460px;border-radius:18px}}
.csheet__in{padding:8px 18px calc(20px + env(safe-area-inset-bottom));overflow:auto;max-height:88vh}
.csheet__head{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;background:var(--card);z-index:1}
.csheet__head .h3{margin:0}
.csheet__head::before{content:"";position:absolute;left:50%;top:0;width:40px;height:4px;margin-left:-20px;border-radius:3px;background:var(--line-strong)}
@media (min-width:640px){.csheet__head::before{display:none}}
.csheet .choices{flex-direction:column;margin:10px 0 16px}
.csheet h3.eyebrow{margin:6px 0 4px}
.cmenu{list-style:none;margin:0 0 6px;padding:0}
.cmenu__b{display:flex;align-items:center;gap:14px;width:100%;min-height:54px;padding:0 6px;border:0;border-bottom:1px solid var(--line);background:none;cursor:pointer;font-weight:600;font-size:16px;text-align:left;color:var(--ink)}
.cmenu li:last-child .cmenu__b{border-bottom:0}
.cmenu__b:hover{background:var(--wash)}
.cmenu__b.is-bad,.is-bad{color:var(--bad)}
.crop__stage{position:relative;aspect-ratio:1;max-width:340px;margin:6px auto 12px;overflow:hidden;border-radius:8px;touch-action:none;background:var(--wash)}
.crop__stage canvas{width:100%;height:100%;display:block;cursor:grab}
.crop__stage canvas:active{cursor:grabbing}
.crop__ring{position:absolute;inset:0;border-radius:32%;box-shadow:0 0 0 999px rgba(20,18,15,.45);pointer-events:none;outline:2px solid #fff;outline-offset:-2px}
.crop__zoom{display:flex;align-items:center;gap:12px;margin:0 0 8px}
.crop__zoom input{flex:1;accent-color:var(--s-tomato)}

/* Nieuwe post */
.newpost{display:grid;gap:6px}
.npgrid{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:18px;margin:0 0 12px;padding:0}
.npgrid:empty{display:none}
.npm .polaroid{position:relative}
.npm .polaroid img{aspect-ratio:1;object-fit:cover}
.npm__x{position:absolute;top:-10px;right:-10px;width:34px;height:34px;background:var(--ink);color:var(--paper)}
.npm__x:hover{background:var(--ink)}
.npm__v{position:absolute;left:14px;top:14px;color:#fff;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5))}
.npm__alt{display:block;margin-top:10px}
.npm__alt input{min-height:40px;padding:8px 10px;font-size:14px;margin-top:4px}
.npadd{display:block;cursor:pointer;margin-bottom:16px}
.npadd__in{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:220px;padding:24px;border:2px dashed var(--line-strong);border-radius:var(--r);background:var(--card);text-align:center;transition:border-color .2s,transform .35s var(--spring)}
.npadd__in .icon{width:44px;height:44px;color:var(--s-tomato)}
.npadd:hover .npadd__in,.npadd:focus-within .npadd__in{border-color:var(--ink);transform:rotate(-.6deg)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chipr{position:relative;display:inline-flex;cursor:pointer}
.chipr input{position:absolute;opacity:0;width:1px;height:1px}
.chipr span{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border:1.5px solid var(--line-strong);border-radius:10px;background:var(--card);font-weight:600;font-size:14.5px;transition:transform .3s var(--spring)}
.chipr input:checked+span{background:var(--s-sunflower);border-color:var(--ink);color:#14120F;transform:rotate(-2deg)}
.chipr--tomato input:checked+span{background:var(--s-tomato)}.chipr--cobalt input:checked+span{background:var(--s-cobalt);color:#fff}.chipr--mint input:checked+span{background:var(--s-mint)}.chipr--blush input:checked+span{background:var(--s-blush)}.chipr--tangerine input:checked+span{background:var(--s-tangerine)}
.chipr input:focus-visible+span{outline:3px solid var(--focus);outline-offset:2px}
.newpost__go{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:8px}

/* Profiel bewerken en profielstap */
.profedit{display:grid;gap:18px}
.pe-sec{padding:22px 18px;background:var(--card);border-radius:var(--r);box-shadow:var(--shadow)}
.pe-sec:nth-child(2n){transform:rotate(.25deg)}
.pe-sec .h3{margin-bottom:14px}
.pe-row{display:grid;grid-template-columns:minmax(0,1fr);gap:0 12px;align-items:end}
.pe-row .field{margin-bottom:6px}
.pe-row .vis{margin-bottom:18px;min-height:40px;padding:6px 30px 6px 10px;font-size:13.5px;width:auto;justify-self:start;color:var(--ink-2)}
@media (min-width:600px){.pe-row{grid-template-columns:minmax(0,1fr) 150px}.pe-row .field{margin-bottom:18px}.pe-row .vis{justify-self:stretch}}
.pe-save{position:sticky;bottom:calc(70px + env(safe-area-inset-bottom));z-index:5;display:flex;align-items:center;gap:12px;margin:0 calc(-1 * var(--gutter));padding:12px var(--gutter);background:color-mix(in srgb,var(--paper) 94%,transparent);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-top:1px solid var(--line)}
@media (min-width:900px){.pe-save{bottom:0}}
.label{display:block;font-weight:700;margin-bottom:6px;font-size:15.5px}
.at-input{display:flex;align-items:center;border:1.5px solid var(--line-strong);border-radius:12px;background:var(--card);padding-left:14px}
.at-input>span{font:500 17px var(--mono);color:var(--ink-2)}
.at-input input{border:0!important;box-shadow:none!important;padding-left:4px;font-family:var(--mono);background:transparent}
.at-input:focus-within{border-color:var(--ink);box-shadow:0 0 0 4px color-mix(in srgb,var(--s-sunflower) 50%,transparent)}
.js-handle-msg.is-bad{color:var(--bad);font-weight:600}
.avedit{display:flex;align-items:center;gap:20px;margin-bottom:18px}
.avedit .ava--xl{transform:rotate(-3deg)}
.avedit__side{min-width:0}
.avedit__pick{cursor:pointer}
.psetup__dots{list-style:none;display:none;gap:6px;margin:0 0 18px;padding:0}
.psetup.is-stepped .psetup__dots{display:flex}
.psetup__dots li{flex:1;height:6px;border-radius:6px;background:var(--line)}
.psetup__dots li.is-on{background:var(--accent)}
.psetup__part{margin-bottom:8px}
.psetup__part .h3{display:flex;align-items:center;gap:10px;font-size:22px;font-family:var(--display);font-weight:740;letter-spacing:-.01em}
.psetup__part .h3 .num{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;background:var(--s-sunflower);color:#14120F;font-size:15px;transform:rotate(-6deg)}
.psetup__nav{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:18px}
.psetup__nav .btn:only-child{margin-left:auto}
.psetup__later{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:18px;padding-top:12px;border-top:1px dashed var(--line-strong)}
.bigchoice .choice{min-height:72px;align-items:flex-start;padding:12px 14px}
.bigchoice .choice input{margin-top:3px}
.rules-card{margin:6px 0 14px;padding:16px 18px;background:#FFF3B8;color:#14120F;border-radius:4px;transform:rotate(-.5deg);box-shadow:var(--shadow)}
.rules-card .eyebrow{color:#5E574C}
.rules-card .ticks .icon{color:#14895A}
.rules-card a{color:#14120F}
:root[data-theme="dark"] .rules-card{background:#3A3420;color:var(--ink)}
:root[data-theme="dark"] .rules-card .eyebrow,:root[data-theme="dark"] .rules-card a{color:var(--ink)}
.social-fields{margin:10px 0 0}
.social-fields summary{cursor:pointer;font-weight:700;min-height:var(--tap);display:flex;align-items:center;gap:8px}
.social-row{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:10px;align-items:center;margin-bottom:10px}
.social-row .icon{width:22px;height:22px;justify-self:center;color:var(--ink-2)}
.social-row input{min-height:44px;font-size:15px}
.social-row .choice--plain{padding:0;min-height:0;font-size:13px;white-space:nowrap}

/* ---------- Berichten ---------- */
.dm{display:grid;grid-template-columns:minmax(0,1fr);height:calc(100dvh - var(--bar-h) - var(--wpbar) - 70px - env(safe-area-inset-bottom));min-height:420px}
.dm__list{display:flex;flex-direction:column;min-height:0;padding-top:16px}
.dm__lhead{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.dm__lhead .h2{margin:0;font-size:30px}
.dm__items{list-style:none;margin:0;padding:0;overflow:auto;flex:1}
.dmi{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;min-height:68px;padding:8px 10px;border-radius:12px;text-decoration:none;position:relative}
.dmi:hover{background:var(--wash)}
.dmi.is-cur{background:var(--card);box-shadow:var(--shadow)}
.dmi__t{display:flex;flex-direction:column;min-width:0}
.dmi__t strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dmi__p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dmi.is-unread .dmi__p{color:var(--ink);font-weight:600}
.dmi__time{align-self:start;margin-top:6px}
.dmi__dot{position:absolute;right:12px;bottom:16px;width:10px;height:10px;border-radius:50%;background:var(--s-tomato)}
.dm__none{padding:24px 10px;text-align:center;list-style:none}
.dm__thread{display:flex;flex-direction:column;min-height:0;background:var(--card)}
.dm__thead{display:flex;align-items:center;gap:6px;padding:8px 6px;border-bottom:1px solid var(--line)}
.dm__other{flex:1;min-width:0}
.dm__other a{display:flex;align-items:center;gap:10px;text-decoration:none;min-width:0}
.dm__other a>span{display:flex;flex-direction:column;min-width:0;line-height:1.25}
.dm__other strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dm__privacy{display:flex;align-items:center;justify-content:center;gap:6px;margin:0;padding:8px 14px;font-size:13px;text-align:center;background:var(--wash)}
.dm__privacy .icon{width:15px;height:15px;flex:none}
.dm__req{margin:12px;padding:14px;background:var(--wash);border-radius:12px}
.dm__reqbtns{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 0}
.dm__msgs{list-style:none;margin:0;padding:16px 14px;overflow:auto;flex:1;display:flex;flex-direction:column;gap:4px}
.dmsg{display:flex;flex-direction:column;align-items:flex-start;max-width:82%}
.dmsg--own{align-self:flex-end;align-items:flex-end}
.dmsg__b{padding:9px 13px;border-radius:16px 16px 16px 5px;background:var(--wash);overflow-wrap:anywhere}
.dmsg--own .dmsg__b{background:var(--ink);color:var(--paper);border-radius:16px 16px 5px 16px}
.dmsg__b p{margin:0}
.msg__img{max-width:240px;border-radius:10px;margin:2px 0 4px}
.msg__ph{display:block;width:200px;height:150px;border-radius:10px;background:repeating-linear-gradient(-45deg,color-mix(in srgb,var(--wash) 60%,var(--line)) 0 10px,var(--wash) 10px 20px)}
.dmsg__meta{display:flex;flex-wrap:wrap;align-items:center;gap:0 6px;padding:2px 6px 6px;font-size:12px}
.msg__st{font-weight:600;color:var(--s-cobalt)}
:root[data-theme="dark"] .msg__st{color:var(--in)}
.msg__read{color:var(--ok);font-weight:600}
.dm__safety{align-self:center;max-width:92%;margin:8px 0;padding:10px 14px;background:#FFF3B8;color:#14120F;border-radius:8px;font-size:14px;list-style:none}
.dm__safety a{color:#14120F;font-weight:700}
.dm__typing,.dm__cant,.dm__reqsent{margin:0;padding:4px 16px 8px}
.dm__typing .scribble{display:inline-flex;gap:3px}
.dm__typing .scribble i{width:6px;height:6px;border-radius:50%;background:var(--ink-2);animation:tdot 1.1s infinite}
.dm__typing .scribble i:nth-child(2){animation-delay:.15s}.dm__typing .scribble i:nth-child(3){animation-delay:.3s}
@keyframes tdot{0%,60%,100%{transform:none;opacity:.5}30%{transform:translateY(-3px);opacity:1}}
.dm__composer{display:flex;align-items:flex-end;gap:6px;padding:8px;border-top:1px solid var(--line);background:var(--card)}
.dm__composer textarea{min-height:44px;max-height:140px;border-radius:22px;padding:10px 16px;resize:none}
.dm__photo{cursor:pointer}
.dm__empty{display:none;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:24px;color:var(--ink-2)}
.dm__doodle{width:120px;height:40px;color:var(--s-mint);margin-bottom:10px}
.dm__back{flex:none}
.dm.is-thread .dm__list{display:none}
@media (min-width:760px){
	.dm{grid-template-columns:320px minmax(0,1fr);gap:0;height:calc(100dvh - var(--bar-h) - var(--wpbar) - 32px);margin-top:16px;border-radius:var(--r);background:var(--card);box-shadow:var(--shadow);overflow:hidden}
	.dm__list{padding:16px 10px;border-right:1px solid var(--line);background:var(--paper)}
	.dm.is-thread .dm__list{display:flex}
	.dm__back{display:none}
	.dm__empty{display:flex}
	.dm__empty[hidden]{display:none!important}
}
@media (min-width:760px) and (max-width:899px){.dm{height:calc(100dvh - var(--bar-h) - var(--wpbar) - 32px - 70px - env(safe-area-inset-bottom))}}
@media (min-width:900px){.dm{height:calc(100dvh - var(--bar-h) - var(--wpbar) - 52px)}}

/* ---------- Beveiliging ---------- */
.sec__grid{display:grid;gap:28px}
@media (min-width:960px){.sec__grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:40px;align-items:start}}
.sec__card{padding:22px 20px}
.sec__card:not(.sheet-card){background:var(--card);border-radius:var(--r);box-shadow:var(--shadow)}
.sec__card .h3{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.sec__card .h3 .icon{color:var(--ok)}
.sec__methods{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}
.sec__steps{margin:0 0 14px;padding-left:20px}
.sec__steps li{margin-bottom:6px}
.sec__qr{width:216px;margin:10px 0 14px}
.sec__qr canvas,.sec__qr img,.sec__qr svg{width:100%!important;height:auto!important;display:block;background:#fff}
.sec__secret{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.sec__secret code{padding:6px 10px;background:var(--wash);border-radius:6px;word-break:break-all;font-size:14px}
.sec__form{margin-top:12px}
.otp{font-family:var(--mono)!important;font-size:22px!important;letter-spacing:.3em;text-align:center;max-width:15ch}
.inline-field .otp{flex:0 1 15ch}
.codes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 18px;margin:10px 0 16px;padding:16px 16px 16px 36px;background:var(--wash);border-radius:8px;font:500 15px var(--mono)}
.sec__codebtns{display:flex;flex-wrap:wrap;gap:8px}
.devlist{list-style:none;margin:8px 0 14px;padding:0}
.devlist li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;padding:10px 0;border-bottom:1px solid var(--line)}
.sec__google{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}
@media print{body *{visibility:hidden}.js-codes,.js-codes *{visibility:visible}.js-codes{position:absolute;left:0;top:0}}

/* ---------- Account: vrienden uitnodigen ---------- */
.invite{display:grid;gap:24px;margin-top:56px;max-width:760px}
.invite__card{padding:26px 22px}
.invite__card .h2{display:flex;align-items:center;gap:10px;font-size:clamp(26px,4vw,36px)}
.invite__card .h2 .icon{width:30px;height:30px;color:var(--s-tomato)}
.invite__card .inline-field{flex-wrap:wrap}
.invite__card .inline-field input{flex:1 1 220px;font-size:14px}
.invite__thanks{margin:12px 0;font-family:var(--display);font-style:italic;font-size:19px;font-variation-settings:"SOFT" 100,"WONK" 1}
.invite__count{display:flex;align-items:baseline;gap:8px;margin:12px 0 0}
.invite__count .num{font-size:28px;color:var(--ink)}
.btn--wa{background:#1F7A4D;border-color:#1F7A4D;color:#fff}
.btn--wa:hover{background:#1A6942}
.account__links{display:flex;flex-direction:column;align-items:flex-start;gap:0}
.delacc{margin-top:22px;padding:14px 18px;border:1.5px solid var(--line-strong);border-radius:var(--r)}
.delacc summary{cursor:pointer;font-weight:700;min-height:var(--tap);display:flex;align-items:center}
.budgetnote{display:flex;gap:10px;align-items:flex-start;margin:0 0 12px;padding:10px 14px;background:var(--wash);border-radius:var(--r-s);font-size:14.5px}
.budgetnote .icon{color:var(--s-tangerine);flex:none}
.onb-ref{margin-top:14px;padding:12px 14px;background:var(--wash);border-radius:var(--r-s);font-size:15px}

/* ---------- Afrekenen en abonnement ---------- */
.subscribe{max-width:980px}
.product{display:grid;gap:20px;padding:26px 22px;margin-bottom:32px}
@media (min-width:860px){.product{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:36px;padding:34px}}
.product__price{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;margin:0 0 4px}
.product__price .price{font-size:40px}
.product__terms{align-self:start}
.product__links{grid-column:1/-1;margin:0}
.checkout{max-width:760px;margin-top:22px}
.checkout__step{display:flex;align-items:center;gap:10px;margin:28px 0 12px}
.checkout__step .num{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;background:var(--ink);color:var(--paper);font-size:15px;transform:rotate(-5deg)}
.checkout__sum{padding:12px 0;border-bottom:1px solid var(--line)}
.agree{border:0;padding:0;margin:0}
.pack{padding:22px 20px;background:var(--card);border-radius:var(--r);box-shadow:var(--shadow);margin:32px 0}
.subscribe__current{margin:0 0 28px}
.subscribe__pays{margin:28px 0}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.table .r{text-align:right}
.paybadges{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.paybadge{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-2)}
.paybadge svg{width:40px;height:24px;color:var(--ink)}
:root[data-theme="dark"] .paybadge svg rect{fill:var(--card)}

/* ---------- Cookiemelding ---------- */
.cookie{position:fixed;left:0;right:0;bottom:0;z-index:70;padding:0 0 env(safe-area-inset-bottom)}
.cookie__card{max-width:560px;margin:0 auto;padding:18px 18px 16px;background:var(--card);border-radius:18px 18px 0 0;box-shadow:0 -1px 0 var(--line),0 -18px 40px -20px rgba(60,44,20,.45)}
@media (min-width:640px){.cookie{left:auto;right:20px;bottom:20px;width:440px}.cookie__card{border-radius:16px;box-shadow:var(--shadow-lift)}}
.cookie__title{display:flex;align-items:center;gap:8px;margin:0 0 6px}
.cookie__title .icon{color:var(--s-tangerine)}
.cookie__text{margin:0 0 12px}
.cookie__prefs{display:grid;gap:8px;margin:0 0 12px}
.cookie__opt{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:1px solid var(--line);font-size:15px}
.cookie__opt input{width:20px;height:20px;margin-top:2px;flex:none;accent-color:var(--s-tomato)}
.cookie__btns{display:grid;grid-template-columns:1fr;gap:8px}
@media (min-width:400px){.cookie__btns{grid-template-columns:repeat(3,minmax(0,1fr))}.cookie__btns:has([data-ck="save"]:not([hidden])){grid-template-columns:repeat(2,minmax(0,1fr))}}
.btn--ck{min-height:46px;padding:8px 10px;font-size:14.5px;background:var(--card);color:var(--ink);border-color:var(--ink);box-shadow:none;white-space:normal;line-height:1.2}
.btn--ck:hover{background:var(--ink);color:var(--paper)}
body.has-bnav .cookie{bottom:calc(70px + env(safe-area-inset-bottom))}
@media (min-width:640px){body.has-bnav .cookie{bottom:20px}}

/* ---------- Juridisch, veilig, contact ---------- */
.legal{display:grid;gap:28px;padding-top:36px;padding-bottom:64px}
@media (min-width:960px){.legal{grid-template-columns:minmax(0,1fr) 260px;gap:64px;padding-top:56px}.legal__head{grid-column:1/-1}}
.legal__draft{margin-top:6px}
.legal__body h2{font:740 26px/1.15 var(--display);letter-spacing:-.015em;margin:32px 0 10px}
.legal__body h3{font:700 18px/1.3 var(--sans);margin:22px 0 6px}
.legal__body ul,.legal__body ol{padding-left:22px}
.legal__body li{margin-bottom:6px}
.legal__body table{width:100%;border-collapse:collapse;font-size:14.5px;margin:12px 0 20px;display:block;overflow-x:auto}
.legal__body th,.legal__body td{text-align:left;padding:8px 10px 8px 0;border-bottom:1px solid var(--line);vertical-align:top}
.legal__side{align-self:start}
@media (min-width:960px){.legal__side{position:sticky;top:calc(var(--bar-h) + var(--wpbar) + 24px)}}
.legal__side ul{list-style:none;margin:0 0 18px;padding:0}
.legal__side a{display:flex;align-items:center;min-height:40px;text-decoration:none;color:var(--ink-2);font-weight:600}
.legal__side a[aria-current="page"]{color:var(--ink);text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:3px}
.safety__grid{display:grid;gap:18px;margin:18px 0}
@media (min-width:760px){.safety__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.contactp{padding-top:36px;padding-bottom:64px}
.contactp__grid{display:grid;gap:28px;margin-top:20px}
@media (min-width:860px){.contactp__grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:48px}}
.contactp__card{padding:24px 22px;background:var(--card);border-radius:var(--r);box-shadow:var(--shadow)}
.contactp__company{font-style:normal;line-height:1.7}

/* ---------- Voet ---------- */
.footer__brand .logo__full svg{height:30px}
.footer__addr{font-style:normal;line-height:1.7;margin-bottom:6px}
.footer__meta{display:grid;gap:10px}
.footer__links{gap:0 14px}
.footer__cookie{min-height:var(--tap);padding:0;font-weight:400;font-size:15px;text-decoration:underline;text-decoration-thickness:1.5px}
.footer__base{grid-column:1/-1;display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 18px;margin:8px 0 0;padding-top:14px;border-top:1px solid var(--line-strong);color:var(--ink-2);font-size:14px}
.footer__credit a{font-weight:700;color:var(--ink)}

/* ---------- Elke taal: wisselend groetwoord ---------- */
.anylang{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:14px 0 0;font-size:16px;color:var(--ink-2)}
.anylang__word{display:inline-block;min-width:2.6em;font:600 italic 21px/1.2 var(--display);color:var(--ink);font-variation-settings:"SOFT" 100,"WONK" 1;transition:opacity .45s ease,transform .45s var(--spring)}
.anylang__word.is-out{opacity:0;transform:translateY(6px) rotate(-3deg)}
.anylang__word[lang|="ar"]{font-family:var(--sans);font-style:normal}
.anylang__word[lang|="zh"],.anylang__word[lang|="ja"]{font-family:var(--sans);font-style:normal}
@media (prefers-reduced-motion:reduce){.anylang__word{transition:none}}

/* ---------- Teaser community voor bezoekers ---------- */
.cteaser{padding:64px 0}
.cteaser__in{display:grid;gap:32px;align-items:center}
@media (min-width:900px){.cteaser__in{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px}}
.cteaser__stack{position:relative;height:340px;max-width:420px;width:100%;margin:0 auto}
.cteaser__card{position:absolute;width:62%;padding:10px 10px 30px;background:var(--card);border-radius:3px;box-shadow:var(--shadow);transform:rotate(var(--tilt,0deg))}
.cteaser__card:nth-child(1){left:0;top:20px;--tilt:-6deg}
.cteaser__card:nth-child(2){right:0;top:0;--tilt:5deg}
.cteaser__card:nth-child(3){left:20%;top:120px;--tilt:-1deg}
.cteaser__img{display:flex;align-items:flex-end;aspect-ratio:1;padding:12px;border-radius:2px;font:740 22px/1.05 var(--display);color:#14120F}
.cteaser__who{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:13px;font-weight:700}
.cteaser__who .ava{width:24px;height:24px;font-size:10px;box-shadow:none}

/* ---------- 404 ---------- */
.nf{padding:64px var(--gutter);max-width:640px;margin:0 auto;text-align:center}
.nf .h1{margin-top:12px}

/* ---------- Donkere modus: kleine correcties ---------- */
:root[data-theme="dark"] .post__frame{background:#1C1914}
:root[data-theme="dark"] .bnav__a--nieuw .icon{background:var(--ink);color:var(--paper)}
:root[data-theme="dark"] .dmsg--own .dmsg__b{background:#F6F0E4;color:#17140F}
:root[data-theme="dark"] .ava{box-shadow:0 0 0 2px var(--card),0 1px 3px rgba(0,0,0,.5)}

/* ---------- Minder beweging (0.1.5) ---------- */
@media (prefers-reduced-motion:reduce){
	.skel{animation:none}
	.heartfx.is-on{animation:none;opacity:0}
	.post__frame,.phead__ava,.grid__a,.subj,.chipr input:checked+span{transform:none!important}
	.csheet[open]{animation:none}
}
.plans .plan-card:hover{transform:rotate(0) translateY(-4px)}

/* ---------- /start ---------- */
.ss-page-start .footer__links,.ss-page-start .footer__addr{font-size:14px}
.start-hero{position:relative;padding:28px 0 48px;overflow:hidden}
.start-hero__cut{width:60vw;max-width:520px;aspect-ratio:1;right:-20vw;top:-10%;clip-path:polygon(8% 12%,62% 0,100% 18%,94% 70%,70% 100%,16% 92%,0 48%);background:var(--s-sunflower);opacity:.55}
.start-hero__in{position:relative;display:grid;gap:28px;align-items:start}
@media (min-width:900px){.start-hero{padding:64px 0 80px}.start-hero__in{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:64px;align-items:center}}
.start-hero .display{margin-bottom:16px}
.start-form{padding:28px 22px 22px;max-width:480px;width:100%;justify-self:center}
@media (min-width:900px){.start-form{padding:34px 32px 26px;justify-self:end}}
.start-form .h3{font:740 24px/1.15 var(--display);margin-bottom:12px}
.start-form .btn--google{margin-top:4px}
.start-benefits__list{list-style:none;margin:24px 0 0;padding:0;display:grid;gap:36px}
@media (min-width:760px){.start-benefits__list{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}}
.start-benefits__list .polaroid{max-width:300px;margin:0 auto 16px}
.start-benefits__list li{text-align:center}
.start-story__in{display:grid;gap:36px}
@media (min-width:900px){.start-story__in{grid-template-columns:1fr 1fr;gap:56px;align-items:center}}
.start-story__case{padding:30px 24px}
.start-story__case .stamp{margin-bottom:12px}
.start-story__founder{display:grid;grid-template-columns:120px minmax(0,1fr);gap:20px;align-items:start}
.start-story__founder .polaroid{padding:6px 6px 20px}
.start-prices__list{list-style:none;margin:20px 0 14px;padding:0;display:grid;gap:16px}
@media (min-width:760px){.start-prices__list{grid-template-columns:repeat(3,minmax(0,1fr))}}
.start-prices__list li{display:flex;flex-direction:column;gap:2px;padding:18px 20px}
.start-prices__list .price{font-size:30px;margin:4px 0}
.start-sticky{position:fixed;left:0;right:0;bottom:0;z-index:40;margin:0;padding:10px var(--gutter) calc(10px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--paper) 94%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-top:1px solid var(--line)}
@media (min-width:760px){.start-sticky{display:none}}
@media (max-width:759px){.ss-page-start .footer{padding-bottom:calc(96px + env(safe-area-inset-bottom))}.ss-page-start .cookie{bottom:calc(76px + env(safe-area-inset-bottom))}}
.contactp__form{max-width:680px;margin:40px 0}
.nf__doodle{width:120px;height:40px;color:var(--s-mint);margin:0 auto 12px}
.nf__actions{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;margin-top:20px}
.onb-ref .icon{width:18px;height:18px;vertical-align:-3px;color:var(--s-tomato)}
.ss-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.switchplan{margin:22px 0;padding:18px;background:var(--card);border-radius:var(--r);box-shadow:var(--shadow)}.switchplan .choices{flex-direction:column}.switchplan .choice{align-items:flex-start}.switchplan .choice input{margin-top:3px}
.legal>*{min-width:0}.legal__body{overflow-wrap:anywhere}

/* =====================================================================
   0.1.6: losse chats per les of project. Lijst links (vanaf 820 px), op mobiel een eigen scherm.
   ===================================================================== */
.learn{position:relative;display:grid;grid-template-columns:minmax(0,1fr);height:calc(100dvh - var(--wpbar) - var(--bar-h));max-width:1600px;margin:0 auto}
.learn__main{display:flex;flex-direction:column;min-width:0;min-height:0}
.learn .chat{height:auto;flex:1 1 auto;min-height:0;max-width:none;width:100%;margin:0}
.learn.is-loading .chat{opacity:.55;transition:opacity .15s .1s}
.learn[data-view="list"] .learn__main,.learn[data-view="chat"] .chats{display:none}

/* Lijst */
.chats{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--paper)}
.chats__top{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px 12px;padding:14px var(--gutter) 10px}
.chats__title{font:800 28px/1.05 var(--display);font-variation-settings:"SOFT" 100,"WONK" 1;letter-spacing:-.02em;margin:0}
.chats__new{padding:8px 16px 8px 12px}
.chats__new .icon{width:18px;height:18px}
.chats__search{grid-column:1 / -1;position:relative;display:block}
.chats__search .icon{position:absolute;left:12px;top:50%;width:18px;height:18px;margin-top:-9px;color:var(--ink-2);pointer-events:none}
.chats__search input{width:100%;min-height:44px;padding:8px 12px 8px 38px;border:1.5px solid var(--line-strong);border-radius:12px;background:var(--card);font-size:16px;-webkit-appearance:none;appearance:none}
.chats__search input:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 4px color-mix(in srgb,var(--s-sunflower) 50%,transparent)}
.chats__list{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:2px 10px 16px;-webkit-overflow-scrolling:touch}
.chats__empty{padding:16px 8px}
.cgroup{margin:0 0 10px}
.cgroup__title{display:block;padding:10px 8px 4px;font-size:11.5px}
.cgroup--arch summary{display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none;min-height:var(--tap);padding:0 8px}
.cgroup--arch summary::-webkit-details-marker{display:none}
.cgroup--arch summary::after{content:"";width:7px;height:7px;margin-left:auto;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);transition:transform .2s}
.cgroup--arch[open] summary::after{transform:rotate(45deg)}
.cgroup--arch summary .num{font-size:11.5px;opacity:.8}
.cgroup__list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr);gap:2px}
.citem{position:relative;display:flex;align-items:stretch;border-radius:12px;transition:background-color .2s}
.citem::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:4px;border-radius:4px;background:var(--c);opacity:.9}
.citem:hover{background:color-mix(in srgb,var(--wash) 80%,transparent)}
.citem.is-active{background:var(--card);box-shadow:var(--shadow)}
.citem.is-active::before{top:8px;bottom:8px}
.citem.is-archived .citem__title{color:var(--ink-2)}
.citem__main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:3px;padding:9px 4px 9px 16px;color:inherit;text-decoration:none;border-radius:12px}
.citem__main:hover{text-decoration:none}
.citem__main:focus-visible{outline-offset:-3px}
.citem__title{display:flex;align-items:center;gap:5px;min-width:0;font-weight:700;font-size:15.5px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.citem__pin .icon{width:15px;height:15px;color:var(--ink-2);transform:rotate(30deg)}
.citem__meta{display:flex;align-items:center;gap:8px;min-width:0;font-size:12.5px;color:var(--ink-2)}
.citem__link{display:block;flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.citem__link .icon{width:13px;height:13px;display:inline-block;vertical-align:-2px;margin-right:3px}
.citem__meta .cchip{flex:none}
.citem__date{margin-left:auto;flex:none;font-size:11.5px}
.citem__menu{align-self:center;width:36px;height:36px;margin-right:4px;color:var(--ink-2);opacity:.75}
.citem:hover .citem__menu,.citem.is-active .citem__menu,.citem__menu[aria-expanded="true"],.citem__menu:focus-visible{opacity:1}
.cchip{display:inline-flex;align-items:center;flex:none;max-width:12em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:1px 7px;border-radius:6px;background:color-mix(in srgb,var(--c,var(--s-sunflower)) 24%,var(--card));color:var(--ink);font:500 11px/1.6 var(--mono);text-transform:uppercase;letter-spacing:.06em}
.chats__limit{display:block;margin:0;padding:10px var(--gutter) calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line);color:var(--ink-2)}
.chats__limit .num{color:var(--ink);font-weight:500}
.chats__limit.is-full .num{color:var(--bad)}
.chats__limitline{display:block;margin-top:4px;color:var(--ink)}
.chats__limitline a{font-weight:700;white-space:nowrap}

/* Kop van de chat */
.chathead{display:flex;align-items:center;gap:4px 8px;min-height:56px;padding:6px var(--gutter);border-bottom:1px solid var(--line);background:var(--paper);min-width:0}
.chathead__back .icon{width:24px;height:24px}
.chathead__back{margin-left:-8px}
.chathead__title{display:inline-flex;align-items:center;gap:8px;min-width:0;flex:0 1 auto;min-height:var(--tap);padding:0 8px 0 2px;border:0;border-radius:10px;background:none;color:inherit;cursor:pointer;text-align:left}
.chathead__title:hover{background:var(--wash)}
.chathead__dot{width:12px;height:12px;flex:none;border-radius:50%;background:var(--c);box-shadow:0 0 0 3px color-mix(in srgb,var(--c) 25%,transparent)}
.chathead__name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:750 19px/1.2 var(--display);font-variation-settings:"SOFT" 100;letter-spacing:-.01em}
.chathead__pen{width:16px;height:16px;flex:none;color:var(--ink-2);opacity:0;transition:opacity .2s}
.chathead__title:hover .chathead__pen,.chathead__title:focus-visible .chathead__pen{opacity:1}
.chathead__meta{display:flex;align-items:center;gap:8px;min-width:0;flex:1 1 0}
.chathead__meta .cchip{--c:inherit}
.chathead__link{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chathead__menu{margin-left:auto;margin-right:-8px}
@media (max-width:819px){
	.chathead__meta{display:none}
	.chathead__pen{opacity:1}
	.chathead__name{font-size:18px}
	.chathead__title{flex:1 1 auto}
}

/* Menu bij een chat */
.cmenu{position:fixed;z-index:70;min-width:236px;padding:6px;background:var(--card);border-radius:14px;box-shadow:var(--shadow-lift)}
.cmenu__item{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:0 12px;border:0;border-radius:10px;background:none;color:var(--ink);font-weight:600;font-size:15.5px;text-align:left;cursor:pointer}
.cmenu__item .icon{width:19px;height:19px;color:var(--ink-2)}
.cmenu__item:hover,.cmenu__item:focus-visible{background:var(--wash);outline:none}
.cmenu__item--danger,.cmenu__item--danger .icon{color:var(--bad)}
.cmenu__colors{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 12px 10px;margin:2px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.cmenu__label{flex-basis:100%;margin-bottom:2px}
.cswatch{width:26px;height:26px;padding:0;border:2px solid var(--card);border-radius:50%;background:var(--sw);box-shadow:0 0 0 1.5px var(--line-strong);cursor:pointer;transition:transform .25s var(--spring)}
.cswatch:hover{transform:scale(1.12)}
.cswatch:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.cswatch[aria-pressed="true"]{box-shadow:0 0 0 2px var(--ink)}
.cswatch--auto{background:conic-gradient(var(--s-tomato) 0 25%,var(--s-sunflower) 0 50%,var(--s-mint) 0 75%,var(--s-cobalt) 0)}

/* Lege staat: de naam van de chat boven de begroeting */
.startcard__chat{display:block;margin:0 56px 6px 0;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.startcard__chat:empty{display:none}

/* Gearchiveerde chat: alleen lezen */
.chat.is-archived .chat__composer,.chat.is-archived .js-newtask{display:none}
.archbar{grid-area:composer;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;max-width:760px;width:calc(100% - 2 * var(--gutter));margin:8px auto calc(12px + env(safe-area-inset-bottom));padding:12px 14px;border:1.5px dashed var(--line-strong);border-radius:14px;background:var(--card)}
.archbar__text{display:flex;align-items:center;gap:8px;margin:0;font-size:15px;color:var(--ink-2)}
.archbar__text .icon{width:20px;height:20px;flex:none}

/* Dialogen */
.dialog--s{width:min(460px,calc(100vw - 2 * var(--gutter)))}
.dialog .row2 .field{margin-bottom:14px}
.nc-limit{padding:10px 12px;border-left:3px solid var(--s-tangerine);background:var(--wash);border-radius:0 10px 10px 0}
.nc-limit a{font-weight:700}
.dc-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px}
.dc-danger{color:var(--bad);text-decoration-color:var(--bad)}
.btn--danger{background:var(--bad);border-color:var(--bad);color:#fff}
:root[data-theme="dark"] .btn--danger{color:#14120F}

/* Knop "Chat voor deze les / toets" in rooster en planner */
.chatlink{display:inline-flex;align-items:center;gap:6px}
.chatlink .icon{width:18px;height:18px}
.planner__chat{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:10px}
.examlist{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:4px}
.examlist li{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;font-size:15px}
.examlist .num{font-size:13px;color:var(--ink-2)}

/* Vanaf 820 px: lijst en chat naast elkaar */
@media (min-width:820px){
	.learn{grid-template-columns:272px minmax(0,1fr)}
	.learn[data-view] .chats{display:flex;border-right:1px solid var(--line)}
	.learn[data-view] .learn__main{display:flex}
	.chathead__back{display:none}
	.chats__top{grid-template-columns:minmax(0,1fr);padding:16px 14px 10px}
	.chats__title{font-size:22px}
	.chats__new{width:100%}
	.chats__list{padding:2px 8px 16px}
	.chats__limit{padding:10px 14px 14px}
}
@media (min-width:1024px) and (max-width:1279px){.learn .chat{grid-template-columns:minmax(0,1fr) 290px}}
@media (min-width:1280px){.learn{grid-template-columns:292px minmax(0,1fr)}}
:root[data-theme="dark"] .citem.is-active{background:var(--card)}
:root[data-theme="dark"] .cchip{background:color-mix(in srgb,var(--c,var(--s-sunflower)) 30%,var(--card))}
@media (prefers-reduced-motion:reduce){.cswatch,.citem{transition:none}}

/* 0.1.7: opgavekaart inklapbaar tot één regel (mobiel en desktop). */
@media (min-width:0){
	.taskcard__toggle{display:inline-flex;align-items:center;justify-content:center;width:var(--tap);height:var(--tap);flex:none;border:0;border-radius:999px;background:var(--wash);color:var(--ink);cursor:pointer}
	.taskcard__toggle .icon{transition:transform .2s;transform:rotate(180deg)}
	.taskcard.is-compact .taskcard__toggle .icon{transform:none}
	.chat__task .taskcard.is-compact{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:6px 8px 6px 14px;border-top-width:4px}
	.taskcard.is-compact .taskcard__top{display:contents}
	.taskcard.is-compact .taskcard__title{order:0;margin:0;font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
	.taskcard.is-compact .js-newtask{order:1}
	.taskcard.is-compact .taskcard__toggle{order:2}
	.taskcard.is-compact .taskcard__meta,.taskcard.is-compact .taskcard__body,.taskcard.is-compact .taskcard__progress{display:none}
	.chat__log{-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 18px);mask-image:linear-gradient(to bottom,transparent 0,#000 18px)}
}

/* 0.1.7: ruimte onder berichten en de communitypagina's, zodat de kaart niet tegen de voettekst aan ligt. */
.cpage--dm{padding-bottom:24px}
@media (min-width:900px){.cpage{padding-bottom:64px}.cpage--dm{padding-bottom:56px}}

/* 0.1.7: onderschrift boven of onder de foto (keuze per post) */
.seg__opt{position:relative;display:inline-flex}
.seg__opt input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.seg__opt span{display:inline-flex;align-items:center;min-height:40px;padding:0 16px;border-radius:999px;font:600 14px var(--sans);color:var(--ink);transition:background .2s,color .2s}
.seg__opt input:checked+span{background:var(--ink);color:var(--paper)}
.seg__opt input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.cpos .seg{margin-top:2px}
.cappv{display:flex;flex-direction:column;gap:8px;width:min(220px,100%);margin-top:12px;padding:10px;border:1.5px dashed var(--line-strong);border-radius:14px;background:var(--card)}
.cappv__media{order:1;aspect-ratio:4/5;border-radius:9px;overflow:hidden;background:var(--wash)}
.cappv__media img{display:block;width:100%;height:100%;object-fit:cover}
.cappv__ph{display:block;width:100%;height:100%;background:repeating-linear-gradient(-45deg,var(--wash) 0 10px,color-mix(in srgb,var(--line) 60%,transparent) 10px 20px)}
.cappv__cap{order:2;margin:0;font-size:13px;line-height:1.35;overflow-wrap:anywhere}
.cappv[data-pos="above"] .cappv__cap{order:0}
.cappv__cap.is-empty{color:var(--ink-2);font-style:italic}
.post--capabove .post__cap{margin:2px 16px 10px}
.post__edited{font-style:italic}
.post__editp{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--ink-2)}
.post__editp .stamp{position:static}
.ealts{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.ealt{display:grid;grid-template-columns:56px minmax(0,1fr);gap:10px;align-items:center}
.ealt img{width:56px;height:56px;object-fit:cover;border-radius:8px;background:var(--wash)}
.ealt label{display:grid;gap:4px;margin:0}
.ealt input{width:100%}
.esave{margin:16px 0 0}
@media (prefers-reduced-motion:reduce){.seg__opt span{transition:none}}

/* 0.1.7: vaknamen nooit midden in een woord afbreken (Programmeren). */
.choices--grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,184px),1fr))}
.choices--grid .choice span,.tile__name{overflow-wrap:normal;word-break:normal;-webkit-hyphens:manual;hyphens:manual}
@media (min-width:1100px){.tiles{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.tile__name{font-size:clamp(15px,1.15vw,18px)}}

/* 0.1.7: foutmelding en zachte tip direct bij het veld in /account/ */
.account .field,.account [id]{scroll-margin-top:calc(var(--bar-h) + var(--wpbar) + 56px)}
.field__err{display:block;margin-top:6px;color:var(--s-tomato-ink,#B3261E);font-size:14.5px;font-weight:600}
.field input[aria-invalid="true"]{border-color:var(--s-tomato-ink,#B3261E);box-shadow:0 0 0 3px color-mix(in srgb,#B3261E 18%,transparent)}
.field__tip{margin:4px 0 10px;padding:10px 12px;border-left:4px solid var(--s-sunflower);background:var(--wash);border-radius:8px;font-size:14.5px}
:root[data-theme="dark"] .field__err{color:#FF8A80}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .field__err{color:#FF8A80}}

@media (min-width:1024px){.chat__composer .quick,.composer,.composer__status,.chat__task .taskcard{max-width:860px}.chat__log>*{max-width:860px;margin-left:auto;margin-right:auto}}

/* 0.1.7: eenmalige vraag "nachtmens?" bovenaan /leren/ */
.owlcard{position:relative;margin:0 0 12px;padding:14px 48px 12px 16px;background:var(--card);border:1.5px solid var(--line-strong);border-left:6px solid var(--s-cobalt);border-radius:var(--r);box-shadow:var(--shadow)}
.owlcard__title{margin:0 0 10px;font-weight:600;font-size:15.5px;line-height:1.35}
.owlcard__btns{display:flex;flex-wrap:wrap;gap:8px;margin:0}
.owlcard__x{position:absolute;right:4px;top:4px}

/* 0.1.7: menu onder de avatar (Mijn profiel, Profiel bewerken, Privacy, Account, Uitloggen) */
.acct{position:relative;display:inline-flex}
.acct__menu{position:absolute;right:0;top:calc(100% + 8px);z-index:40;min-width:220px;padding:6px;background:var(--card);border:1.5px solid var(--line-strong);border-radius:14px;box-shadow:var(--shadow-lift,var(--shadow))}
.acct__menu[hidden]{display:none}
.acct__menu a,.acct__menu button{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:0 12px;border:0;border-radius:10px;background:none;color:var(--ink);font:600 15px var(--sans);text-decoration:none;text-align:left;cursor:pointer}
.acct__menu a:hover,.acct__menu button:hover,.acct__menu a:focus-visible,.acct__menu button:focus-visible{background:var(--wash);outline:none}
.acct__menu .icon{width:20px;height:20px;flex:none}
.acct__menu form{margin:0;border-top:1px solid var(--line);margin-top:4px;padding-top:4px}
.appbar__account[aria-expanded="true"] .avatar{box-shadow:0 0 0 3px var(--accent)}

/* 0.1.7: "Bekijk als anderen" op het eigen profiel */
.pview{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 16px;padding:10px 12px;background:var(--wash);border-radius:14px}
.pview__l{font-weight:700;font-size:14.5px}
.pview__priv{margin-left:auto;display:inline-flex;align-items:center;gap:6px}
.pview__priv .icon{width:18px;height:18px}
.pview__note{flex-basis:100%;margin:0;color:var(--ink-2)}
.profile.is-preview .phead{outline:2px dashed var(--line-strong);outline-offset:8px;border-radius:14px}
.profile.is-preview .phead__btns{opacity:.55}
@media (max-width:520px){.pview__priv{margin-left:0}}

/* 0.1.7: privacy-instellingen */
.privacy-page{max-width:820px}
.privsec{margin:0 0 28px;padding:18px;background:var(--card);border-radius:var(--r);box-shadow:var(--shadow)}
.privsec .h3{margin-top:0}
.privsec .h4{margin:18px 0 8px;font-size:16px}
.privgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:10px 16px}
.privrow{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:48px;padding:6px 10px;border:1.5px solid var(--line);border-radius:12px;font-weight:600}
.privrow select{min-height:40px;max-width:60%;border-radius:10px;border:1.5px solid var(--line-strong);background:var(--paper);color:var(--ink);padding:0 8px;font:inherit;font-weight:500}
.privlock{display:flex;gap:8px;align-items:flex-start;margin:10px 0;padding:10px 12px;background:var(--wash);border-radius:10px;font-size:14.5px}
.privlock .icon{width:18px;height:18px;flex:none;margin-top:2px}
.privsave{position:sticky;bottom:calc(12px + env(safe-area-inset-bottom));z-index:5;display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:0 0 28px;padding:10px 12px;background:color-mix(in srgb,var(--paper) 92%,transparent);border-radius:16px;box-shadow:var(--shadow)}
.privmsg.is-ok{color:var(--ok-ink,#1E7A4C);font-weight:600}
.privmsg.is-err{color:#B3261E;font-weight:600}
:root[data-theme="dark"] .privmsg.is-ok{color:#6EE7A8}:root[data-theme="dark"] .privmsg.is-err{color:#FF8A80}
.privbl{list-style:none;margin:0;padding:0}
.privbl li{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:10px 0;border-bottom:1px solid var(--line)}
.privlist{margin:0 0 8px;padding-left:20px}
.privlist li{margin:4px 0}
@media (max-width:899px){.privsave{bottom:calc(84px + env(safe-area-inset-bottom))}}
