:root{--bg:#fffdf7;--card:#fff;--fg:#020617;--mut:#334155;--pri:#1d4ed8;--pri-fg:#fff;--bd:#94a3b8;--ok:#16a34a;--bad:#dc2626;--chip:#e0e7ff;--r:16px}:root[data-theme=dark]{--bg:#0b1020;--card:#151b2e;--fg:#e8ecf6;--mut:#94a3b8;--pri:#6694ff;--pri-fg:#0b1020;--bd:#273049;--chip:#1e2745}@media (prefers-color-scheme:dark){:root[data-theme=auto]{--bg:#0b1020;--card:#151b2e;--fg:#e8ecf6;--mut:#94a3b8;--pri:#6694ff;--pri-fg:#0b1020;--bd:#273049;--chip:#1e2745}}:root[data-mode=kid]{--pri:#c2410c;--r:24px;--chip:#ffedd5}:root[data-mode=kid][data-theme=dark]{--chip:#3a2a1a}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{touch-action:manipulation}body{background:var(--bg);color:var(--fg);padding-bottom:calc(76px + env(safe-area-inset-bottom));margin:0;font:16px/1.5 system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}main{max-width:720px;margin:0 auto;padding:12px 14px}h1,h2,h3{margin:.2em 0;font-weight:800}h1{font-size:2rem}h2{font-size:1.35rem}h3{font-size:1.1rem}p{margin:.4em 0}.muted{color:var(--mut)}.center{text-align:center}.hidden{display:none!important}.card{background:var(--card);border:2px solid var(--bd);border-radius:var(--r);margin:12px 0;padding:16px;box-shadow:0 1px 2px #0001}.card.danger{border-color:#fecaca}.row{align-items:center;gap:10px;display:flex}.between{justify-content:space-between}.grid2{grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;display:grid}.grid4{grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px;display:grid}.btn{border-width:2px;border:1px solid var(--bd);background:var(--card);min-height:48px;color:var(--fg);font:inherit;cursor:pointer;border-radius:14px;justify-content:center;align-items:center;gap:6px;padding:10px 16px;font-weight:800;text-decoration:none;display:inline-flex}.btn.primary{background:var(--pri);color:var(--pri-fg);border-color:var(--pri)}.btn.bad{background:var(--bad);color:#fff;border-color:var(--bad)}.btn.big{min-height:56px;font-size:1.05rem}.btn.sm{min-height:38px;padding:6px 12px;font-size:.9rem}.btn:disabled{opacity:.5}.icon-btn{background:var(--chip);color:var(--pri);cursor:pointer;border:0;border-radius:50%;flex:none;place-items:center;width:40px;height:40px;display:inline-grid}.icon-btn.lg{width:52px;height:52px}.seg{background:var(--chip);border-radius:12px;gap:2px;padding:3px;display:inline-flex}.seg.wide{flex-wrap:wrap;display:flex}.seg button{color:var(--fg);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:10px;flex:1;min-height:40px;padding:8px 12px;font-size:.9rem}.seg button.on{background:var(--pri);color:var(--pri-fg);font-weight:700}.stats3{text-align:center;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0;display:grid}.stats3 b{font-size:1.7rem;display:block}.stats3 span{color:var(--mut);font-size:.85rem}.hot{color:var(--bad)}.lbl{margin:14px 0 6px;font-weight:600;display:block}input[type=search],input[type=password],input[type=text],select,textarea{border:1px solid var(--bd);background:var(--card);width:100%;color:var(--fg);font:inherit;border-radius:12px;padding:12px}textarea{resize:vertical;line-height:1.6}input[type=range]{width:100%}.list{flex-direction:column;gap:8px;margin-top:10px;display:flex}.item{border:1px solid var(--bd);border-radius:12px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.item.link{color:inherit;text-decoration:none}.pill,.tag{background:var(--chip);color:var(--pri);white-space:nowrap;border-radius:99px;padding:2px 10px;font-size:.78rem;font-weight:600}.bar{background:var(--chip);border-radius:9px;height:8px;margin:8px 0;overflow:hidden}.bar i{background:var(--pri);border-radius:9px;height:100%;transition:width .3s;display:block}.chunks{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:10px;display:grid}.chunk{border:1px solid var(--bd);color:inherit;border-radius:14px;padding:12px;text-decoration:none;display:block}.chunk b{font-size:1.2rem}.chunk span{color:var(--mut);font-size:.85rem;display:block}.word{justify-content:center;align-items:center;gap:12px;margin-top:8px;display:flex}.meaning{text-align:center;font-size:1.3rem;font-weight:600}.example{background:var(--chip);text-align:center;border-radius:12px;min-height:56px;margin:14px 0;padding:12px}.imgbox{aspect-ratio:4/3;border-radius:var(--r);background:var(--chip);width:100%;max-width:360px;color:var(--mut);place-items:center;margin:10px auto;display:grid;position:relative;overflow:hidden}.imgbox img{object-fit:contain;width:100%;height:100%}.imgbox .ph{text-align:center;place-items:center;gap:8px;display:grid}.credit{color:#fff;background:#0008;border-radius:6px;padding:1px 6px;font-size:.62rem;position:absolute;bottom:4px;right:6px}.drop{border:2px dashed var(--bd);border-radius:14px;flex-wrap:wrap;align-items:center;gap:8px;min-height:64px;margin:12px 0;padding:12px;display:flex}.drop.good{border-color:var(--ok);border-style:solid}.drop.bad{border-color:var(--bad);border-style:solid}.bank{flex-wrap:wrap;gap:8px;min-height:56px;display:flex}.chip{border:2px solid var(--bd);background:var(--chip);min-height:44px;color:var(--fg);font:inherit;cursor:pointer;border-radius:12px;padding:8px 14px;font-weight:800}.chip:disabled{opacity:.7}.okmsg{color:var(--ok);font-weight:700}.badmsg{color:var(--bad);font-weight:700}.listenbox{flex-direction:column;align-items:center;gap:10px;margin:8px 0;display:flex}.chk{align-items:center;gap:8px;display:flex}.sticky{bottom:calc(72px + env(safe-area-inset-bottom));background:linear-gradient(transparent,var(--card) 30%);padding-top:10px;position:sticky}.lvrow{grid-template-columns:90px 1fr 70px;align-items:center;gap:8px;display:grid}nav{background:var(--card);border-top:1px solid var(--bd);padding-bottom:env(safe-area-inset-bottom);z-index:10;display:flex;position:fixed;bottom:0;left:0;right:0}nav a{color:var(--mut);flex-direction:column;flex:1;align-items:center;gap:2px;min-height:56px;padding:8px 0;font-size:.72rem;text-decoration:none;display:flex}nav a svg{width:24px;height:24px}nav a.on{color:var(--pri);font-weight:700}#toast{left:50%;bottom:calc(90px + env(safe-area-inset-bottom));color:#fff;opacity:0;pointer-events:none;z-index:20;background:#0f172a;border-radius:12px;max-width:90vw;padding:10px 16px;transition:all .25s;position:fixed;transform:translate(-50%,20px)}#toast.on{opacity:1;transform:translate(-50%)}@media (min-width:760px){body{padding-bottom:0;padding-left:96px}nav{border-top:0;border-right:1px solid var(--bd);flex-direction:column;width:84px;top:0;bottom:auto;right:auto}.sticky{bottom:0}}.hero h1{white-space:nowrap;font-size:1.6rem}.seg button{white-space:nowrap}.hero .row{flex-wrap:wrap}.muted{font-weight:600}b,strong,.meaning{font-weight:800}input,select,textarea{border-width:2px;font-weight:600}.voyage{margin:10px 0}.voyage .sea{--vb:6px;background:linear-gradient(#bae6fd,#38bdf8 70%,#0ea5e9);border:2px solid #0369a1;border-radius:18px;height:74px;position:relative;overflow:hidden}.waves{background:repeating-radial-gradient(circle at 12px 22px,#0000 0 8px,#fff8 8px 10px,#0000 10px 24px) 0 0/48px 22px;height:22px;animation:3s linear infinite wave;position:absolute;bottom:0;left:0;right:0}.dot{background:#fffa;border:2px solid #0369a1;border-radius:50%;width:10px;height:10px;margin-left:-5px;transition:background .3s .5s;position:absolute;bottom:10px}.dot.done{background:#facc15}.boat{bottom:var(--vb);left:calc(var(--p) * (100% - 120px) / 100 + 6px);z-index:2;transition:left 1s cubic-bezier(.3,.7,.3,1);animation:1.6s ease-in-out infinite bob;position:absolute}.voyage.big .boat svg{width:72px;height:64px}.isle{position:absolute;bottom:2px;right:4px}.voyage.big .isle svg{width:84px;height:63px}.vmeta{color:var(--mut);justify-content:space-between;align-items:center;padding:4px 4px 0;font-size:.82rem;display:flex}.vmeta span{align-items:center;gap:4px;display:inline-flex}.gamecard{color:inherit;text-decoration:none;display:block}@keyframes bob{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-5px)rotate(2deg)}}@keyframes wave{to{background-position:48px 0}}.shake{animation:.45s shake}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-6px)}80%{transform:translate(6px)}}.confetti{pointer-events:none;z-index:50;position:fixed;top:0;bottom:0;left:0;right:0;overflow:hidden}.confetti i{opacity:0;border-radius:2px;animation:1.6s ease-out forwards fall;position:absolute;top:30%}@keyframes fall{0%{opacity:1;transform:translateY(-20px)rotate(0)}to{opacity:0;transform:translate(var(--dx),70vh) rotate(var(--rot))}}.floaty{z-index:60;pointer-events:none;color:#16a34a;text-shadow:0 2px #fff,0 0 12px #fff;white-space:nowrap;font-size:1.9rem;font-weight:900;animation:1.3s ease-out forwards rise;position:fixed;top:32%;left:50%;transform:translate(-50%)}.floaty.badge{color:#b45309;font-size:1.3rem;top:24%}@keyframes rise{0%{opacity:0;transform:translate(-50%,20px)scale(.7)}20%{opacity:1;transform:translate(-50%)scale(1.15)}to{opacity:0;transform:translate(-50%,-70px)scale(1)}}.overlay{z-index:70;background:#020617aa;place-items:center;padding:20px;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.modal{background:var(--card);text-align:center;border:3px solid #f59e0b;border-radius:28px;width:100%;max-width:360px;padding:24px}.modal.win{animation:.5s cubic-bezier(.3,1.6,.5,1) pop}@keyframes pop{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.modal .bigstars{justify-content:center;align-items:center;gap:6px;font-size:2rem;font-weight:900;display:flex}.trophy{animation:1.6s ease-in-out infinite bob}.badges{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;margin-top:10px;display:grid}.badge{border:2px dashed var(--bd);text-align:center;opacity:.6;border-radius:16px;flex-direction:column;align-items:center;gap:4px;padding:10px;display:flex}.badge small{color:var(--mut);font-weight:600}.badge.got{opacity:1;background:#fffbeb;border:2px solid #f59e0b}.medal{background:var(--chip);border-radius:50%;place-items:center;width:48px;height:48px;display:grid}.badge.got .medal{background:#fef3c7}@media (prefers-reduced-motion:reduce){.boat,.waves,.trophy{animation:none}.boat{transition:none}}.sea.t-sky{--vb:20px;background:linear-gradient(#60a5fa,#bae6fd 80%);border-color:#1d4ed8}.sea.t-sky:before{content:"";background:radial-gradient(28px 10px at 18% 25%,#fff 60%,#0000 62%),radial-gradient(36px 12px at 55% 15%,#fff 60%,#0000 62%),radial-gradient(24px 9px at 80% 60%,#fffc 60%,#0000 62%);position:absolute;top:0;bottom:0;left:0;right:0}.sea.t-sky .waves,.sea.t-space .waves,.sea.t-road .waves,.sea.t-train .waves{display:none}.sea.t-road{--vb:8px;background:linear-gradient(#bae6fd 0 45%,#86efac 45% 62%,#475569 62%);border-color:#334155}.sea.t-road:after{content:"";opacity:.85;background:repeating-linear-gradient(90deg,#fff 0 18px,#0000 18px 36px);height:4px;animation:1.2s linear infinite wave;position:absolute;bottom:11px;left:0;right:0}.sea.t-space{--vb:18px;background:#0f172a;border-color:#4c1d95}.sea.t-space:before{content:"";background:radial-gradient(2px 2px at 12% 20%,#fff,#0000),radial-gradient(2px 2px at 30% 70%,#fde68a,#0000),radial-gradient(3px 3px at 52% 30%,#fff,#0000),radial-gradient(2px 2px at 70% 75%,#fff,#0000),radial-gradient(2px 2px at 88% 25%,#bae6fd,#0000),radial-gradient(2px 2px at 42% 12%,#fff,#0000);position:absolute;top:0;bottom:0;left:0;right:0}.sea.t-train{--vb:12px;background:linear-gradient(#bae6fd 0 50%,#86efac 50% 70%,#a16207 70%);border-color:#166534}.sea.t-train:after{content:"";background:repeating-linear-gradient(90deg,#78350f 0 4px,#0000 4px 14px);border-top:3px solid #475569;height:6px;position:absolute;bottom:8px;left:0;right:0}.sea.t-deep{--vb:14px;background:linear-gradient(#0e7490,#164e63 80%,#083344);border-color:#155e75}.sea.t-deep:before{content:"";background:radial-gradient(5px 5px at 20% 70%,#fff5,#0000),radial-gradient(4px 4px at 45% 30%,#fff5,#0000),radial-gradient(6px 6px at 75% 55%,#fff4,#0000);animation:3s ease-in-out infinite bob;position:absolute;top:0;bottom:0;left:0;right:0}.sea.t-deep .waves{display:none}.voyage.big .sea{height:120px}.themepick{flex-wrap:wrap;gap:6px;margin:8px 0;display:flex}.themepick button{border:2px solid var(--bd);background:var(--card);color:var(--fg);font:inherit;cursor:pointer;border-radius:12px;min-height:40px;padding:6px 10px;font-weight:700}.themepick button.on{border-color:var(--pri);background:var(--chip)}.stickers{grid-template-columns:repeat(3,1fr);gap:10px;margin-top:10px;display:grid}.sticker{border:2px dashed var(--bd);text-align:center;opacity:.45;border-radius:16px;flex-direction:column;align-items:center;gap:4px;padding:8px;font-size:.8rem;display:flex}.sticker.got{opacity:1;background:#fffbeb;border:2px solid #f59e0b}.tiles{grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;display:grid}.tile{border:2px solid var(--bd);background:var(--card);color:inherit;border-radius:20px;flex-direction:column;gap:2px;min-height:96px;padding:14px;text-decoration:none;display:flex;position:relative}.tile b{font-size:1.05rem}.tile small{color:var(--mut);font-weight:600}.tile .pill{position:absolute;top:10px;right:10px}.tile.primary{background:var(--pri);color:var(--pri-fg);border-color:var(--pri)}.tile.primary small{color:inherit;opacity:.9}.tile.primary .pill{color:var(--pri);background:#fff}.tile .ti{background:var(--chip);width:34px;height:34px;color:var(--pri);border-radius:12px;place-items:center;margin-bottom:4px;display:grid}.tile.primary .ti{color:#fff;background:#fff3}.vname{color:var(--mut);font-size:.8rem}.gamelink{color:inherit;text-decoration:none;display:block}details summary{cursor:pointer;list-style:none}details[open] summary{margin-bottom:8px}.row.between>div>h1{white-space:nowrap;font-size:1.5rem}
