:root{--bg:#f3f6ff;--ink:#1b2340;--mute:#5d6786;--panel:#ffffff;--tint:rgba(0,0,0,.05);--line:rgba(0,0,0,.18);--acc:#2f5bff;--acc-ink:#fff;--ok:#0f8a5f;--bad:#c63d3d;--code:#101733;--code-ink:#e6ebff;
box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 "Trebuchet MS","Segoe UI",system-ui,sans-serif;transition:background .25s}
header,main{max-width:900px;margin:0 auto}
header{padding:20px 16px 8px}
h1{font:800 clamp(1.8rem,5vw,2.8rem)/1.1 "Trebuchet MS",system-ui,sans-serif;margin:0 0 6px;letter-spacing:-.02em}
header p{margin:0 0 14px;color:var(--mute);max-width:60ch}
.top{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;justify-content:space-between}
#prog{flex:1 1 220px;max-width:340px;font-weight:700}
#bar{height:10px;border-radius:99px;background:var(--tint);border:1px solid var(--line);margin-top:4px;overflow:hidden}
#fill{height:100%;width:0;background:var(--acc);transition:width .4s}
.theme{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--mute)}
.theme .btn{padding:6px 12px}
#bgpick{width:44px;height:36px;padding:2px;border:1px solid var(--line);border-radius:8px;background:var(--panel);cursor:pointer}
main{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px;margin-top:12px;margin-bottom:40px;width:calc(100% - 32px)}
h2{margin:0 0 8px;font-size:1.5rem}
.task{background:var(--tint);border-left:4px solid var(--acc);padding:10px 12px;border-radius:6px;margin:12px 0}
code{background:var(--tint);padding:1px 6px;border-radius:5px;font-family:Consolas,Menlo,monospace;font-size:.92em}
.ed{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.ed>div{min-width:0}
label{display:block;font-weight:700;margin-bottom:4px;font-size:.9rem;color:var(--mute)}
textarea{width:100%;height:300px;resize:vertical;background:var(--code);color:var(--code-ink);border:1px solid var(--line);border-radius:10px;padding:12px;font:14px/1.5 Consolas,Menlo,monospace;tab-size:2}
iframe{width:100%;height:300px;border:1px solid var(--line);border-radius:10px;background:#fff}
.row{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;align-items:center}
.btn{padding:10px 16px;border-radius:10px;border:1px solid var(--line);background:var(--panel);color:var(--ink);font:inherit;cursor:pointer}
.btn.p{background:var(--acc);color:var(--acc-ink);border-color:var(--acc);font-weight:700}
.btn.small{padding:4px 10px;font-size:.85rem;color:var(--mute)}
#msg{font-weight:700}.ok{color:var(--ok)}.bad{color:var(--bad)}
button:focus-visible,textarea:focus-visible,input:focus-visible{outline:3px solid var(--acc);outline-offset:2px}
.free textarea,.free iframe{height:440px}
[hidden]{display:none!important}
#confetti{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:50}
#next{animation:pop .35s ease-out}
@keyframes pop{from{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}
@media(max-width:760px){.ed{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){#next{animation:none}#fill,body{transition:none}}
#choose{max-width:900px;margin:12px auto 40px;padding:0 16px}
.cards{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.card{display:flex;flex-direction:column;gap:6px;text-align:left;padding:24px;border-radius:14px;border:2px solid var(--line);background:var(--panel);color:var(--ink);font:inherit;cursor:pointer}
.card:hover,.card:focus-visible{border-color:var(--acc)}
.card strong{font-size:2rem;line-height:1.1}
.card em{font-style:normal;color:var(--mute);font-size:.9rem}
#lout{height:300px;margin:0;overflow:auto;white-space:pre-wrap;background:var(--code);color:var(--code-ink);border:1px solid var(--line);border-radius:10px;padding:12px;font:14px/1.5 Consolas,Menlo,monospace}
#lout.bad{color:#ff9a9a}
.free #lout{height:440px}
@media(max-width:760px){.cards{grid-template-columns:1fr}}
#sugg{display:flex;flex-wrap:wrap;gap:6px;align-items:center;min-height:34px;margin-top:6px;font-size:.85rem;color:var(--mute)}
.chip{padding:3px 10px;border-radius:8px;border:1px solid var(--line);background:var(--panel);color:var(--ink);font:13px Consolas,Menlo,monospace;cursor:pointer}
.chip.on{border-color:var(--acc);box-shadow:inset 0 0 0 1px var(--acc);font-weight:700}
