/* Shared public and organizer identity. */
.public-site { --ink:#172b32; --muted:#637176; --paper:#f8f7f3; --gold:#d8b36a; --line:#e4e6df; background:var(--paper); color:var(--ink); font-family:'DM Sans',sans-serif; }
.public-site *, .public-site *::before, .public-site *::after { box-sizing:border-box; }
.public-site h1,.public-site h2,.public-site h3 { letter-spacing:-.045em; }
.public-site h1,.public-site h2 { font-family:Manrope,sans-serif; font-weight:500; }
.public-site h1 em,.public-site h2 em,.cover-title em { font-family:'Cormorant Garamond',serif; font-weight:500; }
.public-site button,.public-site a,.public-site input { -webkit-tap-highlight-color:transparent; }
.public-site a,.public-site button { touch-action:manipulation; }
.public-site :focus-visible { outline:3px solid #a67831; outline-offset:5px; }
.public-site .icon { width:22px; height:22px; flex-shrink:0; }
.public-site .shell { width:min(1180px,calc(100% - 80px)); margin-inline:auto; }
.public-site .eyebrow { display:inline-flex; align-items:center; gap:10px; font-size:10px; font-weight:700; letter-spacing:.18em; line-height:1.6; }
.public-site .eyebrow .icon { width:17px; height:17px; }
.public-site .subtle { color:var(--muted); font-size:13px; }
.public-site .button { display:inline-flex; align-items:center; justify-content:center; gap:22px; min-height:49px; padding:13px 23px; border:1px solid transparent; border-radius:7px; font-size:13px; font-weight:600; transition:transform .2s,box-shadow .2s,background .2s; }
.public-site .button:hover { transform:translateY(-2px); box-shadow:0 7px 22px #142b3214; }
.public-site .button .icon { width:17px; height:17px; }
.public-site .button-dark { background:#17343b; color:#fff; }
.public-site .button-gold { background:linear-gradient(110deg,#f2dfb2,#dbb977); color:#283330; border-color:#ecce94; }
.public-site .button-outline { border-color:#cbd1c9; }
.public-site .text-link { display:inline-flex; align-items:center; gap:15px; font-size:13px; font-weight:600; }
.public-site .text-link .icon { width:17px; height:17px; }
.public-site .skip-link { position:fixed; top:-80px; left:16px; padding:12px; background:white; z-index:100; }
.public-site .skip-link:focus { top:10px; }
.public-site .public-header { background:#f8f7f3f5; border-bottom:1px solid var(--line); position:sticky; top:0; z-index:40; backdrop-filter:blur(18px); }
.public-site .header-inner { height:86px; display:flex; align-items:center; justify-content:space-between; gap:25px; }
.public-site .brand-logo { display:block; width:56px; height:56px; object-fit:contain; flex-shrink:0; border-radius:9px; }
.public-site .wordmark { display:inline-flex; gap:10px; align-items:center; font-family:Manrope,sans-serif; font-size:25px; font-weight:800; letter-spacing:-1.4px; line-height:1.1; }
.public-site .wordmark small { display:block; font-family:'DM Sans',sans-serif; font-size:7px; letter-spacing:2px; margin-top:6px; font-weight:500; }
.public-site .brand-light { font-weight:500; }
.public-site .desktop-nav { display:flex; gap:32px; font-size:12px; color:#667278; }
.public-site .desktop-nav a { padding:28px 0; position:relative; }
.public-site .desktop-nav a[aria-current] { color:var(--ink); }
.public-site .desktop-nav a[aria-current]::after { content:''; position:absolute; left:calc(50% - 2px); bottom:15px; width:4px; height:4px; background:#a78045; border-radius:50%; }
.public-site .menu-toggle,.public-site .mobile-nav { display:none; }
.public-site .home-hero { overflow:hidden; background:radial-gradient(ellipse at 80% 55%,#e8e9db 0,transparent 48%),#f3f3eb; }
.public-site .hero-grid { display:grid; grid-template-columns:1.05fr 1fr; align-items:center; min-height:615px; gap:30px; padding-block:65px 48px; }
.public-site .hero-copy h1 { font-size:clamp(44px,4.8vw,65px); line-height:1.12; margin:25px 0; }
.public-site .hero-copy h1 em { color:#8c713f; font-size:1.08em; letter-spacing:-.055em; }
.public-site .hero-copy>p { font-size:14px; line-height:1.9; color:var(--muted); max-width:390px; }
.public-site .hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:25px; margin-top:30px; }
.public-site .hero-assurance { display:flex; flex-wrap:wrap; gap:22px; font-size:10px; color:#63716b; margin-top:40px; }
.public-site .hero-assurance span { display:flex; align-items:center; gap:7px; }
.public-site .hero-assurance .icon { width:15px; height:15px; }
.public-site .award-art { position:relative; min-height:460px; display:grid; place-items:center; isolation:isolate; }
.public-site .award-art::before { content:''; position:absolute; width:330px; height:330px; border-radius:50%; background:radial-gradient(circle,#f8e0ab8c,transparent 68%); z-index:-1; }
.public-site .hero-trophy { width:80%; max-width:380px; filter:drop-shadow(14px 20px 17px #12251b1f); transform:rotate(-8deg); animation:trophy-enter .9s ease-out both; }
.public-site .award-orbit { position:absolute; width:92%; aspect-ratio:1; max-width:450px; border:1px solid #aa977a33; border-radius:50%; z-index:-1; }
.public-site .orbit-two { width:75%; max-width:360px; border-style:dashed; transform:rotate(-20deg); }
.public-site .art-spark { position:absolute; color:#a58048; }
.public-site .spark-one { top:10%; right:17%; font-size:42px; }
.public-site .spark-two { bottom:22%; left:10%; font-size:32px; }
.public-site .spark-three { top:27%; left:18%; font-size:14px; }
.public-site .art-caption { display:flex; gap:12px; align-items:center; font-size:8px; letter-spacing:3px; position:absolute; bottom:6px; color:#8c7956; }
.public-site .tiny-rule { width:25px; height:1px; background:#b8a582; }
.public-site .hero-bottom { display:flex; align-items:center; justify-content:space-between; border-top:1px solid #d9dbd1; padding-block:25px; gap:20px; }
.public-site .hero-bottom>span { font-size:8px; letter-spacing:2px; color:#748077; }
.public-site .hero-bottom p { display:flex; gap:26px; font-size:12px; color:#566861; }
.public-site .hero-bottom i { color:#a38c62; font-style:normal; }
.public-site .featured-section,.public-site .how-section { padding-block:85px; }
.public-site .section-heading { display:flex; align-items:end; justify-content:space-between; gap:25px; margin-bottom:32px; }
.public-site .section-heading h2 { font-size:35px; line-height:1.22; margin-top:12px; }
.public-site .section-heading h1 { font-size:36px; line-height:1.25; margin-top:10px; }
.public-site .section-heading>p { color:var(--muted); font-size:13px; line-height:1.8; }
.public-site .featured-event { display:grid; grid-template-columns:1fr 1fr; background:#fff; border:1px solid var(--line); border-radius:12px; overflow:hidden; }
.public-site .event-artwork { background:#253f43; position:relative; padding:38px; min-height:340px; overflow:hidden; color:#f2e5c2; display:flex; flex-direction:column; justify-content:space-between; }
.public-site .event-artwork::before { content:''; position:absolute; width:320px; height:320px; border:50px solid #b4c3a32b; border-radius:50%; right:-100px; bottom:-100px; }
.public-site .event-artwork>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:2; }
.public-site .event-art-kicker { font-family:Manrope,sans-serif; font-size:48px; line-height:1.1; letter-spacing:-3px; }
.public-site .event-art-kicker em { font-family:'Cormorant Garamond',serif; font-size:1.18em; }
.public-site .art-stamp { display:flex; gap:9px; align-items:center; font-size:8px; letter-spacing:2px; margin-top:24px; }
.public-site .featured-content { padding:36px 42px; display:flex; flex-direction:column; align-items:start; justify-content:center; }
.public-site .featured-content h3 { font-family:Manrope,sans-serif; font-size:27px; font-weight:600; line-height:1.3; margin:18px 0 12px; }
.public-site .featured-content>p { font-size:13px; line-height:1.8; color:var(--muted); }
.public-site .featured-content>.button { margin-top:24px; }
.public-site .status-pill { display:inline-flex; align-items:center; gap:7px; border:1px solid #dadfd6; background:#eef0ea; color:#526356; border-radius:30px; padding:7px 11px; font-size:10px; font-weight:500; white-space:nowrap; }
.public-site .status-pill>span:first-child:empty { width:5px; height:5px; background:currentColor; border-radius:50%; }
.public-site .status-open { background:#eef4e8; border-color:#d9e6cf; color:#3e683c; }
.public-site .countdown { margin-top:20px; border-top:1px solid var(--line); padding-top:17px; width:100%; }
.public-site .countdown>span { display:flex; align-items:center; gap:7px; color:var(--muted); font-size:10px; }
.public-site .countdown .icon { width:14px; height:14px; }
.public-site .countdown>div { display:flex; align-items:baseline; gap:7px; margin-top:8px; }
.public-site .countdown b { font-size:23px; font-weight:500; font-variant-numeric:tabular-nums; }
.public-site .countdown small { color:var(--muted); margin-right:13px; font-size:10px; }
/* The podium keeps the first place centered, including incomplete rankings. */
.public-site .award-stage { position:relative; isolation:isolate; overflow:hidden; border-radius:16px; background:radial-gradient(ellipse at 50% 30%,#46493466 0,transparent 49%),linear-gradient(135deg,#162a32,#101d28 55%,#1a2b33); color:#f8f5ec; padding:45px 40px 0; border:1px solid #31404a; }
.public-site .award-stage::before { content:''; position:absolute; inset:0; pointer-events:none; z-index:-1; opacity:.38; background-image:radial-gradient(circle,#dbc288 1px,transparent 1.5px),linear-gradient(110deg,transparent 28%,#d5c79d06 28.1%,transparent 40%,#d5c79d08 60%,transparent 60.1%); background-size:103px 113px,100% 100%; mask-image:linear-gradient(#000,transparent 80%); }
.public-site .award-stage::after { content:''; position:absolute; width:670px; height:670px; border:1px solid #c9b47b0f; border-radius:50%; top:40px; left:50%; transform:translateX(-50%); z-index:-1; pointer-events:none; }
.public-site .stage-heading { text-align:center; position:relative; }
.public-site .stage-heading .eyebrow { color:#dac18e; font-size:9px; letter-spacing:.22em; }
.public-site .stage-heading h2 { font-size:38px; line-height:1.2; margin:14px 0 12px; }
.public-site .stage-heading h2 em { color:#e5c995; }
.public-site .stage-heading p { color:#a8b4b9; font-size:12px; line-height:1.7; }
.public-site .podium { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:end; gap:18px; max-width:800px; margin:42px auto 0; }
.public-site .podium-person { --metal:#e2c080; --metal-dark:#8b7147; text-align:center; min-width:0; position:relative; grid-column:2; grid-row:1; }
.public-site .podium-person[data-place="2"] { --metal:#c8d7e2; --metal-dark:#738996; grid-column:1; }
.public-site .podium-person[data-place="3"] { --metal:#d2a182; --metal-dark:#976345; grid-column:3; }
.public-site .podium-single .podium-person { grid-column:2; }
.public-site .podium-crown { color:#e5c68a; display:flex; flex-direction:column; align-items:center; gap:9px; margin-bottom:16px; }
.public-site .podium-crown .icon { width:30px; height:30px; }
.public-site .podium-crown>span { font-size:7px; font-weight:600; letter-spacing:2px; }
.public-site .podium-portrait { width:106px; height:106px; margin:0 auto 23px; position:relative; border-radius:50%; padding:5px; background:linear-gradient(140deg,#f2e5c4,var(--metal-dark) 27%,var(--metal) 51%,var(--metal-dark) 80%); box-shadow:0 0 0 6px #e6c27a09,0 15px 35px #0003; }
.public-site .podium-portrait::before { content:''; position:absolute; inset:-12px; border:1px solid color-mix(in srgb,var(--metal) 25%,transparent); border-radius:50%; }
.public-site .podium-person[data-place="1"] .podium-portrait { width:132px; height:132px; box-shadow:0 0 0 6px #e6c27a0a,0 0 50px #d9b16622; }
.public-site .portrait-initial { position:absolute; inset:5px; display:grid; place-items:center; border-radius:50%; background:radial-gradient(circle at 30% 20%,#526361,#1c3137); color:var(--metal); font-family:'Cormorant Garamond',serif; font-size:52px; }
.public-site .podium-portrait img { position:relative; width:100%; height:100%; border-radius:50%; object-fit:cover; background:#243840; }
.public-site .podium-medal { position:absolute; left:calc(50% - 14px); bottom:-13px; width:28px; height:31px; display:grid; place-items:center; clip-path:polygon(0 0,100% 0,100% 78%,50% 100%,0 78%); background:linear-gradient(120deg,var(--metal),#fff1d3 40%,var(--metal-dark)); color:#283137; font-size:13px; font-weight:700; padding-bottom:3px; }
.public-site .podium-person h3 { font-family:Manrope,sans-serif; color:#f5f2e9; font-size:17px; font-weight:600; letter-spacing:-.03em; overflow-wrap:anywhere; padding-inline:4px; }
.public-site .podium-origin { color:#a1afb4; font-size:10px; margin:6px 0 22px; padding-inline:4px; min-height:15px; overflow-wrap:anywhere; }
.public-site .podium-plinth { background:linear-gradient(115deg,#d7b77411,transparent 50%),linear-gradient(#beac7a19,#14222d 90%); border:1px solid #bca47130; border-top:2px solid var(--metal); border-bottom:0; min-height:163px; border-radius:9px 9px 0 0; padding:25px 10px 20px; position:relative; overflow:hidden; }
.public-site .podium-person[data-place="1"] .podium-plinth { min-height:195px; background:linear-gradient(110deg,#dfc28020,transparent 50%),linear-gradient(#7e6a402e,#1b2a30 90%); }
.public-site .podium-person[data-place="3"] .podium-plinth { min-height:144px; }
.public-site .plinth-label { font-size:7px; letter-spacing:1.8px; color:var(--metal); display:block; }
.public-site .podium-score { display:block; font-family:Manrope,sans-serif; font-size:36px; line-height:1.2; letter-spacing:-1px; font-weight:500; color:var(--metal); margin:9px 0 3px; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.public-site .podium-person[data-place="1"] .podium-score { font-size:44px; }
.public-site .podium-unit { color:#a9b4b6; font-size:10px; }
.public-site .plinth-ornament { display:block; color:var(--metal); opacity:.3; margin-top:14px; }
.public-site .plinth-ornament .icon { width:15px; height:15px; margin:auto; }
.public-site .stage-footer { border-top:1px solid #d1bc811c; padding:20px 0; display:flex; justify-content:space-between; align-items:center; gap:15px; font-size:10px; color:#a5b1b6; }
.public-site .stage-footer .text-link { font-size:11px; color:#dec38f; }
.public-site .stage-footer .live-status { display:flex; align-items:center; gap:7px; font-size:8px; letter-spacing:1px; }
.public-site .stage-footer .icon { width:15px; height:15px; }
.public-site .steps-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:30px; }
.public-site .step { border-top:1px solid #d9dfd3; padding-top:24px; }
.public-site .step-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:25px; }
.public-site .step-top>span { display:grid; place-items:center; background:#eeede4; width:48px; height:48px; border-radius:50%; color:#7e6944; }
.public-site .step-top small { font-family:'Cormorant Garamond',serif; font-size:26px; color:#a4a99c; }
.public-site .step h3 { font-size:15px; font-weight:600; letter-spacing:-.02em; }
.public-site .step p { font-size:12px; line-height:1.9; color:var(--muted); margin-top:12px; }
.public-site .step:hover .icon { transform:rotate(-8deg); transition:transform .2s; }
.public-site .closing-banner { position:relative; overflow:hidden; isolation:isolate; display:flex; align-items:center; justify-content:space-between; gap:25px; background:#eaece2; border:1px solid #e0e3d5; padding:45px 50px; border-radius:12px; }
.public-site .closing-banner h2 { font-size:35px; line-height:1.25; margin-top:13px; }
.public-site .closing-spark { position:absolute; width:260px; height:260px; color:#d7dacb; top:0; right:22%; z-index:-1; stroke-width:.35; }
.public-site .public-footer { padding-top:65px; margin-top:70px; border-top:1px solid var(--line); }
.public-site .footer-grid { display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:65px; padding-bottom:45px; }
.public-site .footer-grid p { font-size:12px; line-height:1.9; color:var(--muted); margin-top:20px; }
.public-site .footer-grid>div>a:not(.wordmark) { display:block; font-size:12px; margin-top:15px; color:var(--muted); }
.public-site .footer-bottom { display:flex; justify-content:space-between; gap:15px; border-top:1px solid var(--line); padding-block:22px; font-size:9px; color:#7a847e; }
.public-site .page-hero { position:relative; overflow:hidden; background:#e9ede3; padding-block:65px; }
.public-site .page-hero h1 { font-size:54px; line-height:1.14; margin:20px 0; }
.public-site .page-hero h1 em { color:#67785a; }
.public-site .page-hero p { font-size:13px; color:var(--muted); max-width:420px; line-height:1.8; }
.public-site .hero-line { display:flex; flex-wrap:wrap; gap:19px; margin-top:40px; font-size:8px; letter-spacing:1.5px; color:#72836b; }
.public-site .hero-watermark { position:absolute; right:8%; top:18%; transform:rotate(15deg); pointer-events:none; color:#b6c3a563; }
.public-site .hero-watermark .icon { width:285px; height:285px; stroke-width:.4; }
.public-site .section-space { padding-block:55px 15px; }
.public-site .event-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:25px; }
.public-site .event-card { border:1px solid var(--line); border-radius:12px; overflow:hidden; background:white; transition:transform .2s,box-shadow .2s; }
.public-site .event-card:hover { transform:translateY(-5px); box-shadow:0 20px 30px #142b320a; }
.public-site .event-cover { position:relative; isolation:isolate; min-height:255px; display:flex; flex-direction:column; justify-content:space-between; padding:25px; overflow:hidden; background:#243e43; color:#f0e6c8; }
.public-site .event-cover[data-color="1"] { background:#dcd5bc; color:#4c5140; }
.public-site .event-cover[data-color="2"] { background:#6a645d; color:#f1dbc2; }
.public-site .event-cover>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:1; }
.public-site .cover-shape { position:absolute; right:-45px; bottom:-45px; opacity:.16; z-index:-1; transform:rotate(16deg); }
.public-site .cover-shape .icon { width:260px; height:260px; stroke-width:1; }
.public-site .cover-index { font-size:8px; letter-spacing:3px; }
.public-site .cover-title { font-family:'Cormorant Garamond',serif; font-size:35px; line-height:1.02; max-width:85%; margin:25px 0; overflow-wrap:anywhere; }
.public-site .cover-arrow { position:absolute; bottom:25px; right:25px; width:34px; height:34px; border:1px solid currentColor; border-radius:50%; display:grid; place-items:center; }
.public-site .cover-arrow .icon { width:16px; height:16px; }
.public-site .event-card-body { padding:25px; }
.public-site .event-card h3 { font-family:Manrope,sans-serif; font-size:18px; font-weight:600; margin:16px 0 10px; line-height:1.4; }
.public-site .event-description { font-size:12px; line-height:1.8; color:var(--muted); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.public-site .event-meta { display:flex; flex-wrap:wrap; gap:20px; border-top:1px solid var(--line); padding-top:18px; margin-top:22px; font-size:10px; color:var(--muted); }
.public-site .event-meta>span { display:flex; align-items:center; gap:5px; }
.public-site .event-meta .icon { width:15px; height:15px; }
.public-site .back-link { display:inline-flex; font-size:11px; color:var(--muted); margin-bottom:24px; }
.public-site .detail-hero { background:#eeefe7; padding-block:32px 38px; }
.public-site .detail-heading { display:flex; align-items:start; justify-content:space-between; gap:30px; }
.public-site .detail-heading h1 { font-size:38px; line-height:1.25; margin:10px 0 15px; max-width:750px; }
.public-site .detail-heading p { font-size:13px; color:var(--muted); line-height:1.8; max-width:700px; }
.public-site .detail-stats { display:flex; flex-wrap:wrap; gap:30px; margin-top:28px; font-size:11px; color:#67746d; }
.public-site .detail-stats>span { display:flex; align-items:center; gap:7px; }
.public-site .detail-stats .icon { width:16px; height:16px; }
.public-site .event-tabs { display:flex; gap:35px; border-bottom:1px solid var(--line); margin-bottom:38px; }
.public-site .event-tabs button { display:flex; align-items:center; gap:10px; padding:22px 5px; font-size:13px; color:var(--muted); border-bottom:2px solid transparent; }
.public-site .event-tabs .is-active { color:var(--ink); border-color:#a58852; font-weight:600; }
.public-site .tab-dot { width:5px; height:5px; border-radius:50%; background:#a58852; }
.public-site .participant-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; }
.public-site .participant-card { border:1px solid var(--line); background:#fff; border-radius:10px; overflow:hidden; transition:transform .2s; }
.public-site .participant-card:hover { transform:translateY(-4px); }
.public-site .participant-image { aspect-ratio:1.15; position:relative; background:linear-gradient(140deg,#dfe4d5,#bfcebc); display:grid; place-items:center; overflow:hidden; }
.public-site .participant-card:nth-child(3n+2) .participant-image { background:linear-gradient(140deg,#e9dfd1,#c9bba5); }
.public-site .participant-card:nth-child(3n+3) .participant-image { background:linear-gradient(140deg,#dae3e7,#b2c3cb); }
.public-site .participant-monogram { font-family:'Cormorant Garamond',serif; font-size:100px; color:#30453c88; }
.public-site .participant-image>img { position:absolute; width:100%; height:100%; object-fit:cover; }
.public-site .participant-number { position:absolute; top:13px; left:13px; font-size:10px; color:#354538; background:#ffffffbb; border-radius:4px; padding:5px 8px; }
.public-site .participant-star { position:absolute; right:13px; bottom:13px; color:#ffffff8a; }
.public-site .participant-body { padding:20px; }
.public-site .participant-body>p { font-size:10px; color:var(--muted); margin-bottom:6px; }
.public-site .participant-body h3 { font-size:17px; font-weight:600; line-height:1.4; overflow-wrap:anywhere; }
.public-site .participant-bottom { display:flex; justify-content:space-between; align-items:center; gap:10px; border-top:1px solid var(--line); margin-top:20px; padding-top:15px; font-size:11px; }
.public-site .participant-bottom>span:first-child { color:var(--muted); }
.public-site .participant-bottom b { color:var(--ink); font-weight:500; }
.public-site .participant-action { display:flex; gap:10px; align-items:center; }
.public-site .participant-action .icon { width:15px; height:15px; }
.public-site .pagination { display:flex; justify-content:center; align-items:center; gap:20px; margin-top:35px; font-size:12px; }
.public-site .pagination button { padding:10px; border:1px solid var(--line); border-radius:5px; }
.public-site button:disabled { opacity:.5; cursor:not-allowed; }
.public-site .ranking-heading { margin-top:40px; }
.public-site .ranking-heading h2 { font-size:28px; }
.public-site .ranking-list { display:grid; gap:10px; }
.public-site .ranking-row { display:flex; align-items:center; gap:20px; background:#fff; border:1px solid var(--line); border-radius:9px; padding:18px 24px; }
.public-site .row-rank { color:#97a29a; font-size:20px; font-family:'Cormorant Garamond',serif; width:28px; flex-shrink:0; }
.public-site .row-avatar { width:48px; height:48px; border-radius:50%; background:#e7eadf; color:#6d7b60; position:relative; display:grid; place-items:center; flex-shrink:0; font-family:'Cormorant Garamond',serif; font-size:27px; overflow:hidden; }
.public-site .row-avatar img { position:absolute; width:100%; height:100%; object-fit:cover; }
.public-site .row-person { flex:1; min-width:0; }
.public-site .row-person h3 { font-size:14px; font-weight:600; letter-spacing:-.02em; overflow-wrap:anywhere; }
.public-site .row-person p { font-size:10px; color:var(--muted); margin-top:3px; }
.public-site .vote-bar { height:3px; border-radius:3px; background:#f0f1eb; margin-top:9px; max-width:450px; }
.public-site .vote-bar>span { display:block; height:100%; border-radius:3px; background:linear-gradient(90deg,#a6b6a0,#cbb274); transition:width .6s; }
.public-site .row-votes { text-align:right; min-width:65px; }
.public-site .row-votes strong { display:block; font-size:19px; font-weight:500; font-variant-numeric:tabular-nums; }
.public-site .row-votes small { color:var(--muted); font-size:10px; }
.public-site .row-action { display:grid; place-items:center; width:42px; height:42px; background:#f0f2e9; border:1px solid #e3e6db; border-radius:50%; }
.public-site .row-action .icon { width:17px; height:17px; }
.public-site .leaderboard-page { padding-top:32px; }
.public-site .supporter-list { margin-top:25px; }
.public-site .podium .donor-score,.public-site .podium-person[data-place="1"] .donor-score { font-size:clamp(15px,2vw,27px); }
.public-site .empty-state { text-align:center; padding:70px 20px; }
.public-site .empty-state>.icon { margin:0 auto 20px; width:45px; height:45px; color:#a58a57; }
.public-site .empty-state h3 { font-size:23px; font-weight:500; }
.public-site .empty-state p { font-size:13px; color:var(--muted); margin:12px 0 24px; }
.public-site .award-stage .empty-state p { color:#b2bdc0; }
.public-site .loading-ring { display:block; margin:auto; width:28px; height:28px; border:2px solid #e1e3d8; border-top-color:#a88a53; border-radius:50%; animation:loading-spin 1s linear infinite; }
.public-site .closed-page { text-align:center; padding-block:75px 20px; }
.public-site .closed-illustration { width:120px; height:120px; margin:0 auto 30px; background:radial-gradient(#f4e7c7,#e9eadd); border:1px solid #daceb0; border-radius:50%; display:grid; place-items:center; position:relative; color:#97743d; }
.public-site .closed-illustration .icon { width:55px; height:55px; stroke-width:1; }
.public-site .closed-illustration>span { position:absolute; top:0; right:0; font-size:32px; }
.public-site .closed-page h1 { font-size:42px; line-height:1.25; margin-top:20px; }
.public-site .closed-page>p { font-size:14px; line-height:1.9; color:var(--muted); max-width:530px; margin:25px auto; }
.public-site .closed-page .hero-actions { justify-content:center; }
/* Existing payment interactions retain their field names and handlers. */
.public-site .vote-page { background:var(--paper); }
.public-site .vote-hero { background:radial-gradient(ellipse at 80% 0,#6a624440,transparent 65%),#172c34; border:0; }
.public-site .vote-hero h1 { font-family:'Cormorant Garamond',serif; font-size:60px; }
.public-site .vote-hero .vote-kicker { color:#d9c18b; }
.public-site .vote-hero .max-w-5xl { max-width:1100px; }
.public-site .vote-layout { max-width:1100px; padding-block:38px; }
.public-site .vote-layout>.grid { grid-template-columns:minmax(0,1fr); }
.public-site .vote-layout .grid>* { min-width:0; }
@media(min-width:1024px) { .public-site .vote-layout>.grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
.public-site .vote-page .rounded-3xl { border-radius:12px; }
.public-site .vote-page .rounded-2xl { border-radius:7px; }
.public-site .vote-page .border-slate-200,.public-site .vote-page .border-slate-100 { border-color:var(--line); }
.public-site .vote-page .bg-slate-100,.public-site .vote-page .bg-slate-50 { background:#f0f1e9; }
.public-site .vote-page .bg-blue-600 { background:#21433f; }
.public-site .vote-page .text-blue-600 { color:#426952; }
.public-site .vote-page .bg-blue-100 { background:#e9eee0; }
.public-site .vote-page input { min-width:0; }
.public-site .vote-page input:focus { border-color:#88986f; box-shadow:0 0 0 3px #84956d20; }
.public-site .vote-page aside>.sticky { top:110px; border-top:3px solid #c2a269; }
.public-site .vote-page .fixed { overflow-y:auto; z-index:60; backdrop-filter:blur(5px); }
.public-site .vote-page .fixed>div { max-height:calc(100dvh - 32px); overflow-y:auto; }
.public-site .vote-page .fixed .flex.justify-between { gap:15px; }
.public-site .vote-page .fixed .flex.justify-between>span:last-child { overflow-wrap:anywhere; min-width:0; text-align:right; }
.public-site .vote-page .success-emblem { background:#edf1e3; color:#7c8756; animation:success-enter .5s ease-out both; }
.public-site .vote-step-strip { display:flex; align-items:center; gap:22px; margin-top:30px; border-top:1px solid #ffffff18; padding-top:22px; font-size:10px; color:#bbc7c3; }
.public-site .vote-step-strip span { display:flex; align-items:center; gap:7px; }
.public-site .vote-step-strip b { display:grid; place-items:center; border:1px solid #bdab7980; border-radius:50%; width:23px; height:23px; font-size:9px; font-weight:500; color:#e4cda1; }
@keyframes trophy-enter { from { opacity:0; transform:translateY(18px) rotate(-12deg); } to { opacity:1; transform:translateY(0) rotate(-8deg); } }
@keyframes loading-spin { to { transform:rotate(360deg); } }
@keyframes success-enter { from { opacity:0; transform:scale(.8); } to { opacity:1; transform:scale(1); } }
@keyframes score-flash { from { background:#eee6cf; } to { background:#fff; } }
.public-site .score-updated { animation:score-flash .65s ease-out; }
@media(min-width:1500px) { .public-site .hero-grid { min-height:660px; } }
@media(max-width:1000px) {
 .public-site .shell { width:calc(100% - 48px); }
 .public-site .hero-grid { min-height:520px; }
 .public-site .hero-copy h1 { font-size:47px; }
 .public-site .award-art { min-height:390px; }
 .public-site .desktop-nav { gap:20px; }
 .public-site .header-cta { display:none; }
 .public-site .event-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .public-site .participant-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
 .public-site .hero-watermark { opacity:.6; right:-30px; }
 .public-site .featured-content { padding:28px; }
 .public-site .footer-grid { gap:30px; }
}
@media(max-width:700px) {
 .public-site .shell { width:calc(100% - 36px); }
 .public-site .header-inner { height:72px; }
 .public-site .wordmark { font-size:22px; }
 .public-site .wordmark small { font-size:6px; }
 .public-site .desktop-nav { display:none; }
 .public-site .menu-toggle { display:block; border:1px solid #d6dbd0; border-radius:5px; padding:10px 14px; font-size:11px; }
 .public-site .mobile-nav { display:flex; flex-direction:column; padding-block:10px 22px; gap:15px; font-size:13px; }
 .public-site .hero-grid { grid-template-columns:1fr; padding-block:43px 10px; gap:6px; }
 .public-site .hero-copy h1 { font-size:46px; }
 .public-site .hero-copy>p { max-width:360px; font-size:13px; }
 .public-site .hero-copy .eyebrow { font-size:8px; }
 .public-site .hero-assurance { margin-top:25px; gap:14px; font-size:9px; }
 .public-site .hero-actions { gap:22px; }
 .public-site .hero-actions .text-link { font-size:11px; }
 .public-site .award-art { min-height:320px; }
 .public-site .hero-trophy { width:255px; }
 .public-site .award-orbit { max-width:290px; }
 .public-site .orbit-two { max-width:235px; }
 .public-site .art-caption { bottom:8px; font-size:7px; }
 .public-site .hero-bottom { align-items:start; flex-direction:column; gap:12px; padding-block:22px; }
 .public-site .hero-bottom p { flex-wrap:wrap; gap:10px; font-size:10px; }
 .public-site .featured-section,.public-site .how-section { padding-block:50px; }
 .public-site .section-heading { gap:18px; align-items:start; flex-wrap:wrap; margin-bottom:25px; }
 .public-site .section-heading h2 { font-size:29px; }
 .public-site .section-heading h1 { font-size:29px; }
 .public-site .section-heading>.text-link { font-size:11px; }
 .public-site .eyebrow { font-size:8px; }
 .public-site .featured-event { grid-template-columns:1fr; }
 .public-site .event-artwork { min-height:270px; padding:28px; }
 .public-site .event-art-kicker { font-size:44px; }
 .public-site .featured-content { padding:25px; }
 .public-site .featured-content h3 { font-size:24px; }
 .public-site .award-stage { padding:28px 12px 0; border-radius:12px; }
 .public-site .stage-heading h2 { font-size:29px; padding-inline:12px; }
 .public-site .stage-heading p { font-size:10px; padding-inline:10px; }
 .public-site .stage-heading .eyebrow { font-size:7px; letter-spacing:.15em; }
 .public-site .podium { gap:7px; margin-top:35px; }
 .public-site .podium-portrait { width:66px; height:66px; padding:3px; margin-bottom:23px; }
 .public-site .podium-person[data-place="1"] .podium-portrait { width:82px; height:82px; }
 .public-site .podium-portrait::before { inset:-6px; }
 .public-site .portrait-initial { inset:3px; font-size:36px; }
 .public-site .podium-crown>span { font-size:5px; letter-spacing:.7px; }
 .public-site .podium-crown .icon { width:25px; height:25px; }
 .public-site .podium-crown { gap:7px; margin-bottom:13px; }
 .public-site .podium-medal { width:22px; height:25px; left:calc(50% - 11px); font-size:10px; }
 .public-site .podium-person h3 { font-size:11px; line-height:1.45; }
 .public-site .podium-origin { font-size:8px; margin:6px 0 18px; min-height:24px; }
 .public-site .podium-plinth { padding:17px 4px 15px; min-height:135px; }
 .public-site .podium-person[data-place="1"] .podium-plinth { min-height:161px; }
 .public-site .podium-person[data-place="3"] .podium-plinth { min-height:119px; }
 .public-site .plinth-label { font-size:5px; letter-spacing:.5px; }
 .public-site .podium-score { font-size:22px; letter-spacing:-.8px; }
 .public-site .podium-person[data-place="1"] .podium-score { font-size:27px; }
 .public-site .podium .donor-score,.public-site .podium-person[data-place="1"] .donor-score { font-size:13px; letter-spacing:-.5px; }
 .public-site .podium-unit { font-size:8px; }
 .public-site .stage-footer { align-items:start; flex-direction:column; padding:17px 4px; font-size:8px; gap:10px; }
 .public-site .stage-footer .text-link { font-size:10px; }
 .public-site .steps-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:25px 20px; }
 .public-site .step p { font-size:11px; }
 .public-site .step h3 { font-size:14px; }
 .public-site .step-top { margin-bottom:18px; }
 .public-site .closing-banner { padding:30px 25px; flex-direction:column; align-items:start; }
 .public-site .closing-banner h2 { font-size:30px; }
 .public-site .public-footer { margin-top:45px; padding-top:40px; }
 .public-site .footer-grid { grid-template-columns:1fr 1fr; gap:32px; padding-bottom:30px; }
 .public-site .footer-grid>div:first-child { grid-column:1/-1; }
 .public-site .footer-bottom { flex-wrap:wrap; font-size:8px; }
 .public-site .page-hero { padding-block:40px; }
 .public-site .page-hero h1 { font-size:38px; position:relative; z-index:1; }
 .public-site .hero-watermark { top:33%; opacity:.4; right:-100px; }
 .public-site .hero-line { font-size:6px; gap:10px; }
 .public-site .event-grid { grid-template-columns:1fr; }
 .public-site .event-cover { min-height:260px; }
 .public-site .cover-title { font-size:39px; }
 .public-site .detail-heading { flex-direction:column; gap:18px; }
 .public-site .detail-heading h1 { font-size:31px; }
 .public-site .detail-stats { gap:15px; font-size:10px; }
 .public-site .event-tabs { gap:20px; justify-content:space-between; }
 .public-site .event-tabs button { font-size:12px; padding-block:20px; }
 .public-site .participant-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
 .public-site .participant-body { padding:13px; }
 .public-site .participant-body h3 { font-size:14px; }
 .public-site .participant-body>p { font-size:9px; }
 .public-site .participant-bottom { font-size:9px; gap:5px; margin-top:14px; padding-top:12px; flex-wrap:wrap; }
 .public-site .participant-action { gap:5px; }
 .public-site .participant-monogram { font-size:70px; }
 .public-site .ranking-row { padding:15px 12px; gap:10px; }
 .public-site .row-rank { width:18px; font-size:17px; }
 .public-site .row-avatar { width:34px; height:34px; font-size:23px; }
 .public-site .row-person h3 { font-size:12px; }
 .public-site .row-person p { font-size:8px; }
 .public-site .row-votes { min-width:40px; }
 .public-site .row-votes strong { font-size:15px; }
 .public-site .row-action { width:32px; height:32px; flex-shrink:0; }
 .public-site .supporter-list .row-votes strong { font-size:12px; }
 .public-site .closed-page h1 { font-size:31px; }
 .public-site .vote-hero h1 { font-size:45px; }
 .public-site .vote-step-strip { gap:15px; font-size:9px; }
 .public-site .vote-page .vote-layout { padding-inline:18px; }
 .public-site .vote-page .vote-layout .p-6 { padding:20px; }
 .public-site .vote-page .fixed .p-8 { padding:24px; }
 .public-site .vote-page .fixed .text-3xl { font-size:24px; }
}
@media(prefers-reduced-motion:reduce) {
 html:has(.public-site) { scroll-behavior:auto; }
 .public-site *, .public-site *::before, .public-site *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}

.public-site .discovery-filters { display:flex; flex-wrap:wrap; align-items:end; gap:20px; margin-bottom:24px; }
.public-site .discovery-filters .field { width:min(100%,380px); }
.public-site .discovery-filters>label { display:flex; align-items:center; gap:10px; min-height:44px; font-size:13px; }
