:root{--bg:#f3f7ff;--ink:#0f172a;--muted:#64748b;--blue:#2563eb;--card:#fff;--line:#dbe4f0;--green:#dcfce7}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:linear-gradient(135deg,#f0f9ff,#eef2ff);color:var(--ink);font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}.site-header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:16px clamp(18px,4vw,48px);background:rgba(255,255,255,.92);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.wordmark{font-size:1.15rem;font-weight:800;color:var(--ink);text-decoration:none}.wordmark span{color:var(--blue)}.site-header nav{display:flex;gap:6px}.site-header button,.site-header a{font:inherit}.site-header nav button,.site-header nav a,.text-button{border:0;background:transparent;color:var(--ink);padding:8px 10px;text-decoration:none;cursor:pointer}.primary,.outline{border-radius:8px;padding:11px 16px;font-weight:700;cursor:pointer}.primary{border:1px solid #1d4ed8;background:var(--blue);color:#fff}.outline{border:1px solid var(--line);background:#fff;color:var(--ink)}button:disabled{cursor:not-allowed;opacity:.55}main{width:min(1040px,calc(100% - 36px));margin:auto}.view{display:none;min-height:calc(100vh - 70px);padding:48px 0}.view.active{display:block}.hero{text-align:center;max-width:760px;margin:auto;padding-top:clamp(70px,12vw,130px)}.eyebrow,.section-kicker{color:var(--blue);font-size:.75rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}h1,h2,h3{margin:.25em 0;line-height:1.15}h1{font-size:clamp(2.6rem,7vw,5rem)}h2{font-size:clamp(2rem,5vw,3.2rem)}.hero>p{max-width:640px;margin:20px auto;color:var(--muted);font-size:1.05rem;line-height:1.7}.hero-actions{display:flex;justify-content:center;gap:10px;margin:30px 0}.rules-summary{border-top:1px solid var(--line);padding-top:24px!important;font-size:.9rem!important}.narrow{max-width:600px;margin:auto}.stack{display:grid;gap:16px;margin-top:24px}.stack label{display:grid;gap:7px;font-weight:700}.stack input,.stack textarea,.answer-row input{width:100%;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fff;font:inherit}.auth-tabs,.level-tabs,.admin-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:22px 0}.auth-tabs button,.level-tabs button,.admin-tabs button{border:1px solid var(--line);background:#fff;padding:9px 13px;border-radius:8px;cursor:pointer}.auth-tabs button.active,.level-tabs button.active,.admin-tabs button.active{background:var(--blue);border-color:var(--blue);color:#fff}.hidden{display:none!important}.form-note,.message,.guess-counter{color:var(--muted);font-size:.9rem}.message.error{color:#b91c1c}.message.success{color:#15803d}.section-heading,.panel-heading{display:flex;align-items:end;justify-content:space-between;gap:24px}.puzzle-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:18px}.puzzle-card{min-height:160px;padding:20px;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(15,23,42,.06);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;cursor:pointer;transition:.2s}.puzzle-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(15,23,42,.1)}.puzzle-card.solved{background:var(--green)}.puzzle-number{font-size:.72rem;color:var(--muted);font-weight:800}.puzzle-card h3{font-size:1.15rem}.tag{font-size:.75rem;color:var(--muted)}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:10px;margin-top:24px}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:14px;border-bottom:1px solid var(--line)}th{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}dialog{width:min(700px,calc(100% - 28px));border:1px solid var(--line);border-radius:12px;padding:30px;box-shadow:0 24px 70px rgba(15,23,42,.22);background:#fff}dialog::backdrop{background:rgba(15,23,42,.55)}.dialog-close{float:right;border:0;background:transparent;font-size:1.8rem;cursor:pointer}.puzzle-body{line-height:1.65;margin:22px 0}.hint-list{display:grid;gap:10px}.hint{border:1px solid var(--line);background:#f8fafc;border-radius:8px;padding:12px}.hint p{margin-bottom:0}.answer-row{display:flex;gap:10px;margin-top:18px}.prose{line-height:1.75}.prose p{border-top:1px solid var(--line);padding-top:16px}@media(max-width:700px){.site-header nav{display:none}.section-heading{display:block}.answer-row{flex-direction:column}.hero-actions{flex-direction:column;align-items:stretch}.puzzle-grid{grid-template-columns:1fr}}

