@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@400;500;600&display=swap');
:root{--bg:#faf8f4;--ink:#344a55;--muted:#6e7779;--blue:#668da7;--gold:#e7c96d;--line:#e8e5df}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.75 'DM Sans',sans-serif}a{color:inherit}header{background:rgba(250,248,244,.97);position:sticky;top:0;z-index:5;border-bottom:1px solid var(--line)}.nav{max-width:1140px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:22px;padding:15px 28px}.logo{font:600 30px 'Playfair Display',serif;text-decoration:none;white-space:nowrap}.logo span{color:var(--blue)}nav{display:flex;gap:22px;align-items:center;flex-wrap:wrap}nav a{text-decoration:none;font-size:13px;font-weight:600}nav a:hover{color:var(--blue)}.pill,.btn{display:inline-block;background:var(--blue);color:white!important;padding:12px 24px;border-radius:100px;text-decoration:none;font-size:13px;font-weight:700;letter-spacing:.02em}.pill{padding:9px 19px}.btn.alt{background:transparent;color:var(--ink)!important;border:1px solid #c5cdd0}.wrap{max-width:1100px;margin:auto;padding:0 28px}.hero{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;padding:76px 0 65px}.hero img{width:100%;height:560px;object-fit:cover;border-radius:260px 260px 12px 12px}.eyebrow{text-transform:uppercase;letter-spacing:.18em;color:var(--blue);font-weight:700;font-size:12px}h1,h2,h3{font-family:'Playfair Display',serif;line-height:1.2;font-weight:500}h1{font-size:clamp(46px,6vw,78px);margin:16px 0 20px}h2{font-size:clamp(34px,4vw,52px);margin:12px 0 20px}h3{font-size:26px}p{color:#5d696e} .lead{font-size:19px;line-height:1.75}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:27px}.section{padding:75px 0;border-top:1px solid var(--line)}.center{text-align:center;max-width:760px;margin:0 auto}.split{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.photo{width:100%;border-radius:14px;object-fit:cover;max-height:620px}.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:35px}.tile{background:#fff;border:1px solid var(--line);border-radius:16px;padding:28px}.tile h3{margin:0 0 8px}.quote{background:#edf1f0;border-radius:18px;padding:50px;max-width:850px;margin:30px auto;font:italic 28px/1.55 'Playfair Display',serif}.quote small{display:block;font:600 13px 'DM Sans',sans-serif;margin-top:22px;color:#67777d}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:35px 0}.gallery img{width:100%;height:340px;object-fit:cover;border-radius:12px}.callout{background:#eaf0f3;text-align:center;padding:64px 30px;border-radius:20px;margin:50px 0 80px}.callout h2{margin-top:0}footer{border-top:1px solid var(--line);padding:35px 20px;text-align:center;color:var(--muted);font-size:13px}footer a{margin:0 10px} .wide{max-width:790px;margin:auto}.wide p{margin:18px 0}.page-head{text-align:center;padding:80px 0 40px}.page-head h1{font-size:clamp(45px,6vw,70px)}.mini{color:var(--muted);font-size:13px}.ribbon{height:5px;background:linear-gradient(90deg,var(--blue) 50%,var(--gold) 50%)}@media(max-width:760px){.nav{padding:12px 16px;flex-direction:column;gap:8px}.logo{font-size:26px}nav{gap:13px;justify-content:center}nav a{font-size:12px}.nav .pill{padding:6px 12px}.wrap{padding:0 20px}.hero,.split{grid-template-columns:1fr;gap:28px}.hero{padding:40px 0}.hero img{height:410px;order:-1}.section{padding:52px 0}.tiles,.gallery{grid-template-columns:1fr}.gallery img{height:370px}.quote{padding:28px;font-size:22px}.page-head{padding:55px 0 25px}}
.family-feature{grid-template-columns:1.18fr 1fr}.family-feature .photo{max-height:none;height:auto;object-fit:contain;object-position:center}.family-feature p{max-width:520px}@media(max-width:760px){.family-feature{grid-template-columns:1fr}.family-feature .photo{width:100%;height:auto}}
:focus-visible{outline:3px solid #345c7a;outline-offset:4px}img{display:block}a:hover{text-decoration-thickness:2px}

/* Mobile-first usability improvements */
.menu-toggle{display:none}.mobile-vote{display:none}img{max-width:100%} .btn,.pill{transition:background .2s ease,transform .2s ease}.btn:hover,.pill:hover{background:#4c728b}.btn:active,.pill:active{transform:scale(.98)}
@media(max-width:760px){
 body{font-size:16px;line-height:1.65;padding-bottom:calc(78px + env(safe-area-inset-bottom))}header{top:0}.nav{flex-direction:row;min-height:62px;padding:9px 18px;gap:12px;position:relative}.logo{font-size:27px}.menu-toggle{display:flex;width:44px;height:44px;flex-direction:column;justify-content:center;align-items:center;gap:5px;border:1px solid var(--line);border-radius:12px;background:white;cursor:pointer}.menu-toggle span{display:block;width:19px;height:2px;background:var(--ink);border-radius:2px}nav#primary-nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--bg);border-bottom:1px solid var(--line);padding:14px 18px 20px;box-shadow:0 12px 18px #344a5512;flex-direction:column;align-items:stretch;gap:2px}nav#primary-nav.is-open{display:flex}nav#primary-nav a{display:block;font-size:16px;padding:11px 14px;border-radius:10px}nav#primary-nav .pill{text-align:center;margin-top:8px;padding:12px 16px} .wrap{padding:0 20px}.hero{display:flex;flex-direction:column;gap:22px;padding:18px 0 42px}.hero>img{order:-1;width:100%;height:auto;aspect-ratio:4/4.4;object-fit:cover;object-position:center 42%;border-radius:190px 190px 12px 12px}.hero h1{font-size:clamp(43px,12vw,60px);margin:8px 0 12px}.hero .lead{font-size:19px;line-height:1.5}.hero p{margin:12px 0}.eyebrow{font-size:11px;letter-spacing:.12em}.actions{gap:10px;margin-top:18px}.actions .btn{width:100%;text-align:center;padding:14px 16px;font-size:15px;min-height:48px}.section{padding:43px 0}.split{gap:22px}h2{font-size:clamp(32px,9vw,43px)}h3{font-size:24px}.gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:22px 0}.gallery img{height:auto;aspect-ratio:3/4;object-fit:cover;border-radius:10px}.gallery img:first-child{grid-column:span 2;aspect-ratio:4/3}.tile{padding:20px}.quote{font-size:21px;padding:25px}.callout{padding:34px 20px;margin:28px 0 45px}.page-head{padding:34px 0 22px}.page-head h1{font-size:clamp(39px,10vw,54px)}.mobile-vote{position:fixed;bottom:0;left:0;right:0;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 16px calc(11px + env(safe-area-inset-bottom));background:rgba(250,248,244,.98);border-top:1px solid var(--line);box-shadow:0 -5px 24px #344a5512}.mobile-vote span{display:flex;flex-direction:column;line-height:1.3}.mobile-vote strong{font-size:13px}.mobile-vote small{font-size:11px;color:var(--muted);margin-top:3px}.mobile-vote a{background:var(--blue);color:white;text-decoration:none;border-radius:100px;padding:13px 18px;font-weight:700;font-size:14px;white-space:nowrap;min-height:44px;display:flex;align-items:center}footer{padding:26px 18px}footer a{display:inline-block;padding:7px 2px}.family-feature .photo{object-fit:contain;aspect-ratio:auto} }
@media(max-width:370px){.mobile-vote small{display:none}.mobile-vote a{padding:12px 14px}.wrap{padding:0 16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn,.pill{transition:none}}

/* Meet Olli: semifinal support section */
.support-section{padding:70px 0 90px;border-top:1px solid var(--line)}.support-intro{text-align:center;max-width:760px;margin:0 auto 30px}.support-intro h2{margin:10px 0 18px}.support-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.support-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px;display:flex;flex-direction:column;align-items:flex-start}.support-card.primary{background:#eaf0f3;border-color:#d7e3e9}.support-number{font-size:11px;letter-spacing:.11em;text-transform:uppercase;color:#557a94;font-weight:700}.support-card h3{font-size:25px;margin:13px 0 7px}.support-card p{font-size:14px;line-height:1.7;flex:1}.support-card .btn{margin-top:12px;text-align:center}.text-link{color:#406a84;font-weight:700;font-size:14px;text-underline-offset:4px}.support-links{display:flex;flex-direction:column;align-items:flex-start;gap:14px}.share-button{border:0;border-radius:100px;background:var(--blue);color:#fff;padding:13px 20px;font:700 14px 'DM Sans',sans-serif;cursor:pointer;min-height:44px}.share-feedback{font-size:12px;color:#416a50}.support-note{text-align:center;margin:26px auto 0;max-width:670px;font-size:14px}@media(max-width:760px){.support-section{padding:48px 0 58px}.support-grid{grid-template-columns:1fr;gap:13px}.support-card{padding:23px}.support-card h3{font-size:25px}.support-card .btn,.share-button{width:100%;text-align:center}.support-intro{margin-bottom:23px}}

.contest-vision{margin:28px auto 0;max-width:790px;padding:30px 34px;background:#f0f3f2;border-radius:18px;text-align:center}.contest-vision h3{margin:8px 0 12px}.contest-vision p{margin:10px auto;max-width:660px}@media(max-width:760px){.contest-vision{padding:26px 20px;margin-top:22px}.contest-vision h3{font-size:25px}}

/* Homepage rhythm and storytelling hierarchy */
.contest-vision{margin-bottom:36px}
.name-meaning{max-width:680px;margin:30px auto 34px;padding:25px 28px;border-radius:16px;background:#f0f3f2}
.name-meaning h3{margin:0 0 10px}
.name-meaning p{margin:0}
.section .center > .eyebrow{margin-top:4px}
.section .center > .eyebrow + p{max-width:680px;margin:13px auto 0}
@media(max-width:760px){.contest-vision{margin-bottom:28px}.name-meaning{margin:24px auto 28px;padding:22px 18px}.name-meaning h3{font-size:24px}.section .center > h2{margin-bottom:12px}}

/* Final mobile polish: consistent spacing, readable cards, and touch targets */
html{-webkit-text-size-adjust:100%}body{overflow-wrap:break-word}main{min-width:0}button,a{-webkit-tap-highlight-color:transparent}button{font-family:inherit}.support-grid>*{min-width:0}.contest-vision{margin-bottom:42px}.name-meaning{margin-top:34px;margin-bottom:38px}.support-card .btn{max-width:100%}.support-card p{overflow-wrap:anywhere}.share-button:hover{background:#4c728b}nav a:focus-visible,.menu-toggle:focus-visible,.share-button:focus-visible{outline:3px solid #345c7a;outline-offset:3px}
@media(max-width:760px){.hero>img{aspect-ratio:5/4.4;object-position:center 42%}.hero{gap:24px}.support-section{padding-top:45px}.contest-vision{margin-bottom:32px}.support-card{padding:22px 20px}.support-card p{font-size:15px;line-height:1.65}.support-note{margin-top:22px}.name-meaning{margin:26px auto 32px}.gallery{margin-top:28px}.mobile-vote{padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}nav#primary-nav a{min-height:44px;display:flex;align-items:center}nav#primary-nav .pill{justify-content:center}.section.split .photo{width:100%}}
@media(max-width:350px){.mobile-vote strong{font-size:12px}.mobile-vote a{font-size:13px}.support-card{padding:19px 17px}.hero h1{font-size:42px}}
