:root{--navy:#1d2b4f;--navy-soft:#2c3e6b;--gold:#e8c872;--paper:#f6f1e7;--card:#fffdf8;--line:#e2d9c6;--text:#1f2330;--muted:#6b6f7b;--ok:#2e7d32;--ok-bg:#e6f3e7;--ko:#b3261e;--ko-bg:#fbe9e7;--warn:#b25e00;--radius:14px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);background:var(--paper);-webkit-font-smoothing:antialiased;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.45}*{box-sizing:border-box}body{background:var(--paper);min-height:100dvh;margin:0}h1,h2,h3{margin:0;line-height:1.2}h2{font-size:1.35rem}h3{font-size:1.1rem}p{margin:0}a{color:var(--navy-soft)}input,select,textarea{width:100%;font:inherit;border:1px solid var(--line);color:var(--text);background:#fff;border-radius:10px;padding:.65rem .75rem}label{flex-direction:column;gap:.3rem;font-weight:500;display:flex}label.checkbox{flex-direction:row;align-items:center;gap:.5rem;font-weight:400}label.checkbox input{width:auto}.app{min-height:100dvh}.topbar{padding:calc(.75rem + env(safe-area-inset-top)) 1rem .75rem;background:var(--navy);color:#fff;justify-content:space-between;align-items:center;display:flex}.brand{letter-spacing:.02em;color:var(--gold);font-weight:700}.topbar .link-button{color:#fff}.tabs{background:var(--navy);gap:.25rem;padding:0 .75rem;display:flex;overflow-x:auto}.tabs a{color:#c9d1e6;white-space:nowrap;border-bottom:3px solid #0000;padding:.6rem .8rem;text-decoration:none}.tabs a.active{color:#fff;border-bottom-color:var(--gold)}.content{max-width:640px;padding:1rem 1rem calc(2rem + env(safe-area-inset-bottom));margin:0 auto}.stack{flex-direction:column;gap:.75rem;display:flex}.stack-lg{flex-direction:column;gap:1.25rem;display:flex}.row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.row.between{justify-content:space-between}.row form,.row input{flex:1;min-width:0}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1rem;box-shadow:0 1px 2px #0000000a}.card.dashed{background:0 0;border-style:dashed}.center{text-align:center}.muted{color:var(--muted)}.small{font-size:.875rem}.error{color:var(--ko)}.eyebrow{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-size:.72rem;display:block}.button{background:var(--navy);color:#fff;font:inherit;cursor:pointer;border:0;border-radius:10px;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.1rem;font-weight:600;text-decoration:none;display:inline-flex}.button:disabled{opacity:.5;cursor:default}.button.secondary{color:var(--navy);border:1.5px solid var(--navy);background:0 0}.button.google{width:100%;color:var(--text);border:1px solid var(--line);background:#fff}.link-button{font:inherit;color:var(--navy-soft);cursor:pointer;background:0 0;border:0;align-self:flex-start;padding:0;text-decoration:underline}.link-button.danger{color:var(--ko)}.button.danger{background:var(--ko);border-color:var(--ko)}.badge{background:var(--line);white-space:nowrap;border-radius:999px;padding:.15rem .6rem;font-size:.8rem;font-weight:600;display:inline-block}.badge.ok{background:var(--ok-bg);color:var(--ok)}.badge.warn{color:var(--warn);background:#fff1dc}.login{flex-direction:column;gap:1.25rem;max-width:420px;margin:0 auto;padding:2rem 1rem;display:flex}.login .cover{aspect-ratio:auto;padding:2.5rem 1.5rem}.divider{color:var(--muted);align-items:center;gap:.75rem;margin:1rem 0;font-size:.85rem;display:flex}.divider:before,.divider:after{content:"";border-top:1px solid var(--line);flex:1}.cover{--cover:var(--navy);aspect-ratio:5/7;color:var(--gold);text-align:center;background:radial-gradient(120% 70% at 25% 10%, #ffffff21, transparent 60%), radial-gradient(90% 80% at 85% 110%, #00000059, transparent 65%), repeating-linear-gradient(35deg, #ffffff06 0 1px, transparent 1px 3px), repeating-linear-gradient(-55deg, #0000000d 0 1px, transparent 1px 4px), var(--cover);border-radius:6px 18px 18px 6px;flex-direction:column;justify-content:center;align-items:center;gap:1.1rem;padding:2.5rem 1.75rem;display:flex;position:relative;box-shadow:inset 12px 0 14px -10px #0000008c,0 12px 28px #00000038,0 2px 4px #00000026}.cover:before{content:"";pointer-events:none;border:1.5px solid #e8c8728c;border-radius:3px 10px 10px 3px;position:absolute;inset:12px 12px 12px 18px}.cover-org{letter-spacing:.18em;text-transform:uppercase;text-shadow:0 1px #0006;max-width:90%;font-size:.78rem;font-weight:600}.cover-emblem{aspect-ratio:1;filter:drop-shadow(0 1px #0006);place-items:center;width:38%;max-width:150px;display:grid}.cover-emblem svg{width:100%;height:100%}.cover-emblem img{object-fit:contain;width:100%;height:100%;box-shadow:0 0 0 2px var(--gold), 0 0 0 5px #e8c8724d;background:#fffffff0;border-radius:50%;padding:12%}.cover-title{letter-spacing:.14em;text-transform:uppercase;text-shadow:0 1px #00000073,0 -1px #ffffff1f;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.5rem,7vw,2rem);font-weight:700}.cover-title span{letter-spacing:.32em;margin-top:.45rem;font-size:.42em;display:block}.cover-tagline{color:#fffc}.cover-edit{color:var(--gold);background:#00000026;border:1px solid #e8c87299;border-radius:999px;padding:.3rem .7rem;font-size:.75rem;text-decoration:none;position:absolute;top:1.4rem;right:1.4rem}.cover-open{color:#ffffffbf;font:inherit;letter-spacing:.04em;cursor:pointer;background:0 0;border:0;font-size:.85rem;position:absolute;bottom:1.6rem}.cover-preview{width:min(100%,300px);margin:0 auto}.booklet{scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;gap:1rem;margin:0 -1rem;padding:.25rem 1rem 1rem;display:flex;overflow-x:auto}.booklet::-webkit-scrollbar{display:none}.booklet>*{scroll-snap-align:center;scroll-snap-stop:always;flex:0 0 100%}.page{border:1px solid var(--line);background:repeating-radial-gradient(circle at 50% 38%,#0000 0 9px,#1d2b4f09 9px 10px),repeating-linear-gradient(60deg,#0000 0 14px,#b25e0006 14px 15px),linear-gradient(#fffdf6,#f7efdd);border-radius:6px 18px 18px 6px;flex-direction:column;gap:1rem;padding:1rem 1.1rem 2rem;display:flex;position:relative;box-shadow:inset 10px 0 12px -10px #0003,0 8px 20px #00000014}.page-head{border-bottom:1px solid var(--line);letter-spacing:.14em;text-transform:uppercase;color:var(--navy-soft);justify-content:space-between;align-items:center;gap:.75rem;padding-bottom:.5rem;font-size:.66rem;font-weight:600;display:flex}.page-title{font-family:Georgia,Times New Roman,serif;font-size:1.2rem}.page-empty{text-align:center;margin:auto 0;padding:2rem 0}.page-no{color:var(--muted);font-family:Georgia,Times New Roman,serif;font-size:.72rem;position:absolute;bottom:.6rem;right:1rem}.pager{justify-content:center;align-items:center;gap:.45rem;margin-top:-.5rem;display:flex}.pager button{background:var(--line);cursor:pointer;border:0;border-radius:4px;width:8px;height:8px;padding:0;transition:width .2s,background .2s}.pager button[aria-current=true]{background:var(--navy);width:22px}.offline-note{align-self:center}.id-grid{grid-template-columns:92px 1fr;align-items:start;gap:.9rem;display:grid}.id-photo{aspect-ratio:3/4;object-fit:cover;border:1px solid var(--line);background:#ebe3d1;border-radius:4px;width:92px}.id-photo.empty{color:var(--muted);border-style:dashed;place-items:center;font-size:.8rem;text-decoration:none;display:grid}.id-fields{gap:.5rem;margin:0;display:grid}.id-fields dt{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:.6rem}.id-fields dd{margin:0;font-weight:600}.id-name{overflow-wrap:anywhere;font-family:Georgia,Times New Roman,serif;font-size:1.1rem;line-height:1.2}.id-pair{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.mono{letter-spacing:.06em;font-family:ui-monospace,Cascadia Mono,Courier New,monospace}.mrz{white-space:pre;color:#3a3d46;background:#ffffffb3;border-radius:4px;margin-top:auto;padding:.45rem .5rem;font-family:ui-monospace,Cascadia Mono,Courier New,monospace;font-size:clamp(7.5px,2.35vw,12px);line-height:1.5;overflow:hidden}.qr-wrap{text-align:center;flex-direction:column;align-items:center;gap:.6rem;display:flex}.qr,.qr-placeholder{aspect-ratio:1;background:#fff;border-radius:8px;max-width:100%;height:auto}.qr-placeholder{background:var(--line)}.countdown{background:var(--line);border-radius:2px;width:100%;max-width:280px;height:4px;overflow:hidden}.countdown-bar{background:var(--navy);height:100%;transition:width 1s linear}.stamp-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.9rem .75rem;margin:0;padding:0;list-style:none;display:grid}.stamp-cell{flex-direction:column;align-items:center;gap:.3rem;display:flex}.stamp-slot{aspect-ratio:1;border:2px dashed var(--line);text-align:center;border-radius:50%;place-items:center;width:100%;padding:.75rem;display:grid}.slot-name{color:var(--muted);font-size:.85rem}.stamp-slot.stamped{border-color:#0000}.stamp{--ink:var(--ko);--tilt:0deg;aspect-ratio:1;border:3px double var(--ink);width:100%;color:var(--ink);transform:rotate(var(--tilt));opacity:.88;mix-blend-mode:multiply;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:.2rem;padding:.5rem;display:flex}.stamp.fresh,.stamp-image.fresh{animation:.45s cubic-bezier(.2,.9,.3,1.3) stamp-in}.stamp-image{--ink:var(--ko);--tilt:0deg;width:100%;transform:rotate(var(--tilt));flex-direction:column;align-items:center;gap:.15rem;display:flex}.stamp-image img{aspect-ratio:1;object-fit:contain;mix-blend-mode:multiply;opacity:.92;width:92%}.stamp-date{border:1.5px solid var(--ink);color:var(--ink);opacity:.85;mix-blend-mode:multiply;border-radius:3px;padding:0 .35rem;font-family:ui-monospace,Cascadia Mono,Courier New,monospace;font-size:.66rem;font-weight:700}.slot-caption{color:var(--muted);text-align:center;font-size:.72rem;line-height:1.2}@keyframes stamp-in{0%{transform:rotate(var(--tilt)) scale(1.8);opacity:0}}.stamp-name{text-transform:uppercase;letter-spacing:.04em;font-size:.78rem;font-weight:800;line-height:1.15}.stamp-time{font-variant-numeric:tabular-nums;font-size:.72rem}.complete{text-align:center;color:var(--ok);margin-top:1rem;font-weight:700}.toast{left:50%;bottom:calc(1.5rem + env(safe-area-inset-bottom));background:var(--navy);color:#fff;z-index:10;border-radius:999px;padding:.75rem 1.25rem;position:fixed;transform:translate(-50%);box-shadow:0 6px 20px #0003}.scanner{border-radius:var(--radius);aspect-ratio:1;background:#000;position:relative;overflow:hidden}.scanner video{object-fit:cover;width:100%;height:100%}.scanner-error{color:#fff;text-align:center;place-items:center;padding:1.5rem;display:grid;position:absolute;inset:0}.scanner-frame{border-radius:calc(var(--radius) + 4px);padding:4px;transition:background .2s}.scanner-frame.ok{background:var(--ok)}.scanner-frame.ko{background:var(--ko)}.result{border-radius:var(--radius);text-align:center;padding:1.5rem;font-size:1.1rem}.result.ok{background:var(--ok-bg);color:var(--ok)}.result.ko{background:var(--ko-bg);color:var(--ko)}.feed{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.feed li{border-radius:10px;align-items:center;gap:.6rem;padding:.6rem .8rem;display:flex}.feed li.ok{background:var(--ok-bg);color:var(--ok)}.feed li.ko{background:var(--ko-bg);color:var(--ko)}.feed-text{flex:1;font-weight:600}.kiosk{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1rem;min-height:100dvh;padding:2rem 1rem;display:flex}.kiosk h1{font-size:clamp(1.75rem,5vw,3rem)}.kiosk-countdown{max-width:360px}.kiosk-hint{max-width:28rem;color:var(--muted)}@media print{.no-print{display:none}}.list{margin:0;padding:.25rem 1rem;list-style:none}.list>li{border-bottom:1px solid var(--line);padding:.75rem 0}.list>li:last-child{border-bottom:0}.list select{width:auto}.list-link{color:inherit;justify-content:space-between;align-items:center;gap:1rem;text-decoration:none;display:flex}.chips{flex-wrap:wrap;gap:.4rem;margin:.4rem 0 0;padding:0;list-style:none;display:flex}.chip{background:var(--paper);border:1px solid var(--line);border-radius:999px;align-items:center;gap:.3rem;padding:.2rem .4rem .2rem .7rem;font-size:.875rem;display:inline-flex}.chip button{cursor:pointer;color:var(--muted);background:0 0;border:0;font-size:1.1rem;line-height:1}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.875rem}th,td{border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;padding:.45rem .6rem}td.center{text-align:center;color:var(--ok);font-weight:700}.stamp-station{min-height:100dvh;padding:calc(1rem + env(safe-area-inset-top)) 1rem calc(1rem + env(safe-area-inset-bottom));background:var(--navy);color:#fff;flex-direction:column;gap:1rem;display:flex}.ss-head{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.ss-event{letter-spacing:.12em;text-transform:uppercase;color:var(--gold);font-size:.72rem;font-weight:600}.ss-name{font-family:Georgia,Times New Roman,serif;font-size:clamp(1.4rem,6vw,2.2rem)}.ss-stats{white-space:nowrap;color:#c9d1e6;flex-direction:column;align-items:flex-end;gap:.35rem;font-size:.8rem;display:flex}.ss-count strong{color:#fff;text-align:right;font-size:1.7rem;line-height:1;display:block}.ss-net{border-radius:999px;padding:.15rem .6rem;font-size:.75rem;font-weight:600}.ss-net.ok{color:#a5d6a7;background:#2e7d324d}.ss-net.warn{color:var(--gold);background:#e8c87233}.ss-banner{background:#b3261e59;border-radius:10px;padding:.6rem .8rem;font-size:.9rem}.ss-scanner{width:min(100%,60dvh);margin:0 auto}.ss-scanner .scanner{border-radius:18px}.ss-hint{text-align:center;color:#c9d1e6}.ss-feed{flex-direction:column;gap:.35rem;margin:0;padding:0;font-size:.9rem;list-style:none;display:flex}.ss-feed li{background:#ffffff0f;border-radius:10px;gap:.75rem;padding:.45rem .75rem;display:flex}.ss-feed li.ok{color:#a5d6a7}.ss-feed li.already{color:#ffcc80}.ss-feed li.queued{color:var(--gold)}.ss-feed li.error{color:#ef9a9a}.ss-footer{justify-content:space-between;gap:1rem;margin-top:auto;font-size:.85rem;display:flex}.ss-footer .link-button,.ss-footer a{color:#c9d1e6}.ss-overlay{z-index:20;text-align:center;color:#fff;flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:2rem 1.5rem;animation:.18s ease-out ss-in;display:flex;position:fixed;inset:0}.ss-overlay.ok{background:#1f6b33}.ss-overlay.already{background:#9a5b00}.ss-overlay.queued{background:#34466f}.ss-overlay.error{background:#9b231b}@keyframes ss-in{0%{opacity:0;transform:scale(.97)}}.ss-photo{aspect-ratio:3/4;object-fit:cover;border:4px solid #fff;border-radius:12px;width:min(46vw,210px);box-shadow:0 10px 30px #0000004d}.ss-photo.empty{background:#ffffff26;place-items:center;font-size:3rem;font-weight:700;display:grid}.ss-title{font-size:clamp(1.6rem,7vw,2.6rem);font-weight:800;line-height:1.1}.ss-detail{opacity:.9;max-width:26rem;font-size:1.1rem}.ss-mark{width:min(34vw,140px)}.ss-mark img{aspect-ratio:1;object-fit:contain;width:100%;transform:rotate(var(--tilt));background:#fff;border-radius:50%;padding:10%;animation:.45s cubic-bezier(.2,.9,.3,1.3) stamp-in}.ss-mark .stamp{--ink:#fff;mix-blend-mode:normal;opacity:1}.ss-tap{bottom:calc(1.5rem + env(safe-area-inset-bottom));opacity:.7;font-size:.8rem;position:absolute}.station-picker{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.station-pick{border:1px solid var(--line);border-left:5px solid var(--navy);border-radius:var(--radius);background:var(--card);color:inherit;flex-direction:column;gap:.2rem;padding:1rem 1.1rem;text-decoration:none;display:flex}.station-pick strong{font-size:1.2rem}.pair{place-items:center;min-height:100dvh;padding:1.5rem 1rem;display:grid}.pair .card{width:100%;max-width:420px}.code-input{letter-spacing:.2em;text-align:center;text-transform:uppercase;font-family:ui-monospace,Cascadia Mono,Courier New,monospace;font-size:1.6rem}.pairing{border:1px dashed var(--line);text-align:center;background:#fff;border-radius:12px;flex-direction:column;align-items:center;gap:.5rem;padding:1rem;display:flex}.pairing .link-button{align-self:center}.pairing-code{letter-spacing:.15em;font-family:ui-monospace,Cascadia Mono,Courier New,monospace;font-size:1.8rem;font-weight:700}.login-device{align-self:center;font-size:.9rem}.image-picker{align-items:center;gap:1rem;display:flex}.image-preview{aspect-ratio:1;border:1px dashed var(--line);text-align:center;background:#fff;border-radius:10px;flex:none;place-items:center;width:96px;padding:.25rem;display:grid;overflow:hidden}.image-preview img{object-fit:contain;width:100%;height:100%}.image-preview.photo{aspect-ratio:3/4;padding:0}.image-preview.photo img{object-fit:cover}.image-picker label.button[aria-disabled=true]{opacity:.5;pointer-events:none}.station-stamp summary{cursor:pointer;color:var(--navy-soft);font-size:.9rem}.station-stamp[open] summary{margin-bottom:.75rem}.swatches{flex-wrap:wrap;gap:.75rem;display:flex}.swatch{background:var(--c);width:44px;height:44px;box-shadow:0 0 0 1px var(--line);cursor:pointer;border:3px solid #fff;border-radius:50%;padding:0}.swatch[aria-pressed=true]{box-shadow:0 0 0 3px var(--gold), 0 0 0 4px var(--navy)}.page-org{align-items:center;gap:.45rem;min-width:0;display:inline-flex}.page-org img{object-fit:contain;background:#fff;border-radius:50%;width:22px;height:22px}.accredit-link{align-self:center;font-size:.85rem}.code-list{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.code-list li{border:1px solid var(--line);background:#fff;border-radius:10px;flex-wrap:wrap;align-items:center;gap:.35rem .75rem;padding:.5rem .75rem;display:flex}.code-actions{gap:.75rem;margin-left:auto;display:inline-flex}.inline-label{flex:1;min-width:9rem;font-size:.85rem;font-weight:500}.center-row{justify-content:center}.break{overflow-wrap:anywhere}.org-head .image-preview{border-radius:50%}.event-card-org{letter-spacing:.08em;text-transform:uppercase;color:var(--navy-soft);align-items:center;gap:.6rem;font-size:.8rem;font-weight:600;display:flex}.event-card-org img{object-fit:contain;border:1px solid var(--line);background:#fff;border-radius:50%;width:40px;height:40px}.topbar a.brand{text-decoration:none}.public-nav{gap:1rem;display:flex}.public-nav a{color:#fff;font-size:.9rem}.content.wide{max-width:960px}.catalog-title{font-family:Georgia,Times New Roman,serif;font-size:clamp(1.6rem,5vw,2.2rem)}.tag-bar{flex-wrap:wrap;gap:.4rem;display:flex}.tag{border:1px solid var(--line);background:var(--card);color:var(--navy-soft);font:inherit;cursor:pointer;border-radius:999px;padding:.3rem .75rem;font-size:.85rem}.tag[aria-pressed=true]{background:var(--navy);border-color:var(--navy);color:#fff}.tag-count{opacity:.6}.catalog-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;margin:0;padding:0;list-style:none;display:grid}.catalog-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);height:100%;color:inherit;flex-direction:column;text-decoration:none;display:flex;overflow:hidden;box-shadow:0 1px 2px #0000000a}.catalog-cover{aspect-ratio:16/9;background:repeating-radial-gradient(circle at 30% 40%, transparent 0 9px, #e8c87240 9px 10px), var(--navy);background-position:50%;background-size:cover;position:relative}.catalog-cover .badge{background:#ffffffeb;position:absolute;bottom:.6rem;left:.6rem}.catalog-body{flex-direction:column;gap:.3rem;padding:.8rem .9rem 1rem;display:flex}.catalog-name{font-family:Georgia,Times New Roman,serif;font-size:1.1rem;line-height:1.25}.catalog-tags{color:var(--navy-soft);font-size:.8rem}.event-cover{aspect-ratio:16/9;object-fit:cover;border-radius:var(--radius) var(--radius) 0 0;width:calc(100% + 2rem);margin:-1rem -1rem 0}.verify-banner{text-align:center;border-radius:10px;padding:.7rem 1rem;font-weight:600}.verify-banner.ok{background:var(--ok-bg);color:var(--ok)}.verify-banner.ko{background:var(--ko-bg);color:var(--ko)}.certificate{border:1px solid var(--line);text-align:center;box-shadow:inset 0 0 0 8px #fffdf6, inset 0 0 0 10px var(--gold), 0 10px 30px #00000014;background:repeating-radial-gradient(circle at 50% 45%,#0000 0 12px,#1d2b4f08 12px 13px),linear-gradient(#fffdf6,#f7efdd);border-radius:6px;flex-direction:column;align-items:center;gap:.6rem;padding:2.5rem 1.5rem 1.5rem;display:flex}.certificate-head{letter-spacing:.16em;text-transform:uppercase;color:var(--navy-soft);align-items:center;gap:.6rem;font-size:.8rem;font-weight:600;display:flex}.certificate-head img{object-fit:contain;width:40px;height:40px}.certificate-kicker{letter-spacing:.22em;text-transform:uppercase;color:#9a7a2a;margin-top:.6rem;font-family:Georgia,Times New Roman,serif;font-size:1.1rem}.certificate-name{font-family:Georgia,Times New Roman,serif;font-size:clamp(1.8rem,6vw,2.6rem)}.certificate-event{font-family:Georgia,Times New Roman,serif;font-size:clamp(1.2rem,4vw,1.6rem)}.certificate-facts{color:var(--navy-soft);font-weight:600}.certificate-foot{border-top:1px solid var(--line);text-align:left;justify-content:space-between;align-items:flex-end;gap:1rem;width:100%;margin-top:1.5rem;padding-top:1rem;display:flex}@media print{@page{size:A4 landscape;margin:12mm}body,.app{background:#fff}.topbar,.tabs{display:none}.content{max-width:none;padding:0}.certificate{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.profile-head .stats{flex-wrap:wrap;gap:1.25rem;margin:.5rem 0;display:flex}.stats dt{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:.65rem}.stats dd{margin:0;font-family:Georgia,Times New Roman,serif;font-size:1.6rem;font-weight:700}.share-row{flex-wrap:wrap;gap:.5rem;display:flex}.achievements.compact{flex-direction:column;gap:1rem;display:flex}.level{align-items:center;gap:1rem;display:flex}.level-medal{background:radial-gradient(circle at 35% 30%, #f6e2a6, var(--gold) 55%, #b8923a);width:64px;height:64px;box-shadow:0 0 0 3px #fff, 0 0 0 5px var(--gold), 0 6px 14px #00000026;color:var(--navy);border-radius:50%;flex:none;place-items:center;font-family:Georgia,Times New Roman,serif;font-size:1.8rem;font-weight:700;display:grid}.level-text{flex-direction:column;flex:1;gap:.25rem;display:flex}.level-text strong{font-family:Georgia,Times New Roman,serif;font-size:1.3rem}.level-text .countdown{max-width:none}.badges{grid-template-columns:repeat(3,1fr);gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.badge-item{text-align:center;opacity:.45;filter:grayscale();flex-direction:column;align-items:center;gap:.2rem;padding:.5rem .25rem;display:flex}.badge-item.earned{opacity:1;filter:none}.badge-icon{border:2px dashed var(--line);width:46px;height:46px;color:var(--navy);border-radius:50%;place-items:center;font-size:1.3rem;display:grid}.badge-item.earned .badge-icon{color:#b3261e;border:3px double #b3261e;transform:rotate(-6deg)}.badge-title{font-size:.72rem;font-weight:700;line-height:1.15}.badge-hint{color:var(--muted);font-size:.62rem;line-height:1.15}.extras{border-top:1px dashed var(--line);flex-direction:column;gap:.75rem;padding-top:.75rem;display:flex}.rewards{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.reward{border:1px solid var(--line);background:#ffffffb3;border-radius:10px;align-items:center;gap:.6rem;padding:.55rem .7rem;display:flex}.reward.unlocked{border-color:var(--gold);background:#fff8e3}.reward.redeemed{opacity:.75}.reward-icon{font-size:1.3rem}.reward-text{flex-direction:column;flex:1;min-width:0;display:flex}.reward .button{padding:.45rem .8rem}.voucher{z-index:30;text-align:center;color:#fff;background:linear-gradient(135deg,#1f6b33,#2e7d32,#1f6b33) 0 0/300% 300%;flex-direction:column;justify-content:center;align-items:center;gap:.6rem;padding:2rem;animation:3s infinite voucher-bg;display:flex;position:fixed;inset:0}.voucher .eyebrow{color:#d5f0d8}.voucher-title{font-family:Georgia,Times New Roman,serif;font-size:clamp(1.8rem,8vw,2.6rem);font-weight:700}.voucher-time{font-family:ui-monospace,Cascadia Mono,Courier New,monospace;font-size:1.4rem;font-weight:700}.voucher-pulse{border:4px solid #fff;border-radius:50%;width:90px;height:90px;animation:1.2s ease-in-out infinite voucher-pulse}@keyframes voucher-bg{50%{background-position:100% 100%}}@keyframes voucher-pulse{50%{opacity:.5;transform:scale(.75)}}.end-row{justify-content:flex-end}.lang-select{width:auto;color:inherit;background:0 0;border:1px solid;border-radius:6px;padding:.2rem .4rem;font-size:.85rem}.lang-select option{color:#1f1f22}.update-banner{left:50%;bottom:calc(1rem + env(safe-area-inset-bottom));z-index:1000;color:#fff;background:#1d2b4f;border-radius:12px;flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;width:min(34rem,100% - 2rem);padding:.75rem 1rem;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 8px 24px #00000040}.update-banner .link-button{color:#e8c46a}
