@font-face{font-family:Inria Sans;src:url('/assets/inria-regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Inria Sans;src:url('/assets/inria-bold.ttf') format('truetype');font-weight:700;font-display:swap}
@font-face{font-family:Cormorant Garamond;src:url('/assets/cormorant-bold.ttf') format('truetype');font-weight:700;font-display:swap}
:root{--pc-green:#58542f;--pc-cream:#fff8f5;--pc-pink:#e4abac;--pc-gold:#c5a26a;--pc-error:#ffced2;--bs-fg-body:var(--pc-cream)}
body{background:var(--pc-green);color:var(--pc-cream);font-family:Inria Sans,Arial,sans-serif;font-size:1.125rem}
a{color:#c7e8ed;text-underline-offset:3px}a:hover{color:#fff}
.participation{padding-top:clamp(100px,15vw,280px)}
.form-shell{max-width:1760px;width:90%;z-index:1;padding:0}
.form-title{font-family:Cormorant Garamond,Georgia,serif;font-weight:700;color:var(--pc-pink);font-size:clamp(44px,5vw,96px);line-height:1.2;margin-bottom:clamp(65px,8vw,138px)}
.form-section{margin:0 0 clamp(45px,5vw,90px);min-width:0}
.section-heading{font-size:clamp(25px,2.5vw,48px);line-height:1.3;margin-bottom:clamp(28px,3vw,54px);padding-left:6%;float:none;width:100%}
.section-heading>span{font-size:1.4em;margin-right:.35em}
.form-label{font-size:clamp(18px,1.875vw,36px);margin-bottom:clamp(12px,1.1vw,20px);color:var(--pc-cream)}
.form-shell .mb-4{margin-bottom:clamp(24px,2.5vw,48px)!important}
.form-control,.form-select{background-color:rgba(255,248,245,.17);border:1.5px solid var(--pc-cream);border-radius:9px;min-height:clamp(48px,4.2vw,79px);color:var(--pc-cream);font-size:inherit;padding:.65rem 1rem}
.form-control:focus,.form-select:focus{background-color:rgba(255,248,245,.22);color:var(--pc-cream);border-color:var(--pc-gold);box-shadow:0 0 0 .25rem rgba(197,162,106,.3)}
.form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23fff8f5' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3E%3C/svg%3E")}
.form-select option{background:var(--pc-green);color:var(--pc-cream)}
.form-control:disabled{background:rgba(255,248,245,.08);opacity:.65}
.required-star{color:var(--pc-gold)}
.campaign-tags{color:#b9e3ed;font-size:clamp(14px,1.5vw,26px);overflow-wrap:anywhere}
#studio-question,.declarations{font-size:clamp(17px,1.5vw,28px)}
.form-check{display:block;min-height:1.5em;padding-left:1.8em}.form-check-input{float:left;width:1em;height:1em;margin-left:-1.8em;margin-top:.25em;background-color:transparent;border:1.5px solid var(--pc-cream);border-radius:0!important;cursor:pointer}
.form-check-input[type=radio]{border-radius:50%!important}
.form-check-input:checked{background-color:#c5a26a;border-color:#c5a26a}
.form-check-input:focus{border-color:var(--pc-gold);box-shadow:0 0 0 .25rem rgba(197,162,106,.35)}
.declarations .form-check{padding-left:2em}.declarations .form-check-input{width:1.3em;height:1.3em;margin-left:-2em;margin-top:.12em}
.upload-slot{background:rgba(255,248,245,.17);border:1.5px dashed var(--pc-cream);border-radius:17px;overflow:hidden}
.upload-label{min-height:clamp(210px,19vw,366px);padding:1.5rem .75rem;cursor:pointer;gap:14px}
.upload-title{font-size:clamp(20px,1.8vw,34px)}
.upload-icon{width:clamp(46px,4.5vw,87px);height:auto;margin:clamp(12px,1.5vw,24px) 0 0}
.upload-input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;z-index:2}
.upload-slot:focus-within{outline:3px solid var(--pc-gold);outline-offset:4px}
.selected-file{max-width:100%;overflow-wrap:anywhere}
.photo-preview{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.18;pointer-events:none}
.upload-label{position:relative;z-index:1}
.upload-help{color:#eee7d5}
.form-control.is-invalid,.form-select.is-invalid,.form-check-input.is-invalid,.upload-invalid{border-color:var(--pc-error)!important;border-width:2px;box-shadow:0 0 0 2px rgba(255,206,210,.14)}
.invalid-feedback,.field-error{color:var(--pc-error);font-size:.95rem;margin-top:.5rem}
.alert a{color:inherit}.alert{font-size:1rem;flex-direction:column;align-items:stretch}
.btn-gold{background:var(--pc-gold);border-color:var(--pc-gold);color:var(--pc-cream);font-size:1rem}.btn-gold:hover,.btn-gold:focus-visible{background:#ad8953;border-color:#ad8953;color:white}.btn-gold:disabled{background:#ad8953;border-color:#ad8953;color:white}
.submit-arrow{width:14px;height:auto}.submit-wrap{margin-top:-1rem}
.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.branch{position:absolute;width:33.28%;aspect-ratio:639/779;top:9.08vw;overflow:hidden;pointer-events:none;z-index:0;transform-origin:0 0}.branch-left{left:33.76%;transform:scaleX(-1) rotate(-15.83deg)}.branch-right{left:66.2%;transform:rotate(-15.83deg)}
.branch>img,.garden-224>img{position:absolute;width:100%;height:100%;max-width:none;left:0;top:0}
.garden{height:clamp(220px,30vw,570px);margin-top:60px;pointer-events:none}
.garden>div{position:absolute;overflow:hidden}.garden img{position:absolute;max-width:none}
.garden-213{width:19.63%;left:27.76%;top:18.6%;aspect-ratio:377/493}.garden-214{width:19.63%;left:59.9%;top:18.6%;aspect-ratio:377/493}.garden-215{width:16.88%;left:-1.41%;top:10.5%;aspect-ratio:324/663}.garden-216{width:16.88%;left:74.38%;top:10.5%;aspect-ratio:324/663;transform:scaleX(-1)}.garden-217{width:23.86%;left:38.75%;top:21.6%;aspect-ratio:458/559}.garden-218{width:17.46%;left:84.69%;top:0;aspect-ratio:335.207/624}.garden-219{width:17.46%;left:20.68%;top:1.9%;aspect-ratio:335.207/624;transform:scaleX(-1)}.garden-220{width:10.73%;left:39.95%;top:12.3%;aspect-ratio:206/565}.garden-221{width:10.73%;left:56.3%;top:14.7%;aspect-ratio:206/565;transform:scaleX(-1)}.garden-222{width:14.95%;left:70.78%;top:7.9%;aspect-ratio:287.05/604}.garden-223{width:14.95%;left:-1.2%;top:1.75%;aspect-ratio:287.05/604}.garden-224{width:33.28%;left:41%;top:31%;aspect-ratio:639/779;transform:scaleX(-1) rotate(-15.83deg);transform-origin:0 0}
.garden-213>img,.garden-214>img,.garden-215>img,.garden-218>img,.garden-220>img,.garden-222>img{width:100%;height:100%;left:0;top:0}
.garden-216>img{width:578.83%;height:104.72%;left:-238%;top:-4.72%}
.garden-217>img{width:329%;height:100.03%;left:-116.57%;top:-.0137%}
.garden-219>img{width:523.08%;height:104.14%;left:-212.31%;top:-.0024%}
.garden-221>img{width:784.39%;height:105.93%;left:-334.93%;top:-5.93%}
.garden-223>img{width:567.76%;height:100%;left:-235.44%;top:0}
.admin-login{max-width:430px}.review-card{background:rgba(255,248,245,.08);border:1px solid rgba(255,248,245,.3)}
.entry-card{background:var(--pc-cream);color:var(--pc-green);overflow:hidden}.entry-photos>img,.entry-photos>a{width:33.333%;min-width:0}.entry-photos img{height:260px;object-fit:cover}.entry-photos a img{width:100%}
@media(min-width:1440px){body{font-size:1.5rem}.declarations .mb-3{margin-bottom:1.5rem!important}}
@media(max-width:767px){.form-shell{width:88%}.participation{padding-top:105px}.section-heading{padding-left:0}.branch{width:45%;opacity:.7;top:55px}.branch-left{left:15%}.branch-right{left:85%}.form-title{margin-bottom:64px}.declarations .form-check{margin-bottom:1.25rem!important}.garden{margin-top:25px}.upload-label{min-height:230px}.entry-photos img{height:190px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}

/* Shared tracks keep participant fields aligned when feedback wraps. */
@media(min-width:768px){.couple-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(3,auto)}.couple-column{display:grid;grid-template-rows:subgrid;grid-row:1/4;width:auto}.couple-column:first-child{grid-column:1}.couple-column:last-child{grid-column:2}}
/* Public voting: only the green contest section from the Figma prototype. */
.voting-section{position:relative;overflow:hidden;min-height:100vh;padding:4.5rem 0 6rem;background:#58542f}
.voting-shell{width:91%;max-width:1760px;position:relative;z-index:1}
.voting-intro{max-width:850px;margin-bottom:6rem}
.voting-intro h1{font:400 clamp(1.15rem,1.5vw,1.75rem)/1.35 'Inria Sans',sans-serif;color:#fff8f5;margin:0 0 .7rem}
.voting-intro p{font-size:clamp(1.1rem,1.5vw,1.75rem);font-weight:700;color:#e4abac}
.voting-filters{max-width:1472px;margin-bottom:5.5rem}
.voting-filters .form-control{min-height:64px;font-size:1.25rem}
.voting-grid{--bs-gutter-x:3.75rem;--bs-gutter-y:3.5rem}
.voting-card{background:#fff8f5;border-radius:34px;overflow:hidden;box-shadow:0 5px 8px #0003;color:#58542f}
.voting-collage{height:clamp(240px,18vw,344px);position:relative;background:#836941;overflow:hidden}
.collage-photo{position:absolute;object-fit:cover;border:12px solid #fff8f5;height:110%;box-shadow:0 5px 8px #0003}
.collage-photo-1{width:46%;left:-9%;top:2%;transform:rotate(-10deg);z-index:1}
.collage-photo-2{width:49%;left:23%;top:-2%;z-index:2}
.collage-photo-3{width:49%;left:65%;top:1%;transform:rotate(4deg);z-index:3}
.voting-card-body{padding:1.05rem 1rem 1.7rem}
.voting-reference{font-size:1.1rem;color:#b45664;margin:0 0 .4rem}
.voting-card h2{font:700 clamp(1.8rem,1.8vw,2rem)/1.15 'Cormorant Garamond',serif;margin:0 0 .5rem}
.voting-count{color:#967632;font-size:1.5rem;margin:0 0 1.1rem}
.voting-button{background:#b45664;color:#fff8f5;font-size:1.35rem;padding:.25rem 2.4rem}.voting-button:hover,.voting-button:focus{background:#943b49;color:white}
.voting-pagination{gap:1.5rem;margin-top:6rem}.voting-pagination a,.voting-pagination span{display:grid;place-items:center;width:65px;height:65px;border:2px solid #fff8f5;border-radius:15px;color:#fff8f5;font-size:2rem;text-decoration:none}.voting-pagination [aria-current]{background:#fff8f5;color:#58542f}
.vote-branch{position:absolute;top:-8vw;width:17vw;height:35vw;min-height:300px;background:url('/assets/voting-branch.png') center/100% 100% no-repeat;pointer-events:none}.vote-branch-left{left:-3%;transform:scaleX(-1)}.vote-branch-right{right:-3%}
.vote-form{max-width:620px}.vote-full-photo{height:420px;object-fit:cover}.field-error{color:#ffbfc6;font-size:1rem;margin-top:.4rem;min-height:1.3em}.vote-status{font-weight:bold;color:#fff8f5}
@media(max-width:767px){.voting-section{padding-top:3rem}.voting-intro{margin-bottom:3rem}.voting-filters{margin-bottom:3rem}.voting-collage{height:320px}.voting-pagination{margin-top:3rem;gap:.7rem}.voting-pagination a,.voting-pagination span{width:48px;height:48px}.vote-full-photo{height:auto}}

.voting-filters input::placeholder{color:#fff8f5;opacity:1}.voting-filters select option{background:#58542f;color:#fff8f5}
.vote-bottom{position:absolute;bottom:-14rem;width:19%;height:40vw;overflow:hidden;pointer-events:none;transform:rotate(27deg);opacity:.85}.vote-bottom-left{left:-9%}.vote-bottom-right{right:-9%;transform:scaleX(-1) rotate(27deg)}.vote-bottom img{position:absolute;width:523.08%;height:104.14%;max-width:none;left:-212.31%;top:0}
.vote-form .form-control.is-invalid{border-color:#ffbfc6;box-shadow:0 0 0 2px #ffbfc633}
@media(max-width:767px){.vote-branch{width:45%;height:70vw;min-height:0;top:-14vw;opacity:.65}.vote-branch-left{left:-28%}.vote-branch-right{right:-28%}.vote-bottom{display:none}}
.admin-dashboard .form-title{font-size:clamp(36px,4vw,64px)}
.admin-entry-table{--bs-table-color:#fff8f5;--bs-table-bg:transparent;color:#fff8f5;font-size:1rem;min-width:720px}
.admin-entry-table th,.admin-entry-table td{padding:.85rem 1rem;border-bottom:1px solid #fff8f540;color:#fff8f5;background:transparent}
.admin-entry-table thead th{background:#fff8f515;font-weight:700;white-space:nowrap}
.admin-entry-table .entry-detail[hidden]{display:none}
.admin-entry-table .entry-detail td{padding:0 0 1rem;border-bottom:0}
.admin-entry-table .entry-summary th{font-weight:400}.admin-entry-table .entry-status{font-size:.9rem}
.admin-entry-table .btn{font-size:1rem}.admin-entry-table .entry-toggle{white-space:nowrap}
.admin-dashboard .btn-outline{color:#fff8f5;border-color:#fff8f580}.admin-dashboard .btn-outline:hover{background:#fff8f51a}
.compact-review{font-size:.9rem;line-height:1.4}.compact-review p{margin-bottom:.5rem}.compact-review .entry-photos{gap:.35rem}.compact-review .entry-photos a{flex:1;min-width:0}.compact-review .entry-photos img{height:150px;width:100%;object-fit:cover}.admin-entry-table .compact-review .btn{font-size:.875rem;padding:.35rem .7rem}
/* Vote preview follows the three-photo composition and couple card. */
.vote-fancybox .fancybox__backdrop{background:radial-gradient(ellipse at center,#c5a26a55,#000d);backdrop-filter:blur(8px)}
.vote-fancybox .fancybox__content{background:transparent;padding:0;width:min(1200px,94vw);color:#58542f;overflow:visible}
.vote-fancybox .f-button.is-close-btn{color:white;top:0;right:0}
.vote-popup{padding:1rem 2rem 2.5rem;max-width:1200px;margin:auto;width:100%}
.vote-popup-photos{position:relative;height:min(59vh,580px);min-height:240px;width:100%;margin-bottom:1rem;display:flex;align-items:flex-start;justify-content:center}
.vote-popup-photo{object-fit:cover;border-radius:20px;box-shadow:-5px 4px 45px #fff8f538;width:32%;height:91%;position:absolute;top:8%;max-width:none}
.vote-popup-photo-1{left:4%;transform:rotate(-6.86deg);object-position:50% 50%}
.vote-popup-photo-2{left:34%;top:0;height:98%;z-index:2}
.vote-popup-photo-3{right:3%;transform:rotate(5.29deg);object-position:50% 85%}
.vote-popup-card{position:relative;background:white;border-radius:34px;box-shadow:0 -4px 11px #0004;width:min(500px,90%);padding:1rem 1.5rem;color:#58542f;z-index:3}
.vote-popup-reference{color:#b45664;margin:0 0 .15rem;font-size:1.1rem;overflow-wrap:anywhere}
.vote-popup-card h1{font:700 clamp(28px,3.2vw,54px)/1.1 'Cormorant Garamond',serif;text-transform:uppercase;margin:0 0 .3rem;overflow-wrap:anywhere}
.vote-popup-count{font-size:1.2rem;color:#e4abac;margin:0 0 .5rem}.vote-popup-count-wrap{position:relative}
.vote-verification summary{list-style:none;display:inline-block;cursor:pointer;font-size:1.4rem;padding:.15rem 2.4rem}.vote-verification summary::-webkit-details-marker{display:none}
.vote-verification-panel{text-align:left;padding-top:1.2rem;color:#58542f;font-size:1rem}
.vote-verification-panel .form-label{color:#58542f;font-size:1rem;margin-bottom:.35rem}
.vote-verification-panel .form-control{background:#58542f0a;color:#58542f;border-color:#85815d;min-height:44px;font-size:1rem}
.vote-verification-panel .field-error{color:#a02e40;min-height:0;margin-bottom:.5rem}
.vote-verification-panel p{margin-bottom:.65rem}.vote-verification-panel .btn-gold{font-size:1rem}
.vote-verification-panel h2{font-family:'Inria Sans',sans-serif}.vote-verification-panel .vote-status{color:#58542f}
.vote-success-message{color:#58542f;font-size:1rem}.vote-plus-one{position:absolute;left:calc(50% + 3.5rem);top:0;color:#b45664;font-weight:700;font-size:2.5rem;pointer-events:none;opacity:0}
.vote-plus-one.is-animating{animation:vote-plus-one 1.8s cubic-bezier(.2,.75,.3,1) forwards}
@keyframes vote-plus-one{0%{opacity:0;transform:translateY(12px) scale(.65)}20%{opacity:1;transform:translateY(-15px) scale(1.15)}55%{opacity:1;transform:translateY(-35px) scale(1)}100%{opacity:0;transform:translateY(-90px) scale(1)}}
.standalone-vote .vote-popup{padding-top:2rem}
@media(max-width:767px){.vote-popup{padding:1.5rem 0 1rem}.vote-popup-photos{height:36vh;min-height:230px}.vote-popup-photo{border-radius:10px;width:34%}.vote-popup-photo-1{left:1%}.vote-popup-photo-2{left:33%}.vote-popup-photo-3{right:0}.vote-popup-card{width:94%;padding:1rem;border-radius:24px}.vote-popup-card h1{font-size:30px}.vote-fancybox .fancybox__content{width:94vw}}
@media(prefers-reduced-motion:reduce){.vote-plus-one.is-animating{animation:none;opacity:1;position:static;display:inline-block;font-size:1.5rem}}

.vote-fancybox .vote-popup.f-html{background:transparent;padding:1rem 2rem 2.5rem;width:min(1200px,94vw);color:#58542f;max-height:none;overflow:visible}
@media(max-width:767px){.vote-fancybox .vote-popup.f-html{padding:1.5rem 0 1rem;width:94vw}}
.verification-fancybox .fancybox__backdrop{background:#0007;backdrop-filter:blur(2px)}
.verification-fancybox .vote-verification-modal.f-html{width:min(480px,92vw);max-height:85vh;overflow:auto;background:white;border-radius:24px;padding:1.5rem;color:#58542f;box-shadow:0 12px 50px #0006}
.verification-fancybox .vote-verification-panel{padding-top:0}.verification-fancybox .f-button.is-close-btn{color:#58542f;top:.3rem;right:.3rem}
.verification-fancybox .vote-form h2{padding-right:1.5rem}.verification-fancybox .vote-form .btn{width:100%}

.vote-popup-full-image{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit}.vote-photo-full{cursor:zoom-in}.vote-popup-photo-3 .vote-popup-full-image{object-position:50% 85%}
