:root{--bg:#080a09;--fg:#f5f2e9;--muted:#a9a59c;--line:rgba(255,255,255,.16);--paper:#f1ede4;--ink:#10110f;--glass:rgba(7,9,8,.54);--font-primary:Arial,Helvetica,sans-serif;--font-secondary:Georgia,'Times New Roman',serif}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font-primary)}a{color:inherit}.home-page{height:100vh;overflow:hidden;overscroll-behavior:none}.mosaic-stage{position:fixed;inset:0;z-index:0;background:#0d100e;touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab}.mosaic-stage canvas{width:100%;height:100%;display:block;cursor:grab;touch-action:none;-webkit-user-drag:none}.mosaic-stage canvas.is-dragging{cursor:grabbing}.mosaic-vignette{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 45%,transparent 10%,rgba(0,0,0,.08) 55%,rgba(0,0,0,.54) 100%),linear-gradient(180deg,rgba(0,0,0,.38),transparent 28%,transparent 64%,rgba(0,0,0,.52));z-index:1}.home-topbar{position:fixed;z-index:10;left:0;right:0;top:0;height:76px;padding:0 clamp(20px,4vw,62px);display:flex;align-items:center;justify-content:space-between;background:linear-gradient(180deg,rgba(0,0,0,.62),transparent);text-shadow:0 2px 18px rgba(0,0,0,.8)}.home-brand{text-decoration:none;font-size:14px;font-weight:900;letter-spacing:.095em;white-space:nowrap}.home-nav{display:flex;align-items:center;gap:18px}.ghost-link{border:0;background:none;text-decoration:none;color:rgba(255,255,255,.82);font-size:10px;font-weight:900;letter-spacing:.16em;padding:8px 0;cursor:pointer}.ghost-link:hover{color:#fff}.language-control select{appearance:none;border:1px solid rgba(255,255,255,.2);background:rgba(8,10,9,.54);color:#fff;padding:7px 26px 7px 9px;font-size:9px;font-weight:800;outline:none}.home-hero{position:fixed;z-index:3;inset:0;display:flex;align-items:center;justify-content:center;padding:92px 18px 150px;pointer-events:none}.home-page.exploring .hero-panel{opacity:0;visibility:hidden}.hero-panel{text-align:center;width:min(980px,94vw);text-shadow:0 3px 28px #000,0 1px 4px #000;transition:opacity .25s;display:flex;flex-direction:column;align-items:center;gap:clamp(15px,2.1vh,24px)}.home-eyebrow{font-size:9px;font-weight:900;letter-spacing:.24em;color:rgba(255,255,255,.64);margin:0}.home-eyebrow.dark{color:#716d65}.hero-panel h1{margin:0;text-transform:none;line-height:.94;letter-spacing:-.052em;font-family:var(--font-primary)}.hero-panel h1 span{display:block;font-size:clamp(42px,6.5vw,94px);font-weight:900}.river-line{font-family:var(--font-secondary);font-style:italic;font-size:clamp(18px,2vw,27px);margin:0}.reveal-line{font-family:var(--font-secondary);font-size:clamp(12px,1.15vw,16px);line-height:1.5;letter-spacing:.02em;color:rgba(255,255,255,.84);margin:0;max-width:680px}.flow-button{pointer-events:auto;display:inline-flex;align-items:center;justify-content:center;min-width:280px;border:1px solid rgba(255,255,255,.72);background:rgba(255,255,255,.94);color:#0b0c0b;padding:16px 24px;font-size:10px;font-weight:900;letter-spacing:.16em;cursor:pointer;box-shadow:0 12px 40px rgba(0,0,0,.28);transition:transform .18s,background .18s}.flow-button:hover{transform:translateY(-2px);background:#fff}.flow-button:disabled{opacity:.55;cursor:not-allowed;transform:none}.dark-button{background:#10110f;color:#fff;border-color:#10110f;width:100%}.dark-button:hover,.dark-button:focus-visible{background:#292c28;color:#fff;border-color:#292c28}.dark-button:focus-visible{outline:2px solid #6f746d;outline-offset:2px}.viewer-controls{position:fixed;z-index:9;left:22px;bottom:24px;display:flex;background:rgba(5,7,6,.58);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(14px)}.viewer-controls button{width:38px;height:36px;border:0;border-right:1px solid rgba(255,255,255,.12);background:transparent;color:#fff;font-size:16px;cursor:pointer}.viewer-controls button:last-child{border-right:0}.viewer-controls button:hover{background:rgba(255,255,255,.1)}.viewer-hint{position:fixed;z-index:8;left:22px;bottom:70px;font-size:8px;letter-spacing:.08em;color:rgba(255,255,255,.48);text-shadow:0 1px 6px #000}.bottom-progress{position:fixed;z-index:9;left:50%;transform:translateX(-50%);bottom:22px;width:min(410px,calc(100vw - 48px));background:rgba(5,7,6,.58);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(14px);padding:9px 13px 10px}.bottom-progress-line{height:2px;background:rgba(255,255,255,.16);overflow:hidden;margin-bottom:7px}.bottom-progress-line i{display:block;height:100%;min-width:1px;background:#fff}.bottom-progress-copy{display:flex;justify-content:space-between;align-items:baseline;font-size:10px;letter-spacing:.08em}.bottom-progress-copy strong{font-size:13px}.bottom-progress-copy small{font-size:7px;letter-spacing:.19em;color:rgba(255,255,255,.56)}.home-footer{position:fixed;z-index:9;bottom:29px;right:clamp(18px,3vw,48px);display:flex;gap:14px;font-size:9px;color:rgba(255,255,255,.56)}.home-footer a{text-decoration:none;white-space:nowrap}.home-footer a:hover{color:#fff}.focus-card{position:fixed;z-index:12;left:50%;bottom:86px;transform:translate(-50%,18px);width:min(440px,calc(100vw - 28px));background:rgba(10,12,11,.88);border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(18px);padding:12px;display:grid;grid-template-columns:76px 1fr;gap:14px;opacity:0;visibility:hidden;transition:.28s;box-shadow:0 20px 70px rgba(0,0,0,.4)}.focus-card.open{opacity:1;visibility:visible;transform:translate(-50%,0)}.focus-thumb-wrap{width:76px;height:76px;background:#171a18;border:1px solid rgba(255,255,255,.15)}.focus-thumb-wrap img{width:100%;height:100%;object-fit:cover;display:none}.focus-copy{min-width:0;display:flex;flex-direction:column;justify-content:center}.focus-copy strong{font-size:22px;letter-spacing:-.03em}.focus-copy span{font-size:12px;font-weight:800;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.focus-copy small{font-size:9px;color:#aaa59a;letter-spacing:.12em;margin-top:5px}.focus-copy p{font-size:10px;color:#aaa59a;margin:7px 0 0}.focus-close{position:absolute;right:5px;top:3px;border:0;background:none;color:#fff;font-size:20px;cursor:pointer}.project-drawer,.search-drawer{position:fixed;z-index:20;inset:0;background:rgba(0,0,0,.68);display:flex;justify-content:flex-end;opacity:0;visibility:hidden;transition:.25s}.project-drawer.open,.search-drawer.open{opacity:1;visibility:visible}.drawer-copy,.search-panel{width:min(620px,100%);height:100%;overflow:auto;background:rgba(13,16,14,.98);border-left:1px solid var(--line);padding:110px clamp(30px,6vw,78px) 60px}.drawer-copy h2,.search-panel h2{font-size:clamp(38px,5vw,70px);line-height:.95;letter-spacing:-.055em;margin:0 0 40px}.drawer-copy p{font-family:var(--font-secondary);font-size:17px;line-height:1.7;color:#cfcbc1}.drawer-close{position:absolute;z-index:2;right:28px;top:22px;border:0;background:none;color:#fff;font-size:35px;cursor:pointer}.mosaic-search-form label{display:block;font-size:10px;font-weight:900;letter-spacing:.12em;color:#aaa59a;margin:0 0 12px}.mosaic-search-form input{display:block;width:100%;margin-top:8px;border:1px solid #393b37;background:#0a0c0b;color:#fff;padding:15px 14px;font-size:18px;outline:none}.mosaic-search-form input:focus{border-color:#d9d4ca}.mosaic-search-form button{width:100%;margin-top:6px;border:0;background:#f3efe6;color:#111;padding:15px;font-size:10px;font-weight:900;letter-spacing:.15em;cursor:pointer}.coord-form{display:grid;grid-template-columns:1fr 1fr;gap:12px}.coord-form button{grid-column:1/-1}.search-or{display:flex;align-items:center;gap:12px;margin:26px 0;color:#77746d}.search-or span{height:1px;background:#353732;flex:1}.search-or em{font-size:8px;font-style:normal;letter-spacing:.18em}.search-status{font-size:12px;color:#d2ccc0;min-height:18px}.modal{position:fixed;inset:0;background:rgba(0,0,0,.8);display:none;align-items:center;justify-content:center;padding:20px;z-index:30}.modal.open{display:flex}.modal-card{background:var(--paper);color:var(--ink);width:min(630px,100%);max-height:92vh;overflow:auto;padding:36px;position:relative;box-shadow:0 30px 100px rgba(0,0,0,.55)}.modal-x{position:absolute;right:16px;top:10px;border:0;background:none;font-size:30px;cursor:pointer}.joined-number{font-size:clamp(54px,10vw,84px);font-weight:900;letter-spacing:-.07em;line-height:.9}.participation-card h2{font-size:28px;margin:20px 0 8px}.participation-card>p{line-height:1.55;color:#59564f}.coordinate-strip{display:flex;align-items:center;gap:14px;margin:20px 0 8px;padding:11px 12px;border:1px solid #c7c0b3;background:#e7e1d6}.coordinate-strip span{font-size:10px;letter-spacing:.12em;color:#6a655c}.coordinate-strip strong{display:block;font-size:20px;color:#111;letter-spacing:0;margin-top:2px}.modal-card label{display:block;font-size:10px;font-weight:900;margin:15px 0;letter-spacing:.05em}.modal-card input[type=email],.modal-card input[type=text]{display:block;width:100%;margin-top:7px;border:1px solid #bbb3a5;background:#fff;padding:13px;font-size:16px}.photo-upload-label small{display:block;margin-top:7px;color:#716d65;font-weight:400;line-height:1.45}.photo-drop{position:relative;display:block;width:170px;height:170px;margin-top:9px;border:1px dashed #8f887c;background:#ded8cd;overflow:hidden;cursor:pointer}.photo-drop input{position:absolute;inset:0;opacity:0;cursor:pointer;z-index:3}.photo-drop img{width:100%;height:100%;object-fit:cover;display:none}.photo-drop img.visible{display:block}.photo-drop>span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:44px;font-weight:300;color:#7d776c}.photo-drop>span.hidden{display:none}.check{display:flex!important;align-items:flex-start;gap:8px;font-size:10px!important;font-weight:600!important;line-height:1.4}.check input{margin-top:2px}.rights-check{padding:10px;border:1px solid #c8c0b4;background:#e9e3d8}.form-msg{font-size:12px;line-height:1.5}.form-msg a{color:#111}.topbar{min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 4vw;border-bottom:1px solid #302f2b;background:rgba(11,11,11,.96);position:sticky;top:0;z-index:60;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 8px 26px rgba(0,0,0,.16)}.topbar-actions{display:flex;align-items:center;gap:18px}.brand,.navlink{text-decoration:none;font-weight:800;letter-spacing:.08em}.brand{white-space:nowrap}.navlink{font-size:11px;color:#b0aa9e}.eyebrow{font-size:11px;letter-spacing:.22em;color:#989287;font-weight:800}.participants-shell,.text-page{padding:7vh 5vw;max-width:1450px;margin:auto}.participants-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:30px;align-items:end;margin-bottom:34px}.participants-head h1,.text-page h1{font-size:clamp(52px,8vw,118px);letter-spacing:-.07em;margin:.15em 0}.participants-head p{font-family:var(--font-secondary);color:#989287;max-width:720px}.participants-total{text-align:right;font-size:clamp(34px,5vw,72px);font-weight:900;letter-spacing:-.05em;line-height:.9}.participants-total small{display:block;font-size:9px;letter-spacing:.18em;color:#8d887f;margin-top:10px}.wall-search{display:flex;max-width:680px;margin:26px 0 32px}.wall-search input{flex:1;min-width:0;background:#131311;color:#f1ede3;border:1px solid #302f2b;padding:15px}.wall-search button{border:0;padding:0 22px;font-weight:800}.participants-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1px;background:#302f2b;border:1px solid #302f2b}.participant-card{background:#0d0e0d;min-width:0;text-decoration:none;transition:background .18s}.participant-card:hover{background:#151715}.participant-photo{aspect-ratio:1/1;background:#171917;overflow:hidden}.participant-photo img{width:100%;height:100%;display:block;object-fit:cover}.participant-meta{padding:11px 12px 13px;display:flex;flex-direction:column;min-height:92px}.participant-meta strong{font-size:18px}.participant-meta .participant-name{font-size:11px;font-weight:800;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.participant-meta small{font-size:8px;color:#8f897f;margin-top:4px}.participant-meta .coords{color:#c4beb3;letter-spacing:.1em}.pager{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;margin:30px 0}.pager-side{display:flex;gap:14px}.pager-side:last-child{justify-content:flex-end}.pager a{text-decoration:none;font-size:11px;font-weight:800;color:#c7c1b7}.page-state{font-size:10px;letter-spacing:.13em;color:#8f897f}.empty{color:#8f897f;padding:30px 0}.text-page{max-width:930px}.text-page h1{font-size:clamp(48px,7vw,95px)}.text-page h2{margin-top:50px}.text-page p{font-family:var(--font-secondary);font-size:18px;line-height:1.7;color:#c4beb3}.certificate-page{background:#d9d3c7;color:#111;min-height:100vh;padding:40px}.certificate{max-width:900px;min-height:650px;margin:auto;border:2px solid #111;padding:58px;text-align:center;background:#ede7dc;display:flex;flex-direction:column;justify-content:center}.certificate-kicker{font-size:11px;letter-spacing:.28em}.certificate-number{font-size:100px;font-weight:900;letter-spacing:-.08em;margin:26px 0 0}.certificate h1{text-transform:uppercase;letter-spacing:.1em}.certificate-name{font-size:26px;font-weight:900}.certificate p{font-family:var(--font-secondary);max-width:650px;margin:12px auto;line-height:1.55}.certificate-note{font-size:11px;color:#5e5a53}.certificate-date{margin-top:32px;font-weight:800}.certificate-coordinate{display:flex;justify-content:center;align-items:center;gap:24px;margin:28px auto 10px}.certificate-coordinate .xy{display:flex;gap:12px}.certificate-coordinate .xy span{border:1px solid #111;padding:13px 16px;font-size:11px;letter-spacing:.12em}.certificate-coordinate .xy strong{display:block;font-size:22px;letter-spacing:0;margin-top:3px}.certificate-photo{width:132px;height:132px;object-fit:cover;border:2px solid #111}.print-button{display:block;margin:20px auto;background:#111;color:#fff;border:0;padding:13px 20px;cursor:pointer}
@media(max-width:1200px){.participants-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.home-footer{bottom:75px;right:20px}.viewer-controls{bottom:72px}.viewer-hint{display:none}}
@media(max-width:950px){.participants-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.drawer-copy,.search-panel{width:100%}.participants-head{grid-template-columns:1fr}.participants-total{text-align:left}.home-footer{left:50%;right:auto;transform:translateX(-50%);width:max-content;max-width:94vw;justify-content:center}.viewer-controls{left:16px}.home-hero{padding-bottom:170px}}
@media(max-width:700px){.home-topbar{height:auto;min-height:66px;padding:12px 16px;align-items:flex-start}.home-brand{font-size:10px;margin-top:9px}.home-nav{gap:10px;max-width:68vw;flex-wrap:wrap;justify-content:flex-end}.ghost-link{font-size:7px}.language-control select{max-width:82px;font-size:8px;padding:6px 20px 6px 7px}.hero-panel{gap:14px}.hero-panel h1 span{font-size:clamp(35px,10.5vw,66px);line-height:1}.river-line{font-size:18px}.reveal-line{font-size:10px}.flow-button{min-width:min(300px,88vw)}.bottom-progress{bottom:14px;width:calc(100vw - 28px)}.home-footer{bottom:58px;font-size:7px;gap:9px;flex-wrap:wrap;width:calc(100vw - 24px)}.viewer-controls{left:14px;bottom:103px}.focus-card{bottom:106px}.modal-card{padding:30px 20px}.photo-drop{width:145px;height:145px}.participants-shell,.text-page{padding:42px 18px}.participants-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.wall-search button{padding:0 14px}.pager{grid-template-columns:1fr;gap:14px}.pager-side,.pager-side:last-child{justify-content:center}.page-state{order:-1}.topbar{padding:14px 18px}.brand{font-size:11px}.certificate-page{padding:12px}.certificate{padding:30px 18px;min-height:90vh}.certificate-number{font-size:20vw}.certificate-coordinate{flex-direction:column}.viewer-hint{display:none}}
@media(max-width:480px){.participants-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.participant-meta{min-height:84px}.home-brand{max-width:120px;white-space:normal;line-height:1.1}.topbar{flex-direction:column;align-items:stretch}.topbar-actions{justify-content:space-between}.focus-card{grid-template-columns:62px 1fr}.focus-thumb-wrap{width:62px;height:62px}.drawer-copy,.search-panel{padding:92px 22px 42px}.coord-form{gap:8px}}
@media print{.print-button{display:none}.certificate-page{padding:0}.certificate{min-height:100vh;border:0}}
/* v1.7 moderation / terms */
.terms-card h2{font-size:32px;margin:12px 0}.terms-card>p{line-height:1.6;color:#59564f}.terms-card .rights-check a{color:#111;font-weight:900}.terms-actions{display:grid;grid-template-columns:1fr 2fr;gap:10px;margin-top:18px}.ghost-dark{border:1px solid #aaa297;background:transparent;color:#24221f;font-weight:900;letter-spacing:.08em;cursor:pointer}.terms-actions .flow-button{min-width:0;width:100%}@media(max-width:560px){.terms-actions{grid-template-columns:1fr}.terms-actions .ghost-dark{min-height:48px}}
/* v1.7 language selector + legal pages */
.language-control{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:118px;height:34px;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:rgba(8,10,9,.58);backdrop-filter:blur(12px);overflow:hidden;transition:border-color .18s,background .18s}.language-control:hover{border-color:rgba(255,255,255,.42);background:rgba(18,20,19,.72)}.language-control::after{content:'⌄';position:absolute;right:12px;top:50%;transform:translateY(-56%);font-size:10px;line-height:1;color:rgba(255,255,255,.66);pointer-events:none}.language-control select{appearance:none!important;-webkit-appearance:none;width:100%;min-width:116px;height:100%;border:0!important;border-radius:999px;background:transparent!important;color:#fff;padding:0 30px 0 18px!important;font-size:9px;font-weight:900;letter-spacing:.025em;outline:none;text-align:center;text-align-last:center;cursor:pointer}.language-control select option{background:#111;color:#fff;text-align:center}.legal-page{max-width:1040px;padding-bottom:12vh}.legal-page .legal-intro{font-size:clamp(18px,2.4vw,25px);line-height:1.62;color:#e0dbd1;max-width:900px}.legal-section{padding:8px 0 28px;border-bottom:1px solid #2e2d29}.legal-section:last-of-type{border-bottom:0}.legal-section h2{font-size:clamp(25px,3vw,38px);letter-spacing:-.035em;margin:45px 0 18px}.legal-section p{font-size:16px;line-height:1.75;color:#c4beb3}.legal-section a{color:#f2eee5}.legal-identity{display:grid;grid-template-columns:1fr 1fr;border:1px solid #33312d;margin:25px 0;background:#0c0d0c}.legal-identity>div{padding:16px 18px;border-bottom:1px solid #33312d;display:flex;flex-direction:column;gap:7px}.legal-identity>div:nth-child(odd){border-right:1px solid #33312d}.legal-identity span{font-size:9px;text-transform:uppercase;letter-spacing:.14em;color:#8f897f}.legal-identity strong{font-size:14px;line-height:1.45;font-weight:700}.legal-identity strong.missing{color:#dbab72;font-weight:600}.legal-version{margin-top:44px!important;padding-top:20px;border-top:1px solid #33312d;font-size:11px!important;letter-spacing:.05em;color:#8f897f!important}.contact-legal strong{color:#dbab72}
@media(max-width:700px){.language-control{min-width:104px;height:31px}.language-control select{max-width:none!important;min-width:102px!important;font-size:8px!important;padding:0 27px 0 14px!important}.language-control::after{right:10px}.legal-identity{grid-template-columns:1fr}.legal-identity>div:nth-child(odd){border-right:0}.legal-section h2{margin-top:36px}.legal-section p{font-size:15px}.legal-page .legal-intro{font-size:18px}}

/* v1.7.1 — public legal pages kept intentionally short and readable */
.compact-legal{max-width:860px}
.compact-legal .legal-intro{max-width:720px}
.compact-legal .legal-section{padding:22px 0;border-bottom:1px solid rgba(18,24,21,.10)}
.compact-legal .legal-section h2{margin-bottom:8px}
.compact-legal .legal-section p{max-width:760px;line-height:1.65}
.legal-publisher{padding-top:14px!important}
.legal-details{margin-top:12px;border:1px solid rgba(18,24,21,.12);border-radius:14px;background:rgba(255,255,255,.48);overflow:hidden}
.legal-details summary{cursor:pointer;list-style:none;padding:13px 16px;font-weight:700;font-size:.88rem;display:flex;align-items:center;justify-content:space-between;gap:12px}
.legal-details summary::-webkit-details-marker{display:none}
.legal-details summary:after{content:'+';font-size:1.1rem;font-weight:500}
.legal-details[open] summary:after{content:'−'}
.legal-details-body{padding:0 16px 14px}
.legal-details-body p{margin:7px 0;font-size:.91rem}
@media(max-width:640px){.compact-legal .legal-section{padding:18px 0}.legal-details summary{padding:12px 14px}.legal-details-body{padding:0 14px 12px}}

/* v1.7.2 — mobile loading/performance */
.home-page{height:100vh;height:100dvh}
@media(max-width:700px),(pointer:coarse){
  /* Fixed backdrop filters over a full-screen canvas are expensive on mobile GPUs. */
  .viewer-controls,.bottom-progress,.focus-card,.language-control{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
  .viewer-controls,.bottom-progress{background:rgba(5,7,6,.86)}
  .focus-card{background:rgba(10,12,11,.96)}
  .language-control{background:rgba(8,10,9,.84)}
  .mosaic-vignette{background:linear-gradient(180deg,rgba(0,0,0,.42),transparent 30%,transparent 62%,rgba(0,0,0,.50))}
  .hero-panel{text-shadow:0 2px 14px rgba(0,0,0,.9)}
  .mosaic-stage canvas{will-change:auto}
}


/* v1.8.1 — stable mobile pinch + clearer bottom spacing */
/* v1.9.0 — upload crop, title/year overlay and embedded SumUp checkout */
@media(max-width:700px),(pointer:coarse){
  .bottom-progress{bottom:calc(12px + env(safe-area-inset-bottom,0px))}
  .home-footer{bottom:calc(78px + env(safe-area-inset-bottom,0px))}
  .viewer-controls{bottom:calc(124px + env(safe-area-inset-bottom,0px))}
  .focus-card{bottom:calc(126px + env(safe-area-inset-bottom,0px))}
}

/* v1.9.0 — image composer + embedded SumUp checkout */
.submission-card{width:min(760px,100%);padding:34px 36px 38px}.submission-card h2{font-size:clamp(30px,4.4vw,48px);line-height:1;letter-spacing:-.045em;margin:12px 0 10px}.submission-intro{margin:0 0 22px;color:#5d5952;line-height:1.55;font-family:var(--font-secondary);font-size:15px}.photo-picker{position:relative;display:flex;align-items:center;gap:14px;min-height:76px;margin-top:8px;padding:14px 16px;border:1px dashed #9d9588;background:#e8e2d8;cursor:pointer;transition:.18s}.photo-picker:hover{background:#eee8de;border-color:#6f685f}.photo-picker input{position:absolute;inset:0;opacity:0;cursor:pointer}.photo-picker-plus{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border-radius:50%;background:#151613;color:#fff;font-size:27px;font-weight:300}.photo-picker-copy{font-size:13px;line-height:1.45;color:#4e4942;font-weight:750;letter-spacing:0}.photo-picker.has-photo{border-style:solid;border-color:#8d8579}.photo-picker.has-photo .photo-picker-plus::before{content:'✓';font-size:17px}.photo-picker.has-photo .photo-picker-plus{font-size:0}.photo-error{min-height:18px;margin:8px 0 0;color:#b00020;font-size:12px;font-weight:800;line-height:1.4}.crop-editor{margin:16px 0 20px}.crop-kicker{font-size:9px;font-weight:900;letter-spacing:.16em;color:#777166;margin-bottom:8px}.crop-frame{position:relative;width:min(420px,100%);aspect-ratio:1;margin:0 auto;background:#171817;overflow:hidden;border:1px solid #aaa297;box-shadow:0 12px 36px rgba(25,23,20,.12)}.crop-frame canvas{display:block;width:100%;height:100%;touch-action:none;user-select:none;-webkit-user-select:none;cursor:default}.crop-frame canvas.dragging{cursor:grabbing}.crop-editor:not([hidden]) .crop-frame canvas{cursor:grab}.crop-corners{position:absolute;inset:10px;pointer-events:none;border:1px solid rgba(255,255,255,.68);box-shadow:0 0 0 999px rgba(0,0,0,.035)}.crop-corners::before,.crop-corners::after{content:'';position:absolute;width:28px;height:28px;border-color:#fff}.crop-corners::before{left:-1px;top:-1px;border-left:3px solid;border-top:3px solid}.crop-corners::after{right:-1px;bottom:-1px;border-right:3px solid;border-bottom:3px solid}.crop-hint{font-size:11px!important;font-weight:600!important;text-align:center;color:#6f695f;margin:9px auto 0!important;letter-spacing:0!important;line-height:1.45;max-width:480px}.remove-photo-button{display:block;margin:12px auto 0;border:0;background:transparent;color:#7a332f;font-family:var(--font-buttons);font-size:12px;font-weight:850;letter-spacing:.04em;text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:6px 10px}.remove-photo-button:hover{color:#a01818}.remove-photo-button:focus-visible{outline:2px solid #222;outline-offset:3px}.submission-fields{display:grid;gap:14px}.two-fields{grid-template-columns:minmax(0,2fr) minmax(120px,1fr)}.submission-card select{display:block;width:100%;margin-top:7px;border:1px solid #bbb3a5;background:#fff;padding:13px;font-size:16px;color:#151513}.submission-pay-button{margin-top:18px}.payment-step{min-height:360px}.payment-summary{display:grid;grid-template-columns:96px minmax(0,1fr);gap:16px;align-items:center;padding:12px;margin:18px 0 20px;background:#e7e1d7;border:1px solid #c8c0b3}.payment-summary canvas{display:block;width:96px;height:96px;object-fit:cover;background:#111}.payment-summary>div{min-width:0;display:flex;flex-direction:column;gap:5px}.payment-summary strong{font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.payment-summary span{font-size:12px;color:#69645c}.payment-summary small{font-size:9px;letter-spacing:.1em;color:#7b756c;text-transform:uppercase;margin-top:4px}.sumup-card-host{min-height:160px;padding:6px 0}.payment-retry{width:100%;min-height:46px;margin-top:12px}.sumup-card-host [data-sumup-id="widget__container"]{font-family:var(--font-primary)!important}.sumup-card-host [data-sumup-id="submit_button"]{border-radius:0!important}.submission-card .form-msg{color:#8f1d1d;font-weight:700}.submission-card .payment-step .form-msg{color:#4f4a43}
@media(max-width:700px){.submission-card{padding:28px 18px 24px;max-height:94dvh}.submission-card h2{font-size:32px}.submission-intro{font-size:14px;margin-bottom:17px}.two-fields{grid-template-columns:1fr}.crop-frame{width:min(360px,88vw)}.photo-picker{min-height:70px;padding:12px}.payment-summary{grid-template-columns:78px minmax(0,1fr)}.payment-summary canvas{width:78px;height:78px}.sumup-card-host{min-height:150px}}
.participant-meta .participant-title{font-family:var(--font-secondary);font-size:10px;color:#d0cabf;margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.table-sub{color:#8f897f;font-size:11px}


/* v1.9.1 — paiement explicite et confirmation sans déplacement de la fresque */
.demo-payment-box{margin:18px 0 8px;padding:18px;border:1px solid rgba(20,24,22,.14);border-radius:16px;background:rgba(20,24,22,.045);text-align:center}.demo-payment-box strong{display:block;margin-bottom:7px;font-family:var(--font-primary);font-size:.92rem;letter-spacing:.03em}.demo-payment-box p{margin:0 0 14px;color:rgba(20,24,22,.7);line-height:1.5}.submission-success-step{text-align:center;padding:10px 0 2px}.submission-success-mark{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;margin:18px auto 16px;border:1px solid rgba(20,24,22,.2);font-size:1.7rem;font-weight:700}.submission-success-reference{display:inline-flex;margin:4px auto 22px;padding:9px 13px;border-radius:999px;background:rgba(20,24,22,.07);font-family:var(--font-primary);font-size:.78rem;letter-spacing:.06em;white-space:nowrap}

/* v1.9.2 — SumUp Sandbox uses the real embedded Payment Widget; no internal fake-payment UI. */

/* v1.9.3 — animation configurable de l'accroche */
.hero-tagline-effect span{position:relative;isolation:isolate;will-change:transform,filter,text-shadow}
.hero-effect-none span{animation:none!important}
.hero-effect-breathe span{animation:ompHeroBreathe 5.8s ease-in-out infinite;transform-origin:50% 55%}
.hero-effect-drift span{animation:ompHeroDrift 7.2s ease-in-out infinite;transform-origin:50% 50%}
.hero-effect-glitch span::before,.hero-effect-glitch span::after,.hero-effect-signal span::before,.hero-effect-signal span::after{content:attr(data-text);position:absolute;inset:0;display:block;pointer-events:none;opacity:0;z-index:1}
.hero-effect-glitch span::before{animation:ompHeroGlitchA 6.4s steps(1,end) infinite;text-shadow:2px 0 rgba(255,255,255,.55)}
.hero-effect-glitch span::after{animation:ompHeroGlitchB 6.4s steps(1,end) infinite;text-shadow:-2px 0 rgba(255,255,255,.35)}
.hero-effect-signal span{animation:ompHeroSignalBase 6.8s ease-in-out infinite}
.hero-effect-signal span::before{animation:ompHeroSignalA 6.8s steps(1,end) infinite;text-shadow:1px 0 rgba(255,255,255,.4)}
.hero-effect-signal span::after{animation:ompHeroSignalB 6.8s steps(1,end) infinite;text-shadow:-1px 0 rgba(255,255,255,.28)}
@keyframes ompHeroBreathe{0%,100%{transform:scale(1)}50%{transform:scale(1.012)}}
@keyframes ompHeroDrift{0%,100%{transform:translate3d(0,0,0) rotate(0deg)}25%{transform:translate3d(1.5px,-1px,0) rotate(.06deg)}50%{transform:translate3d(-1px,.8px,0) rotate(-.04deg)}75%{transform:translate3d(.8px,1.2px,0) rotate(.03deg)}}
@keyframes ompHeroGlitchA{0%,43%,46%,76%,79%,100%{opacity:0;transform:none;clip-path:inset(0)}44%{opacity:.34;transform:translate(-2px,-1px);clip-path:inset(8% 0 67% 0)}45%{opacity:.22;transform:translate(1px,1px);clip-path:inset(58% 0 18% 0)}77%{opacity:.28;transform:translate(2px,0);clip-path:inset(31% 0 48% 0)}78%{opacity:.16;transform:translate(-1px,0);clip-path:inset(72% 0 8% 0)}}
@keyframes ompHeroGlitchB{0%,43.4%,46%,76.4%,79%,100%{opacity:0;transform:none;clip-path:inset(0)}44.4%{opacity:.25;transform:translate(2px,1px);clip-path:inset(68% 0 9% 0)}45.4%{opacity:.17;transform:translate(-1px,-1px);clip-path:inset(19% 0 61% 0)}77.4%{opacity:.22;transform:translate(-2px,0);clip-path:inset(48% 0 30% 0)}78.4%{opacity:.14;transform:translate(1px,0);clip-path:inset(7% 0 76% 0)}}
@keyframes ompHeroSignalBase{0%,100%{transform:translateZ(0);text-shadow:0 1px 3px rgba(0,0,0,.82),0 2px 8px rgba(0,0,0,.48)}49%{transform:translateZ(0)}50%{transform:translateX(.5px)}51%{transform:translateX(0)}}
@keyframes ompHeroSignalA{0%,31%,33%,64%,66%,100%{opacity:0;transform:none}32%{opacity:.16;transform:translateX(1.5px)}65%{opacity:.13;transform:translateX(-1px)}}
@keyframes ompHeroSignalB{0%,31.2%,33%,64.2%,66%,100%{opacity:0;transform:none}32.2%{opacity:.12;transform:translateX(-1px)}65.2%{opacity:.11;transform:translateX(1.5px)}}
@media(prefers-reduced-motion:reduce){.hero-tagline-effect span,.hero-tagline-effect span::before,.hero-tagline-effect span::after{animation:none!important;transform:none!important;opacity:1}.hero-tagline-effect span::before,.hero-tagline-effect span::after{display:none!important}}


/* v1.9.4 — accueil plus aéré */
.hero-panel{gap:clamp(26px,3.4vh,42px)}
.hero-panel .reveal-line{margin:0}
@media(max-width:700px){.hero-panel{gap:clamp(22px,3.1vh,30px)}}


/* v1.9.55 — ombres d’accueil discrètes, sans halo rectangulaire de conteneur. */
.hero-panel{position:relative;isolation:isolate;gap:clamp(30px,3.8vh,48px);padding:clamp(28px,4vh,48px) clamp(20px,5vw,72px);text-shadow:none}
.hero-panel>*{position:relative;z-index:1}
.hero-panel .home-eyebrow,.hero-panel h1 span,.hero-panel .river-line,.hero-panel .reveal-line{text-shadow:0 1px 3px rgba(0,0,0,.82),0 2px 8px rgba(0,0,0,.48)}
.hero-panel .flow-button{box-shadow:0 4px 12px rgba(0,0,0,.26),0 1px 3px rgba(0,0,0,.18)}
@media(max-width:700px){.hero-panel{gap:clamp(26px,3.5vh,34px);padding:30px 16px}}

.mail-language-field{display:flex;flex-direction:column;gap:7px;margin-top:4px}.mail-language-field select{width:100%;min-height:46px}.mail-language-field small{color:#777;line-height:1.45}

/* v1.9.11 — navigation typography follows the configured primary Google Font */
.home-brand,.home-nav,.home-nav button,.home-nav select,.home-nav option{font-family:var(--font-primary)!important}


/* v1.9.12 — slightly larger home-screen typography (main hero line unchanged) */
.home-brand{font-size:14.8px}
.ghost-link{font-size:10.6px}
.language-control select{font-size:9.6px}
.home-eyebrow{font-size:9.8px}
.reveal-line{font-size:clamp(13px,1.22vw,17px)}
.flow-button{font-size:10.7px}
.viewer-hint{font-size:8.6px}
.bottom-progress-copy{font-size:10.7px}
.bottom-progress-copy strong{font-size:13.8px}
.home-footer{font-size:9.6px}
.viewer-controls button{font-size:16.8px}
@media(max-width:700px){
  .home-brand{font-size:10.8px}
  .ghost-link{font-size:7.7px}
  .language-control select{font-size:8.7px!important}
  .home-eyebrow{font-size:9.7px}
  .reveal-line{font-size:11px}
  .flow-button{font-size:10.8px}
  .home-footer{font-size:7.8px}
  .bottom-progress-copy{font-size:10.4px}
  .bottom-progress-copy strong{font-size:13.5px}
}

/* v1.9.13 — navigation plus lisible, aide zoom agrandie et compteur inversé. */
.home-brand{font-size:16px}
.ghost-link{font-size:11.7px}
.language-control select{font-size:10.6px}
.home-footer{font-size:10.8px;gap:17px}
.viewer-hint{font-size:10.5px;line-height:1.4;letter-spacing:.065em;color:rgba(255,255,255,.66)}
.bottom-progress-line i{min-width:0;transition:width .7s cubic-bezier(.22,.61,.36,1)}
.bottom-progress-copy{justify-content:center;text-align:center}
.bottom-progress-copy strong{font-size:14.4px;letter-spacing:.07em}
@media(max-width:1200px){.viewer-hint{display:block}}
@media(max-width:700px){
  .home-brand{font-size:12px}
  .ghost-link{font-size:8.8px}
  .language-control select{font-size:9.5px!important}
  .home-footer{font-size:9px;gap:11px}
  .viewer-hint{display:block;left:14px;bottom:148px;max-width:min(62vw,330px);font-size:9.4px;line-height:1.35}
  .bottom-progress-copy strong{font-size:13.8px}
}

/* v1.9.14 — police dédiée aux boutons + formulaire de contact public */
:root{--font-buttons:Arial,Helvetica,sans-serif}
button,.flow-button,.ghost-link,.viewer-controls button,.mosaic-search-form button,.wall-search button,.print-button,.contact-submit{font-family:var(--font-buttons)!important}
.home-nav button{font-family:var(--font-buttons)!important}
.contact-page-shell{width:min(1120px,92vw);margin:0 auto;padding:clamp(52px,8vh,96px) 0 72px;display:grid;grid-template-columns:minmax(0,.9fr) minmax(360px,1.1fr);gap:clamp(44px,7vw,96px);align-items:start}
.contact-page-copy{padding-top:42px}.contact-page-copy h1{margin:10px 0 20px;font-size:clamp(58px,8vw,108px);line-height:.88;letter-spacing:-.065em}.contact-page-copy>p:last-child{max-width:520px;margin:0;color:#b9b3a8;font-family:var(--font-secondary);font-size:19px;line-height:1.65}
.contact-form-card{background:#111311;border:1px solid #30332f;padding:clamp(24px,4vw,42px);box-shadow:0 26px 80px rgba(0,0,0,.24)}
.contact-form{display:grid;gap:20px}.contact-form label{display:block;font-size:10px;font-weight:900;letter-spacing:.105em;color:#b6b0a6}.contact-form input,.contact-form select,.contact-form textarea{display:block;width:100%;margin-top:9px;border:1px solid #3a3d38;background:#090b0a;color:#f5f2e9;padding:14px 15px;font:500 15px/1.45 var(--font-primary);outline:none;border-radius:0}.contact-form textarea{resize:vertical;min-height:180px}.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{border-color:#aaa49a}.contact-form select{cursor:pointer}.contact-submit{border:0;background:#f2eee5;color:#10110f;padding:17px 22px;font-size:11px;font-weight:900;letter-spacing:.13em;cursor:pointer;transition:transform .16s,background .16s}.contact-submit:hover{transform:translateY(-1px);background:#fff}.contact-privacy{margin:-2px 0 0;color:#817c73;font-size:11px;line-height:1.5}.contact-alert{margin:0 0 22px;padding:13px 15px;border:1px solid;font-size:12px;font-weight:800;line-height:1.5}.contact-alert.success{color:#bfe3c9;border-color:#345b40;background:#112117}.contact-alert.error{color:#f4b9b9;border-color:#653838;background:#251313}.contact-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
@media(max-width:820px){.contact-page-shell{grid-template-columns:1fr;padding-top:38px;gap:28px}.contact-page-copy{padding-top:8px}.contact-page-copy h1{font-size:clamp(48px,14vw,78px)}.contact-page-copy>p:last-child{font-size:17px}.contact-form-card{padding:22px 18px}}


/* v1.9.17 — participants textuels, sans photos publiques dans l'annuaire. */
.participants-list-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1px}
.participant-list-card .participant-meta{min-height:150px;padding:18px 18px 20px;justify-content:center}
.participant-list-card .participant-meta strong{font-size:22px}
.participant-list-card .participant-image-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;margin-top:7px;font-size:14px;line-height:1.25;font-weight:900;color:#f1ede4;overflow-wrap:anywhere}
.participant-list-card .participant-name{font-size:13px!important;margin-top:8px!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
.participant-list-card .coords{margin-top:12px!important}
@media(max-width:950px){.participants-list-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.participants-list-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.participant-list-card .participant-meta{min-height:138px;padding:15px}}
@media(max-width:420px){.participants-list-grid{grid-template-columns:1fr}}


/* v1.9.22 — aucune explication de zoom sur mobile/tablette. */
@media (hover:none) and (pointer:coarse){
  .viewer-hint{display:none}
}

/* v1.9.32 — mobile interaction/performance refinements. */
.language-control,.language-control select{touch-action:manipulation}
.home-page.exploring .hero-tagline-effect span,
.home-page.exploring .hero-tagline-effect span::before,
.home-page.exploring .hero-tagline-effect span::after{animation-play-state:paused!important}
@media(max-width:700px),(pointer:coarse){
  .hero-tagline-effect span{will-change:auto}
}

/* v1.9.35 — opt-in promotionnel, volontaire et distinct de l'achat du pixel. */
.promo-optin-box{margin:12px 0 4px;padding:14px;border:1px solid #b8afa2;background:#f1ece3;color:#151515}.promo-optin-box .promo-check{font-size:11px!important}.promo-optin-box p{margin:9px 0 10px;font-size:10px;line-height:1.55;color:#514c45}.promo-optin-box small{display:block;margin-top:9px;font-size:9px;line-height:1.5;color:#6f685f}.promo-residence{display:block;font-size:10px;font-weight:800}.promo-residence select{display:block;width:100%;margin-top:6px;padding:10px;border:1px solid #b8afa2;background:#fff;color:#111}
.project-promo-note{margin-top:18px;padding-top:18px;border-top:1px solid rgba(255,255,255,.14);font-size:.92em;color:#c9c4bb}

.promo-current-prize{margin:.4rem 0 .7rem;font-size:.82rem}.promo-current-prize strong{font-weight:800}

/* v1.9.40 — carte promotionnelle déplaçable, responsive et non intrusive. */
.promo-floating-card{position:fixed;z-index:18;right:20px;bottom:22px;width:min(350px,calc(100vw - 28px));background:rgba(12,14,13,.95);border:1px solid rgba(255,255,255,.2);box-shadow:0 18px 55px rgba(0,0,0,.42);backdrop-filter:blur(18px);color:#f5f2e9;overflow:visible;transition:opacity .18s,visibility .18s,border-color .18s,background .18s;touch-action:none;user-select:none;-webkit-user-select:none}.promo-floating-card:hover{border-color:rgba(255,255,255,.42);background:rgba(17,19,18,.98)}.promo-floating-card.promo-hidden{opacity:0;visibility:hidden;pointer-events:none}.promo-floating-card.is-dragging{cursor:grabbing;transition:none}.promo-floating-card.promo-over-drawer{z-index:24}.promo-floating-main{display:grid;grid-template-columns:92px minmax(0,1fr);min-height:112px;color:inherit;text-decoration:none}.promo-floating-card.no-image .promo-floating-main{grid-template-columns:1fr}.promo-floating-image{display:block;background:#fff;min-height:112px;padding:7px}.promo-floating-image img{display:block;width:100%;height:100%;min-height:98px;object-fit:contain;background:#fff}.promo-floating-copy{display:flex;min-width:0;flex-direction:column;justify-content:center;padding:14px 16px 12px}.promo-floating-copy small{font-size:8.5px;font-weight:900;letter-spacing:.14em;color:#aaa59f}.promo-floating-copy strong{margin-top:5px;font-size:16px;line-height:1.18;white-space:normal;overflow-wrap:anywhere}.promo-floating-copy .promo-floating-range{margin-top:6px;font-size:10px;line-height:1.35;color:#c8c1b6}.promo-floating-copy .promo-floating-range b{font-weight:800;color:#e8dfcf}.promo-floating-copy em{margin-top:8px;font-style:normal;font-size:9px;font-weight:900;letter-spacing:.07em;color:#e4c778}.promo-floating-instagram{height:30px;border-top:1px solid rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;gap:7px;color:#dad5cb;text-decoration:none;font-size:9px;font-weight:800;letter-spacing:.04em;background:rgba(255,255,255,.035)}.promo-floating-instagram:hover{color:#fff;background:rgba(255,255,255,.07)}.promo-floating-instagram svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.7}.promo-floating-close{position:absolute;z-index:3;top:-11px;right:-11px;width:28px;height:28px;border:1px solid rgba(255,255,255,.34);border-radius:50%;display:flex;align-items:center;justify-content:center;padding:0;background:#151716;color:#fff;box-shadow:0 5px 16px rgba(0,0,0,.38);font:700 19px/1 Arial,sans-serif;cursor:pointer;touch-action:manipulation}.promo-floating-close:hover{background:#242725;border-color:rgba(255,255,255,.65)}.promo-floating-close:focus-visible{outline:2px solid #e4c778;outline-offset:2px}.promo-floating-card.promo-dismissed{display:none!important}.legal-section#promotional-draw{scroll-margin-top:28px}.promo-legal-prize{width:min(230px,70vw);aspect-ratio:1/1;margin:28px auto 4px;border:1px solid #35332e;border-radius:18px;overflow:hidden;background:#fff;display:flex;align-items:center;justify-content:center;padding:12px}.promo-legal-prize img{display:block;width:100%;height:100%;object-fit:contain;background:#fff;border-radius:10px}
.home-page .promo-floating-card{right:clamp(18px,3vw,48px);bottom:72px}
@media(max-width:760px){.promo-floating-card,.home-page .promo-floating-card{left:50%;right:auto;top:76px;bottom:auto;transform:translateX(-50%);width:min(318px,calc(100vw - 24px))}.promo-floating-card.is-drag-positioned{transform:none}.promo-floating-main{grid-template-columns:78px minmax(0,1fr);min-height:94px}.promo-floating-image{min-height:94px;padding:6px}.promo-floating-image img{min-height:82px}.promo-floating-copy{padding:11px 13px 10px}.promo-floating-copy small{font-size:8px}.promo-floating-copy strong{font-size:14.5px}.promo-floating-copy .promo-floating-range{font-size:9px}.promo-floating-copy em{font-size:8.5px;margin-top:6px}.promo-floating-instagram{height:28px;font-size:8.5px}.promo-legal-prize{margin-left:auto;margin-right:auto}}
@media(max-width:430px){.promo-floating-card,.home-page .promo-floating-card{top:72px;width:min(306px,calc(100vw - 18px))}.promo-floating-copy strong{font-size:14px}.promo-floating-copy .promo-floating-range{font-size:8.7px}}

/* v1.9.42 — FAQ publique */
.faq-page{max-width:1040px;padding-bottom:13vh}
.faq-page>.legal-intro{max-width:850px}
.faq-group{padding:16px 0 30px}
.faq-group>h2{font-size:clamp(25px,3vw,38px);letter-spacing:-.035em;margin:38px 0 16px}
.faq-list{display:grid;gap:9px}
.faq-item{border:1px solid rgba(255,255,255,.13);border-radius:14px;background:rgba(255,255,255,.035);overflow:hidden;transition:border-color .18s,background .18s}
.faq-item:hover{border-color:rgba(255,255,255,.24);background:rgba(255,255,255,.055)}
.faq-item[open]{border-color:rgba(255,255,255,.24);background:rgba(255,255,255,.055)}
.faq-item summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;font-size:15px;line-height:1.4;font-weight:800;color:#f3eee5}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary:after{content:'+';flex:0 0 auto;font-size:20px;font-weight:400;color:#a9a297}
.faq-item[open] summary:after{content:'−'}
.faq-answer{padding:0 18px 17px}
.faq-answer p{margin:0;max-width:850px;font-size:15px;line-height:1.72;color:#c4beb3}
.faq-related{display:flex;flex-wrap:wrap;gap:10px;margin-top:34px;padding-top:24px;border-top:1px solid rgba(255,255,255,.13)}
.faq-related a{display:inline-flex;align-items:center;min-height:38px;padding:0 15px;border:1px solid rgba(255,255,255,.16);border-radius:999px;text-decoration:none;font-size:10px;font-weight:800;letter-spacing:.04em;color:#ddd7cd}
.faq-related a:hover{border-color:rgba(255,255,255,.34);color:#fff}
@media(max-width:700px){.faq-page{padding-bottom:150px}.faq-group{padding:10px 0 22px}.faq-group>h2{margin:30px 0 13px}.faq-list{gap:7px}.faq-item summary{padding:14px 15px;font-size:14px}.faq-answer{padding:0 15px 15px}.faq-answer p{font-size:14px;line-height:1.65}.faq-related{margin-top:24px}}

.site-footer{width:min(1450px,90vw);margin:20px auto 0;padding:22px 0 30px;border-top:1px solid rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;color:#837e75;font-size:9px;letter-spacing:.035em}
.site-footer a{color:inherit;text-decoration:none;white-space:nowrap;transition:color .18s}
.site-footer a:hover,.site-footer a:focus-visible{color:#f2eee5}

@media(max-width:700px){.site-footer{width:calc(100% - 36px);margin-top:10px;padding:18px 0 26px;gap:10px 13px;font-size:8px}.topbar{top:0}}

/* v1.9.44 — sur mobile, le pop-up promotionnel est réservé à la page d’accueil. */
@media(max-width:760px){
  body:not(.home-page) .promo-floating-card{display:none!important}
}


/* v1.9.45 — téléphone/tablette : le paysage reste une extension du layout mobile. */
@media (any-pointer:coarse) and (max-width:1600px){
  /* Navigation d'accueil : mêmes règles que le portrait, avec la largeur disponible. */
  .home-topbar{height:auto;min-height:66px;padding:12px 18px;align-items:flex-start;gap:14px}
  .home-brand{font-size:12px;margin-top:8px;max-width:190px;white-space:normal;line-height:1.12}
  .home-nav{gap:10px;max-width:72vw;flex-wrap:wrap;justify-content:flex-end}
  .ghost-link{font-size:8.8px}
  .language-control{min-width:104px;height:31px}
  .language-control select{max-width:none!important;min-width:102px!important;font-size:9.5px!important;padding:0 27px 0 14px!important}
  .language-control::after{right:10px}

  .home-hero{padding:90px 20px 162px}
  .hero-panel{width:min(860px,92vw);gap:clamp(16px,2.4vh,26px)}
  .hero-panel h1 span{font-size:clamp(38px,8vw,72px);line-height:1}
  .river-line{font-size:clamp(17px,2.6vw,22px)}
  .reveal-line{max-width:760px;font-size:clamp(10.5px,1.55vw,13px)}
  .flow-button{min-width:min(320px,72vw)}
  .bottom-progress{bottom:14px;width:min(430px,calc(100vw - 28px))}
  .home-footer{left:50%;right:auto;transform:translateX(-50%);bottom:58px;width:calc(100vw - 24px);max-width:none;justify-content:center;gap:11px;flex-wrap:wrap;font-size:9px}
  .viewer-controls{left:14px;bottom:103px}
  .viewer-hint{display:none!important}
  .focus-card{bottom:106px}

  /* Le pop-up est traité comme sur mobile, quelle que soit l'orientation. */
  body:not(.home-page) .promo-floating-card{display:none!important}
  .promo-floating-card,.home-page .promo-floating-card{left:50%;right:auto;top:76px;bottom:auto;transform:translateX(-50%);width:min(330px,calc(100vw - 24px))}
  .promo-floating-card.is-drag-positioned{transform:none}
  .promo-floating-main{grid-template-columns:78px minmax(0,1fr);min-height:94px}
  .promo-floating-image{min-height:94px;padding:6px}
  .promo-floating-image img{min-height:82px}
  .promo-floating-copy{padding:11px 13px 10px}
  .promo-floating-copy small{font-size:8px}
  .promo-floating-copy strong{font-size:14.5px}
  .promo-floating-copy .promo-floating-range{font-size:9px}
  .promo-floating-copy em{font-size:8.5px;margin-top:6px}
  .promo-floating-instagram{height:28px;font-size:8.5px}

  /* Pages secondaires : structure mobile élargie, jamais un desktop comprimé. */
  .topbar{padding:12px 18px;gap:12px;flex-wrap:wrap;align-items:center}
  .brand{font-size:12px;white-space:normal;line-height:1.15}
  .topbar-actions{gap:10px;flex-wrap:wrap;justify-content:flex-end}
  .navlink{font-size:10px}
  .participants-shell,.text-page{padding:42px 24px}
  .participants-head{grid-template-columns:1fr;gap:18px;align-items:start;margin-bottom:28px}
  .participants-head h1,.text-page h1{font-size:clamp(46px,9vw,78px)}
  .participants-total{text-align:left}
  .wall-search{max-width:100%}
  .participants-list-grid,.participants-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .pager{grid-template-columns:1fr;gap:14px}
  .pager-side,.pager-side:last-child{justify-content:center}
  .page-state{order:-1;text-align:center}

  .legal-page,.faq-page{max-width:980px}
  .legal-identity{grid-template-columns:1fr}
  .legal-identity>div:nth-child(odd){border-right:0}
  .legal-section h2{margin-top:36px}
  .legal-section p{font-size:15px}
  .legal-page .legal-intro{font-size:18px}
  .faq-page{padding-bottom:150px}
  .faq-group{padding:10px 0 22px}
  .faq-group>h2{margin:30px 0 13px}
  .faq-list{gap:7px}
  .faq-item summary{padding:14px 15px;font-size:14px}
  .faq-answer{padding:0 15px 15px}
  .faq-answer p{font-size:14px;line-height:1.65}

  .contact-page-shell{grid-template-columns:1fr;width:min(920px,92vw);padding-top:38px;gap:28px}
  .contact-page-copy{padding-top:8px}
  .contact-page-copy h1{font-size:clamp(48px,10vw,78px)}
  .contact-page-copy>p:last-child{font-size:17px}
  .contact-form-card{padding:22px 20px}

  .site-footer{width:calc(100% - 36px);margin-top:10px;padding:18px 0 26px;gap:10px 13px;font-size:8px}

  .certificate-page{padding:14px}
  .certificate{padding:32px 22px;min-height:90vh}
  .certificate-number{font-size:clamp(74px,14vw,130px)}
}

/* En paysage tactile, on garde le même ordre visuel mais on économise la hauteur. */
@media (any-pointer:coarse) and (max-width:1600px) and (orientation:landscape){
  .home-topbar{min-height:58px;padding:8px 16px;align-items:center}
  .home-brand{margin-top:0;max-width:180px;font-size:11.5px}
  .home-nav{max-width:76vw;gap:8px}
  .home-hero{padding:66px 18px 112px}
  .hero-panel{gap:10px;width:min(820px,90vw)}
  .hero-panel h1 span{font-size:clamp(31px,6vw,55px)}
  .home-eyebrow{font-size:8.8px}
  .river-line{font-size:16px}
  .reveal-line{font-size:10px;line-height:1.35;max-width:720px}
  .flow-button{min-width:min(300px,58vw);padding:12px 20px}
  .bottom-progress{bottom:10px;width:min(390px,calc(100vw - 28px));padding:7px 12px 8px}
  .home-footer{bottom:49px;font-size:8px;gap:9px}
  .viewer-controls{bottom:88px}
  .focus-card{bottom:91px}
  .drawer-copy,.search-panel{padding:76px 26px 34px}
  .drawer-copy h2,.search-panel h2{font-size:clamp(34px,6vw,54px);margin-bottom:24px}
  .modal{padding:10px}
  .modal-card{max-height:96dvh;padding:24px 22px}
  .submission-card{max-height:96dvh}

  .topbar{min-height:58px;padding:9px 18px}
  .participants-shell,.text-page{padding:30px 24px 38px}
  .participants-head h1,.text-page h1{font-size:clamp(42px,7vw,68px)}
  .contact-page-shell{padding-top:26px;padding-bottom:40px}
  .contact-page-copy h1{font-size:clamp(44px,8vw,68px)}
}

/* Petit téléphone en paysage : deux colonnes seulement pour conserver la lisibilité. */
@media (any-pointer:coarse) and (max-width:850px) and (orientation:landscape){
  .participants-list-grid,.participants-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .home-brand{max-width:145px}
  .home-nav{max-width:74vw}
}

/* v1.9.47 — lien optionnel et modéré associé au titre du pixel. */
.focus-pixel-link{position:absolute;z-index:3;display:block;background:transparent;pointer-events:auto;touch-action:manipulation;cursor:pointer;text-decoration:none;border:0;outline:0}.focus-pixel-link[hidden]{display:none!important}.focus-pixel-link:hover{box-shadow:inset 0 0 0 2px rgba(255,255,255,.65)}.focus-pixel-link:focus-visible{box-shadow:inset 0 0 0 3px #fff;outline:2px solid #111;outline-offset:2px}.focus-title-link{font-size:12px;font-weight:800;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:inherit;text-decoration:none;max-width:100%}.focus-title-link.is-linked{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;cursor:pointer}.focus-title-link.is-linked::after{content:' ↗';font-size:.82em}.submission-link-option{margin:12px 0 4px;padding:12px;border:1px solid #c8c0b4;background:#ece6dc}.submission-link-option .link-check{margin:0}.photo-link-field{margin:10px 0 0!important}.modal-card .photo-link-field input[type=url]{display:block;width:100%;margin-top:7px;border:1px solid #bbb3a5;background:#fff;color:#111;padding:13px;font-size:16px}.photo-link-field small{display:block;margin-top:7px;color:#716d65;font-weight:400;line-height:1.45;letter-spacing:0}.terms-link-note{padding:10px 12px;border-left:3px solid #827a6e;background:#e8e1d6;font-size:13px!important}
/* v1.9.49 — declared country + optional paid coordinate choice */
.publication-country-field{margin-top:14px!important}.publication-country-field small{display:block;margin-top:7px;color:#716d65;font-weight:400;line-height:1.45;letter-spacing:0}.coordinate-choice-option{margin:12px 0 4px;padding:12px;border:1px solid #c8c0b4;background:#ece6dc}.coordinate-choice-option .coordinate-choice-check{margin:0}.coordinate-choice-option .coordinate-choice-check strong{display:inline-block;margin-left:5px;padding:2px 6px;border-radius:999px;background:#171817;color:#fff;font-size:9px}.coordinate-choice-option>p{margin:8px 0 0;font-size:10px;line-height:1.5;color:#625d55}.coordinate-choice-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:10px}.coordinate-choice-fields>small{grid-column:1/-1;margin-top:-3px;color:#716d65;font-size:9px;line-height:1.45}.promo-country-status{margin:8px 0 0!important;padding:8px 10px;border-left:3px solid #9b9387;background:#e8e1d7}.promo-country-status.eligible{border-left-color:#4a7a4e;color:#2f5d33}.promo-country-status.not-eligible{border-left-color:#9d4b44;color:#79352f}.promo-check input:disabled+span{opacity:.5}.focus-country{display:inline-flex;align-items:center;gap:5px;margin-top:6px;font-size:10px;font-weight:800;color:#e8e3d9;letter-spacing:.02em}.focus-country[hidden]{display:none!important}
@media(max-width:560px){.coordinate-choice-fields{grid-template-columns:1fr 1fr}.publication-country-field select,.coordinate-choice-fields select{font-size:15px}}


/* v1.9.51 — advanced Participants filters + country flag cards. */
.participants-filter-result{margin-top:10px!important;font-family:var(--font-primary)!important;font-size:11px!important;font-weight:800;color:#f0ebe1!important;letter-spacing:.06em}
.participant-filter-form{display:grid;grid-template-columns:2fr .65fr .65fr 1.5fr 1.35fr 1fr 1.25fr auto;gap:10px;align-items:end;margin:26px 0 34px;padding:14px;border:1px solid #302f2b;background:#0d0e0d}
.participant-filter-form label{display:flex;flex-direction:column;gap:7px;min-width:0;color:#99938a;font-size:8px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}
.participant-filter-form input,.participant-filter-form select{width:100%;min-width:0;height:42px;border:1px solid #353732;background:#131513;color:#f1ede3;padding:0 11px;font-family:var(--font-primary);font-size:12px;outline:none}
.participant-filter-form input:focus,.participant-filter-form select:focus{border-color:#d9d4ca}
.participant-filter-actions{display:flex;align-items:center;gap:10px;min-height:42px}
.participant-filter-actions button,.participant-filter-actions a{height:42px;display:inline-flex;align-items:center;justify-content:center;border:0;padding:0 16px;background:#f1ede4;color:#111;font-size:9px;font-weight:900;letter-spacing:.1em;text-decoration:none;white-space:nowrap;cursor:pointer}
.participant-filter-actions a{border:1px solid #3b3d39;background:transparent;color:#d5cfc4}
.participant-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.participant-card-country{flex:0 0 auto;font-size:20px;line-height:1;filter:saturate(.92);text-shadow:0 1px 8px rgba(0,0,0,.45)}
@media(max-width:1250px){.participant-filter-form{grid-template-columns:repeat(4,minmax(0,1fr))}.participant-filter-actions{grid-column:span 1}}
@media(max-width:780px){.participant-filter-form{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px}.participant-filter-actions{grid-column:1/-1}.participant-filter-actions button,.participant-filter-actions a{flex:1}.participant-list-card .participant-meta{position:relative;padding-bottom:46px}.participant-list-card .participant-card-country{position:absolute;right:15px;bottom:15px;font-size:19px}}
@media(max-width:430px){.participant-filter-form{grid-template-columns:1fr}.participant-filter-actions{grid-column:auto}.participant-filter-actions{flex-direction:column;align-items:stretch}.participant-filter-actions button,.participant-filter-actions a{width:100%}}
.participants-header-link{text-transform:uppercase}
/* v1.9.52 — explicit mandatory field labels in the publication form. */
.field-required{font-size:.78em;font-weight:800;color:#8b302a;letter-spacing:0;text-transform:none;white-space:nowrap}

/* v1.9.53 — anonymous publication explanation */
.anonymous-help{display:block;margin:-8px 0 14px 26px;color:#716d65;font-size:10px;font-weight:500;line-height:1.45;letter-spacing:0}



/* v1.9.59 — viral sharing, community counter, richer project story. */
.bottom-community-copy{display:flex;justify-content:center;text-align:center;padding:1px 0 5px;color:rgba(255,255,255,.72);font-size:9px;line-height:1.35;letter-spacing:.055em}
.bottom-community-copy strong{font-weight:800}
.bottom-progress-copy{padding-top:5px;border-top:1px solid rgba(255,255,255,.07)}
.focus-card{width:min(472px,calc(100vw - 28px));bottom:106px}
.focus-share{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10)}
.focus-share[hidden]{display:none!important}
.focus-share-label{font-size:8px!important;font-weight:900!important;letter-spacing:.16em!important;color:rgba(255,255,255,.56);margin:0!important;overflow:visible!important}
.focus-share-buttons{display:flex;align-items:center;gap:7px}
.focus-social{width:31px;height:31px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.17);background:rgba(255,255,255,.035);color:#fff;padding:6px;cursor:pointer;transition:background .18s,border-color .18s,transform .18s}
.focus-social:hover{background:rgba(255,255,255,.11);border-color:rgba(255,255,255,.4);transform:translateY(-1px)}
.focus-social svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.focus-social.facebook svg path{fill:currentColor;stroke:none}.focus-social.x svg{stroke-width:2.1}.focus-social.whatsapp svg{stroke-width:1.5}
.project-lead{font-size:20px!important;color:#f0ece2!important}
.project-manifesto{margin:42px 0 34px;border-top:1px solid rgba(255,255,255,.15)}
.project-manifesto section{display:grid;grid-template-columns:34px 1fr;gap:18px;padding:24px 0;border-bottom:1px solid rgba(255,255,255,.11)}
.project-manifesto section>span{font-size:9px;font-weight:900;letter-spacing:.15em;color:#777c75;padding-top:5px}
.project-manifesto h3{font-family:var(--font-primary);font-size:17px;line-height:1.25;letter-spacing:-.01em;margin:0 0 8px;color:#fff}
.project-manifesto p{font-size:15px!important;line-height:1.65!important;margin:0;color:#aaa89f!important}
.project-endline{font-size:19px!important;color:#efebe2!important;font-style:italic;margin-top:30px!important}

.share-body{min-height:100vh;background:#080a09}.share-page{min-height:100vh;padding:28px clamp(18px,4vw,60px) 50px}.share-brand{display:inline-block;text-decoration:none;font-size:12px;font-weight:900;letter-spacing:.12em;margin-bottom:30px}.share-shell{width:min(1080px,100%);margin:0 auto;display:grid;grid-template-columns:minmax(300px,560px) minmax(260px,1fr);align-items:center;gap:clamp(28px,6vw,82px)}.share-image-wrap{background:#0d0f0e;border:1px solid rgba(255,255,255,.15);padding:10px;box-shadow:0 30px 100px rgba(0,0,0,.38)}.share-image-wrap img{width:100%;height:auto;display:block}.share-copy h1{font-size:clamp(44px,7vw,88px);line-height:.9;letter-spacing:-.06em;margin:12px 0 24px}.share-copy>p{font-family:var(--font-secondary);font-size:18px;line-height:1.65;color:#bcb8af}.share-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}.social-button{border:1px solid rgba(255,255,255,.18);background:#111412;color:#fff;text-decoration:none;padding:11px 13px;font-size:10px;font-weight:900;letter-spacing:.04em;cursor:pointer}.social-button:hover{border-color:rgba(255,255,255,.45);background:#181c19}.share-hint{min-height:18px!important;font-family:var(--font-primary)!important;font-size:10px!important;color:#8e8b83!important}.share-primary-links{display:flex;flex-direction:column;align-items:flex-start;gap:14px;margin-top:28px}.share-primary-links .flow-button{min-width:0}.ghost-share-link{font-size:10px;font-weight:900;letter-spacing:.12em;color:#aaa;text-decoration:none}.ghost-share-link:hover{color:#fff}
@media(max-width:760px){.share-page{padding:20px 15px 38px}.share-shell{grid-template-columns:1fr;gap:28px}.share-copy h1{font-size:48px}.share-copy>p{font-size:16px}.focus-card{bottom:143px}.focus-share{align-items:flex-start;flex-direction:column;gap:8px}.bottom-progress{padding-top:8px}.bottom-community-copy{font-size:8.5px}}
@media(max-width:430px){.focus-card{grid-template-columns:58px 1fr;gap:10px}.focus-thumb-wrap{width:58px;height:58px}.focus-share-buttons{gap:5px}.focus-social{width:29px;height:29px;padding:6px}}

/* v1.9.60 — compact footer share menu + Messenger. */
.footer-share-menu{position:relative;display:inline-flex;align-items:center;color:inherit}
.footer-share-menu>summary{list-style:none;cursor:pointer;white-space:nowrap;color:inherit;user-select:none;-webkit-user-select:none}
.footer-share-menu>summary::-webkit-details-marker{display:none}
.footer-share-menu>summary:hover,.footer-share-menu[open]>summary{color:#fff}
.footer-share-popover{position:absolute;z-index:80;right:0;bottom:calc(100% + 10px);min-width:174px;padding:6px;background:rgba(9,11,10,.97);border:1px solid rgba(255,255,255,.18);box-shadow:0 16px 48px rgba(0,0,0,.42);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);display:grid;gap:2px}
.footer-share-popover a,.footer-share-popover button{width:100%;display:flex;align-items:center;gap:9px;border:0;background:transparent;color:#d8d4cb;text-decoration:none;padding:8px 9px;font:800 9px/1.2 var(--font-primary);letter-spacing:.035em;text-align:left;cursor:pointer;white-space:nowrap}
.footer-share-popover a:hover,.footer-share-popover button:hover{background:rgba(255,255,255,.08);color:#fff}
.footer-share-popover svg{width:15px;height:15px;flex:0 0 15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.footer-share-popover a[aria-label="Facebook"] svg path{fill:currentColor;stroke:none}
.site-footer .footer-share-popover{left:50%;right:auto;transform:translateX(-50%)}
.focus-social.messenger svg{stroke-width:1.55}
@media(max-width:700px){.footer-share-popover{min-width:158px}.home-footer .footer-share-menu:nth-last-child(-n+2) .footer-share-popover{right:0}.site-footer .footer-share-popover{left:50%;right:auto}}

/* v1.9.63 — mobile spacing retained; automatic showcase uses the canvas pixel only. */
@media (any-pointer:coarse) and (max-width:1600px), (max-width:760px){
  .bottom-progress{
    bottom:calc(10px + env(safe-area-inset-bottom,0px));
  }
  .home-footer{
    bottom:calc(96px + env(safe-area-inset-bottom,0px));
    row-gap:8px;
  }
  .viewer-controls{
    bottom:calc(142px + env(safe-area-inset-bottom,0px));
  }
  .focus-card:not([data-mode="auto"]){
    bottom:calc(192px + env(safe-area-inset-bottom,0px));
  }
}

/* Portrait inactivity showcase: the enlarged square already drawn by the
   mosaic canvas is shifted upward by JavaScript. The card contains information
   only and is positioned immediately below that square — no duplicate photo. */
@media (orientation:portrait) and (any-pointer:coarse), (orientation:portrait) and (max-width:760px){
  .focus-card[data-mode="auto"]{
    top:var(--auto-card-top,56vh);
    bottom:auto;
    width:min(472px,calc(100vw - 24px));
    max-height:calc(100dvh - var(--auto-card-top,56vh) - 12px - env(safe-area-inset-bottom,0px));
    padding:12px;
    grid-template-columns:1fr;
    gap:10px;
    overflow:auto;
    overscroll-behavior:contain;
    transform:translate(-50%,12px);
  }
  .focus-card[data-mode="auto"].open{transform:translate(-50%,0)}
  .focus-card[data-mode="auto"] .focus-thumb-wrap{display:none}
  .focus-card[data-mode="auto"] .focus-copy{min-height:0;padding-right:24px}
  .focus-card[data-mode="auto"] .focus-copy strong{font-size:22px}
  .focus-card[data-mode="auto"] .focus-title-link{font-size:12px;margin-top:3px;white-space:normal;overflow:visible;text-overflow:clip}
  .focus-card[data-mode="auto"] .focus-copy p{font-size:10px;line-height:1.4}
  .focus-card[data-mode="auto"] .focus-share{
    grid-column:1;
    padding-top:9px;
    margin:0;
    align-items:center;
    flex-direction:row;
  }
  .home-page.auto-showcase .home-footer,
  .home-page.auto-showcase .bottom-progress,
  .home-page.auto-showcase .viewer-controls{
    opacity:0;
    visibility:hidden;
    pointer-events:none;
  }
}

/* Landscape stays compact to preserve usable height, while retaining the
   footer/counter spacing from the previous mobile pass. */
@media (any-pointer:coarse) and (max-width:1600px) and (orientation:landscape){
  .bottom-progress{bottom:calc(8px + env(safe-area-inset-bottom,0px))}
  .home-footer{bottom:calc(84px + env(safe-area-inset-bottom,0px))}
  .viewer-controls{bottom:calc(122px + env(safe-area-inset-bottom,0px))}
  .focus-card:not([data-mode="auto"]){bottom:calc(164px + env(safe-area-inset-bottom,0px))}
}


/* v1.9.72 — PIXELISTS country distribution. */
.participants-country-breakdown{margin:0 0 26px;padding:18px;border:1px solid #302f2b;background:#0d0e0d}
.participants-country-breakdown-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:14px}
.participants-country-kicker{margin:0 0 6px!important;color:#918b82!important;font-family:var(--font-primary)!important;font-size:8px!important;font-weight:900;letter-spacing:.14em;text-transform:uppercase}
.participants-country-breakdown h2{margin:0;font-family:var(--font-secondary);font-size:clamp(22px,2.5vw,34px);font-weight:700;line-height:1.05}
.participants-country-total{flex:0 0 auto;color:#9d978d;font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.participants-country-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:7px}
.participants-country-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;min-height:48px;padding:8px 10px;border:1px solid #2f312e;background:#121412;color:#eee9df;text-decoration:none;transition:border-color .16s ease,background .16s ease,transform .16s ease}
.participants-country-item:hover,.participants-country-item:focus-visible{border-color:#777269;background:#181a18;transform:translateY(-1px);outline:none}
.participants-country-item.is-active{border-color:#d8d1c6;background:#1c1e1b}
.participants-country-flag{font-size:23px;line-height:1;filter:saturate(.94);text-shadow:0 1px 8px rgba(0,0,0,.4)}
.participants-country-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:800}
.participants-country-item strong{font-size:13px;font-variant-numeric:tabular-nums}
@media(max-width:700px){.participants-country-breakdown{margin-bottom:20px;padding:14px}.participants-country-breakdown-head{align-items:flex-start;flex-direction:column;gap:7px}.participants-country-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.participants-country-item{min-height:46px;padding:8px}.participants-country-flag{font-size:21px}}
@media(max-width:390px){.participants-country-grid{grid-template-columns:1fr}}


/* v1.9.78 — larger, interactive double inactivity carousel on desktop. */
.idle-pixel-carousel{position:absolute;z-index:2;left:50%;top:50%;width:min(1260px,97vw);transform:translate(-50%,-50%);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .28s ease,visibility .28s ease}
.idle-pixel-carousel-viewport{width:100%;overflow:hidden;padding:7px 0 9px;mask-image:linear-gradient(90deg,transparent 0,#000 6%,#000 94%,transparent 100%);-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 6%,#000 94%,transparent 100%)}
.idle-pixel-carousel-viewport-secondary{margin-top:3px}
.idle-pixel-carousel-track{display:flex;width:max-content;will-change:transform;animation:ompIdleCarouselRight var(--idle-carousel-duration,52s) linear infinite;animation-play-state:paused}
.idle-pixel-carousel-track-reverse{animation-direction:reverse}
.idle-pixel-carousel-group{display:flex;align-items:flex-start;gap:17px;padding-right:17px}
.idle-pixel-card{width:202px;flex:0 0 202px;padding:0;margin:0;background:rgba(9,11,10,.84);border:1px solid rgba(255,255,255,.2);box-shadow:0 14px 46px rgba(0,0,0,.36);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);overflow:hidden;text-align:center;color:#fff;cursor:pointer;outline:none;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.idle-pixel-card:hover,.idle-pixel-card:focus-visible{transform:translateY(-3px);border-color:rgba(255,255,255,.52);box-shadow:0 18px 54px rgba(0,0,0,.46)}
.idle-pixel-card-image{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;background:#151815}
.idle-pixel-card-copy{min-height:70px;padding:12px 13px 10px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:8px;text-align:center;text-shadow:0 1px 5px rgba(0,0,0,.85)}
.idle-pixel-card-coords{width:100%;font-size:14px;line-height:1.3;font-weight:900;letter-spacing:.055em;color:rgba(255,255,255,.94);white-space:nowrap;text-align:center}
.idle-pixel-card-flag{margin-top:auto;min-height:27px;font-size:25px;line-height:1;display:flex;align-items:flex-end;justify-content:center}
.home-page.idle-carousel-active .hero-panel{opacity:0;visibility:hidden}
.home-page.idle-carousel-active .idle-pixel-carousel{opacity:1;visibility:visible;pointer-events:auto}
.home-page.idle-carousel-active .idle-pixel-carousel-track{animation-play-state:running}
.home-page.idle-carousel-active .hero-tagline-effect span,.home-page.idle-carousel-active .hero-tagline-effect span::before,.home-page.idle-carousel-active .hero-tagline-effect span::after{animation-play-state:paused!important}
@keyframes ompIdleCarouselRight{from{transform:translateX(-50%)}to{transform:translateX(0)}}
@media(max-width:700px){
  .idle-pixel-carousel{width:100vw;top:50%}
  .idle-pixel-carousel-viewport{padding:12px 0 16px;mask-image:linear-gradient(90deg,transparent 0,#000 4%,#000 96%,transparent 100%);-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 4%,#000 96%,transparent 100%)}
  .idle-pixel-carousel-viewport-secondary{display:none}
  .idle-pixel-carousel-group{gap:12px;padding-right:12px}
  .idle-pixel-card{width:166px;flex-basis:166px}
  .idle-pixel-card-copy{min-height:66px;padding:10px 10px 9px;gap:7px}
  .idle-pixel-card-coords{font-size:12px;letter-spacing:.045em}
  .idle-pixel-card-flag{min-height:25px;font-size:23px}
}
@media(prefers-reduced-motion:reduce){.idle-pixel-carousel-track{animation-duration:90s}}


/* v1.9.82 — mobile manual pixel focus: canvas pixel above, information card below. */
@media (orientation:portrait) and (any-pointer:coarse), (orientation:portrait) and (max-width:760px){
  .focus-card[data-mode="manual"]{
    top:var(--manual-card-top,54vh);
    bottom:auto;
    width:min(472px,calc(100vw - 24px));
    max-height:calc(100dvh - var(--manual-card-top,54vh) - 10px - env(safe-area-inset-bottom,0px));
    padding:12px;
    grid-template-columns:1fr;
    gap:10px;
    overflow:auto;
    overscroll-behavior:contain;
    transform:translate(-50%,12px);
  }
  .focus-card[data-mode="manual"].open{transform:translate(-50%,0)}
  .focus-card[data-mode="manual"] .focus-thumb-wrap{display:none}
  .focus-card[data-mode="manual"] .focus-copy{min-height:0;padding-right:24px}
  .focus-card[data-mode="manual"] .focus-title-link{white-space:normal;overflow:visible;text-overflow:clip}
  .focus-card[data-mode="manual"] .focus-share{grid-column:1}
  .home-page.mobile-manual-focus .home-footer,
  .home-page.mobile-manual-focus .bottom-progress,
  .home-page.mobile-manual-focus .viewer-controls,
  .home-page.mobile-manual-focus .viewer-hint{
    opacity:0;
    visibility:hidden;
    pointer-events:none;
  }
}

/* Charity commitment */
.charity-subtitle{max-width:760px;margin:14px auto 18px;font-size:clamp(15px,2vw,20px);line-height:1.5;font-weight:600;text-align:center}.charity-subtitle a{color:inherit;text-decoration:underline;text-underline-offset:4px}.charity-list{padding-left:1.5rem}.charity-list li{margin:1rem 0;line-height:1.65}.charity-list a{overflow-wrap:anywhere}.charity-list p{margin:.25rem 0}

/* Charity carousel: one official logo at a time, directly below the main action. */
.home-hero .hero-panel{gap:clamp(18px,2.6vh,30px);padding:clamp(18px,2.4vh,30px) 18px;max-height:100%;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;pointer-events:none;touch-action:pan-y}
.home-hero .hero-panel>*{flex-shrink:0}
.home-hero .charity-subtitle{margin:0;line-height:1.55;font-size:clamp(14px,1.8vw,18px)}
.charity-carousel{width:300px;max-width:100%;margin:6px auto 0;pointer-events:auto;text-shadow:none}
.charity-carousel .charity-carousel-heading{margin:0 0 14px;font-size:12.5px;line-height:1.4;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--fg,#f5f2e9)}
.charity-carousel-viewport{position:relative;height:125px;overflow:hidden;background:#fff;border:1px solid rgba(255,255,255,.24);border-radius:15px;isolation:isolate}
.charity-logo-slide{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:12.5px 20px;background:#fff;visibility:hidden;transform:translateY(100%);transition:transform .4s cubic-bezier(.22,.68,.25,1);pointer-events:none}
.charity-logo-slide.is-active,.charity-logo-slide.is-leaving{visibility:visible}
.charity-logo-slide.is-active{transform:translateY(0);pointer-events:auto;z-index:2}
.charity-logo-slide.is-leaving{z-index:1}
.charity-logo-slide.is-preparing{transition:none}
.charity-logo-slide.charity-logo-dark{background:#30283a}
.charity-logo-slide img{display:block;width:250px;height:95px;max-width:100%;object-fit:contain}
.charity-logo-slide:focus-visible{outline:3px solid #1679bd;outline-offset:-4px}
.charity-carousel .charity-carousel-name{min-height:35px;margin:14px 0 0;font-size:13.75px;line-height:1.3;color:var(--fg,#f5f2e9);font-weight:500}
.charity-carousel-controls{display:flex;align-items:center;justify-content:center;gap:14px;margin:10px 0 0}
.charity-carousel-controls[hidden]{display:none}
.charity-carousel-controls button{display:grid;place-items:center;box-sizing:border-box;min-width:44px;min-height:44px;width:44px;height:44px;flex:0 0 44px;margin:0;padding:0;border:1px solid rgba(255,255,255,.25);border-radius:50%;background:rgba(8,10,9,.55);color:#fff;cursor:pointer;font-size:0;line-height:0;letter-spacing:0}
.charity-carousel-controls button:hover{background:rgba(255,255,255,.17)}
.charity-carousel-controls button:focus-visible{outline:2px solid #fff;outline-offset:3px}
.charity-carousel-count{font-size:12.5px;font-variant-numeric:tabular-nums;letter-spacing:.08em;color:var(--fg,#f5f2e9)}
.drawer-copy .project-solidarity{padding-left:16px;border-left:2px solid currentColor}
@media(max-width:700px){.home-hero .hero-panel{padding:12px 4px;gap:18px}.charity-carousel{width:275px}.charity-carousel-viewport{height:108px}.charity-logo-slide{padding:10px 18px}.charity-logo-slide img{height:83px}.charity-carousel .charity-carousel-heading{margin-bottom:12px}}
@media(max-height:650px){.home-hero .hero-panel{padding-top:10px;padding-bottom:10px;gap:14px}.charity-carousel-viewport{height:90px}.charity-logo-slide img{height:68px}.charity-carousel .charity-carousel-name{margin-top:10px}}
@media(prefers-reduced-motion:reduce){.charity-logo-slide{transition:none}}

.charity-subtitle a{pointer-events:auto}
@media(max-height:800px),(max-width:700px){.home-hero .hero-panel{pointer-events:auto}}

/* Fixed SVG boxes remove font-baseline offsets from carousel controls. */
.charity-carousel-controls .charity-control-icon{display:block;position:static;width:22px;height:22px;min-width:22px;max-width:none;margin:0;padding:0;transform:none;pointer-events:none;stroke:currentColor;fill:none}
.charity-carousel-controls .charity-control-icon.is-hidden{display:none}
.charity-carousel-controls [data-charity-icon="play"]{transform:translateX(1px)}

/* Keep the registration flow stable during touch scrolling. */
body.registration-open{overflow:hidden;overscroll-behavior:none}
#termsModal .modal-card,#submissionModal .modal-card{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
body.registration-open .charity-logo-slide{transition:none}
@media(max-width:760px),(pointer:coarse){
  [data-promo-floating]{display:none!important;pointer-events:none!important}
  #termsModal,#submissionModal{overscroll-behavior:none}
}
