:root{--bg:#EBE5E0;--sand:#E8DDD1;--rose:#DBBFBB;--blush:#DEACAA;--ink:#39383A;--coral:#FF6F61;--r:20px}
*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);background:var(--bg);font-size:19px;line-height:1.5;min-height:100vh}
.top{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:baseline;padding:12px 18px;background:rgba(232,221,209,.95)}
.logo{font-weight:800;font-size:1.35rem}.by{font-size:.9rem}
main{max-width:640px;margin:0 auto;padding:12px 14px 120px;outline:none}
h1{font-size:1.6rem;margin:.3em 0}h2{font-size:1.3rem;margin:.5em 0 .3em}
.card{background:#fff;border-radius:var(--r);padding:16px;margin:12px 0;box-shadow:0 4px 16px rgba(57,56,58,.07)}
.btn{display:inline-block;border:0;border-radius:999px;padding:14px 22px;min-height:52px;font-size:1.05rem;font-weight:700;background:var(--coral);color:#fff;cursor:pointer;text-decoration:none;text-align:center}
.btn.soft{background:var(--sand);color:var(--ink)}.btn.block{display:block;width:100%;margin:8px 0}.btn:active{transform:scale(.96)}
.tabs{position:fixed;bottom:0;left:0;right:0;display:flex;background:#fff;box-shadow:0 -4px 16px rgba(0,0,0,.08);padding:6px 4px calc(6px + env(safe-area-inset-bottom));z-index:6}
.tabs button{flex:1;border:0;background:none;font-size:.85rem;color:var(--ink);min-height:60px;border-radius:14px;font-weight:600;cursor:pointer}
.tabs button span{display:block;font-size:1.5rem}.tabs button.on{background:var(--sand)}
.stats{display:flex;gap:8px}.stats div{flex:1;background:#fff;border-radius:16px;padding:10px 4px;text-align:center}.stats b{display:block;font-size:1.6rem}.stats small{font-size:.85rem}
.board{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;margin:12px 0}
.sq{position:relative;aspect-ratio:1/1.25;border:0;border-radius:12px;padding:4px 3px;font-size:.68rem;line-height:1.15;color:var(--ink);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;font-family:inherit;font-weight:600;overflow:hidden;transition:transform .15s}
.sq.long{font-size:.6rem;line-height:1.1;padding:3px 2px;word-break:break-word;hyphens:auto}.sq.long .em{font-size:1rem;margin-bottom:1px}
.sq .em{font-size:1.15rem;margin-bottom:2px}.sq:active{transform:scale(.93)}
.sq.done::after{content:"✔";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:2rem;color:#fff;text-shadow:0 1px 4px rgba(57,56,58,.5);background:rgba(255,111,97,.4);border-radius:12px;animation:stamp .45s cubic-bezier(.2,1.6,.4,1)}
.sq.line{box-shadow:0 0 0 3px var(--coral)}
.sq.bump{animation:bump .5s}
@keyframes stamp{from{transform:scale(2.2) rotate(-20deg);opacity:0}to{transform:none;opacity:1}}
@keyframes bump{40%{transform:scale(1.15)}}
.legend{display:flex;flex-wrap:wrap;gap:6px}.chip{border-radius:999px;padding:6px 12px;font-size:.9rem;font-weight:700}
.pop{position:fixed;inset:0;background:rgba(57,56,58,.45);display:flex;align-items:flex-end;justify-content:center;z-index:50}
.pop.hide{display:none}.sheet{background:#fff;width:100%;max-width:640px;border-radius:26px 26px 0 0;padding:22px 18px calc(22px + env(safe-area-inset-bottom));animation:up .3s}
@keyframes up{from{transform:translateY(100%)}}
.big{font-size:1.35rem;font-weight:800;margin:.3em 0}
input,select{width:100%;font-size:1.1rem;padding:14px;border:2px solid var(--rose);border-radius:14px;font-family:inherit;background:#fff;color:var(--ink)}
label{font-weight:700;display:block;margin:12px 0 4px}
.badges{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.badge{background:#fff;border-radius:18px;padding:14px 8px;text-align:center}.badge .e{font-size:2.4rem}.badge b{display:block}.badge small{font-size:.85rem}.badge.lock{opacity:.4;filter:grayscale(1)}
.bar{height:16px;background:var(--sand);border-radius:99px;overflow:hidden}.bar i{display:block;height:100%;background:var(--coral);border-radius:99px;transition:width .6s}
.row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 0;border-bottom:1px solid var(--sand)}
.full{position:fixed;inset:0;z-index:60;background:linear-gradient(160deg,#DEACAA,#FF6F61);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px}
.full h1{font-size:3rem;margin:.1em 0;animation:bump 1s infinite}.full p{font-size:1.25rem}
.full .btn{background:#fff;color:var(--coral)}
.call{background:var(--sand)}
footer{margin:24px 0 0;font-size:.88rem;text-align:center;opacity:.85}
#confetti{position:fixed;inset:0;pointer-events:none;z-index:99;width:100%;height:100%}
.note{font-size:.95rem;background:var(--sand);border-radius:14px;padding:12px}
.chk{display:flex;gap:10px;align-items:flex-start;font-weight:400;margin:14px 0;font-size:1rem;line-height:1.4}.chk input{width:22px;height:22px;flex:none;margin-top:2px}
.err{color:#B3261E;font-weight:700;margin-top:10px}.code{font-size:1.8rem;letter-spacing:.4em;text-align:center}
input[type=email],input#cd{width:100%;box-sizing:border-box}
/* share block */
.shareblock{background:linear-gradient(135deg,#E8DDD1,#DBBFBB 55%,#DEACAA);border-radius:22px;padding:16px;margin:14px 0;text-align:center}
.sb-h{margin:.1em 0 .1em}.sb-p{margin:0 0 10px;font-size:.95rem}
.sb-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.sb-btn{border:0;border-radius:16px;color:#fff;font-weight:700;font-size:.78rem;min-height:72px;padding:8px 2px;cursor:pointer;font-family:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}
.sb-btn:active{transform:scale(.94)}.sb-e{font-size:1.5rem}
.full .shareblock{color:var(--ink);text-align:center}
.full{overflow-y:auto;justify-content:flex-start}.full .shareblock{width:100%;max-width:560px}
