@font-face{font-family:Cinzel;src:url(/fonts/Cinzel-Regular.otf) format("opentype");font-weight:400;font-display:swap}@font-face{font-family:Cinzel;src:url(/fonts/Cinzel-Bold.otf) format("opentype");font-weight:700;font-display:swap}*,*:before,*:after{box-sizing:border-box}:root{--cream: #cabf9d;--cream-light: #ded5ba;--ink: #1a120a;--ink-soft: #4a3d2c;--gold: #a8873f;--error: #8c2f22}body{margin:0;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1.25rem;background-color:var(--cream);background-image:radial-gradient(ellipse 70% 60% at 50% 35%,var(--cream-light) 0%,var(--cream) 70%);color:var(--ink);font-family:Georgia,Times New Roman,serif;line-height:1.6}.card{width:100%;max-width:30rem;text-align:center}.brand{font-family:Cinzel,Georgia,serif;font-size:.78rem;letter-spacing:.34em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 2.5rem}h1{font-family:Cinzel,Georgia,serif;font-size:clamp(1.5rem,6vw,2.1rem);font-weight:700;line-height:1.2;margin:0 0 .75rem}.description{margin:0 0 2rem;color:var(--ink-soft)}.rule{width:3rem;height:1px;margin:0 auto 2rem;border:0;background-color:var(--gold)}label{display:block;font-family:Cinzel,Georgia,serif;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:.6rem}input[name=code]{width:100%;padding:.85rem 1rem;font-family:Courier New,Courier,monospace;font-size:1.15rem;letter-spacing:.28em;text-align:center;text-transform:uppercase;color:var(--ink);background-color:#ffffff80;border:1px solid rgba(26,18,10,.28);border-radius:2px}input[name=code]:focus{outline:2px solid var(--gold);outline-offset:2px;background-color:#ffffffbf}button{width:100%;margin-top:1rem;padding:.85rem 1rem;font-family:Cinzel,Georgia,serif;font-size:.82rem;letter-spacing:.18em;text-transform:uppercase;color:var(--cream-light);background-color:var(--ink);border:0;border-radius:2px;cursor:pointer;transition:background-color .2s ease}button:hover{background-color:var(--ink-soft)}button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.error{margin:0 0 1.25rem;padding:.7rem 1rem;font-size:.92rem;color:var(--error);background-color:#8c2f2217;border:1px solid rgba(140,47,34,.3);border-radius:2px}.error[hidden]{display:none}.footnote{margin:2.5rem 0 0;font-size:.82rem;color:var(--ink-soft)}.title-link{display:inline-flex;align-items:baseline;gap:.55rem;color:inherit;text-decoration:none;transition:color .2s ease}.title-link:hover{color:var(--gold)}.title-link:focus-visible{outline:2px solid var(--gold);outline-offset:4px}.title-icon{width:.6em;height:.6em;flex-shrink:0;opacity:.55;transition:opacity .2s ease}.title-link:hover .title-icon{opacity:1}.back-link{display:inline-flex;align-items:center;gap:.5rem;margin-top:1.75rem;font-size:.85rem;color:var(--ink-soft);text-decoration:none;transition:color .2s ease}.back-link span{border-bottom:1px solid transparent;transition:border-color .2s ease}.back-link:hover{color:var(--ink)}.back-link:hover span{border-bottom-color:var(--gold)}.back-link:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.back-icon{width:1.05em;height:1.05em;flex-shrink:0}.materials{list-style:none;margin:0;padding:0;text-align:left}.materials li+li{margin-top:.6rem}.materials a{display:block;padding:.9rem 1.1rem;color:var(--ink);text-decoration:none;background-color:#ffffff6b;border:1px solid rgba(26,18,10,.22);border-radius:2px;transition:background-color .2s ease,border-color .2s ease}.materials a:hover{background-color:#ffffffb8;border-color:var(--gold)}.materials a:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.material-title{display:block;font-family:Cinzel,Georgia,serif;font-size:.95rem}.material-desc{display:block;margin-top:.15rem;font-size:.85rem;color:var(--ink-soft)}.ip-notice{width:100%;max-width:30rem;margin-top:3rem;padding-top:1.25rem;border-top:1px solid rgba(26,18,10,.15);font-size:.7rem;line-height:1.5;color:var(--ink-soft);text-align:center}.ip-notice-title{font-family:Cinzel,Georgia,serif;font-size:.65rem;letter-spacing:.14em;text-transform:uppercase;margin:0 0 .5rem}.ip-notice p{margin:.4rem 0 0}
