:root{--ink:#111827;--muted:#596273;--paper:#fff9ed;--panel:#fffef8;--line:#e8dcc5;--sea:#073b66;--red:#d91f26;--blue:#075aa6;--yellow:#ffd22e}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:linear-gradient(180deg,#f4ead5,#fffaf0 34rem,#f9f3e7)}a{color:inherit}.hero{padding:2rem clamp(1rem,4vw,4rem) 3rem;background:radial-gradient(circle at top right,rgba(255,210,46,.45),transparent 24rem),linear-gradient(135deg,#082f49,#075985 58%,#0f766e);color:white}.hero nav{display:flex;gap:.75rem;justify-content:flex-end;flex-wrap:wrap}.hero nav a{padding:.5rem .8rem;border:1px solid rgba(255,255,255,.35);border-radius:999px;text-decoration:none;background:rgba(255,255,255,.08)}.eyebrow{margin:0 0 .5rem;text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;font-weight:800;color:#a65b00}.hero .eyebrow{color:#ffe8a3}.hero h1{max-width:880px;margin:.75rem 0;font-size:clamp(2.6rem,8vw,6.6rem);line-height:.88;letter-spacing:-.075em}.lede{max-width:760px;font-size:clamp(1.05rem,2.3vw,1.5rem);line-height:1.45;color:#eff9ff}main{padding:clamp(1rem,3vw,3rem);max-width:1400px;margin:auto}.panel,.detail{border:1px solid var(--line);background:rgba(255,254,248,.9);box-shadow:0 20px 60px rgba(79,55,25,.08);border-radius:28px;padding:clamp(1rem,3vw,2rem);margin:0 0 2rem}.hidden{display:none}.spell{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem}.spell label{font-weight:800}.spell input{width:100%;font:700 clamp(1.3rem,4vw,2.3rem)/1 ui-monospace,SFMono-Regular,Menlo,monospace;padding:1rem;border-radius:18px;border:2px solid var(--sea);background:white;color:var(--sea)}.procedure-note{color:var(--muted);max-width:760px}.quick-buttons{display:flex;gap:.7rem;flex-wrap:wrap}.quick-buttons button,.download{border:0;border-radius:999px;background:#12263a;color:white;padding:.7rem 1rem;font-weight:850;text-decoration:none;cursor:pointer}.quick-buttons button:hover,.quick-buttons button:focus-visible,.download:hover,.download:focus-visible{background:#075aa6;outline:3px solid rgba(7,90,166,.18)}.hoist{min-height:9rem;display:flex;align-items:flex-end;gap:.7rem;flex-wrap:wrap;padding:1rem;border-radius:18px;background:linear-gradient(#e0f2fe,#f8fafc);border:1px dashed #9bb8c9}.mini{width:5rem;max-width:18vw}.gap{width:1.2rem;height:5rem;border-left:2px dashed rgba(0,0,0,.18)}h2{font-size:clamp(1.8rem,4vw,3rem);letter-spacing:-.05em;line-height:.95;margin:.2rem 0 1rem}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1rem}.card{display:flex;flex-direction:column;gap:.75rem;text-decoration:none;border:1px solid var(--line);background:var(--panel);border-radius:22px;padding:1rem;min-height:22rem;transition:transform .15s,box-shadow .15s,border-color .15s}.card:hover,.card:focus-visible{transform:translateY(-3px);box-shadow:0 16px 35px rgba(35,30,20,.12);border-color:#d0ad65;outline:0}.flagbox{display:grid;place-items:center;min-height:8rem;padding:.7rem;border-radius:16px;background:linear-gradient(145deg,#e7eef4,#ffffff);border:1px solid #dce4ea}.flag-svg{width:100%;max-height:8.2rem;filter:drop-shadow(0 8px 7px rgba(0,0,0,.18))}.card-kicker{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:900}.card h3{margin:0;font-size:1.25rem}.card p{margin:0;color:var(--muted);line-height:1.4}.detail{display:grid;grid-template-columns:minmax(220px,440px) minmax(0,1fr);gap:clamp(1rem,3vw,2rem);align-items:center}.detail.hidden{display:none}.detail .flag-svg{max-height:19rem}.detail h2{margin:.2rem 0}.detail .meaning{font-size:1.25rem;line-height:1.45;font-weight:750}.detail .note{font-size:1.05rem;line-height:1.55;color:var(--muted)}.close-detail{display:inline-block;margin-top:1rem;border:0;background:#12263a;color:white;border-radius:999px;padding:.7rem 1rem;text-decoration:none;font-weight:800}.sources p,.sources li,footer{line-height:1.6;color:var(--muted)}footer{text-align:center;padding:3rem 1rem 4rem}@media(max-width:720px){.detail{grid-template-columns:1fr}.hero nav{justify-content:flex-start}.card{min-height:auto}}