:root{--ink:#171717;--paper:#faf9f5;--yellow:#ffdc45;--muted:#6c695f;--line:#e0ddd3}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.8 system-ui,sans-serif}header{height:88px;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:18px;color:inherit;text-decoration:none}.brand img{width:150px}.brand span{border-left:1px solid #bbb;padding-left:18px;letter-spacing:3px;font-weight:900}button,.button{border:1px solid #171717;background:#171717;color:#fff;padding:12px 18px;border-radius:4px;font:inherit;cursor:pointer;text-decoration:none;display:inline-block}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{background:white;color:#171717}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #21a4b1;outline-offset:3px}.layout{max-width:1320px;margin:auto;display:flex;gap:42px;padding:35px 4vw 100px}nav{width:170px;flex-shrink:0}nav a{display:block;color:#5d5a51;text-decoration:none;padding:14px 10px;font-size:13px}nav a[aria-current=page]{background:#171717;color:white;border-left:4px solid var(--yellow)}main{min-width:0;flex:1}h1{font-size:30px;line-height:1.5;margin:6px 0 22px}h2{font-size:21px}h3{font-size:17px}.eyebrow{font-size:10px;letter-spacing:3px;font-weight:800}.hero{position:relative;isolation:isolate;background:#171717;color:#fff;border-radius:5px;overflow:hidden;min-height:420px;padding:48px 35px;display:flex;align-items:flex-end;border-bottom:5px solid var(--yellow)}.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#000b,#0001);z-index:-1}.hero h1{font-size:43px;max-width:600px}.hero p{max-width:500px}.hero a{background:var(--yellow);color:#111;border:0}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin:24px 0}.card,.panel{padding:24px;background:#fff;border:1px solid var(--line);border-radius:5px}.panel{margin:20px 0}.card strong.number{display:block;font-size:38px}.muted{color:var(--muted);font-size:13px}.pill{font-size:11px;padding:4px 10px;border:1px solid currentColor;display:inline-block}.passport-card{min-height:180px;text-align:center;border-style:dashed}.passport-card.earned{border:2px solid #21a4b1;background:#edf8f4}.seal{font-size:28px}.row{padding:15px 0;border-bottom:1px solid var(--line)}input,select,textarea{display:block;width:100%;padding:12px;border:1px solid #aaa;border-radius:3px;background:white;font:inherit;margin:6px 0 16px}label{display:block;font-weight:600;font-size:13px}textarea{min-height:110px}.login{max-width:510px;margin:25px auto}.actions{display:flex;gap:10px;flex-wrap:wrap}.media{width:100%;max-height:300px;object-fit:cover}.error{color:#9b2828}#notice:not(:empty){padding:14px 5vw;background:#fff2bd;border-bottom:1px solid #e5ce7b;white-space:pre-wrap}details{margin:20px 0}summary{cursor:pointer;font-weight:700}code{overflow-wrap:anywhere}progress{width:100%;accent-color:#21a4b1}.gift-lock{opacity:.6}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:10px;text-align:left;border-bottom:1px solid var(--line);font-size:12px;max-width:280px;overflow-wrap:anywhere}@media(max-width:760px){header{height:72px;padding:0 18px}.brand img{width:112px}.brand span{font-size:13px;letter-spacing:2px}.layout{padding:24px 18px 130px;display:block}.hero{min-height:420px;padding:28px 23px}.hero h1{font-size:32px}.grid{grid-template-columns:1fr 1fr;gap:10px}.card{padding:18px 12px}.card strong.number{font-size:30px}nav{position:fixed;bottom:0;left:0;right:0;background:#fff;width:auto;z-index:10;display:flex;overflow-x:auto;border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}nav a{white-space:nowrap;padding:15px 12px;font-size:11px}nav a[aria-current=page]{border-left:0;border-top:3px solid var(--yellow)}h1{font-size:25px}.login{margin-top:0}.panel{padding:20px}.events.grid,.gifts.grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}

[hidden]{display:none!important}
@media(max-width:360px){header{padding:0 12px}.brand{gap:8px}.brand img{width:90px}.brand span{padding-left:8px;font-size:11px;letter-spacing:1px}header button{font-size:12px;padding:9px 10px}.layout{padding-left:14px;padding-right:14px}}
