:root{--bg:#faf9f6;--ink:#292638;--muted:#777382;--purple:#6557d7;--purple-dark:#5143b9;--lavender:#eeebfc;--line:#e9e6ef;--green:#27785b;--cream:#f5f0e6;--red:#b54550;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}button:disabled{cursor:not-allowed;opacity:.48}button{color:inherit}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.055em;line-height:1.08;font-size:clamp(2.6rem,5vw,4.5rem);font-weight:750}h2{font-size:1.5rem;letter-spacing:-.035em}h3{font-size:1.03rem;letter-spacing:-.015em}p{line-height:1.65}small{line-height:1.5}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #b4a8f6;outline-offset:3px}.skip{position:fixed;top:-60px;left:20px;background:var(--ink);color:#fff;padding:12px;z-index:100}.skip:focus{top:10px}.site-header{height:94px;max-width:1280px;margin:auto;padding:0 42px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;gap:11px;align-items:center;font-weight:750;font-size:1.2rem;letter-spacing:-.04em}.brand img{width:38px;height:38px}.header-actions{display:flex;align-items:center;gap:24px}.nav-home{font-size:.9rem;color:var(--muted)}.avatar{border:0;border-radius:50%;height:40px;width:40px;background:#efddc7;color:#674f36;font-weight:700}.shell{max-width:1280px;padding:0 42px 60px;margin:auto}.hero{display:grid;grid-template-columns:1.1fr .9fr;padding:55px 0 48px;gap:40px;align-items:center}.eyebrow{font-size:.7rem;font-weight:800;letter-spacing:.2em;color:var(--purple);display:flex;gap:10px;align-items:center;margin-bottom:22px}.eyebrow:before{content:"";width:21px;height:2px;background:currentColor}.hero h1{white-space:pre-line;margin-bottom:22px;max-width:650px}.intro{max-width:470px;color:var(--muted);font-size:1rem}.btn{border:0;background:var(--purple);color:white;padding:14px 20px;min-height:48px;border-radius:13px;font-weight:650;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-size:.91rem;transition:background .15s,transform .15s}.btn:hover{background:var(--purple-dark);transform:translateY(-1px)}.btn.secondary{background:white;color:var(--ink);border:1px solid var(--line)}.btn.ghost{background:transparent;color:var(--purple);border:1px solid #d8d1ef}.btn.danger{background:#fae9e9;color:var(--red)}.btn.small{padding:8px 12px;min-height:38px;font-size:.8rem;border-radius:10px}.btn.full{width:100%}.hero-actions{display:flex;gap:13px;margin-top:28px;flex-wrap:wrap}.micro{font-size:.77rem;color:var(--muted);display:flex;gap:7px;align-items:center;margin-top:17px}.micro svg{width:15px;height:15px}.hero-art{height:350px;position:relative;background:radial-gradient(ellipse at center,#f0edfc 0,#f0edfc 60%,transparent 61%);overflow:hidden}.route-art{position:absolute;inset:20px;width:95%;height:90%;stroke:none}.floating{position:absolute;background:#fff;padding:16px 20px;border:1px solid #ede9f2;border-radius:18px;box-shadow:0 12px 45px #3525660d;display:flex;gap:13px;align-items:center;transform:rotate(-4deg);left:16px;top:55px;font-size:.85rem}.floating.second{left:auto;right:15px;top:155px;transform:rotate(5deg)}.floating.third{left:80px;top:260px;transform:rotate(-2deg);padding:12px 17px}.round{width:38px;height:38px;border-radius:50%;background:var(--lavender);display:flex;align-items:center;justify-content:center;color:var(--purple);font-weight:700}.round.peach{background:#fce6d8;color:#9b5d38}.round.green{background:#e0f0e5;color:var(--green)}.floating small{font-size:.71rem;color:var(--muted);display:block;margin-top:3px}.illustration-note{position:absolute;right:70px;top:30px;font-size:.8rem;color:#898091;transform:rotate(9deg)}.section-heading{display:flex;justify-content:space-between;align-items:center;margin:30px 0 20px;gap:20px}.section-heading h2{margin:0}.count{display:inline-flex;align-items:center;justify-content:center;min-width:25px;height:25px;font-size:.78rem;background:var(--lavender);color:var(--purple);border-radius:8px;margin-left:8px;vertical-align:middle}.badge{font-size:.68rem;border-radius:99px;background:var(--lavender);color:var(--purple);padding:5px 9px;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;font-weight:650}.badge.green{background:#e5f2e9;color:var(--green)}.badge.amber{background:#fbefdb;color:#966727}.badge.gray{background:#f1f0f4;color:var(--muted)}.badge.red{background:#fbe6e8;color:var(--red)}.content-grid{display:grid;grid-template-columns:1fr 335px;gap:24px}.card{background:white;border:1px solid var(--line);border-radius:21px;padding:24px}.empty{min-height:235px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border:1px dashed #dad5e9;border-radius:20px;background:#ffffff80;padding:28px}.empty .round{margin-bottom:15px;width:48px;height:48px}.empty h3{margin-bottom:8px}.empty p{font-size:.87rem;color:var(--muted);max-width:350px;margin-bottom:20px}.join-card{background:var(--cream);border-color:#ebe4d8}.join-card p{font-size:.85rem;color:#807464}.join-card .round{background:#e9e0d0;color:#8e7756;margin-bottom:17px}.muted{color:var(--muted)}.room-cards{display:grid;grid-template-columns:1fr 1fr;gap:16px}.meetup-card{display:block;transition:border-color .15s,transform .15s;cursor:pointer}.meetup-card:hover{border-color:#c7beed;transform:translateY(-2px)}.meetup-card .time{font-size:.8rem;color:var(--purple);margin-bottom:15px}.meetup-card h3{font-size:1.18rem;margin-bottom:8px}.meetup-card .venue{color:var(--muted);font-size:.85rem;display:flex;gap:6px;align-items:center}.meetup-card .venue svg{width:16px;height:16px}.card-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:22px;padding-top:16px;border-top:1px solid var(--line);font-size:.77rem;color:var(--muted)}.trust-strip{display:flex;align-items:center;justify-content:center;gap:8px;padding:30px 10px 0;color:var(--muted);font-size:.76rem;text-align:center}.trust-strip svg{width:16px;height:16px}.footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);margin-top:38px;padding-top:20px;gap:15px;color:var(--muted);font-size:.72rem}.local-note{display:flex;gap:6px;align-items:center}.dot{width:6px;height:6px;background:#cfb263;border-radius:50%;display:inline-block}.page-top{padding-top:25px;margin-bottom:22px}.back-link{font-size:.82rem;color:var(--muted);display:inline-flex;align-items:center;gap:7px}.back-link svg{width:16px;height:16px}.form-wrap{max-width:790px;margin:25px auto}.form-wrap h1{font-size:2.7rem;margin-bottom:13px}.form-wrap .card{margin-top:26px;padding:30px}.field{display:flex;flex-direction:column;gap:8px;margin-bottom:18px;font-size:.85rem;font-weight:600}.field span.hint, .hint{font-size:.75rem;color:var(--muted);font-weight:400;line-height:1.5}input,textarea,select{width:100%;border:1px solid #dedbe7;border-radius:11px;background:#fff;color:var(--ink);padding:12px 13px;font-size:.87rem;min-height:46px}textarea{resize:vertical;min-height:85px}input::placeholder,textarea::placeholder{color:#a7a1b0}.fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.check{display:flex;align-items:flex-start;gap:10px;font-size:.84rem;font-weight:500;line-height:1.5;margin:15px 0}.check input{width:18px;min-height:18px;height:18px;margin:2px 0;accent-color:var(--purple)}.check small{display:block;color:var(--muted);font-weight:400;font-size:.74rem}.divider{height:1px;background:var(--line);margin:23px 0}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:25px}.info{background:#f1eefb;border-radius:12px;padding:13px 15px;font-size:.78rem;line-height:1.6;color:#706589;margin:15px 0}.info.amber{background:#fbf2e4;color:#8d7549}.invite-hero{max-width:550px;text-align:center;margin:55px auto}.invite-hero h1{font-size:2.8rem}.invite-hero .card{text-align:left;margin-top:27px}.invite-time{font-size:1rem;color:var(--purple);margin-bottom:20px}.invite-hero .round{margin:0 auto 20px;width:65px;height:65px}.room-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:23px 0 26px}.room-header h1{font-size:clamp(2rem,4vw,3.1rem);margin:11px 0 15px}.room-meta{display:flex;gap:20px;flex-wrap:wrap;font-size:.86rem;color:var(--muted)}.room-meta span{display:flex;align-items:center;gap:7px}.room-meta svg{width:18px;height:18px}.countdown{background:var(--lavender);border-radius:18px;padding:19px 25px;text-align:center;min-width:165px}.countdown strong{font-size:1.9rem;letter-spacing:-.04em;color:var(--purple);display:block}.countdown small{font-size:.7rem;color:#8c82a3}.room-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:24px;align-items:start}.stack{display:grid;gap:20px}.card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:14px}.card-head h2{font-size:1.15rem;margin:0}.tabs{display:flex;border-radius:9px;background:#f3f1f7;padding:3px}.tabs button{border:0;background:transparent;border-radius:7px;padding:7px 12px;font-size:.75rem;color:var(--muted)}.tabs button.active{background:white;color:var(--purple);box-shadow:0 1px 4px #0000000b}.person{display:flex;gap:12px;align-items:center;padding:15px 0;border-top:1px solid #f0edf5}.person:first-child{border-top:0}.person .round{width:40px;height:40px;font-size:.8rem;flex-shrink:0}.person-name{font-size:.86rem;font-weight:650}.person-name small{font-weight:450;color:var(--muted);font-size:.72rem;margin-left:5px}.person-detail{font-size:.72rem;color:var(--muted);margin-top:4px}.person-trailing{margin-left:auto;text-align:right}.person-trailing small{display:block;color:var(--muted);font-size:.67rem;margin-top:5px}.person-actions{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}.icon-btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:10px;background:white;width:36px;height:36px}.icon-btn svg{width:17px;height:17px}.my-state .round{margin-bottom:15px}.my-state h3{margin-bottom:7px}.my-state p{font-size:.78rem;color:var(--muted)}.rsvp-buttons{display:flex;gap:5px}.rsvp-buttons button{flex:1;padding:9px 5px;min-height:42px;font-size:.76rem;background:#fff;border:1px solid var(--line);border-radius:9px}.rsvp-buttons button.active{background:var(--lavender);color:var(--purple);border-color:#c5bdf2}.status-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.status-grid button{background:#faf9fc;border:1px solid var(--line);padding:10px 8px;border-radius:10px;min-height:44px;text-align:left;font-size:.74rem}.status-grid button.active{border-color:#b8adef;background:var(--lavender);color:var(--purple)}.status-grid button:last-child.active{background:#e5f2e9;color:var(--green);border-color:#b6d8c4}.privacy-line{display:flex;align-items:center;justify-content:space-between;font-size:.76rem;color:var(--muted);gap:7px}.privacy-line button{padding:0;background:none;border:none;color:var(--purple);font-size:.76rem}.message{margin:15px 0}.message-head{display:flex;align-items:baseline;gap:9px;font-size:.75rem}.message-head strong{font-weight:650}.message-head time{font-size:.66rem;color:#9a94a4}.message-body{font-size:.83rem;color:#625c71;background:#f6f4fa;padding:11px 13px;border-radius:0 12px 12px 12px;display:inline-block;max-width:100%;overflow-wrap:anywhere;white-space:pre-wrap;margin-top:6px}.message.nudge .message-body{background:#fbf0df;color:#927446}.chat-compose{display:flex;gap:8px;margin-top:17px}.chat-compose input{font-size:.82rem}.chat-compose button{flex-shrink:0;padding:10px 14px}.messages{max-height:310px;overflow:auto}.chat-empty{text-align:center;padding:26px 12px;font-size:.81rem;color:var(--muted)}.notes{font-size:.82rem;color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere}.venue-mini{background:var(--cream);border-color:#eee5d6}.venue-mini h3{margin-bottom:10px}.venue-mini .btn{margin-top:17px}.note-header{font-size:.67rem;color:#9b8c74;letter-spacing:.12em;font-weight:750;margin-bottom:12px}.room-tools{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.text-btn{border:0;padding:9px 0;background:none;color:var(--muted);font-size:.76rem}.text-btn.red{color:var(--red)}.slippy{position:relative;overflow:hidden;background:#ebe9e2;height:340px;border-radius:14px;touch-action:none;isolation:isolate}.tiles{position:absolute;inset:0}.tiles img{position:absolute;width:256px;height:256px;max-width:none;user-select:none}.pin{position:absolute;border:3px solid white;box-shadow:0 3px 10px #0003;border-radius:50%;width:36px;height:36px;background:#d6e9d8;color:#2d6545;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:750;transform:translate(-50%,-50%);pointer-events:none;z-index:2}.pin.destination{background:var(--purple);color:white;font-size:1.1rem;width:39px;height:39px}.map-controls{position:absolute;right:12px;top:12px;display:grid;background:white;border-radius:8px;overflow:hidden;box-shadow:0 2px 9px #0002}.map-controls button{width:34px;height:34px;border:0;background:white;font-size:1.3rem}.map-controls button+button{border-top:1px solid var(--line)}.attribution{position:absolute;bottom:0;right:0;background:#ffffffe8;font-size:10px;padding:3px 5px;z-index:4;color:#4b4860}.map-error{position:absolute;bottom:25px;left:10px;right:10px;font-size:.72rem;background:#fff9;padding:8px;border-radius:6px;z-index:3}.map-disclosure{font-size:.68rem;color:var(--muted);margin:9px 0 0}.banner{padding:11px 16px;border-radius:10px;background:#fdf0dc;color:#95713c;font-size:.8rem;margin-bottom:15px}.loading{padding:110px 25px;text-align:center;color:var(--muted)}.spinner{display:inline-block;width:27px;height:27px;border:3px solid #e5dffb;border-top-color:var(--purple);border-radius:50%;animation:spin .8s linear infinite}.loading p{margin-top:17px;font-size:.9rem}@keyframes spin{to{transform:rotate(360deg)}}dialog{border:0;border-radius:22px;padding:30px;width:calc(100% - 32px);max-width:470px;box-shadow:0 25px 100px #29223838;color:var(--ink);background:white}dialog::backdrop{background:#28233966;backdrop-filter:blur(3px)}dialog h2{font-size:1.45rem;margin-bottom:10px}dialog p{font-size:.84rem;color:var(--muted)}.dialog-close{position:absolute;right:16px;top:13px;border:0;background:none;font-size:1.5rem;color:var(--muted);padding:5px}.choice{display:block;padding:15px;border:1px solid var(--line);border-radius:12px;margin:10px 0;cursor:pointer}.choice input{width:17px;min-height:17px;margin-right:8px;accent-color:var(--purple)}.choice strong{font-size:.87rem}.choice small{display:block;color:var(--muted);font-size:.74rem;margin-top:7px}.choice.disabled{opacity:.6;cursor:default}.code-display{font-size:1.75rem;letter-spacing:.15em;font-weight:750;text-align:center;background:var(--lavender);padding:20px;border-radius:13px;color:var(--purple);margin:18px 0}.share-link{font-size:.72rem;word-break:break-all;color:var(--muted);padding:12px;border:1px solid var(--line);border-radius:10px}.nudge-options{display:grid;gap:8px;margin:20px 0}.nudge-options button{justify-content:flex-start}#toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%) translateY(100px);max-width:calc(100% - 32px);background:#302a45;color:white;z-index:200;padding:13px 20px;border-radius:13px;font-size:.82rem;box-shadow:0 5px 30px #0002;transition:transform .2s;line-height:1.6;pointer-events:none}#toast.show{transform:translateX(-50%) translateY(0)}.ended{max-width:520px;text-align:center;margin:80px auto}.ended h1{font-size:2.7rem}.ended .round{margin:0 auto 25px;width:65px;height:65px}.form-error{color:var(--red);background:#fcecee;border-radius:9px;padding:10px 12px;font-size:.8rem;display:none}.form-error.visible{display:block}.safe-area{padding-bottom:env(safe-area-inset-bottom)}
@media(min-width:1400px){.hero{padding-top:70px;padding-bottom:60px}}
@media(max-width:950px){.site-header{padding:0 25px}.shell{padding:0 25px 45px}.hero{gap:15px}.hero-art{transform:scale(.9);transform-origin:right center}.content-grid{grid-template-columns:1fr 290px;gap:18px}.room-layout{grid-template-columns:minmax(0,1fr) 290px;gap:18px}.room-cards{grid-template-columns:1fr}.card{padding:21px}.floating{padding:13px}}
@media(max-width:700px){.site-header{height:78px;padding:0 20px}.brand{font-size:1.05rem}.brand img{width:34px;height:34px}.header-actions{gap:15px}.nav-home{display:none}.shell{padding:0 20px 35px}.hero{display:block;padding:30px 0}.hero h1{font-size:3.25rem}.hero-art{display:none}.intro{font-size:.93rem}.eyebrow{margin-bottom:20px}.hero-actions .btn{flex:1}.content-grid,.room-layout{grid-template-columns:1fr}.content-grid .join-card{margin-top:5px}.section-heading{margin-top:25px}.section-heading h2{font-size:1.25rem}.empty{min-height:230px}.footer{align-items:flex-start;flex-direction:column;gap:10px;margin-top:25px}.trust-strip{font-size:.7rem;padding-top:25px}.room-header{display:block;padding-top:17px}.room-header h1{font-size:2.35rem}.countdown{margin-top:22px;padding:12px 17px;display:flex;justify-content:space-between;align-items:center;text-align:left}.countdown strong{font-size:1.45rem}.countdown small{font-size:.74rem}.room-meta{gap:10px 16px;font-size:.79rem}.room-layout{display:flex;flex-direction:column}.room-layout>.stack{width:100%}.room-layout>.stack.side{order:-1}.room-layout .side .my-state{order:0}.room-layout .side .venue-mini{display:none}.status-grid{grid-template-columns:repeat(3,1fr)}.status-grid button{text-align:center;font-size:.7rem;padding:10px 4px}.my-state .round{display:none}.my-state .divider{margin:17px 0}.my-state h3{font-size:.95rem}.form-wrap{margin-top:20px}.form-wrap h1{font-size:2.2rem}.form-wrap .card{padding:20px}.fields{gap:11px}.form-actions .btn{flex:1}.form-actions{justify-content:stretch}.invite-hero{margin:35px auto}.invite-hero h1{font-size:2.4rem}.card{border-radius:17px;padding:20px}.slippy{height:300px}.room-tools{gap:20px}.chat-compose .btn{min-width:50px}.room-header .badge{font-size:.65rem}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.person>div:nth-child(2){min-width:0;flex:1}.person-name{overflow-wrap:anywhere}.person-trailing{max-width:43%;flex-shrink:0}.person-trailing .badge{white-space:normal;text-align:center}
@media(max-width:700px){.hero h1{font-size:clamp(2.35rem,11vw,3.25rem)}}
