:root{font-family:Inter,ui-sans-serif,system-ui,sans-serif;color:#183a35;background:#f4f7f6;font-size:16px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer;border:0;border-radius:12px;padding:12px 18px;background:#e7eeeb;color:#183a35;font-weight:600}button:hover{filter:brightness(.96)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #4879e7;outline-offset:3px}.primary{background:#183f39;color:white}.accent{background:#c5ef77;color:#183a35}header{padding:24px 5vw;display:flex;justify-content:space-between;gap:20px;align-items:center;border-bottom:1px solid #dce6e1;background:white}.brand{text-decoration:none;color:#183f39;font-size:28px;font-weight:800;white-space:nowrap}.brand span{font-size:14px;font-weight:400;color:#667b75}.settings{display:flex;gap:10px;flex-wrap:wrap}select,input,textarea{border:1px solid #cad8d2;background:white;padding:12px;border-radius:10px;color:inherit;max-width:100%}main{max-width:1220px;margin:auto;padding:35px 24px 60px}.eyebrow{font-size:14px;text-transform:uppercase;letter-spacing:.12em;color:#657e75;font-weight:700}h1{font-size:clamp(30px,4vw,46px);letter-spacing:-.04em;line-height:1.15;margin:12px 0 18px}h2{font-size:22px;margin:0 0 16px}h3{font-size:17px}p{line-height:1.6;color:#5d736b}.top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.tabs{display:flex;gap:5px;background:#e6eeea;border-radius:14px;padding:5px}.tabs button{background:transparent}.tabs button.active{background:white;box-shadow:0 2px 5px #173f3910}.layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px}.card{background:white;border:1px solid #dce6e1;border-radius:20px;padding:26px;margin-bottom:22px}.cover{background:#183f39;color:white;padding:28px;border-radius:20px;position:relative}.cover p{color:#c4d7cf}.cover .eyebrow{color:#c5ef77}.pill{display:inline-block;border-radius:20px;padding:7px 12px;background:#e8f3df;font-size:14px}.cover .pill{background:#ffffff18;color:white}label{display:block;font-weight:600;margin:16px 0 8px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}.fields input,.fields select,textarea,input.full{width:100%}textarea{resize:vertical;min-height:90px}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.hint{font-size:14px;color:#647970}.legend{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}.legend button.active{box-shadow:0 0 0 2px #183f39}.legend button[data-mode="1"]{background:#d5ecd3}.legend button[data-mode="2"]{background:#b9e879}.gridwrap{overflow-x:auto;border:1px solid #dbe5df;border-radius:14px}.grid{display:grid;grid-template-columns:105px repeat(3,minmax(105px,1fr));min-width:440px;user-select:none}.grid>div{padding:12px 7px;font-size:14px;text-align:center;background:#f5f8f6}.grid .time{font-size:14px;background:white;display:flex;align-items:center;justify-content:center;min-height:42px}.slot{border-radius:0;background:#edf3ef;border:2px solid white;min-height:42px;padding:2px;font-size:14px;touch-action:none}.slot[data-value="1"]{background:#d5ecd3}.slot[data-value="2"]{background:#b9e879}.slot.selected{outline:3px solid #183f39;outline-offset:-4px}.places{display:grid;gap:10px}.place{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #d9e3de;padding:16px;border-radius:13px}.place label{margin:0;display:flex;gap:12px;align-items:center;font-weight:500}.place input{width:20px;height:20px}.result{width:100%;text-align:start;display:flex;justify-content:space-between;align-items:center;padding:18px;margin:10px 0;background:#f2f6f3;gap:12px}.result.chosen{outline:2px solid #183f39}.result small{display:block;font-weight:400;margin-top:5px}.number{font-size:35px;font-weight:750}.stats{display:flex;gap:28px;margin:20px 0}.people{padding:10px 0;border-bottom:1px solid #e3ebe6;display:flex;justify-content:space-between}.sponsor{background:transparent;border:1px dashed #b6c8bd;border-radius:16px;padding:18px}.sponsor p{font-size:14px}.notice{background:#eef3f0;padding:14px;border-radius:12px;font-size:14px;line-height:1.5;margin-bottom:20px}.success{background:#e9f6d9;padding:22px;border-radius:14px}#toast{position:fixed;bottom:22px;inset-inline-end:22px;background:#183f39;color:white;border-radius:12px;padding:15px;display:none;max-width:90vw}.steps{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:24px;font-size:14px;color:#63796e}.steps span{padding:8px 12px;background:#e5ede7;border-radius:8px}input[type=checkbox]{accent-color:#183f39}.wide{max-width:760px;margin:auto}.empty{text-align:center;padding:30px}.muted{color:#647970}.review{font-size:14px;background:#eef3e9;padding:14px;border-radius:12px}@media(max-width:800px){header{padding:18px;align-items:flex-start;flex-direction:column}.settings{width:100%}.settings select{flex:1;min-width:120px;font-size:14px}main{padding:24px 16px}.layout{grid-template-columns:1fr}.top{align-items:flex-start;flex-direction:column}.fields{grid-template-columns:1fr}.card{padding:20px}.tabs{width:100%}.tabs button{flex:1;padding:10px}aside{display:grid;grid-template-columns:1fr;gap:0}.brand span{display:none}.grid{grid-template-columns:90px repeat(3,minmax(100px,1fr))}}[dir=rtl] .result{text-align:right}
#globalPanel{max-width:1172px;margin:24px auto 0;padding:24px;background:white;border:1px solid #dce6e1;border-radius:20px}.global-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:24px}.worldmap{width:100%;background:#edf4f4;border-radius:16px;display:block}.worldmap path{fill:#b8cebf;stroke:#fff;stroke-width:.5;cursor:pointer}.worldmap path:hover,.worldmap path.active{fill:#1e6355;stroke:#183f39}.worldmap circle{fill:#183f39;cursor:pointer}.calendar-preview{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin-top:14px}.calendar-preview button{padding:8px 2px;border-radius:6px;font-size:14px}.calendar-preview .weekday{text-align:center;font-size:14px;padding:6px 0}.calendar-preview button.today{background:#c5ef77}.global-controls select{width:100%}.global-controls h2{margin-top:12px}.sources{font-size:14px;margin-top:15px}.sources a{color:#1b6355}.language-detail{font-size:14px;line-height:1.5;padding:12px;background:#edf4f0;border-radius:10px;margin-top:14px}@media(max-width:800px){#globalPanel{margin:16px;padding:18px}.global-layout{grid-template-columns:1fr}.worldmap{min-height:170px}.settings button{font-size:14px}}
:root{color:#242849;background:#f6f7fc}header{border-color:#e1e5f2}.brand{color:#393b7a}button{background:#eef0fa;color:#393b7a}.primary{background:#5955cd;color:#fff;box-shadow:0 6px 16px #5955cd20}.accent{background:#ffda7d}.card{border-color:#e3e5f1;box-shadow:0 10px 30px #44458805}select{appearance:none;padding-inline-end:42px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%2359558c' stroke-width='2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center}[dir=rtl] select{background-position:left 16px center}input,select,textarea{border-color:#d7daeb}input[type=file]{width:100%;font-size:14px}.landing{text-align:center;min-height:calc(100vh - 160px);display:flex;align-items:center;flex-direction:column;justify-content:center;padding:20px 0 50px}.landing h1{font-size:clamp(38px,5.5vw,70px);max-width:800px;margin:18px 0;letter-spacing:-.045em;color:#343561}.landing p{font-size:20px;max-width:560px;margin:0 0 30px;color:#73758f}.welcome-pill{background:#fff0d1;color:#8b662d;border-radius:25px;padding:6px 18px;font-weight:700}.landing-cta{padding:18px 30px;font-size:18px;border-radius:18px}.resume{background:transparent;margin-top:12px}.landing-tags{display:flex;gap:24px;flex-wrap:wrap;justify-content:center;margin-top:45px;color:#717390;font-size:14px}.gather-motion{width:330px;height:210px;position:relative;margin-bottom:12px}.avatar{position:absolute;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;font-size:24px;font-weight:800;box-shadow:0 7px 20px #46488213;animation:comeTogether 5s ease-in-out infinite}.a1{left:20px;top:40px;background:#ffbdc6;color:#963c64;--dx:52px;--dy:20px}.a2{left:235px;top:20px;background:#ffd77e;color:#8c6224;--dx:-56px;--dy:32px;animation-delay:.3s}.a3{left:20px;top:135px;background:#abdfd4;color:#26796a;--dx:58px;--dy:-30px;animation-delay:.6s}.a4{left:245px;top:133px;background:#a7c8f5;color:#3b619c;--dx:-65px;--dy:-28px;animation-delay:.9s}.a5{left:140px;top:0;background:#cdbbfd;color:#7048a8;--dx:0px;--dy:36px;animation-delay:1.2s}.gather-center{position:absolute;left:136px;top:94px;font-size:48px;color:#5955cd}@keyframes comeTogether{0%,100%{transform:translate(0,0)}50%{transform:translate(var(--dx),var(--dy))}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.create-shell{display:grid;grid-template-columns:300px minmax(0,700px);justify-content:center;gap:50px}.create-intro{padding:10px 0;position:sticky;top:25px;align-self:start}.create-intro h1{font-size:42px;color:#343561}.create-intro p{color:#74758c}.back-button{background:transparent;padding-inline-start:0;margin-bottom:30px}.mini-orbit{display:flex;margin-top:30px}.mini-orbit span{width:48px;height:48px;border:3px solid #f6f7fc;margin-inline-end:-10px;border-radius:50%;display:grid;place-items:center;font-weight:700;background:#ffbdc6;color:#963c64}.mini-orbit span:nth-child(2){background:#ffd77e;color:#8c6224}.mini-orbit span:nth-child(3){background:#abdfd4;color:#26796a}.create-card{padding:32px}.form-section{position:relative;border-bottom:1px solid #ececf5;padding-bottom:26px;margin-bottom:26px}.form-section h2{margin-top:14px}.section-number{display:inline-grid;place-items:center;border-radius:9px;width:32px;height:32px;font-size:14px;font-weight:700;background:#d9eae6;color:#3c8271}.section-number.pink{background:#ffe0e6;color:#af4b75}.section-number.yellow{background:#fff0cd;color:#937027}.section-number.purple{background:#e9e0ff;color:#7954ad}small{font-size:14px;color:#888a9e;font-weight:400}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;margin:14px 0}.calendar-toolbar strong{text-align:center}.calendar-toolbar button{font-size:22px;padding:5px 14px}.candidate-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.candidate-calendar .weekday{text-align:center;font-size:14px;padding:8px 0;overflow:hidden}.candidate-calendar button{background:#f3f4fa;padding:12px 2px;border-radius:10px;min-height:44px}.candidate-calendar button.picked{background:#5955cd;color:white}.chosen-dates{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin-top:16px}.chosen-dates span{width:100%;font-size:14px;color:#7b7c92;margin-bottom:5px}.chosen-dates button{padding:7px 10px;font-size:14px;background:#eeeaff;color:#65529d}.place-option{display:flex;gap:7px}.add-option{margin-top:14px;background:#f6f0ff;color:#805cb0}.create-submit{width:100%;padding:16px}.picture-preview{position:relative;margin-top:15px}.picture-preview img{width:100%;height:180px;object-fit:cover;border-radius:14px}.picture-preview button{position:absolute;inset-inline-end:12px;bottom:12px;background:white}.event-visual{border-radius:22px;overflow:hidden;background:#f6dae7}.event-colorline{height:10px;background:linear-gradient(90deg,#ffc5d4 0% 25%,#ffda7d 25% 50%,#b6e4d7 50% 75%,#c2aff3 75%)}.event-photo{width:100%;max-height:290px;object-fit:cover;display:block}.cover{background:#5551a9;border-radius:0;color:white}.cover .eyebrow{color:#ffdf93}.cover p{color:#e3e0fa}.location-summary{padding:18px;background:#f5f1ff;border-radius:14px;margin-top:20px}.location-summary p{margin-bottom:0;overflow-wrap:anywhere}.slot[data-value="1"]{background:#cde9e0}.slot[data-value="2"]{background:#b7a7ef;color:#3f3276}.legend button[data-mode="1"]{background:#cde9e0}.legend button[data-mode="2"]{background:#b7a7ef;color:#3f3276}.legend button.active{box-shadow:0 0 0 2px #5955cd}.result.chosen{outline-color:#5955cd}.success{background:#ede8ff}.tabs{background:#ececf7}.pill{background:#eee8ff}.sponsor{border-color:#ccc5e3}.eyebrow{color:#7e709d}.settings{align-items:center}.gridwrap{border-color:#e0e3ef}@media(max-width:850px){.create-shell{grid-template-columns:1fr;gap:10px}.create-intro{position:static}.create-intro .mini-orbit{display:none}.create-intro .back-button{margin-bottom:5px}.create-intro h1{font-size:34px}.create-card{padding:20px}.landing p{font-size:18px}.landing-tags{gap:14px}.gather-motion{transform:scale(.85);margin-bottom:0}.candidate-calendar .weekday{font-size:12px}.candidate-calendar button{padding:10px 0}.landing{padding-top:0}}
.share-dialog{border:1px solid #e1dff1;border-radius:24px;padding:28px;max-width:560px;width:calc(100% - 32px);max-height:90vh;color:#343561;overflow-y:auto;box-shadow:0 25px 90px #25234530}.share-dialog::backdrop{background:#28244b66;backdrop-filter:blur(4px)}.share-dialog .top{margin-bottom:0}.share-dialog h2{margin:0}.share-url{display:flex;gap:8px}.share-url input{flex:1;min-width:0;width:100%;font-size:14px}.social-links{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0;align-items:center}.social-links a{color:#6551a5;background:#f1edfa;padding:10px 12px;border-radius:10px;text-decoration:none;font-size:14px}.qr-preview{width:220px;margin:20px auto 5px}.qr-preview svg{width:100%;height:auto;display:block}.share-dialog .notice{margin-top:20px;margin-bottom:0}.share-dialog .full{width:100%}@media(max-width:500px){.share-dialog{padding:20px}.share-url{flex-direction:column}.qr-preview{width:190px}}
.layout>section,.layout>aside,.create-shell>*,.event-visual{min-width:0;max-width:100%}.event-photo{max-width:100%}.gridwrap{max-width:100%}
.gather-map-animation{width:min(650px,100%);aspect-ratio:2/1;position:relative;margin:0 auto 10px;isolation:isolate;direction:ltr}.arrival-map,.arrival-routes{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.arrival-map{animation:mapRecede 6.8s ease forwards}.arrival-map path{fill:#d8daee;stroke:#f6f7fc;stroke-width:.7}.arrival-routes path{fill:none;stroke-width:2;stroke-dasharray:700;stroke-dashoffset:700;opacity:0;animation:traceArrival 5s ease forwards;animation-delay:var(--delay)}.map-traveler{position:absolute;left:var(--origin-x);top:var(--origin-y);transform:translate(-50%,-50%);width:clamp(28px,6vw,44px);height:clamp(28px,6vw,44px);border-radius:50%;background:var(--color);color:#4a4775;display:grid;place-items:center;border:2px solid white;box-shadow:0 4px 12px #35316315;animation:travelTogether 5.4s cubic-bezier(.45,0,.25,1) forwards;animation-delay:var(--delay)}.map-traveler svg{width:65%;height:65%}.formed-logo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.7);display:flex;align-items:center;gap:12px;color:#5955cd;opacity:0;white-space:nowrap;animation:formGather 6.5s ease forwards}.formed-symbol{font-size:clamp(48px,8vw,74px);line-height:1}.formed-logo strong{font-size:clamp(38px,7vw,60px);letter-spacing:-.06em;line-height:1}@keyframes travelTogether{0%,18%{left:var(--origin-x);top:var(--origin-y);opacity:0;transform:translate(-50%,-50%) scale(.6)}28%{opacity:1;transform:translate(-50%,-50%) scale(1)}80%{left:50%;top:50%;opacity:1;transform:translate(-50%,-50%) scale(.65)}100%{left:50%;top:50%;opacity:0;transform:translate(-50%,-50%) scale(.12)}}@keyframes traceArrival{0%,20%{opacity:0;stroke-dashoffset:700}40%{opacity:.8}82%{opacity:.7;stroke-dashoffset:0}100%{opacity:0;stroke-dashoffset:0}}@keyframes mapRecede{0%,60%{opacity:.9;transform:scale(1)}100%{opacity:.22;transform:scale(.97)}}@keyframes formGather{0%,70%{opacity:0;transform:translate(-50%,-50%) scale(.7)}88%{opacity:1;transform:translate(-50%,-50%) scale(1.06)}100%{opacity:1;transform:translate(-50%,-50%) scale(1)}}@media(prefers-reduced-motion:reduce){.map-traveler,.arrival-routes{display:none}.arrival-map{opacity:.22}.formed-logo{opacity:1;transform:translate(-50%,-50%) scale(1)}}
/* Compact candidate-date picker; preserve comfortable mobile touch targets. */
#candidateCalendar{width:100%;max-width:330px}.calendar-toolbar{margin:10px 0 8px;gap:8px}.calendar-toolbar strong{font-size:16px}.calendar-toolbar button{font-size:20px;padding:3px 11px;min-height:32px}.candidate-calendar{gap:3px}.candidate-calendar .weekday{font-size:12px;padding:4px 0}.candidate-calendar button{font-size:14px;min-height:32px;height:32px;padding:4px 0;border-radius:7px}.chosen-dates{gap:5px;margin-top:10px}.chosen-dates span{font-size:13px;margin-bottom:3px}.chosen-dates button{padding:5px 8px;font-size:13px;border-radius:7px}@media(pointer:coarse){.candidate-calendar button{min-height:40px;height:40px}.calendar-toolbar button{min-height:40px}}
.guest-editing [data-view="results"],.guest-editing .layout>aside>.card .stats,.guest-editing .layout>aside>.card>h2{display:none}.guest-editing .tabs{background:transparent;padding:0}.guest-editing .tabs [data-view="guest"]{background:#ececf7;box-shadow:none;cursor:default}
.arrival-map{border-radius:24px;overflow:hidden}.arrival-map .city-ground{fill:#ebeefa}.arrival-map .city-block{fill:#d9dcee;stroke:#f6f7fc;stroke-width:1}.arrival-map .city-park{fill:#c5dfd4}.arrival-map .city-avenue{fill:none;stroke:#f6f7fc;stroke-width:14}.arrival-map .city-river{fill:none;stroke:#c6d9f0;stroke-width:17}
.cinematic-city{width:min(740px,100%);overflow:hidden;border-radius:26px;aspect-ratio:2/1}.city-artwork{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:cityEntrance 11s ease forwards}.cinematic-city .arrival-routes path{stroke-width:2.5;animation:cityRoute 7.8s ease forwards;animation-delay:var(--delay)}.cinematic-city .map-traveler{animation:cityPeople 8s cubic-bezier(.4,0,.22,1) forwards;animation-delay:var(--delay);z-index:2}.logo-assembly{position:absolute;left:50%;top:50%;width:260px;height:82px;transform:translate(-50%,-50%);z-index:3;direction:ltr}.assembled-circle{position:absolute;left:89px;top:0;width:82px;height:82px;overflow:visible;animation:logoSlideLeft 11s cubic-bezier(.4,0,.2,1) forwards}.logo-ring{fill:#f6f7fc;stroke:#5955cd;stroke-width:4;stroke-dasharray:283;stroke-dashoffset:283;animation:circleBlend 11s ease forwards}.logo-half{fill:#5955cd;transform-origin:50px 50px;opacity:0;animation:halfPaint 11s ease forwards}.assembled-word{position:absolute;left:94px;top:17px;font-size:54px;letter-spacing:-.06em;color:#5955cd;line-height:1;opacity:0;animation:wordReveal 11s ease forwards}@keyframes cityEntrance{0%{opacity:0;transform:scale(1.08)}14%,45%{opacity:1;transform:scale(1)}72%{opacity:.18;transform:scale(1)}100%{opacity:.12;transform:scale(1)}}@keyframes cityPeople{0%,24%{left:var(--origin-x);top:var(--origin-y);opacity:0;transform:translate(-50%,-50%) scale(.5)}34%{opacity:1;transform:translate(-50%,-50%) scale(1)}76%{left:50%;top:50%;opacity:1;transform:translate(-50%,-50%) scale(.75);background:var(--color)}88%{left:50%;top:50%;opacity:.8;transform:translate(-50%,-50%) scale(.45);background:#5955cd}100%{left:50%;top:50%;opacity:0;transform:translate(-50%,-50%) scale(.08);background:#5955cd}}@keyframes cityRoute{0%,28%{opacity:0;stroke-dashoffset:700}42%{opacity:.8}80%{opacity:.7;stroke-dashoffset:0}100%{opacity:0;stroke-dashoffset:0}}@keyframes circleBlend{0%,56%{stroke-dashoffset:283;fill:transparent;opacity:0}62%{opacity:1;fill:transparent}72%{stroke-dashoffset:0;fill:#f6f7fc}100%{stroke-dashoffset:0;opacity:1;fill:#f6f7fc}}@keyframes halfPaint{0%,62%{opacity:0;transform:scaleY(.05)}72%,100%{opacity:1;transform:scaleY(1)}}@keyframes logoSlideLeft{0%,78%{left:89px}92%,100%{left:0}}@keyframes wordReveal{0%,86%{opacity:0;transform:translateX(18px)}100%{opacity:1;transform:translateX(0)}}@media(prefers-reduced-motion:reduce){.city-artwork{opacity:.12;transform:none}.cinematic-city .map-traveler,.cinematic-city .arrival-routes{display:none}.assembled-circle{left:0}.logo-ring{opacity:1;stroke-dashoffset:0;fill:#f6f7fc}.logo-half{opacity:1;transform:none}.assembled-word{opacity:1;transform:none}}
.cinematic-city{width:min(650px,100%)}.cinematic-city .city-artwork{animation:cityEntrance 11s ease forwards}.cinematic-city .map-traveler{box-shadow:none;border-width:1.5px}.cinematic-city .arrival-routes path{stroke-width:1.5;opacity:.6}.logo-assembly{width:230px;height:72px}.assembled-circle{left:79px;width:72px;height:72px}.assembled-word{left:83px;top:15px;font-size:48px}@keyframes logoSlideLeft{0%,78%{left:79px}92%,100%{left:0}}@media(prefers-reduced-motion:reduce){.cinematic-city .city-artwork{animation:none!important;opacity:.12}.assembled-circle{left:0}}
/* Quiet availability grid: the axis carries the time, cells carry availability. */
.grid .time{min-height:28px;font-size:12px;align-items:flex-start;padding-top:3px}.slot{min-height:28px;height:28px;border-width:1px;padding:0}.slot[data-major="true"]{border-top:2px solid #d7dbea}.grid>div{padding:10px 6px}.grid .time{padding:3px 5px 0}.slot:hover{box-shadow:inset 0 0 0 2px #7772ce}.slot:focus-visible{outline:2px solid #5955cd;outline-offset:-2px}@media(pointer:coarse){.slot,.grid .time{min-height:32px;height:32px}}
/* Deliberate animation beats: city, arrivals, merging, mark, word. */
.cinematic-city .city-artwork{animation:cityEntrance 9s ease forwards}.cinematic-city .map-traveler{animation:cityPeople 6.6s cubic-bezier(.45,0,.2,1) forwards;animation-delay:var(--delay)}.cinematic-city .arrival-routes path{animation:cityRoute 6.3s ease forwards;animation-delay:var(--delay)}.assembled-circle,.logo-ring,.logo-half,.assembled-word{animation-duration:9s}@keyframes cityPeople{0%,24%{left:var(--origin-x);top:var(--origin-y);opacity:0;transform:translate(-50%,-50%) scale(.8)}32%,40%{left:var(--origin-x);top:var(--origin-y);opacity:1;transform:translate(-50%,-50%) scale(1)}78%{left:50%;top:50%;opacity:1;transform:translate(-50%,-50%) scale(.8)}90%{left:50%;top:50%;opacity:1;transform:translate(-50%,-50%) scale(.5);background:#5955cd}100%{left:50%;top:50%;opacity:0;transform:translate(-50%,-50%) scale(.1);background:#5955cd}}@keyframes circleBlend{0%,57%{stroke-dashoffset:283;opacity:0;fill:transparent}60%{opacity:1;fill:transparent}73%,100%{stroke-dashoffset:0;opacity:1;fill:#f6f7fc}}@keyframes halfPaint{0%,62%{opacity:0;transform:scaleY(0)}76%,100%{opacity:1;transform:scaleY(1)}}@keyframes logoSlideLeft{0%,81%{left:79px}94%,100%{left:0}}@keyframes wordReveal{0%,90%{opacity:0;transform:translateX(12px)}100%{opacity:1;transform:translateX(0)}}
/* Availability feels like continuous bands rather than a table of buttons. */
.grid .time{min-height:20px;height:20px}.slot{min-height:20px;height:20px;border:0;border-inline-start:4px solid white;background:#eef0f7}.slot[data-major="true"]{border-top:1px solid #d9dcec}.slot:hover{box-shadow:none;background:#dde1f0}.slot[data-value="1"]{background:#a7d9c7}.slot[data-value="2"]{background:#b7a4ef}.slot[data-value="1"]:hover{background:#a7d9c7}.slot[data-value="2"]:hover{background:#b7a4ef}.grid .time{font-size:13px}.painting-feedback{min-height:28px;color:#5955a0;font-weight:600;font-size:14px;margin:10px 0 0}.gridwrap{border-radius:12px}.legend{margin-bottom:12px}.legend button{padding:9px 13px;font-size:14px}@media(pointer:coarse){.slot,.grid .time{min-height:28px;height:28px}}
.replay-animation{background:transparent;font-size:13px;font-weight:500;color:#7c7a97;padding:5px 10px;margin-top:-5px;margin-bottom:6px}
.availability-bands .time{position:relative;overflow:visible;min-height:26px;height:26px;padding:0;background:#fff;border-top:1px solid transparent}.availability-bands .time span{position:absolute;inset-inline-end:12px;top:0;transform:translateY(-50%);font-size:13px;line-height:16px;white-space:nowrap;background:white;padding:0 3px;z-index:1;color:#48476a}.availability-bands .time[data-major="true"]{border-top:2px solid #9495b5}.availability-bands .slot{min-height:26px;height:26px;border-top:1px solid #dce0ec;border-inline-start:5px solid white}.availability-bands .slot[data-major="true"]{border-top:2px solid #9495b5}.availability-bands>div:not(.time){padding-bottom:16px}.availability-bands .grid-end{height:12px;padding:0!important;border-top:2px solid #9495b5;background:white}.availability-bands .end-time{height:12px;min-height:12px}.availability-bands .time:not([data-major="true"]):after{content:'';position:absolute;inset-inline-end:0;top:-1px;width:6px;height:1px;background:#dce0ec}@media(pointer:coarse){.availability-bands .slot,.availability-bands .time{min-height:30px;height:30px}.availability-bands .end-time{min-height:12px;height:12px}}
/* The participants themselves become the painted half of the mark. */
.cinematic-city .map-traveler{box-shadow:none;overflow:hidden;border:0}.cinematic-city .map-traveler svg{animation:personIntoMark 6.6s ease forwards;animation-delay:var(--delay)}@keyframes cityPeople{0%,24%{left:var(--origin-x);top:var(--origin-y);opacity:0;transform:translate(-50%,-50%) scale(.8);clip-path:inset(0 round 50%)}32%,40%{left:var(--origin-x);top:var(--origin-y);opacity:1;transform:translate(-50%,-50%) scale(1);clip-path:inset(0 round 50%)}78%{left:50%;top:50%;opacity:1;transform:translate(-50%,-50%) scale(1);background:var(--color);clip-path:inset(0 round 50%)}92%{left:50%;top:50%;opacity:1;transform:translate(-50%,-50%) scale(1.6);background:#5955cd;clip-path:inset(50% 0 0 0)}100%{left:50%;top:50%;opacity:0;transform:translate(-50%,-50%) scale(1.6);background:#5955cd;clip-path:inset(50% 0 0 0)}}@keyframes personIntoMark{0%,75%{opacity:1}88%,100%{opacity:0}}@media(prefers-reduced-motion:reduce){.cinematic-city .map-traveler svg{animation:none!important}}
.cinematic-city .map-traveler,.cinematic-city .map-traveler svg,.cinematic-city .arrival-routes path{animation-fill-mode:both}.cinematic-city .map-traveler{opacity:0}.city-artwork{opacity:0}
.already-played *{animation:none!important}.already-played .city-artwork{opacity:.12;transform:none}.already-played .map-traveler,.already-played .arrival-routes{display:none}.already-played .assembled-circle{left:0}.already-played .logo-ring{opacity:1;stroke-dashoffset:0;fill:#f6f7fc}.already-played .logo-half{opacity:1;transform:none}.already-played .assembled-word{opacity:1;transform:none}
.arrival-map .city-block{fill:#dfe1ef;stroke:#f6f7fc;stroke-width:1}.arrival-map .city-block:nth-of-type(3n){fill:#d7dbec}.arrival-map .city-park{fill:#c7dfd4!important}.arrival-map .city-courtyard{fill:#eceef6;stroke:none}.arrival-map .city-alley{fill:none;stroke:#eef0f8;stroke-width:4}.arrival-map .park-walk{fill:none;stroke:#e9f3eb;stroke-width:3}.arrival-map .city-mainstreet{fill:none;stroke:#fff;stroke-width:8}.arrival-map .city-river{fill:none;stroke:#c5d9eb;stroke-width:13}.arrival-map .city-bridge{fill:none;stroke:#f8f9fe;stroke-width:10}.arrival-map .city-crosswalk{fill:none;stroke:#fff;stroke-width:1.3}
#siteFooter{max-width:1220px;margin:0 auto;padding:24px;border-top:1px solid #e1e3ee;display:flex;gap:20px;justify-content:space-between;color:#797b94;font-size:14px}#siteFooter nav{display:flex;gap:18px;flex-wrap:wrap}#siteFooter a{color:#656382;text-decoration:none}#siteFooter a:hover{text-decoration:underline}#siteFooter a[aria-current]{color:#5955cd;font-weight:700}.legal-page{max-width:760px;margin:auto;line-height:1.65}.legal-page h1{font-size:38px}.legal-page h2{font-size:21px;margin-top:28px}.legal-page p{color:#585b76}.legal-page .notice{color:#555675}.legal-page button{margin-inline-end:8px;margin-bottom:8px}.danger{background:#ffe6e9;color:#a33247}#dataActions{display:flex;flex-wrap:wrap;gap:8px}@media(max-width:700px){#siteFooter{flex-direction:column;padding:24px 16px}#siteFooter nav{gap:12px 18px}}
.cinematic-city:not(.city-ready):not(.already-played) *{animation-play-state:paused!important}.cinematic-city .city-artwork{width:100%;height:100%;object-fit:cover;border-radius:24px}.cinematic-city .arrival-routes path{opacity:.5}
/* Keep participants legible against the illustrated city. */
.cinematic-city .map-traveler{border:2px solid #fff;box-shadow:0 0 0 1.5px #55517b,0 3px 8px #24243c35;color:#302b59}.cinematic-city .map-traveler svg{stroke-width:2.1}
/* Clean logo handoff: converge, dissolve, reveal a stable mark, then slide. */
.cinematic-city .map-traveler{animation-name:cleanConvergence}.cinematic-city .map-traveler svg{animation-name:cleanPersonFade}.logo-ring{animation-name:cleanRingReveal}.logo-half{animation-name:cleanHalfReveal}@keyframes cleanConvergence{0%,24%{left:var(--origin-x);top:var(--origin-y);opacity:0;transform:translate(-50%,-50%) scale(.8);clip-path:none}32%,40%{left:var(--origin-x);top:var(--origin-y);opacity:1;transform:translate(-50%,-50%) scale(1);clip-path:none}76%{left:50%;top:50%;opacity:1;transform:translate(-50%,-50%) scale(.7);clip-path:none;box-shadow:0 0 0 1.5px #55517b,0 3px 8px #24243c35;border-color:white}89%{left:50%;top:50%;opacity:.4;transform:translate(-50%,-50%) scale(.35);clip-path:none;box-shadow:none;border-color:transparent;background:#5955cd}100%{left:50%;top:50%;opacity:0;transform:translate(-50%,-50%) scale(.2);clip-path:none;box-shadow:none;border-color:transparent;background:#5955cd}}@keyframes cleanPersonFade{0%,70%{opacity:1}84%,100%{opacity:0}}@keyframes cleanRingReveal{0%,67%{opacity:0;stroke-dashoffset:0;fill:#f6f7fc}79%,100%{opacity:1;stroke-dashoffset:0;fill:#f6f7fc}}@keyframes cleanHalfReveal{0%,67%{opacity:0;transform:none}79%,100%{opacity:1;transform:none}}
/* Preserve each participant's color throughout convergence. */
@keyframes cleanConvergence{0%,24%{left:var(--origin-x);top:var(--origin-y);opacity:0;transform:translate(-50%,-50%) scale(.8);clip-path:none;background:var(--color)}32%,40%{left:var(--origin-x);top:var(--origin-y);opacity:1;transform:translate(-50%,-50%) scale(1);clip-path:none;background:var(--color)}76%{left:50%;top:50%;opacity:1;transform:translate(-50%,-50%) scale(.7);clip-path:none;background:var(--color);box-shadow:0 0 0 1.5px #55517b,0 3px 8px #24243c35;border-color:white}89%{left:50%;top:50%;opacity:.4;transform:translate(-50%,-50%) scale(.35);clip-path:none;background:var(--color);box-shadow:none;border-color:transparent}100%{left:50%;top:50%;opacity:0;transform:translate(-50%,-50%) scale(.2);clip-path:none;background:var(--color);box-shadow:none;border-color:transparent}}
