:root{--plum: #2e1069;--indigo: #272f8b;--lavender: #9b75db;--gold: #f2b90c;--red: #c20300;--night: #1b0948;--ink: #f6f1ff;--ink-dim: #cdbdf2;--line: rgba(155, 117, 219, .3);--card: rgba(39, 47, 139, .32);--radius: 14px}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:var(--night);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,sans-serif;line-height:1.45;-webkit-font-smoothing:antialiased}h1,h2,h3,p{margin:0}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.app{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:12px 20px;background:var(--plum);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;margin-right:auto}.logo{width:36px;height:36px;flex:none}.brand h1{font-size:1.25rem;letter-spacing:.02em;line-height:1.1}.wordmark{font-family:Space Grotesk,system-ui,-apple-system,Segoe UI,sans-serif;font-weight:700;font-size:1.4rem!important;letter-spacing:-.01em!important}.wordmark-accent{color:var(--gold)}.map-full .wordmark-accent{color:#b07d00}.tagline{font-size:.82rem;color:var(--ink-dim)}.tabs{display:flex;gap:4px;background:#1b094899;padding:4px;border-radius:999px}.tab{border:0;background:transparent;padding:6px 18px;border-radius:999px;cursor:pointer;color:var(--ink-dim)}.tab.on{background:var(--gold);color:var(--night);font-weight:650}.top-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sample-badge{font-size:.75rem;padding:3px 10px;border-radius:999px;border:1px solid var(--lavender);color:var(--ink-dim)}.btn{border:1px solid transparent;border-radius:10px;padding:9px 14px;cursor:pointer;font-weight:600;transition:transform .12s ease,background .15s ease}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--gold);color:var(--night)}.btn-primary:hover:not(:disabled){background:#ffd042}.btn-ghost{background:transparent;border-color:var(--lavender);color:var(--ink)}.btn-ghost:hover:not(:disabled){background:#9b75db33}.btn-sm{padding:6px 12px;font-size:.88rem}.stage{flex:1;display:grid;grid-template-columns:minmax(0,1fr) 410px;min-height:0}.sky-wrap{position:relative;min-width:0;background:var(--night)}.sky-scroll{overflow-x:auto;overflow-y:hidden}.sky{display:block;width:100%;height:calc(100vh - 118px);min-height:460px}.map-note{position:absolute;left:16px;bottom:10px;font-size:.78rem;color:var(--ink-dim);background:#1b0948b3;padding:4px 10px;border-radius:999px}.sky-label{fill:var(--ink);pointer-events:none;paint-order:stroke;stroke:var(--night);stroke-width:4px;stroke-linejoin:round}.sky-label-area{font-size:15px;font-weight:650}.sky-label-sub{font-size:13px;fill:var(--ink-dim)}.planet .sky-label-sub{opacity:0;pointer-events:none;transition:opacity .15s ease}.planet:hover .sky-label-sub,.planet:focus-visible .sky-label-sub,.has-tour .planet .sky-label-sub{opacity:1}.sky-label-farm{font-size:12.5px;fill:var(--gold)}.planet{cursor:pointer}.planet:hover circle:not([stroke-dasharray]){filter:brightness(1.12)}.farm{cursor:pointer}.farm-hit{fill:transparent}.farm:hover polygon{filter:brightness(1.15)}.farm,.farm:focus,.farm:focus-visible,.planet,.planet:focus,.planet:focus-visible{outline:none}.focus-ring{stroke:none;pointer-events:none}.farm:focus-visible .focus-ring,.planet:focus-visible .focus-ring{stroke:var(--gold);stroke-width:3}.planet-check{font-size:20px;font-weight:800;fill:var(--night);pointer-events:none}.twinkle{animation:twinkle 3.2s ease-in-out infinite}.flow{animation:dash 1.2s linear infinite}@keyframes twinkle{0%,to{opacity:1}50%{opacity:.55}}@keyframes dash{to{stroke-dashoffset:-30}}.panel-stack{display:flex;flex-direction:column;gap:14px}.panel{background:var(--plum);border-left:1px solid var(--line);padding:18px;display:flex;flex-direction:column;gap:14px;overflow-y:auto;max-height:calc(100vh - 118px)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:10px}.card-done{border-color:var(--gold);background:#f2b90c1a}.eyebrow{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-dim)}.muted{color:var(--ink-dim)}.small{font-size:.85rem}.note{font-size:.8rem;color:var(--ink-dim)}.req-head h2{font-size:1.3rem;line-height:1.2;margin:4px 0 10px}.chips,.cost-row,.pledge-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.pledge-custom{display:flex;gap:8px;align-items:stretch}.pledge-input{flex:1;display:flex;align-items:center;gap:4px;min-width:0;padding:0 10px;border:1px solid var(--lavender);border-radius:10px;background:#1b0948b3}.pledge-input:focus-within{outline:3px solid var(--gold);outline-offset:2px}.pledge-input span{color:var(--gold);font-weight:700}.pledge-input input{flex:1;min-width:0;padding:9px 0;border:0;background:transparent;outline:none;-moz-appearance:textfield}.pledge-input input::-webkit-outer-spin-button,.pledge-input input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.chip{font-size:.82rem;padding:3px 10px;border-radius:999px;border:1px solid var(--line);background:#1b094880}.chip-strong{border-color:var(--gold);color:var(--gold)}.badge-urgent{background:var(--red);color:#fff;font-size:.78rem;font-weight:700;padding:3px 10px;border-radius:999px}.pill{font-size:.8rem;font-weight:650;padding:3px 11px;border-radius:999px;border:1px solid transparent;white-space:nowrap}.pill-open{border-color:var(--lavender);color:var(--ink)}.pill-matched{background:var(--indigo);color:var(--gold)}.pill-funded{background:var(--lavender);color:var(--night)}.pill-delivered{background:var(--gold);color:var(--night)}.pill-partial{background:#f2b90c2e;border-color:var(--gold);color:var(--gold)}.intro h2{font-size:1.2rem}.legend{list-style:none;padding:0;margin:0;display:grid;gap:8px}.legend li{display:flex;align-items:center;gap:10px}.legend-planet,.legend-ring,.legend-done{width:18px;height:18px;border-radius:50%;flex:none}.legend-planet{background:radial-gradient(circle at 35% 30%,#c9b3f5,var(--lavender) 55%,var(--indigo))}.legend-ring{border:3px solid var(--gold);border-right-color:#9b75db66}.legend-done{background:radial-gradient(circle at 35% 30%,#ffe58a,var(--gold) 60%,var(--lavender));box-shadow:0 0 10px var(--gold)}.legend-star{width:18px;text-align:center;color:var(--gold);font-size:1.1rem;line-height:1}.farm-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.farm-card.is-top{border-color:var(--gold)}.farm-card.is-ineligible{opacity:.7;background:#1b094866}.farm-card-head{display:flex;justify-content:space-between;gap:10px}.farm-card h3,.farm-summary h3,.delivery h3,.card-done h3{font-size:1.02rem}.best{color:var(--gold);font-weight:600;font-size:.85rem}.score{text-align:right;flex:none}.score-num{font-size:1.7rem;font-weight:750;color:var(--gold);line-height:1}.score-of{font-size:.8rem;color:var(--ink-dim)}.reasons{list-style:none;padding:0;margin:0;display:grid;gap:4px;font-size:.9rem}.reasons li{display:flex;gap:8px}.tick-ok{color:var(--gold);font-weight:700}.tick-no{color:var(--ink-dim);font-weight:700}.stardust{display:grid;gap:8px}.stardust-top{display:flex;justify-content:space-between;align-items:baseline}.stardust-label{font-weight:650}.stardust-num{font-size:1.1rem;font-weight:700}.meter{position:relative;height:16px;border-radius:999px;background:#1b0948b3;border:1px solid var(--line);overflow:hidden}.meter-fill{height:100%;background:linear-gradient(90deg,var(--lavender),var(--gold));border-radius:999px;transition:width .45s ease}.meter-tick{position:absolute;top:0;bottom:0;width:2px;background:#f6f1ff59}.milestones{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,auto);justify-content:space-between;gap:4px;font-size:.8rem;white-space:nowrap;color:var(--ink-dim)}.milestones li.on{color:var(--gold);font-weight:650}.field{display:grid;gap:4px;font-size:.88rem}.field span{color:var(--ink-dim)}.field input,.field select,.field textarea{background:#1b0948b3;border:1px solid var(--lavender);border-radius:8px;padding:8px 10px;width:100%}.field-row{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:10px}.delivery{display:grid;gap:10px;margin-top:6px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0e0428bf;display:grid;place-items:center;padding:16px;z-index:10}.modal{width:min(560px,100%);background:var(--plum);border:1px solid var(--lavender);border-radius:18px;padding:20px;display:grid;gap:12px;max-height:92vh;overflow-y:auto}.modal-actions{display:flex;justify-content:flex-end;gap:8px}.stage-impact{grid-template-columns:minmax(0,1fr)}.impact{width:min(980px,100%);margin:0 auto;padding:24px 20px 32px;display:grid;align-content:start;gap:16px}.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.tile{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.tile-value{font-size:1.8rem;font-weight:750;color:var(--gold);line-height:1.1}.tile-label{margin-top:4px;font-weight:600}.tile-sub{font-size:.8rem;color:var(--ink-dim)}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius)}table{width:100%;border-collapse:collapse;font-size:.92rem}th,td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--line)}th{color:var(--ink-dim);font-weight:600;background:#2e106999}tr:last-child td{border-bottom:0}.link{background:none;border:0;padding:0;color:var(--gold);text-decoration:underline;cursor:pointer}.foot{padding:10px 20px;font-size:.78rem;color:var(--ink-dim);border-top:1px solid var(--line);background:var(--plum)}@media (max-width: 900px){.is-map .sky{height:auto}.stage{grid-template-columns:minmax(0,1fr)}.sky{min-width:820px;height:auto;min-height:0;aspect-ratio:1000 / 720}.panel{max-height:none;border-left:0;border-top:1px solid var(--line)}.tiles{grid-template-columns:repeat(2,1fr)}.field-row{grid-template-columns:1fr}.topbar{padding:10px 14px}}.view-controls{position:absolute;top:12px;left:14px;display:flex;gap:4px;padding:4px;border-radius:999px;background:#1b0948e0;border:1px solid var(--line)}.seg{min-height:40px;padding:6px 18px;border:0;border-radius:999px;background:transparent;color:var(--ink);font-weight:600;cursor:pointer}.seg:hover:not(.on){background:#9b75db40}.seg.on{background:var(--gold);color:var(--night);--seg-bg: var(--gold)}.is-map .view-controls .seg{--seg-bg: #fff}.is-map .view-controls .seg.on{--seg-bg: var(--plum)}.seg-text{margin-left:6px;border:1px solid var(--lavender)}.sky-wrap.is-map{background:#efece4}.is-map .sky{height:calc(100vh - 200px)}.view-controls{padding:0;gap:8px;background:none;border:0;box-shadow:none}.seg-icon-btn{width:44px;height:44px;padding:0;justify-content:center}.seg-icon-btn .seg-icon{width:26px;height:26px}.seg{display:inline-flex;align-items:center;gap:8px}.seg-icon{width:22px;height:22px;flex:none}.is-map .view-controls .seg{color:#3c4043}.is-map .view-controls .seg:hover:not(.on){background:#f1f3f4}.is-map .view-controls .seg.on{background:var(--plum);color:#fff}.is-map .view-controls .seg-text{border-color:#dadce0}.map-legend{margin:0;padding:10px 16px;list-style:none;display:flex;flex-wrap:wrap;gap:8px 22px;background:#fff;color:var(--plum);border-top:2px solid var(--plum);font-size:1rem;font-weight:650}.is-map .map-note{position:static;display:block;border-radius:0;padding:6px 16px 8px;background:#fff;color:#3b2486;font-size:.85rem}.map-legend li{display:flex;align-items:center;gap:10px}.map-legend svg{width:28px;height:28px;flex:none}.map-mode .sky-label{fill:var(--plum);stroke:#fff;stroke-width:5px}.map-mode .sky-label-area{font-size:calc(19px * var(--ms, 1));font-weight:750}.map-mode .sky-label-sub{font-size:calc(16px * var(--ms, 1));font-weight:600;fill:#3b2486}.map-mode .sky-label-farm{font-size:calc(16px * var(--ms, 1));font-weight:750;fill:var(--plum)}.map-city,.map-shield,.map-scale{font-family:inherit;fill:#3c4043;paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round;pointer-events:none}.map-city{font-size:calc(17px * var(--ms, 1));font-weight:500}.map-city-big{font-size:calc(25px * var(--ms, 1));font-weight:600}.map-shield{font-size:calc(14px * var(--ms, 1));font-weight:800;fill:#fff;stroke:none}.map-scale{font-size:15px;font-weight:700;stroke:none}.map-mode .spark{fill:#272f8b}.map-mode .comet{fill:var(--gold);stroke:var(--plum);stroke-width:1.5}.map-mode .shock{stroke:#272f8b}.map-mode .fx-amount{fill:var(--plum)}.map-mode .ping{stroke:var(--plum)}.map-mode .planet-check{fill:var(--plum)}.map-mode .halo{fill:var(--gold)}.farm-panel-top{display:flex}.req-head h2:focus{outline:none}.stock-list,.farm-reqs{list-style:none;margin:0;padding:0;display:grid;gap:8px}.stock-list li{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:baseline;padding-bottom:8px;border-bottom:1px solid var(--line)}.stock-list li:last-child{border-bottom:0;padding-bottom:0}.stock-name{font-weight:600}.stock-lbs{color:var(--gold);font-weight:700;font-variant-numeric:tabular-nums}.fit-card{border-color:var(--gold)}.fit-card.is-ineligible{border-color:var(--line);background:#1b094866}.farm-reqs li{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.q-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.q-head h2{margin-bottom:6px}.q-head .muted{max-width:62ch}.q-tools{display:flex;gap:8px}.q-list{display:grid;gap:22px}.q-section{display:grid;gap:8px}.q-section-title{font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;color:var(--gold)}.q-item{background:var(--card);border:1px solid var(--line);border-radius:var(--radius)}.q-item[open]{border-color:var(--lavender)}.q-item summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:48px;padding:12px 16px;font-size:1.05rem;font-weight:650}.q-item summary::-webkit-details-marker{display:none}.q-item summary:hover{background:#9b75db26;border-radius:var(--radius)}.q-chev{flex:none;width:10px;height:10px;border-right:2.5px solid var(--gold);border-bottom:2.5px solid var(--gold);transform:rotate(45deg);transition:transform .2s ease}.q-item[open] .q-chev{transform:rotate(225deg)}.q-body{padding:0 16px 14px;animation:rise .25s ease-out both}.q-lead{font-weight:600;margin-bottom:8px}.q-body ul{margin:0;padding-left:20px;display:grid;gap:6px;line-height:1.5}.tour{position:fixed;z-index:30;bottom:56px;left:calc((100vw - 410px)/2);transform:translate(-50%);width:min(500px,calc(100vw - 442px));padding:16px 18px 14px;display:grid;gap:10px;background:var(--plum);color:var(--ink);border:2px solid var(--gold);border-radius:16px;box-shadow:0 12px 40px #0a021e99}.tour-wide{left:50%;width:min(540px,calc(100vw - 32px))}.tour h2{font-size:1.3rem;line-height:1.2}.tour p{font-size:1.05rem;line-height:1.5}.tour-top{display:flex;align-items:center;justify-content:space-between}.tour-count{font-size:.85rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-dim)}.tour-x{width:40px;height:40px;margin:-8px -8px -8px 0;border:0;border-radius:50%;background:transparent;color:var(--ink);font-size:1.1rem;cursor:pointer}.tour-x:hover{background:#9b75db4d}.tour-dots{display:flex;gap:6px}.tour-dots span{width:9px;height:9px;border-radius:50%;background:#9b75db66}.tour-dots span.done{background:var(--lavender)}.tour-dots span.on{width:24px;border-radius:999px;background:var(--gold)}.tour-actions{display:flex;flex-wrap:wrap;gap:8px}.tour-actions .btn{min-height:44px;padding-inline:18px}.tour-actions .btn-primary{flex:1 1 auto}.tour-spot{position:fixed;z-index:25;pointer-events:none;border:3px solid var(--gold);border-radius:12px;box-shadow:0 0 0 3px #1b09488c,0 0 18px 4px #f2b90c8c;animation:spot-pulse 1.6s ease-in-out infinite}.tour-spot-round{border-radius:50%}@keyframes spot-pulse{0%,to{box-shadow:0 0 0 3px #1b09488c,0 0 12px 2px #f2b90c66}50%{box-shadow:0 0 0 3px #1b09488c,0 0 24px 8px #f2b90cbf}}@media (max-width: 900px){.tour,.tour-wide{left:0;right:0;bottom:0;transform:none;width:auto;border-width:2px 0 0;border-radius:18px 18px 0 0;padding-bottom:calc(14px + env(safe-area-inset-bottom,0px));max-height:62vh;overflow-y:auto}.app.has-tour{padding-bottom:320px}.has-tour [data-tour]{scroll-margin-bottom:350px;scroll-margin-top:20px}}.welcome-backdrop{z-index:40}.modal.welcome{display:block;position:relative;width:min(700px,100%);padding:0;max-height:94vh;border-color:#f2b90c8c}.welcome-x{position:sticky;top:10px;z-index:3;display:grid;place-items:center;width:34px;height:34px;margin:10px 10px 0 auto;border-radius:50%;border:1px solid var(--line);background:#0e0428d9;color:var(--ink);font-size:1rem;cursor:pointer}.welcome-x:hover{border-color:var(--gold)}.welcome-x:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.welcome-hero{margin-top:-44px;padding:30px 56px 18px 28px;border-radius:18px 18px 0 0;background:radial-gradient(circle at 92% 0%,rgba(242,185,12,.24),transparent 55%),radial-gradient(circle at 0% 100%,rgba(155,117,219,.28),transparent 60%)}.welcome-eyebrow{display:block;font-size:.75rem;letter-spacing:.09em;text-transform:uppercase;color:var(--gold);font-weight:650}.welcome-hero h2{margin:8px 0 10px;font-size:clamp(1.6rem,4.4vw,2.2rem);line-height:1.12}.welcome-sub{margin:0;font-size:1.05rem;line-height:1.5}.welcome-steps{list-style:none;margin:0 0 18px;padding:0 28px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.welcome-steps li{display:grid;gap:3px;align-content:start;padding:10px 11px;border:1px solid var(--line);border-radius:12px;background:var(--card);font-size:.82rem;line-height:1.35;color:var(--ink-dim)}.welcome-steps strong{color:var(--ink);font-size:.95rem}.welcome-step-n{display:grid;place-items:center;width:22px;height:22px;margin-bottom:2px;border-radius:50%;background:var(--gold);color:var(--night);font-size:.78rem;font-weight:700}.welcome-why{margin:0 28px 18px;padding:14px 16px;border:1px solid rgba(242,185,12,.45);border-radius:12px;background:#f2b90c1a}.welcome-why h3{margin:0 0 4px;font-size:1.1rem;color:var(--gold)}.welcome-why p{margin:0;line-height:1.5}.welcome-diff-title,.welcome-h{margin:0 28px 8px;font-size:1.05rem;color:var(--gold)}.welcome-diff-title{margin-top:18px}.welcome-diffs{list-style:none;margin:0 0 16px;padding:0 28px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.welcome-diffs li{display:grid;gap:3px;align-content:start;padding:10px 12px;border-left:3px solid var(--gold);border-radius:0 10px 10px 0;background:var(--card);font-size:.88rem;line-height:1.45;color:var(--ink-dim)}.welcome-diffs strong{color:var(--ink);font-size:.95rem}.welcome-more-toggle{display:block;margin:0 auto 16px;padding:7px 20px;border:1px solid var(--lavender);border-radius:999px;background:transparent;color:var(--ink);font:inherit;font-weight:600;cursor:pointer}.welcome-more-toggle:hover{border-color:var(--gold)}.welcome-more-toggle:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.welcome-more{scroll-margin-top:56px}.welcome-facts{list-style:none;margin:0;padding:0 28px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.welcome-facts li{display:grid;gap:4px;align-content:start;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--card);font-size:.85rem;line-height:1.4}.welcome-facts strong{font-size:1.45rem;line-height:1.1;color:var(--gold)}.welcome-facts em{font-style:normal;font-size:.72rem;color:var(--ink-dim)}.welcome-close{margin:12px 28px 16px;font-size:.92rem;line-height:1.45}.welcome-note{margin:0 28px 16px;padding:8px 12px;border:1px dashed var(--lavender);border-radius:10px;font-size:.8rem;line-height:1.4;color:var(--ink-dim)}.welcome-actions{position:sticky;bottom:0;z-index:2;display:flex;flex-wrap:wrap;gap:10px;padding:14px 28px calc(16px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);border-radius:0 0 18px 18px;background:var(--plum)}.welcome-actions .btn{flex:1 1 200px}@media (max-width: 640px){.welcome-hero{padding:28px 52px 14px 18px}.welcome-steps,.welcome-diffs,.welcome-actions{padding-left:18px;padding-right:18px}.welcome-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.welcome-diffs{grid-template-columns:minmax(0,1fr)}.welcome-facts{grid-template-columns:minmax(0,1fr);padding-left:18px;padding-right:18px}.welcome-why,.welcome-note,.welcome-close,.welcome-diff-title,.welcome-h{margin-left:18px;margin-right:18px}}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pop{0%{transform:scale(.5)}60%{transform:scale(1.25)}to{transform:scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{0%{transform:scale(1);opacity:.6}80%,to{transform:scale(2.1);opacity:0}}@keyframes breathe{0%,to{opacity:.12;transform:scale(.95)}50%{opacity:.32;transform:scale(1.08)}}@keyframes spark{0%{transform:translate(0) scale(1);opacity:0}12%{opacity:1}to{transform:translate(var(--dx),var(--dy)) scale(.2);opacity:0}}@keyframes floatup{0%{transform:translateY(0);opacity:0}18%{opacity:1}to{transform:translateY(-30px);opacity:0}}@keyframes shock{0%{transform:scale(.7);opacity:0}15%{opacity:.9}to{transform:scale(3);opacity:0}}@keyframes comet{0%{transform:translate(0);opacity:0}10%{opacity:var(--o)}88%{opacity:var(--o)}to{transform:translate(var(--tx),var(--ty));opacity:0}}@keyframes shoot{0%{transform:translate(0);opacity:0}2%{opacity:1}8%{transform:translate(330px,132px);opacity:0}to{transform:translate(330px,132px);opacity:0}}.planet,.farm{animation:fade-in .7s ease-out both}.ring-fill{transition:stroke-dasharray .9s cubic-bezier(.4,0,.2,1),stroke-opacity .3s ease}.line-in{animation:fade-in .6s ease-out both}.sel-ring,.ping,.halo,.farm-matched polygon{transform-box:fill-box;transform-origin:center}.sel-ring{animation:spin 40s linear infinite}.ping{stroke:var(--ink);stroke-width:2;pointer-events:none;animation:ping 2.6s ease-out infinite}.halo{pointer-events:none;animation:breathe 3.6s ease-in-out infinite}.farm-matched polygon{animation:pop .6s cubic-bezier(.3,1.5,.5,1)}.shoot{opacity:0;animation:shoot 11s linear infinite}.shoot-2{animation-duration:15s;animation-delay:6s}.fx{pointer-events:none}.spark,.comet,.shock{transform-box:fill-box;transform-origin:center}.spark{fill:var(--gold);animation:spark .95s ease-out both}.spark-late{animation-duration:1.2s;animation-delay:.85s}.comet{fill:var(--gold);animation:comet .95s cubic-bezier(.4,0,.2,1) both}.shock{fill:none;stroke:var(--gold);stroke-width:3;animation:shock 1s ease-out both}.shock-late{animation-delay:.85s}.fx-amount{font-size:17px;font-weight:800;fill:var(--gold);animation:floatup 1.3s ease-out both}.panel-stack>*{animation:rise .38s ease-out both}.panel-stack>:nth-child(2){animation-delay:.06s}.panel-stack>:nth-child(3){animation-delay:.12s}.panel-stack>:nth-child(n+4){animation-delay:.18s}.farm-list>li{animation:rise .4s ease-out both}.farm-list>li:nth-child(1){animation-delay:.08s}.farm-list>li:nth-child(2){animation-delay:.14s}.farm-list>li:nth-child(3){animation-delay:.2s}.farm-list>li:nth-child(4){animation-delay:.26s}.farm-list>li:nth-child(n+5){animation-delay:.32s}.milestones li.on span{display:inline-block;animation:pop .55s cubic-bezier(.3,1.5,.5,1)}.score-num,.stardust-num,.tile-value{font-variant-numeric:tabular-nums}.impact>*{animation:rise .45s ease-out both}.tile{animation:rise .5s ease-out both}.tile:nth-child(2){animation-delay:.07s}.tile:nth-child(3){animation-delay:.14s}.tile:nth-child(4){animation-delay:.21s}.modal-backdrop{animation:fade-in .2s ease-out both}.modal{animation:rise .28s cubic-bezier(.2,.9,.3,1.1) both}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}.shoot{display:none}}.join{width:min(1040px,100%)}.join-eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--gold)}.join-head h2{font-size:clamp(1.4rem,3.4vw,1.9rem);margin:4px 0 6px}.join-head .muted{max-width:62ch}.join-layout{display:grid;grid-template-columns:minmax(250px,360px) minmax(0,1fr);gap:22px;align-items:start}.join-stage{position:sticky;top:16px;display:grid;gap:8px;padding:14px 14px 16px;border-radius:20px;border:1px solid var(--line);background:radial-gradient(circle at 50% 40%,rgba(155,117,219,.22),transparent 65%),radial-gradient(circle at 50% 50%,#2e1069,#1b0948 75%);box-shadow:inset 0 0 40px #0e042899}.join-stage-note{text-align:center;font-size:.85rem;color:var(--ink-dim);min-height:2.5em}.join-emblem{width:100%;height:auto;overflow:visible}.join-dot{fill:var(--ink);opacity:.55;animation:join-blink 3.2s ease-in-out infinite}.join-dot:nth-child(3n){animation-delay:1.1s}.join-dot:nth-child(3n+1){animation-delay:2.2s}@keyframes join-blink{0%,to{opacity:.55}50%{opacity:.15}}.join-shape{transform-box:view-box;transform-origin:0 0;transition:transform .65s cubic-bezier(.34,1.4,.64,1)}.is-farm .join-shape{transform:rotate(144deg)}.is-pantry .join-shape{animation:join-pop .6s cubic-bezier(.34,1.6,.64,1)}@keyframes join-pop{0%{transform:scale(.82)}to{transform:scale(1)}}.join-outline{fill:#272f8b40;stroke:var(--lavender);stroke-width:2;stroke-dasharray:5 6;transition:opacity .4s ease;animation:join-spin-dash 14s linear infinite}@keyframes join-spin-dash{to{stroke-dashoffset:-220}}.is-pantry .join-outline,.is-farm .join-outline{opacity:0}.join-fill-planet,.join-fill-star,.join-glow{opacity:0;transition:opacity .5s ease}.is-pantry .join-fill-planet,.is-farm .join-fill-star{opacity:1}.join-glow{fill:var(--lavender)}.is-farm .join-glow{fill:var(--gold)}.is-pantry .join-glow,.is-farm .join-glow{opacity:.5}.join-orbit,.join-orbit-front{fill:none;stroke:var(--gold);stroke-width:4;stroke-linecap:round;stroke-dasharray:1 1;stroke-dashoffset:1;opacity:0;transition:stroke-dashoffset .8s ease .15s,opacity .3s ease}.join-orbit{stroke-opacity:.45}.is-pantry .join-orbit,.is-pantry .join-orbit-front{stroke-dashoffset:0;opacity:1}.join-moon{fill:#f6f1ff;opacity:0;transform-box:view-box;transform-origin:0 0;transform:rotate(-30deg) translate(84px);transition:opacity .4s ease .4s}.is-pantry .join-moon{opacity:.9;animation:join-moon 9s linear infinite}@keyframes join-moon{0%{transform:rotate(-30deg) translate(84px)}to{transform:rotate(330deg) translate(84px)}}.join-twinkle{fill:var(--gold);opacity:0;transition:opacity .4s ease .3s}.is-farm .join-twinkle{opacity:1;animation:join-twinkle 1.8s ease-in-out infinite}@keyframes join-twinkle{0%,to{opacity:.25}50%{opacity:1}}.join-shock{fill:none;stroke:var(--gold);stroke-width:3;transform-box:view-box;transform-origin:0 0;animation:join-shock 1.4s ease-out 2 both}@keyframes join-shock{0%{transform:scale(.8);opacity:.9}to{transform:scale(2.1);opacity:0}}.is-joined .join-glow{animation:join-glow 1.6s ease-in-out infinite}@keyframes join-glow{0%,to{opacity:.5}50%{opacity:.95}}.join-name{fill:var(--ink);font-size:17px;font-weight:700}.is-farm .join-name{fill:var(--gold)}.join-city{fill:var(--ink-dim);font-size:13px}.join-side{display:grid;gap:16px}.join-form,.join-done{display:grid;gap:12px;padding:18px;border-radius:var(--radius);border:1px solid var(--line);background:var(--card)}.join-done{border-color:var(--gold);animation:rise .35s ease-out both}.join-done h3{font-size:1.2rem}.join-done .btn{justify-self:start}.join-roles{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0;padding:0;border:0}.join-roles legend{margin-bottom:8px;font-size:.88rem;color:var(--ink-dim)}.join-role{position:relative;display:flex;gap:10px;align-items:flex-start;padding:12px;border-radius:12px;border:1px solid var(--line);background:#1b094880;cursor:pointer;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease}.join-role:hover{border-color:var(--lavender)}.join-role.on{border-color:var(--gold);background:#f2b90c1a;box-shadow:0 0 0 1px #f2b90c4d}.join-role:focus-within{outline:3px solid var(--gold);outline-offset:2px}.join-role input{position:absolute;opacity:0;pointer-events:none}.join-role svg{flex:none;width:30px;height:30px;transition:transform .3s ease}.join-role.on svg{transform:scale(1.15) rotate(-8deg)}.join-role span{display:grid;gap:2px}.join-role small{font-size:.8rem;line-height:1.35;color:var(--ink-dim)}.join-reveal{display:grid;gap:12px}.join-perks{list-style:none;margin:0;padding:0;display:grid;gap:8px}.join-perks li{display:grid;gap:2px;padding:8px 12px;border-left:3px solid var(--gold);border-radius:0 10px 10px 0;background:#1b094873;font-size:.86rem;color:var(--ink-dim);animation:rise .35s ease-out both}.join-perks strong{color:var(--ink);font-size:.92rem}.join-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.join-submit{min-height:46px;font-size:1rem}.join-next{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;counter-reset:none}.join-next li{display:flex;align-items:center;gap:8px;font-size:.82rem;line-height:1.3;color:var(--ink-dim)}.join-next-n{flex:none;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;border:1px solid var(--lavender);font-weight:700;color:var(--ink)}.join-next li.done .join-next-n{background:var(--gold);border-color:var(--gold);color:var(--night)}@media (max-width: 760px){.join-layout{grid-template-columns:minmax(0,1fr)}.join-stage{position:static;max-width:340px;width:100%;justify-self:center}.join-roles,.join-row,.join-next{grid-template-columns:minmax(0,1fr)}}.app.full-view{height:100vh;height:100dvh;min-height:0;overflow:hidden;position:relative}.full-view .stage{position:absolute;top:0;right:0;bottom:0;left:0;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.full-view .sky-wrap{overflow:hidden}.full-view .sky-wrap,.full-view .sky-scroll{height:100%}.full-view .sky-scroll{overflow:hidden}.full-view .sky,.full-view.app .is-map .sky{height:100%;min-height:0;min-width:0;aspect-ratio:auto}.sky{touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}.sky.is-panning{cursor:grabbing}.full-view .topbar{position:absolute;top:0;left:0;right:0;z-index:8;background:transparent;border-bottom:0;pointer-events:none}.full-view .topbar .brand,.full-view .topbar .tabs,.full-view .topbar .sample-badge,.full-view .topbar .menu-btn,.full-view .topbar .top-actions>*{pointer-events:auto}.full-view .tabs,.full-view .topbar .btn-ghost,.full-view .sample-badge{background:#1b09488c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.full-view .topbar .btn-ghost:hover:not(:disabled){background:#2e1069d9}.full-view .brand h1,.full-view .tagline{text-shadow:0 1px 4px rgba(14,4,40,.8)}.map-full .brand h1{color:var(--plum);text-shadow:0 1px 3px rgba(255,255,255,.9)}.map-full .tagline{color:#3b2486;text-shadow:0 1px 3px rgba(255,255,255,.9)}.map-full .tabs{background:#ffffffb8}.map-full .tab{color:#3b2486}.map-full .tab.on{color:var(--night)}.map-full .topbar .btn-ghost,.map-full .sample-badge{background:#ffffffb8;border-color:var(--plum);color:var(--plum)}.map-full .topbar .btn-ghost:hover:not(:disabled){background:#fffffff2}.full-view .view-controls{top:calc(var(--topbar-h, 64px) + 6px);z-index:3}.map-overlay-bl{display:contents}.full-view .map-overlay-bl{position:absolute;left:14px;bottom:calc(var(--foot-h, 32px) + 10px);z-index:3;display:flex;flex-direction:column;gap:8px;max-width:min(360px,calc(100% - 28px));pointer-events:none}.full-view .map-note{position:static;border-radius:12px;padding:6px 12px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-size:.8rem}.map-full .map-legend{flex-direction:column;flex-wrap:nowrap;gap:6px;padding:10px 14px;border:0;border-radius:12px;background:#ffffffd1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 1px 6px #3c40434d;font-size:.9rem}.map-full .map-note{background:#ffffffd1;box-shadow:0 1px 6px #3c40434d}.full-view .foot{position:absolute;left:0;right:0;bottom:0;z-index:4;background:#1b094899;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-top:0;padding:6px 16px}.map-full .foot{background:#ffffffb8;color:#3b2486}.zoom-controls{position:absolute;right:14px;bottom:calc(var(--foot-h, 32px) + 10px);z-index:3;display:flex;flex-direction:column;align-items:center;gap:6px}.zoom-btn,.compass{width:40px;height:40px;display:grid;place-items:center;border-radius:10px;border:1px solid var(--line);background:#1b0948bf;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--ink);font-size:1.4rem;line-height:1;font-weight:600}.zoom-btn{cursor:pointer}.zoom-btn:hover:not(:disabled){background:#2e1069f2}.zoom-btn:disabled{opacity:.4;cursor:default}.zoom-btn svg{width:20px;height:20px}.compass{border-radius:50%}.compass svg{width:30px;height:30px}.compass polygon{fill:var(--gold)}.compass text{font-size:7px;font-weight:800;fill:var(--ink)}.scale-bar{position:absolute;right:66px;bottom:calc(var(--foot-h, 32px) + 10px);z-index:3;display:flex;flex-direction:column;align-items:flex-end;gap:2px;padding:4px 8px;border-radius:8px;background:#1b094899;font-size:.75rem;font-weight:650;color:var(--ink);pointer-events:none}.scale-line{display:block;height:6px;border:2px solid currentColor;border-top:0}.is-map .zoom-btn,.is-map .compass{background:#fff;border-color:#dadce0;color:#3c4043;box-shadow:0 1px 4px #3c40434d}.is-map .zoom-btn:hover:not(:disabled){background:#f1f3f4}.is-map .compass polygon{fill:#d93025}.is-map .compass text{fill:#3c4043}.is-map .scale-bar{background:#ffffffd9;color:#3c4043}.map-sidebar{position:absolute;top:calc(var(--topbar-h, 64px) + 6px);right:14px;bottom:calc(var(--foot-h, 32px) + 8px);width:min(400px,calc(100% - 28px));z-index:6;display:flex;flex-direction:column;background:#27105fdb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:16px;box-shadow:0 6px 24px #0e042873;overflow:hidden;animation:rise .25s ease-out both}.map-sidebar-bar{display:flex;justify-content:flex-end;padding:8px 10px 0}.map-sidebar .panel{background:transparent;border:0;max-height:none;flex:1;min-height:0}.full-view .stage:has(.map-sidebar) .zoom-controls{right:calc(min(400px,100% - 28px) + 28px)}.full-view .stage:has(.map-sidebar) .scale-bar{right:calc(min(400px,100% - 28px) + 80px)}@media (max-width: 900px){.map-sidebar{top:auto;left:14px;bottom:calc(var(--foot-h, 32px) + 6px);max-height:58vh;width:auto}.full-view .stage:has(.map-sidebar) .zoom-controls,.full-view .stage:has(.map-sidebar) .scale-bar,.full-view .map-overlay-bl{display:none}}@media (max-width: 600px){.full-view .tagline{display:none}.tabs{max-width:100%;overflow-x:auto;scrollbar-width:none}.tab{flex:none;padding:6px 14px}.full-view .topbar{gap:8px}.top-actions{gap:6px}}.faq{width:min(1080px,100%);gap:18px}.faq-head h2{font-size:1.6rem;margin-bottom:4px}.faq-filters{display:flex;flex-wrap:wrap;gap:8px}.faq-chip{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:6px 14px;border-radius:999px;border:1px solid var(--line);background:#1b094880;color:var(--ink-dim);font-weight:600;cursor:pointer;transition:background .15s ease,color .15s ease}.faq-chip:hover:not(.on){background:#9b75db33;color:var(--ink)}.faq-chip.on{background:var(--gold);border-color:var(--gold);color:var(--night)}.faq-count{font-size:.75rem;min-width:20px;padding:1px 6px;border-radius:999px;background:#9b75db40;text-align:center}.faq-chip.on .faq-count{background:#1b09482e}.faq-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:12px;align-items:start}.faq-card{position:relative;display:grid;gap:6px;padding:16px 16px 10px;border-radius:var(--radius);border:1px solid var(--line);background:radial-gradient(120% 80% at 100% 0%,rgba(155,117,219,.16),transparent 60%),var(--card);transition:border-color .2s ease,box-shadow .2s ease;animation:rise .35s ease-out both}.faq-card:hover{border-color:#9b75db99}.faq-card.is-open{border-color:var(--gold);box-shadow:0 0 0 1px #f2b90c40,0 8px 26px #0e042873}.faq-topic{display:flex;align-items:center;gap:6px;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--lavender)}.faq-topic svg{width:12px;height:12px;fill:var(--gold)}.faq-q{font-size:1.02rem;line-height:1.3}.faq-a{color:var(--ink-dim);font-size:.92rem}.faq-more{margin-top:4px;padding-top:10px;border-top:1px solid var(--line);display:grid;gap:8px;font-size:.9rem;animation:rise .25s ease-out both}.faq-more ul{margin:0;padding:0;list-style:none;display:grid;gap:6px}.faq-more li{position:relative;padding-left:16px;line-height:1.45}.faq-more li:before{content:"";position:absolute;left:2px;top:.6em;width:5px;height:5px;border-radius:50%;background:var(--gold)}.faq-note{font-size:.82rem;padding:6px 10px;border-radius:8px;background:#1b09488c;color:var(--ink-dim)}.faq-note strong{color:var(--gold);font-weight:650}.faq-toggle{justify-self:start;display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:4px 2px;border:0;background:none;color:var(--gold);font-weight:650;font-size:.88rem;cursor:pointer}.faq-chev{width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .2s ease}.faq-toggle[aria-expanded=true] .faq-chev{transform:translateY(1px) rotate(225deg)}.foot-short{display:none}@media (max-width: 640px){.foot-long{display:none}.foot-short{display:inline}.foot,.full-view .foot{padding:5px 12px;font-size:.72rem;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.modal.welcome{max-height:82vh;max-height:82dvh}.welcome-hero{padding:22px 50px 10px 18px}.welcome-hero h2{font-size:1.4rem;margin:6px 0}.welcome-sub{font-size:.92rem;line-height:1.4}.welcome-diff-title{display:none}.welcome-diffs{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-bottom:10px}.welcome-diffs li{padding:6px 10px}.welcome-diffs li span{display:none}.welcome-diffs strong{font-size:.85rem}.welcome-note{margin-bottom:10px;padding:6px 10px;font-size:.74rem}.welcome-actions{padding-top:10px;gap:8px}.welcome-actions .btn{flex:1 1 120px;padding:8px 10px}}.menu-btn{display:none}.map-sidebar-bar{border-bottom:1px solid var(--line);padding-bottom:8px}.map-sidebar .panel{-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 14px);mask-image:linear-gradient(to bottom,transparent 0,#000 14px)}@media (max-width: 640px){.topbar{gap:8px 10px;padding:10px 12px}.brand{order:0}.brand .logo{width:30px;height:30px}.wordmark{font-size:1.2rem!important}.sample-badge{order:1}.menu-btn{order:2;display:grid;place-items:center;width:40px;height:36px;padding:0;font-size:1.1rem}.tabs{order:3;width:100%}.top-actions{order:4;display:none;width:100%}.top-actions.is-open{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:10px;border-radius:14px;background:#1b0948eb;border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.map-full .top-actions.is-open{background:#fffffff2}.top-actions.is-open .btn{min-height:42px}.map-sidebar-bar .btn{padding:4px 10px}.tour,.tour-wide{padding:12px 14px calc(10px + env(safe-area-inset-bottom,0px));gap:8px;max-height:46vh}.tour h2{font-size:1.1rem}.tour p{font-size:.92rem;line-height:1.4}.tour-actions .btn{min-height:40px;padding-inline:12px}}@media (max-width: 900px){.has-tour .map-sidebar{top:calc(var(--topbar-h, 64px) + 6px);bottom:auto;max-height:calc(50vh - var(--topbar-h, 64px))}.has-tour [data-tour]{scroll-margin-bottom:12px}.tour-on-map .map-sidebar{display:none}}.ship-meter{display:grid;gap:6px;margin-top:10px}.ship-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.ship-title{font-weight:650}.ship-amount{font-weight:700;color:var(--gold);font-variant-numeric:tabular-nums}.ship-bar{height:10px;border-radius:999px;background:#1b0948cc;border:1px solid var(--line);overflow:hidden}.ship-bar span{display:block;height:100%;border-radius:inherit;background:repeating-linear-gradient(-45deg,#f2b90c 0,#f2b90c 8px,#ffd24d 8px,#ffd24d 16px);transition:width .8s ease}.ship-bar.is-full span{background:var(--gold)}.ship-fill{transform-box:fill-box;transform-origin:50% 100%;transition:transform .9s cubic-bezier(.22,1,.36,1)}.money-q{flex:none;width:26px;height:26px}.money-q circle{fill:#f2b90c24;stroke:var(--gold);stroke-width:2}.money-q text{fill:var(--gold);font-size:14px;font-weight:800;letter-spacing:-.5px}.q-section-title .money-q{width:22px;height:22px;vertical-align:-6px;margin-right:8px}.q-with-icon{display:flex;align-items:center;gap:12px}.map-glint{fill:#fff;stroke:#f2b90c;stroke-width:2;filter:drop-shadow(0 0 3px rgba(242,185,12,.9));pointer-events:none}.map-sparkle{fill:#9b75db;opacity:.55;pointer-events:none;animation:map-twinkle 3.4s ease-in-out infinite}.map-sparkle.is-gold{fill:#e0a22b}@keyframes map-twinkle{0%,to{opacity:.15}50%{opacity:.7}}.map-star-glow{opacity:.28;pointer-events:none;animation:map-star-glow 2.8s ease-in-out infinite}@keyframes map-star-glow{0%,to{opacity:.18}50%{opacity:.42}}.join-colors{margin:0;padding:0;border:0;display:grid;gap:8px}.join-colors legend{margin-bottom:6px;font-size:.88rem;color:var(--ink-dim)}.join-swatches{display:flex;flex-wrap:wrap;gap:10px}.join-swatch{position:relative;width:38px;height:38px;border-radius:50%;border:2px solid transparent;cursor:pointer;display:grid;place-items:center;transition:transform .15s ease,border-color .15s ease}.join-swatch input{position:absolute;opacity:0;pointer-events:none}.join-swatch:hover{transform:scale(1.08)}.join-swatch.on{border-color:var(--ink);transform:scale(1.12)}.join-swatch:focus-within{outline:3px solid var(--gold);outline-offset:2px}.join-swatch span{width:28px;height:28px;border-radius:50%;box-shadow:inset 0 -3px 6px #00000040}.join-swatch svg{width:30px;height:30px}.join-color-name{font-size:.82rem;color:var(--ink-dim)}.toast-region{position:fixed;left:50%;bottom:calc(var(--foot-h, 32px) + 14px);transform:translate(-50%);z-index:35;width:min(440px,calc(100vw - 24px));pointer-events:none}.toast{pointer-events:auto;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:start;padding:14px 14px 12px;border-radius:16px;border:1px solid var(--gold);background:#27105ff5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 10px 34px #0e04288c,0 0 0 4px #f2b90c1f;animation:toast-in .45s cubic-bezier(.34,1.4,.64,1) both}@keyframes toast-in{0%{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:none}}.toast-icon{width:28px;height:28px;fill:var(--gold);filter:drop-shadow(0 0 6px rgba(242,185,12,.7));animation:toast-spin .9s ease-out both}@keyframes toast-spin{0%{transform:rotate(-120deg) scale(.4)}to{transform:none}}.toast strong{display:block;font-size:1rem}.toast p{margin:2px 0 4px;font-size:.88rem;color:var(--ink-dim);line-height:1.4}.toast .link{font-size:.85rem}.toast-x{width:30px;height:30px;margin:-6px -6px 0 0;border:0;border-radius:50%;background:transparent;color:var(--ink-dim);cursor:pointer}.toast-x:hover{background:#9b75db4d;color:var(--ink)}.has-tour .toast-region{display:none}.pledges-btn{display:inline-flex;align-items:center;gap:6px}.pledges-count{min-width:20px;padding:0 6px;border-radius:999px;background:var(--gold);color:var(--night);font-size:.75rem;font-weight:800;line-height:20px;text-align:center}.modal.pledges{width:min(520px,100%)}.pledges-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.pledges-empty{display:grid;gap:4px;padding:18px;border-radius:12px;border:1px dashed var(--lavender);text-align:center}.pledges-totals{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.pledges-totals div{display:grid;padding:10px;border-radius:12px;background:var(--card);border:1px solid var(--line);text-align:center}.pledges-totals strong{font-size:1.3rem;color:var(--gold)}.pledges-totals span{font-size:.75rem;color:var(--ink-dim)}.pledges-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.pledges-list li{display:grid;gap:4px;padding:10px 12px;border-radius:12px;border-left:3px solid var(--gold);background:#1b094880}.pledges-row{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.pledges-row.small{font-size:.82rem;color:var(--ink-dim)}.pledges-row strong{color:var(--ink)}.pledges-lbs{color:var(--gold);font-weight:650}@media (max-width: 640px){.top-actions.is-open .pledges-btn{justify-content:center}.pledges-totals strong{font-size:1.05rem}}.menu-btn{position:relative}.menu-dot{position:absolute;top:4px;right:4px;width:9px;height:9px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 2px var(--night)}.view-toggle{display:flex;gap:8px;border-radius:999px}@media (min-width: 901px) and (max-width: 1600px){.topbar{gap:12px}.tab{padding:6px 13px}.top-actions{gap:6px}.top-actions .btn-sm{padding:6px 10px}}
