@font-face{font-family:'WayfindingSansPro';font-weight:normal;font-style:normal;src:url('/style/fonts/237C91_3_0.woff') format('woff'),url('/style/fonts/237C91_3_0.ttf') format('truetype')}
@font-face{font-family:'WayfindingSansPro';font-weight:bold;font-style:normal;src:url('/style/fonts/237C91_0_0.woff') format('woff'),url('/style/fonts/237C91_0_0.ttf') format('truetype')}

:root{
  --oranje:#F07830;
  --groen:#3D8C7A;
  --zand:#E8E0D0;
  --zwart:#1A1A1A;
  --paars:#C355E8;
  --blauw:#3F99F0;
  --amber:#F0A03C;
  --wit:#FFFFFF;
  --grijs:#7A7A7A;
}
:root:lang(el){
  --groen:#4CAF50;
  --groenmerk:#3D8C7A;
  --instructie:#3F7D6B;
}
*{box-sizing:border-box;margin:0;padding:0}
body{
  font-family:WayfindingSansPro,Helvetica,sans-serif;
  background:var(--zand);
  color:var(--zwart);
  min-height:100vh;
  display:flex;
  justify-content:center;
  padding:24px 12px 64px;
}
.wrap{width:100%}
:lang(en) .wrap,:lang(nl) .wrap{max-width:680px}
:lang(el) .wrap{max-width:720px}

.brand{
	position:absolute;top:16px;left:16px;display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--dark);font-family:WayfindingSansPro,Helvetica,sans-serif;font-weight:700;font-size:20px;
}
.brand img
{
	height:26px;
	margin:-5px -2px 0 0;
}

header{text-align:center}
:lang(en) header,:lang(nl) header{margin-bottom:20px}
:lang(el) header{margin-bottom:16px}
.eyebrow{
  display:inline-block;
  background:var(--oranje);
  color:var(--wit);
  font-weight:800;
  font-size:13px;
  line-height:20px;
  letter-spacing:.12em;
  text-transform:uppercase;
  padding:5px 14px;
  border-radius:999px;
  transform:rotate(-1.5deg);
  margin-bottom:40px;
}
:lang(el) .eyebrow{letter-spacing:.1em}
h1{font-weight:800;margin-bottom:8px}
:lang(en) h1,:lang(nl) h1{font-size:clamp(24px,5vw,34px);line-height:1.15}
:lang(el) h1{font-size:clamp(22px,5vw,32px);line-height:1.2}
header p{font-size:16px;color:var(--zwart);margin:0 auto}
:lang(en) header p,:lang(nl) header p{max-width:46ch}
:lang(el) header p{max-width:50ch}

.instructie{
  background:var(--instructie);
  color:var(--wit);
  border-radius:6px;
  padding:14px 18px;
  font-size:16px;
  font-weight:600;
  max-width:480px;
  margin:0 auto 18px;
  box-shadow:0 3px 0 rgba(26,26,26,.15);
}

.matrix{
  background:var(--wit);
  border-radius:20px;
  display:grid;
  box-shadow:0 4px 0 rgba(26,26,26,.08);
  margin-bottom:16px;
}
:lang(en) .matrix,:lang(nl) .matrix{padding:22px 16px;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center}
:lang(el) .matrix{padding:20px 12px;grid-template-columns:1fr auto 1fr 1fr;gap:8px;align-items:start}
.col{display:flex;flex-direction:column;gap:8px;align-items:center}
.col-label{font-weight:800;text-transform:uppercase;margin-bottom:2px}
:lang(en) .col-label,:lang(nl) .col-label{font-size:11px;letter-spacing:.1em}
:lang(el) .col-label{font-size:10px;letter-spacing:.06em;text-align:center}
.col-label.pre{color:var(--paars)}
.col-label.suf{color:var(--amber)}
:lang(nl) .col-label.suf{color:var(--oranje)}
.col-label.rim{color:var(--groen)}
.col-label.stamlabel{color:var(--blauw)}

.tile{
  font-family:WayfindingSansPro,Helvetica,sans-serif;
  color:var(--zwart);
  border:none;
  border-radius:6px;
  cursor:pointer;
  user-select:none;
  box-shadow:0 2px 0 rgba(26,26,26,.12);
}
:lang(en) .tile,:lang(nl) .tile{font-weight:500;font-size:17px;padding:8px 15px;transition:transform .12s ease, box-shadow .12s ease, opacity .12s ease}
:lang(el) .tile{font-weight:600;font-size:17px;padding:8px 14px;transition:transform .12s ease, opacity .12s ease}
.tile:nth-child(odd){transform:rotate(-1.5deg)}
.tile:nth-child(even){transform:rotate(1.2deg)}
.tile:hover{transform:rotate(0) scale(1.07)}
.tile:focus-visible{outline:3px solid var(--zwart);outline-offset:2px}
.tile.pre{background:var(--paars)}
.tile.rim{background:var(--groen)}
.tile.suf{background:var(--amber)}
.tile.used{opacity:.28;pointer-events:none}
.tile.hint-glow{animation:hintPulse 1s ease-in-out infinite}
@keyframes hintPulse{
  0%,100%{box-shadow:0 2px 0 rgba(26,26,26,.12), 0 0 0 0 rgba(240,120,48,.55)}
  50%{box-shadow:0 2px 0 rgba(26,26,26,.12), 0 0 0 7px rgba(240,120,48,0)}
}
#checkBtn.hint-glow{animation:hintPulseBtn 1s ease-in-out infinite}
@keyframes hintPulseBtn{
  0%,100%{box-shadow:0 0 0 0 rgba(240,120,48,.55)}
  50%{box-shadow:0 0 0 8px rgba(240,120,48,0)}
}

.stamcol{display:flex;flex-direction:column;align-items:center;gap:4px;padding-top:0}
.stam{
  font-family:WayfindingSansPro,Helvetica,sans-serif;
  color:var(--zwart);
  background:var(--blauw);
  border-radius:8px;
  text-align:center;
  transform:rotate(-1deg);
  box-shadow:0 4px 0 rgba(26,26,26,.15);
}
:lang(en) .stam,:lang(nl) .stam{font-weight:600;font-size:clamp(30px,8vw,44px);padding:14px 26px}
:lang(el) .stam{font-weight:700;font-size:clamp(26px,7vw,40px);padding:12px 22px}
.stam small{
  display:block;
  opacity:.75;
  margin-top:2px;
}
:lang(en) .stam small,:lang(nl) .stam small{font-weight:700;font-size:13px}
:lang(el) .stam small{font-weight:600;font-size:12px}

.buildzone{
  background:var(--wit);
  border-radius:20px;
  padding:18px 16px 20px;
  text-align:center;
  box-shadow:0 4px 0 rgba(26,26,26,.08);
  margin-bottom:16px;
}
.buildzone .hint{font-size:13px;color:var(--grijs);font-weight:600;margin-bottom:10px}
.slots{
  display:flex;justify-content:center;align-items:flex-end;gap:3px;
  flex-wrap:wrap;margin:0 auto 2px;
  width:fit-content;
  max-width:100%;
}
:lang(en) .slots,:lang(nl) .slots{min-height:64px;padding:0 8px 0}
:lang(el) .slots{min-height:60px}
.plank{
  width:min(340px,90%);height:6px;
  background:var(--wit);border-radius:3px;
  box-shadow:0 3px 5px rgba(26,26,26,.18);
}
:lang(en) .plank,:lang(nl) .plank{margin:0 auto 10px}
:lang(el) .plank{margin:0 auto 8px}
.slot{
  font-family:WayfindingSansPro,Helvetica,sans-serif;color:var(--zwart);
  border-radius:6px;
  cursor:pointer;border:none;
  animation:pop .18s ease;
  box-shadow:0 2px 0 rgba(26,26,26,.1);
}
:lang(en) .slot,:lang(nl) .slot{font-weight:500;font-size:22px;padding:9px 15px}
:lang(el) .slot{font-weight:600;font-size:21px;padding:9px 14px}
.slot:focus-visible{outline:3px solid var(--zwart);outline-offset:2px}
.slot.pre{background:var(--paars)}
.slot.stamslot{background:var(--blauw);cursor:default}
.slot.rim{background:var(--groen)}
.slot.suf{background:var(--amber)}
@keyframes pop{from{transform:scale(.6)}to{transform:scale(1)}}

.spellnote{
  font-size:13px;color:var(--groen);font-weight:700;min-height:18px;margin-bottom:12px;
}
.feedback{
  font-size:15px;font-weight:700;min-height:22px;margin-bottom:12px;
}
.feedback.good{color:var(--groen)}
.feedback.bad{color:#B34A2E}
.feedback.hint{color:var(--oranje)}
.result{
  font-size:15px;font-weight:700;min-height:24px;margin-bottom:12px;
}
.result.good{color:var(--groenmerk)}
.result.bad{color:#B34A2E}
.result.hint{color:var(--oranje)}
.shake{animation:shake .35s ease}
@keyframes shake{
  20%{transform:translateX(-6px)}40%{transform:translateX(6px)}
  60%{transform:translateX(-4px)}80%{transform:translateX(4px)}
}
.actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
button.primary{
  font-family:WayfindingSansPro,Helvetica,sans-serif;font-weight:800;font-size:16px;
  background:var(--oranje);color:var(--wit);border:none;border-radius:999px;
  padding:12px 28px;cursor:pointer;transition:transform .12s ease;
}
button.primary:hover{transform:scale(1.04)}
button.primary:focus-visible{outline:3px solid var(--zwart);outline-offset:2px}
button.ghost{
  font-family:WayfindingSansPro,Helvetica,sans-serif;font-weight:700;font-size:15px;
  background:none;border:2px solid var(--zwart);border-radius:999px;
  color:var(--zwart);padding:10px 22px;cursor:pointer;
}
button.ghost:focus-visible{outline:3px solid var(--oranje);outline-offset:2px}

.found{
  background:var(--wit);border-radius:20px;padding:18px 20px;
  box-shadow:0 4px 0 rgba(26,26,26,.08);margin-bottom:16px;
}
.found h2{font-size:16px;font-weight:800;margin-bottom:4px}
.progressbar{
  background:var(--zand);border-radius:999px;height:12px;overflow:hidden;margin:8px 0 12px;
}
.progressbar div{
  height:100%;width:0%;border-radius:999px;transition:width .4s ease;
}
:lang(en) .progressbar div,:lang(nl) .progressbar div{background:var(--groen)}
:lang(el) .progressbar div{background:var(--groenmerk)}
.foundlist{display:flex;flex-wrap:wrap;gap:8px}
.foundword{
  font-family:WayfindingSansPro,Helvetica,sans-serif;
  display:inline-flex;border-radius:6px;overflow:hidden;color:var(--zwart);
  box-shadow:0 1px 0 rgba(26,26,26,.12);
}
:lang(en) .foundword,:lang(nl) .foundword{font-weight:500;font-size:14px}
:lang(el) .foundword{font-weight:600;font-size:14px}
.foundword span{padding:4px 7px}
.foundword .p{background:var(--paars)}
.foundword .s{background:var(--blauw)}
.foundword .r{background:var(--groen)}
.foundword .a{background:var(--amber)}
.empty{font-size:14px;color:var(--grijs)}

.cta{
  background:var(--oranje);color:var(--wit);border-radius:20px;
  padding:24px 22px;text-align:center;display:none;
}
.cta.show{display:block;animation:pop .25s ease}
.cta h2{font-size:20px;font-weight:800;margin-bottom:8px}
.cta p{font-size:15px;margin-bottom:14px;margin-left:auto;margin-right:auto}
:lang(en) .cta p,:lang(nl) .cta p{max-width:44ch}
:lang(el) .cta p{max-width:46ch}
.cta form{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.cta input{
  font-family:WayfindingSansPro,Helvetica,sans-serif;font-size:15px;border:none;border-radius:999px;
  padding:11px 18px;min-width:220px;
}
.cta button{
  font-family:WayfindingSansPro,Helvetica,sans-serif;font-weight:800;font-size:15px;
  background:var(--zwart);color:var(--wit);border:none;border-radius:999px;
  padding:11px 22px;cursor:pointer;
}
footer{text-align:center;margin-top:20px;font-size:13px;color:var(--grijs);font-weight:600}

@media (prefers-reduced-motion: reduce){
  *{animation:none!important;transition:none!important}
}
@media (max-width:480px){
  :lang(en) .tile,:lang(nl) .tile{font-size:15px;padding:6px 11px}
  :lang(en) .matrix,:lang(nl) .matrix{padding:16px 8px}
}
@media (max-width:520px){
  :lang(el) .tile{font-size:15px;padding:6px 10px}
  :lang(el) .matrix{grid-template-columns:1fr auto 1fr 1fr;padding:14px 6px;gap:5px}
  :lang(el) .stam{font-size:24px;padding:10px 14px}
}
