@font-face{font-family:LocalSans;src:local("Inter"),local("Arial")}*{box-sizing:border-box} :root{--ink:#252634;--muted:#686976;--paper:#f7f6f2;--line:#deded7;--purple:#6154bd;--dark:#33285f;--mint:#d6efdf;--yellow:#f3e6b2}body{margin:0;background:var(--paper);color:var(--ink);font-family:LocalSans,Arial,sans-serif;font-size:15px;line-height:1.55}a{color:inherit;text-underline-offset:4px}button,input{font:inherit}button,a,input{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}:focus-visible{outline:3px solid #a87505;outline-offset:4px}button,input,a{border-radius:4px}.header{max-width:1320px;margin:auto;padding:27px 48px;display:flex;align-items:center;gap:40px;border-bottom:1px solid var(--line)}.brand{font-size:33px;font-weight:800;letter-spacing:-1.5px;text-decoration:none;display:flex;align-items:center}.brand-icon{display:inline-grid;place-items:center;width:33px;height:33px;margin-right:9px;border-radius:11px;background:var(--purple);color:white;font-size:27px;line-height:1}.brand-dot{color:var(--purple)}.header-label{font-size:10px;letter-spacing:1.8px;color:var(--muted)}.header-link{margin-left:auto;text-decoration:none;font-size:13px}.header-link span{margin-left:12px}main{max-width:1320px;margin:auto;padding:48px 48px 68px}.eyebrow{display:flex;align-items:center;gap:9px;font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--purple);margin:0 0 20px}.eyebrow:before{content:"";width:7px;height:7px;background:var(--purple);border-radius:50%}.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:76px;align-items:start}.hero-copy{padding-top:13px}h1{font-size:clamp(40px,4.5vw,64px);font-weight:550;letter-spacing:-3px;line-height:1.08;margin:0 0 24px}h1 em{font-style:normal;color:var(--purple)}.intro{max-width:490px;font-size:17px;line-height:1.7;color:var(--muted);margin-bottom:32px}.steps{display:flex;gap:23px;font-size:12px;color:var(--muted);padding:0;list-style:none}.steps b{display:inline-grid;place-items:center;width:22px;height:22px;border:1px solid #cac5df;border-radius:50%;margin-right:6px;color:var(--dark);font-size:10px}.courses{margin-top:40px}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}.section-heading h2{font-size:12px;text-transform:uppercase;letter-spacing:1.5px;margin:0}.section-heading span{font-size:11px;color:var(--muted)}.course{display:grid;grid-template-columns:68px 1fr 24px;gap:17px;align-items:center;padding:18px 0;border-top:1px solid var(--line)}.course-art{width:68px;height:68px;display:grid;place-items:center;border-radius:16px;background:#e6e0f4;font-size:28px;color:var(--purple);position:relative;overflow:hidden}.course-art:before{content:"";position:absolute;inset:12px;border:1px solid #b4a8d4;border-radius:50%}.course-art.language{background:var(--mint);color:#32624e;font-size:22px;font-weight:650}.course-art.language:before{border-radius:6px;border-color:#a1cbb5;transform:rotate(-12deg)}.course h3{font-size:17px;margin:0 0 3px;font-weight:600}.course p{font-size:12px;color:var(--muted);margin:0}.course-arrow{font-size:20px;color:#9692a5}.same-access{font-size:12px;color:var(--muted);margin-top:10px}.signup-card{background:#fff;border:1px solid #e4e2eb;border-radius:24px;box-shadow:0 16px 45px #33285f09;padding:30px;position:relative}.card-kicker{font-size:10px;font-weight:700;letter-spacing:1.7px;color:var(--purple);text-transform:uppercase;margin:0 0 7px}.signup-card h2{font-size:26px;letter-spacing:-.8px;margin:0 0 7px;font-weight:600}.card-note{font-size:13px;color:var(--muted);margin:0 0 22px}.tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:#f3f1f7;border-radius:11px;padding:4px;margin-bottom:24px}.tab{border:0;padding:10px 4px;background:none;border-radius:8px;font-size:13px;color:var(--muted)}.tab[aria-selected=true]{background:#fff;box-shadow:0 2px 5px #33285f12;color:var(--dark);font-weight:600}.guest-illustration{height:130px;background:#f5f2fb;border-radius:14px;display:flex;align-items:center;justify-content:center;margin-bottom:17px;gap:14px}.avatar{display:grid;place-items:center;width:57px;height:57px;border-radius:20px;background:#dfd5f2;color:var(--purple);font-size:28px;transform:rotate(-8deg)}.identity-lines i{display:block;height:9px;background:#d3c9e7;width:110px;border-radius:5px;margin:9px 0}.identity-lines i:last-child{width:75px;background:#e2dced}.guest-text{font-size:14px;margin:0 0 22px}.guest-text strong{display:block;font-weight:600;margin-bottom:4px}.guest-text span{font-size:13px;color:var(--muted)}label.field{display:block;font-size:12px;font-weight:600;margin-bottom:14px}.field input{display:block;width:100%;border:1px solid #d9d7df;background:#fff;padding:11px 12px;border-radius:8px;margin-top:5px;color:var(--ink);font-size:14px}.field input:focus{border-color:var(--purple)}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.check{display:flex;align-items:flex-start;gap:9px;font-size:11px;color:var(--muted);line-height:1.6;margin:15px 0}.check input{margin:3px 0 0;flex-shrink:0;accent-color:var(--purple);width:15px;height:15px}.consent{background:#f6f5f8;padding:12px;border-radius:9px}.primary{display:flex;align-items:center;justify-content:center;gap:15px;width:100%;padding:14px 20px;background:var(--purple);color:#fff;border:1px solid var(--purple);border-radius:10px;font-size:14px;font-weight:600;transition:background .15s}.primary:hover{background:#4c419b}.secondary{background:#fff;border:1px solid #d9d7df;border-radius:8px;padding:9px 13px;color:var(--ink);font-size:12px}.small-print{font-size:10px;color:var(--muted);text-align:center;margin:12px 0 0}.privacy-strip{display:grid;grid-template-columns:1fr 1fr 1fr;margin-top:58px;padding-top:24px;border-top:1px solid var(--line);gap:38px}.privacy-strip article{display:flex;gap:14px;align-items:flex-start}.privacy-strip .symbol{font-size:19px;color:var(--purple)}.privacy-strip h3{font-size:13px;margin:0 0 3px}.privacy-strip p{font-size:12px;color:var(--muted);margin:0}footer{max-width:1320px;margin:auto;border-top:1px solid var(--line);padding:25px 48px;display:flex;align-items:center;gap:25px;font-size:11px;color:var(--muted)}footer nav{margin-left:auto;display:flex;gap:22px}.brand.small{font-size:23px;color:var(--ink)}#mode-banner{text-align:center;font-size:11px;background:#f3e9c9;padding:7px 15px;color:#66521e}.error{font-size:12px;color:#9e2939;background:#fff1f2;padding:10px;border-radius:8px}.error:empty{display:none}.success-badge{width:47px;height:47px;border-radius:50%;display:grid;place-items:center;background:var(--mint);color:#32624e;font-size:24px;margin-bottom:18px}.credentials{padding:15px;border:1px solid var(--line);border-radius:10px;margin:20px 0;overflow-wrap:anywhere}.credentials dt{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin-bottom:5px}.credentials dd{margin:0 0 13px;font-family:ui-monospace,monospace;font-size:13px;user-select:all}.credentials dd:last-child{margin:0}.result-actions{display:grid;gap:9px}.result-actions a{text-decoration:none}.notice{padding:12px 15px;background:#f1edf8;border-radius:10px;font-size:12px;color:var(--dark);margin:15px 0}.muted{color:var(--muted)}.loading{padding:80px;text-align:center;color:var(--muted)}.skip{position:absolute;top:-100px;left:20px;background:#fff;padding:12px;z-index:10}.skip:focus{top:10px}[hidden]{display:none!important}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:10px 20px;border-radius:10px;background:var(--ink);color:#fff;font-size:13px;max-width:90vw;z-index:5}#toast:empty{display:none}.admin-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;gap:20px}.admin-top h1{font-size:35px;letter-spacing:-1px;margin-bottom:10px}.admin-actions{display:flex;gap:8px}.admin-layout{display:grid;grid-template-columns:1fr 350px;gap:30px}.panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px;margin-bottom:24px}.panel h2{font-size:18px;margin:0 0 6px}.panel p{font-size:12px;color:var(--muted)}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:12px}th{text-align:left;color:var(--muted);font-weight:500;font-size:10px;text-transform:uppercase;letter-spacing:.7px}td,th{padding:13px 10px;border-bottom:1px solid #eeedf0}td:first-child,th:first-child{padding-left:0}td small{display:block;font-size:10px;color:var(--muted)}.pill{font-size:10px;white-space:nowrap;padding:4px 7px;border-radius:20px;background:#eeedf5;color:var(--dark)}.pill.active{background:#e3f1e8;color:#356248}.empty{padding:35px 0;text-align:center}.admin-login{max-width:420px;margin:35px auto 70px}.legal{max-width:720px;margin:auto}.legal h1{font-size:40px;letter-spacing:-1px}.legal h2{font-size:20px;margin-top:30px}.legal p,.legal li{font-size:14px;color:var(--muted)}@media(min-width:1450px){main{padding-top:70px}.hero{gap:105px}}@media(max-width:1000px){.header,main,footer{padding-left:28px;padding-right:28px}.hero{gap:35px}.header-label{display:none}.signup-card{padding:23px}.steps{gap:9px;font-size:10px}.admin-layout{grid-template-columns:1fr}.admin-layout aside{grid-row:1}}@media(max-width:720px){.header{padding-top:20px;padding-bottom:20px}.hero{grid-template-columns:1fr;gap:30px}.hero-copy{padding-top:0}main{padding:30px 22px 40px}h1{font-size:45px;letter-spacing:-2px;max-width:470px}.intro{font-size:15px;margin-bottom:20px}.courses{margin-top:30px}.steps{gap:18px;font-size:11px}.signup-card{max-width:500px;width:100%;margin:auto}.privacy-strip{grid-template-columns:1fr;gap:22px;margin-top:35px}.header{padding-left:22px;padding-right:22px}.brand{font-size:28px}.header-link{font-size:11px}footer{padding:23px 22px;flex-wrap:wrap;gap:12px}footer nav{width:100%;margin-left:0;margin-top:8px}.admin-top{align-items:flex-start;flex-direction:column}.field-row{gap:10px}.section-heading span{font-size:10px}.course h3{font-size:15px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* Branding.zip / VISUAL FOUNDATIONS. Font binaries are loaded by app.js. */
:root {
  --ink:#000; --muted:#57564f; --paper:#f4f2e7; --line:#d6d3c6;
  --purple:#c9bfdb; --dark:#000; --mint:#606744; --yellow:#f5bd90;
  --spark:#f5bd90; --spark-hover:#e9ac7d;
  --font-sans:'ABC Favorit',Arial,sans-serif;
  --font-display:'ABC Favorit Lining','ABC Favorit',Arial,sans-serif;
}
body {font-family:var(--font-sans);font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased;background:var(--paper)}
:focus-visible {outline:3px solid #e8784c;outline-offset:4px}
h1,h2 {font-family:var(--font-display);font-weight:700}
h3,strong {font-family:var(--font-sans);font-weight:400}
.header {max-width:1440px;padding:16px 40px;min-height:108px;border:0;gap:32px}
.brand {display:block;flex-shrink:0;line-height:0;color:#000}
.brand svg {display:block;width:150px;height:auto}
.header-label {font-size:16px;letter-spacing:0;color:var(--ink)}
.header-link {border:1px solid #000;border-radius:40px;padding:12px 22px;font-size:16px;min-height:48px;background:var(--paper)}
.header-link:hover,.secondary:hover {background:#fff}
main {max-width:1440px;padding:60px 40px 80px}
.hero {grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:64px;align-items:start}
.hero-copy {padding-top:8px}
.eyebrow {color:var(--ink);font-size:14px;letter-spacing:.8px;margin-bottom:24px}
.eyebrow:before {background:var(--ink);width:8px;height:8px}
h1 {font-family:var(--font-display);font-size:clamp(44px,4.7vw,68px);line-height:1.12;letter-spacing:-1.7px;margin-bottom:28px}
h1 em {color:var(--ink);text-decoration:none}
.intro {font-size:21px;line-height:1.4;color:var(--ink);max-width:580px;margin:0 0 28px}
.steps {flex-wrap:wrap;gap:12px 18px;font-size:13px;color:var(--ink)}
.steps b {background:var(--spark);border:0;color:#000;width:27px;height:27px;font-size:13px}
.courses {margin-top:42px}
.section-heading h2 {font-size:14px;letter-spacing:.6px}
.section-heading span {font-size:12px}
.course {border:0;background:#fff;border-radius:20px;padding:20px;gap:18px;margin-top:12px;grid-template-columns:56px minmax(0,1fr) 22px}
.course {position:relative;overflow:hidden;border:1px solid var(--line)}
.course:before {content:"";position:absolute;inset:0 0 auto;height:5px;background:var(--purple)}
.course:nth-of-type(2):before {background:var(--spark)}
.course-art,.course-art.language {background:transparent;color:#000;width:56px;height:56px;font-size:36px;border-radius:0}
.course-art:before,.course-art.language:before {display:none}
.course-art.language {font-family:var(--font-display);font-size:30px}
.course h3 {font-size:21px;line-height:1.2;margin-bottom:6px}
.course p {font-size:14px;color:#000}
.course-arrow {color:#000;font-size:25px}
.same-access {font-size:13px;margin-top:16px}
.signup-card {background:#fff;border:1px solid var(--line);box-shadow:0 5px 20px #60674409;border-radius:20px;padding:36px;min-width:0}
.card-kicker {color:#000;font-size:13px;letter-spacing:.8px;margin-bottom:12px}
.signup-card h2 {font-family:var(--font-display);font-size:32px;line-height:1.15;letter-spacing:-.5px;margin-bottom:12px}
.card-note {font-size:16px;margin-bottom:24px}
.tabs {background:var(--paper);border-radius:30px;padding:5px;margin-bottom:24px;gap:4px}
.tab {border-radius:26px;min-height:52px;padding:10px 12px;font-size:14px;line-height:1.25;color:var(--ink)}
.tab[aria-selected=true] {background:var(--purple);color:#000;box-shadow:none;font-weight:400}
.tab:hover {box-shadow:inset 0 0 0 1px #000}
.guest-illustration {background:var(--paper);height:130px;border-radius:16px;gap:20px;margin-bottom:22px}
.avatar {background:var(--purple);color:#000;width:66px;height:66px;border-radius:20px;font-size:40px}
.identity-lines i {background:#aab092;width:120px;height:12px;border-radius:20px}
.identity-lines i:last-child {background:var(--spark);width:80px}
.guest-text {font-size:18px;margin-bottom:24px}
.guest-text strong {margin-bottom:8px}
.guest-text span {font-size:16px;line-height:1.5}
label.field {font-size:15px;font-weight:400;margin-bottom:16px}
.field input {border:1px solid #8b8980;border-radius:40px;font-size:16px;min-height:48px;padding:11px 12px}
.field input:focus {border-color:#000}
.check {font-size:13px;line-height:1.5;gap:12px;margin:20px 0;color:var(--muted)}
.check input {width:20px;height:20px;margin-top:1px;accent-color:#606744}
.check a {color:#000}
.consent {background:var(--paper);border-radius:12px;padding:14px}
.primary {background:var(--spark);color:#000;border:1px solid transparent;border-radius:40px;min-height:54px;padding:13px 24px;font-size:20px;font-weight:400;line-height:1.2}
.primary:hover {background:var(--spark-hover)}
.primary span {margin-left:auto}
.secondary {border:1px solid #000;border-radius:40px;min-height:44px;padding:10px 18px;font-size:14px;background:transparent}
.small-print {font-size:12px;line-height:1.5;margin-top:16px}
.privacy-strip {border:0;gap:28px;margin-top:64px;padding:32px;border-radius:20px;background:#e8e3ef}
.privacy-strip article {gap:14px}
.privacy-strip .symbol {color:#000;font-size:28px;line-height:1}
.privacy-strip h3 {font-size:17px;line-height:1.25;margin-bottom:8px}
.privacy-strip p {font-size:14px;color:#000;line-height:1.5}
footer {max-width:1440px;padding:30px 40px;gap:30px;font-size:14px;color:#000;border-color:#000}
.brand.small svg {width:100px}
footer nav a {display:inline-flex;align-items:center;min-height:44px}
.notice {background:var(--paper);color:#000;font-size:14px}
.panel {border:0;border-radius:20px;padding:28px}
.panel h2 {font-size:24px}
.panel p {font-size:14px}
.admin-layout {grid-template-columns:minmax(0,1fr) 400px;gap:24px}
.admin-actions {flex-wrap:wrap}
.admin-login {max-width:480px}
.admin-login h2 {font-size:30px}
.legal h1 {font-size:clamp(36px,4vw,54px);line-height:1.15}
.legal h2 {font-size:24px}
.legal p,.legal li {font-size:16px;line-height:1.6}
.error {font-size:14px;color:#9b442e;background:#fbede5}
@media(min-width:1450px) {main{padding-top:70px}.hero{gap:80px}}
@media(max-width:1100px) {
  .hero{gap:32px}.signup-card{padding:26px}.header,main,footer{padding-left:28px;padding-right:28px}
  .header-label{display:none}.admin-layout{grid-template-columns:1fr}.admin-layout aside{grid-row:1}
  .privacy-strip{gap:20px;padding:26px}h1{font-size:50px}.intro{font-size:19px}
}
@media(max-width:760px) {
  .header{min-height:90px;padding:14px 20px;gap:16px}.brand svg{width:119px}
  .header-link{font-size:14px;padding:10px 16px;min-height:44px}.header-link span{margin-left:6px}
  main{padding:32px 20px 48px}.hero{grid-template-columns:1fr;gap:32px}.hero-copy{padding-top:0}
  h1{font-size:clamp(38px,10.8vw,56px);letter-spacing:-1px;max-width:none;line-height:1.15}
  h1 em{text-decoration-thickness:3px;text-underline-offset:6px}.eyebrow{font-size:12px;margin-bottom:20px}
  .intro{font-size:19px;line-height:1.45}.steps{font-size:12px;gap:12px}.steps b{margin-right:5px}
  .courses{margin-top:30px}.section-heading{gap:12px}.section-heading h2{font-size:12px}.section-heading span{font-size:11px}
  .course{padding:18px 16px;gap:12px;grid-template-columns:44px minmax(0,1fr) 18px}.course-art,.course-art.language{width:44px;height:44px}
  .course h3{font-size:19px}.course p{font-size:13px}
  .signup-card{padding:26px 22px;max-width:none}.signup-card h2{font-size:29px}.card-note{font-size:15px}
  .tab{font-size:13px;padding:10px 8px}.guest-text span{font-size:15px}.check{font-size:13px}
  .privacy-strip{grid-template-columns:1fr;margin-top:32px;padding:26px 22px;gap:26px}
  footer{padding:26px 20px;gap:20px;font-size:13px}footer nav{margin-top:0;gap:24px}
  .admin-top h1{font-size:34px}.admin-layout{gap:24px}.panel{padding:20px}.admin-actions{gap:10px}
}
@media(max-width:360px) {
  .header-link{font-size:12px;padding:10px 12px}.brand svg{width:105px}
  .signup-card{padding:24px 16px}.field-row{grid-template-columns:1fr;gap:0}.section-heading{align-items:flex-start;flex-direction:column;gap:4px}
}

/* Warm paper surfaces and regular-weight UI from the new brand foundations. */
button,input,label,.tab,.primary,.section-heading h2,.course h3,.privacy-strip h3 {font-weight:400}
.section-heading h2 {font-family:var(--font-sans)}
.eyebrow,.card-kicker {color:#606744;font-weight:400}
.primary,.secondary,.tab {transition:background 160ms ease,transform 160ms ease}
.primary:active,.secondary:active {transform:scale(.98)}
a:hover {text-decoration:underline}
.brand:hover {text-decoration:none}
.pill {background:#e8e3ef;color:#000}
.pill.active,.success-badge {background:#dfe6d3;color:#46502f}
.field input:focus {border-color:#606744}
@media(prefers-reduced-motion:reduce){.primary,.secondary,.tab {transition:none;transform:none}}
.guest-text strong {font-weight:400}

/* Trade-fair entry: one compact signup card. */
.minimal-entry{min-height:100svh;display:flex;flex-direction:column}
.minimal-entry .header{display:none}
.minimal-entry main{width:100%;max-width:600px;padding:24px;flex:1;display:flex;align-items:center;justify-content:center}
.minimal-entry .signup-card{width:100%;padding:36px}
.minimal-entry #signup-title{font-family:var(--font-sans);font-size:42px;text-align:center;margin:0 0 28px;letter-spacing:-1px}
.minimal-entry .tabs{margin-bottom:26px}
.minimal-entry .tab{min-height:54px;font-size:17px}
.minimal-entry .primary{min-height:76px;font-size:21px;margin-top:16px}
.minimal-entry .check{font-size:13px;margin:16px 0 0}
.minimal-entry footer{border:0;padding:16px 24px;justify-content:center}
.minimal-entry footer>.brand,.minimal-entry footer>span{display:none}
.minimal-entry footer nav{margin:0;width:auto;font-size:12px}
@media(max-width:480px){.minimal-entry main{padding:16px}.minimal-entry .signup-card{padding:24px}.minimal-entry #signup-title{font-size:36px}.minimal-entry .primary{font-size:18px}.minimal-entry .tab{font-size:16px}}
