:root{--ink:#2b2140;--muted:#6b6380;--bg:#fff8ef;--card:#fff;--sun:#ffc93c;--coral:#ff7a6b;--teal:#1fa5a0;--plum:#6c4ab6;--r:22px;--sh:0 6px 20px rgba(60,40,90,.12)}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:"Assistant","Rubik","Heebo","Segoe UI",system-ui,Arial,sans-serif;color:var(--ink);background:var(--bg);font-size:18px;line-height:1.6}
img{max-width:100%;height:auto;display:block}
.skip{position:absolute;right:-999px}.skip:focus{right:8px;top:8px;background:#fff;padding:8px;z-index:9}
.top{background:linear-gradient(135deg,#6c4ab6,#9b6be0);color:#fff;padding:18px 16px 12px;border-radius:0 0 28px 28px;box-shadow:var(--sh)}
.brand{display:flex;gap:12px;align-items:center;max-width:1100px;margin:0 auto}
.bulb{font-size:44px;background:var(--sun);border-radius:50%;width:64px;height:64px;display:grid;place-items:center;flex:none;box-shadow:0 0 0 6px rgba(255,201,60,.35)}
h1{margin:0;font-size:34px;line-height:1.1;font-weight:800}
.sub{margin:2px 0 0;opacity:.92;font-size:16px}
.tabs{display:flex;gap:8px;flex-wrap:wrap;max-width:1100px;margin:14px auto 0}
.tabs a{color:#fff;text-decoration:none;background:rgba(255,255,255,.16);padding:10px 16px;border-radius:999px;font-weight:700;font-size:16px;min-height:44px;display:inline-flex;align-items:center}
.tabs a[aria-current=page]{background:#fff;color:var(--plum)}
main{max-width:1100px;margin:0 auto;padding:16px}
.view{display:none}
body[data-view=gallery] #v-gallery,body[data-view=poster] #v-poster,body[data-view=create] #v-create,body[data-view=teachers] #v-teachers{display:block}
h2{font-size:26px;margin:.4em 0}
.hero{background:#fff;border-radius:var(--r);padding:16px 18px;box-shadow:var(--sh);margin-bottom:14px;border-top:6px solid var(--sun)}
.hero p{margin:.2em 0 .8em;color:var(--muted)}
.btn{font:inherit;font-weight:800;border:0;border-radius:999px;padding:12px 20px;min-height:48px;cursor:pointer;background:var(--plum);color:#fff;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:transform .12s}
.btn:active{transform:scale(.96)}
.btn.big{font-size:20px;padding:14px 26px}
.btn.sun{background:var(--sun);color:#3b2a00}
.btn.ghost{background:#fff;color:var(--plum);border:2px solid #e4dcf5}
.btn.small{min-height:40px;padding:6px 14px;font-size:15px}
.btn:focus-visible,.chip:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--teal);outline-offset:2px}
.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:12px}
.chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;scrollbar-width:thin;max-width:100%}
.chip{font:inherit;font-size:16px;font-weight:700;white-space:nowrap;border:2px solid #e4dcf5;background:#fff;color:var(--ink);border-radius:999px;padding:8px 14px;min-height:44px;cursor:pointer}
.chip[aria-pressed=true]{background:var(--teal);border-color:var(--teal);color:#fff}
.lvl{font-weight:700;display:flex;gap:8px;align-items:center}
select{font:inherit;font-size:16px;border-radius:14px;border:2px solid #e4dcf5;padding:8px 12px;min-height:44px;background:#fff}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.card{background:var(--card);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh);text-decoration:none;color:inherit;display:flex;flex-direction:column;transition:transform .15s}
.card:hover{transform:translateY(-3px)}
.card img{aspect-ratio:4/3;object-fit:cover;width:100%;background:#f3ebe0}
.card .cb{padding:10px 14px 14px}
.card h3{margin:4px 0 6px;font-size:19px;line-height:1.3}
.badges{display:flex;flex-wrap:wrap;gap:6px}
.badge{font-size:13px;font-weight:800;padding:2px 10px;border-radius:999px;background:#f1ecfb;color:var(--plum)}
.badge.t{background:#e3f6f5;color:#0f6e6a}
.empty{text-align:center;font-weight:700;color:var(--muted)}
.bar{display:flex;justify-content:space-between;gap:8px;margin-bottom:12px}
.bar-l{display:flex;gap:8px}
.bar-l .btn{width:48px;padding:0;font-size:26px}
/* poster */
.poster{background:#fff;border-radius:26px;box-shadow:var(--sh);max-width:760px;margin:0 auto;overflow:hidden;border:4px solid var(--sun)}
.ph{background:var(--sun);text-align:center;padding:10px 14px 6px}
.ph .kick{font-size:44px;font-weight:900;color:#3b2a00;line-height:1;margin:0}
.ph .kick span{display:inline-block;transform:rotate(-8deg)}
.pbody{padding:16px 20px 20px}
.ptitle{font-size:28px;line-height:1.25;margin:.2em 0 .4em;color:var(--plum)}
.pimg{border-radius:18px;width:100%;aspect-ratio:4/3;object-fit:cover}
.ptext p{margin:.6em 0;font-size:19px}
.easy-toggle{margin:12px 0 4px}
.easy{display:none;background:#fffbe8;border:2px dashed var(--sun);border-radius:18px;padding:12px 16px;font-size:24px;line-height:2}
.poster.show-easy .easy{display:block}
.poster.show-easy .ptext{display:none}
.think{background:#efe8fb;border-radius:18px;padding:12px 16px;margin:14px 0;border-right:8px solid var(--plum)}
.think b{color:var(--plum)}
.quiz{background:#e9f7f6;border-radius:18px;padding:12px 16px;margin:14px 0;border-right:8px solid var(--teal)}
.quiz h4{margin:0 0 8px;font-size:18px;color:#0f6e6a}
.quiz .opts{display:grid;gap:8px}
.opt{font:inherit;font-weight:700;text-align:right;background:#fff;border:2px solid #bfe6e3;border-radius:16px;padding:10px 14px;min-height:48px;cursor:pointer;color:var(--ink)}
.opt.ok{background:#d9f7dc;border-color:#3cb46e}
.opt.no{background:#ffe3df;border-color:var(--coral)}
.fb{min-height:1.6em;font-weight:800;margin:8px 0 0}
.more{display:inline-block;margin-top:6px;font-weight:700;color:var(--plum)}
.pfoot{display:flex;justify-content:space-between;align-items:center;gap:8px;border-top:2px solid #f3ebe0;margin-top:12px;padding-top:10px;font-size:14px;color:var(--muted)}
.pfoot img{width:40px;height:40px}
.printnote{text-align:center;color:var(--muted);font-size:15px;margin:12px auto}
/* maker */
.lead{color:var(--muted)}
.maker{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start}
.form{background:#fff;border-radius:var(--r);box-shadow:var(--sh);padding:16px;display:grid;gap:10px}
.form label{display:grid;gap:4px;font-weight:700}
.form input,.form textarea{font:inherit;font-size:17px;border:2px solid #e4dcf5;border-radius:14px;padding:10px 12px;width:100%;background:#fffdfa}
.form fieldset{border:2px solid #f1ecfb;border-radius:16px;padding:8px 12px;display:grid;gap:8px}
.form legend{font-weight:800;padding:0 6px}
.swatches,.emojis{display:flex;flex-wrap:wrap;gap:8px}
.sw{width:44px;height:44px;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 2px #ddd;cursor:pointer}
.sw[aria-pressed=true]{box-shadow:0 0 0 4px var(--ink)}
.em{font-size:24px;width:44px;height:44px;border-radius:12px;border:2px solid #eee;background:#fff;cursor:pointer}
.emoji-in{max-width:120px;font-size:24px!important;text-align:center}
.row{display:flex;flex-wrap:wrap;gap:10px}
.saved-msg{min-height:1.4em;font-weight:700;color:#0f6e6a;margin:0}
.saved{display:grid;gap:6px}
.saved .it{display:flex;gap:6px;align-items:center;background:#faf6ff;border-radius:14px;padding:6px 10px}
.saved .it span{flex:1;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.preview-wrap{position:sticky;top:10px}
.a4{--c:#ffc93c;--c2:#3b2a00;background:#fff;aspect-ratio:210/297;width:100%;border-radius:10px;box-shadow:var(--sh);padding:5% 6%;display:flex;flex-direction:column;overflow:hidden;border:10px solid var(--c);font-size:clamp(10px,2.1vw,17px)}
.a4 .k{background:var(--c);color:var(--c2);margin:-5% -6% 3%;padding:3% 6% 2%;text-align:center;font-weight:900;font-size:3.2em;line-height:1}
.a4 h2{font-size:2em;text-align:center;margin:.2em 0 .3em;line-height:1.2}
.a4 .art{display:grid;place-items:center;font-size:6em;line-height:1;margin:.1em 0 .2em}
.a4 .art img{max-height:13em;border-radius:12px;object-fit:cover}
.a4 p{margin:.35em 0;font-size:1.15em;line-height:1.5}
.a4 .q{margin-top:auto;background:color-mix(in srgb,var(--c) 22%,#fff);border-radius:14px;padding:.6em .9em;font-size:1.15em}
.a4 .by{font-size:.85em;color:#777;text-align:left;margin-top:.4em}
/* teachers */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}
.tcard{background:#fff;border-radius:var(--r);box-shadow:var(--sh);padding:14px 18px}
.tcard h3{margin:.2em 0 .5em;color:var(--plum)}
.tcard li{margin:.3em 0}
.plan,.rubric{border-collapse:collapse;width:100%;font-size:16px}
.plan th{white-space:nowrap;vertical-align:top;padding:6px 0 6px 10px;color:var(--teal)}
.plan td{padding:6px 0;border-bottom:1px solid #f1ecfb}
.tablewrap{overflow-x:auto}
.rubric th,.rubric td{border:1px solid #e4dcf5;padding:6px 8px;text-align:right;vertical-align:top}
.rubric th{background:#f1ecfb}
.tip{background:#fff8dc;border-radius:12px;padding:8px 12px;font-size:16px}
.foot{display:flex;flex-direction:column;align-items:center;gap:4px;padding:24px 16px 36px;color:var(--muted);font-weight:700}
.foot img{width:56px;height:56px;border-radius:50%}
.foot p{margin:0}
@media (max-width:760px){
 body{font-size:17px}
 h1{font-size:28px}
 .maker{grid-template-columns:1fr}
 .preview-wrap{position:static}
 .a4{font-size:clamp(8px,2.9vw,16px)}
 .ptitle{font-size:24px}
 .ph .kick{font-size:38px}
 .pbody{padding:12px 14px 16px}
 .grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}
 .card h3{font-size:17px}
}
@media print{
 @page{size:A4;margin:10mm}
 body{background:#fff;font-size:12pt}
 .top,.foot,.no-print,.skip{display:none!important}
 main{padding:0;max-width:none}
 .poster{box-shadow:none;max-width:none;border-width:3px;break-inside:avoid}
 .quiz .opts{display:block}.opt{display:block;width:100%;margin:3px 0;min-height:0;padding:4px 10px}
 .fb,.easy-toggle{display:none}
 .pimg{max-height:95mm}
 .ptext p{font-size:13pt;margin:.3em 0}
 .a4{box-shadow:none;border-radius:0;width:190mm;height:277mm;aspect-ratio:auto;font-size:15px;margin:0 auto}
 .maker{display:block}
 body[data-view=gallery] #v-gallery .hero,body[data-view=gallery] .filters{display:none}
}

/* ===== fresh design layer ===== */
body{background:#f6f3ff radial-gradient(circle at 10% 0,#fff3d6 0,transparent 40%)}
.top{background:#1f1a3a;border-radius:0 0 32px 32px}
.bulb{background:#ffd23f;box-shadow:0 0 0 6px rgba(255,210,63,.25),0 0 30px rgba(255,210,63,.5)}
.tabs a{background:rgba(255,255,255,.1)}
.tabs a[aria-current=page]{background:#ffd23f;color:#1f1a3a}
.hero{border-top:0;border-right:10px solid #ffd23f}
.card{border-bottom:6px solid var(--a,#6c4ab6)}
.cimg{position:relative}
.cnum{position:absolute;top:10px;right:10px;background:#1f1a3a;color:#ffd23f;font-weight:900;font-size:15px;border-radius:12px;padding:2px 9px}
.card .badge.t{background:var(--a);color:#fff}
.poster{border:0;border-radius:30px;overflow:hidden;background:#fff;box-shadow:0 14px 40px rgba(31,26,58,.18)}
.pcover{position:relative;background:var(--a)}
.pcover .pimg{border-radius:0;width:100%;aspect-ratio:4/3;object-fit:cover;clip-path:ellipse(95% 100% at 50% 0)}
.sticker{position:absolute;bottom:14px;right:16px;background:#ffd23f;color:#1f1a3a;font-weight:900;font-size:30px;padding:4px 18px 6px;border-radius:16px;transform:rotate(-5deg);box-shadow:4px 4px 0 #1f1a3a;line-height:1.2}
.pnum{position:absolute;top:12px;left:14px;background:rgba(31,26,58,.85);color:#fff;font-weight:900;border-radius:14px;padding:2px 12px;font-size:16px}
.pbody{padding:14px 22px 20px}
.poster .badge.t{background:var(--a);color:#fff}
.ptitle{color:#1f1a3a;font-size:30px;font-weight:900;margin:.3em 0 .2em}
.pem{display:inline-block}
ol.ptext{list-style:none;padding:0;margin:8px 0;counter-reset:s}
ol.ptext li{counter-increment:s;position:relative;padding-right:42px;margin:.7em 0;font-size:19px}
ol.ptext li::before{content:counter(s);position:absolute;right:0;top:2px;width:30px;height:30px;border-radius:50%;background:var(--a);color:#fff;font-weight:900;display:grid;place-items:center;font-size:16px}
.poster.show-easy ol.ptext{display:none}
.easy{border-color:var(--a);background:#fffdf5}
.think{display:flex;gap:12px;align-items:flex-start;background:#fff;border:3px dashed var(--a);border-right-width:3px;border-radius:24px 24px 24px 6px}
.think .ti{font-size:30px;line-height:1}
.think b{color:var(--a);font-size:18px}
.think p{margin:.1em 0 0}
.quiz{background:#1f1a3a;color:#fff;border-right:0;border-radius:22px}
.quiz h4{color:#ffd23f}
.opt{border-color:transparent}
.fb{color:#ffd23f}
.more{color:var(--a)}
/* A4 maker restyle */
.a4{border:0;border-top:14px solid var(--c);padding:0 0 4%;}
.a4 .art{position:relative;background:var(--c);margin:0 0 3%;height:38%;display:grid;place-items:center;font-size:7em;clip-path:ellipse(95% 100% at 50% 0)}
.a4 .art img{width:100%;height:100%;max-height:none;object-fit:cover;border-radius:0}
.a4 .art .sticker{font-size:.28em;bottom:8%;right:5%}
.a4 h2{padding:0 6%;color:#1f1a3a;font-weight:900}
.a4 ol{list-style:none;counter-reset:s;padding:0 6%;margin:0}
.a4 li{counter-increment:s;position:relative;padding-right:2.2em;margin:.5em 0;font-size:1.15em;line-height:1.5}
.a4 li::before{content:counter(s);position:absolute;right:0;top:.1em;width:1.6em;height:1.6em;border-radius:50%;background:var(--c);color:var(--c2);font-weight:900;display:grid;place-items:center;font-size:.85em}
.a4 .q{margin:auto 6% 0;display:flex;gap:.6em;background:#fff;border:3px dashed var(--c);border-radius:1em 1em 1em .3em}
.a4 .by{padding:0 6%}
@media print{.quiz{background:#fff;color:#1f1a3a;border:2px solid #1f1a3a}.quiz h4{color:#1f1a3a}.pcover .pimg{max-height:100mm}.sticker{box-shadow:2px 2px 0 #1f1a3a}.a4{border-top-width:14px}}
