:root{--color-bg:#f2f2f3;--color-surface:#e9e9ea;--color-text:#1d1f20;--color-accent:#5980a6;--color-accent-2:#728fab;--color-divider:#1d1f2029;--color-neutral-100:#f5f5f8;--color-neutral-200:#e7e7ea;--color-neutral-300:#d4d4d7;--color-neutral-400:#b7b7ba;--color-neutral-500:#98989b;--color-neutral-600:#7a7a7d;--color-neutral-700:#5d5d60;--color-neutral-800:#424244;--color-neutral-900:#2b2b2d;--color-accent-100:#eef6ff;--color-accent-200:#d6ebff;--color-accent-300:#b5d9fd;--color-accent-400:#94bce3;--color-accent-500:#749dc4;--color-accent-600:#597ea3;--color-accent-700:#416180;--color-accent-800:#2c455d;--color-accent-900:#1d2d3d;--color-accent-2-100:#eef6ff;--color-accent-2-200:#d6ebff;--color-accent-2-300:#bdd8f2;--color-accent-2-400:#9ebbd8;--color-accent-2-500:#7e9cb8;--color-accent-2-600:#627d98;--color-accent-2-700:#486077;--color-accent-2-800:#314457;--color-accent-2-900:#1f2d3a;--font-heading:"Barlow Condensed", system-ui, sans-serif;--font-heading-weight:600;--font-body:"Barlow", system-ui, sans-serif;--space-1:3.4px;--space-2:6.8px;--space-3:10.2px;--space-4:13.6px;--space-6:20.4px;--space-8:27.2px;--radius-sm:2px;--radius-md:4px;--radius-lg:7px;--shadow-sm:0 1px 2px #2b2b2d24;--shadow-md:0 3px 10px #2b2b2d29;--shadow-lg:0 12px 32px #2b2b2d38}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body)}h1,h2,h3,h4{font-family:var(--font-heading);font-weight:var(--font-heading-weight)}.blueprint{border:1px solid var(--color-divider);border-radius:0;position:relative}.blueprint.halftone,.blueprint.plate,.blueprint.duotone{overflow:visible}.blueprint>.corner{width:11px;height:11px;color:color-mix(in srgb, var(--color-text) 55%, transparent);position:absolute}.blueprint>.corner:before,.blueprint>.corner:after{content:"";background:currentColor;position:absolute}.blueprint>.corner:before{width:1px;height:100%;top:0;left:5px}.blueprint>.corner:after{width:100%;height:1px;top:5px;left:0}.blueprint>.corner.tl{top:-6px;left:-6px}.blueprint>.corner.tr{top:-6px;right:-6px}.blueprint>.corner.bl{bottom:-6px;left:-6px}.blueprint>.corner.br{bottom:-6px;right:-6px}.duotone{position:relative;overflow:hidden}.duotone:after{content:"";pointer-events:none;background:var(--color-accent);mix-blend-mode:color;position:absolute;inset:0}*,:before,:after{box-sizing:border-box}body{margin:0;font-size:15px;font-weight:400;line-height:1.55}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:var(--font-heading-weight);letter-spacing:-.015em;margin:0 0 var(--space-2);line-height:1.12}h1{font-size:42px}h2{font-size:32px}h3{font-size:25px}h4{font-size:20px}h5{font-size:16px}h6{letter-spacing:.08em;text-transform:uppercase;font-size:13px}p{margin:0 0 var(--space-3)}a{color:var(--color-accent);text-underline-offset:3px}img{max-width:100%;display:block}figure{margin:0}figcaption{margin-top:var(--space-1);color:color-mix(in srgb, var(--color-text) 55%, transparent);font-size:11px}.text-muted{color:color-mix(in srgb, var(--color-text) 55%, transparent)}:focus{outline:none}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}::selection{background:color-mix(in srgb, var(--color-accent) 30%, transparent)}.hr{height:1px;margin:var(--space-4) 0;background:var(--color-divider);border:0}.btn{cursor:pointer;font-family:var(--font-heading);font-weight:var(--font-heading-weight);color:var(--color-text);padding:var(--space-2) calc(var(--space-3) * 1.2);border-radius:var(--radius-md);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;font-size:14px;line-height:1.2;text-decoration:none;display:inline-flex}.btn svg{display:block}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--color-accent);color:var(--color-bg)}.btn-primary:hover{background:var(--color-accent-600)}.btn-primary:active{background:var(--color-accent-700)}.btn-secondary{border-color:var(--color-divider)}.btn-secondary:hover{background:color-mix(in srgb, var(--color-text) 7%, transparent)}.btn-secondary:active{background:color-mix(in srgb, var(--color-text) 14%, transparent)}.btn-ghost{color:var(--color-accent);padding-inline:var(--space-1)}.btn-ghost:hover{background:color-mix(in srgb, var(--color-accent) 10%, transparent)}.btn-ghost:active{background:color-mix(in srgb, var(--color-accent) 18%, transparent)}.btn-icon{width:36px;height:36px;padding:0}.btn-block{width:100%;margin-top:var(--space-2)}.field>label{color:color-mix(in srgb, var(--color-text) 70%, transparent);margin-bottom:5px;font-size:12px;display:block}.input{width:100%;min-height:36px;font:inherit;color:var(--color-text);caret-color:var(--color-accent);background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-md);padding:6px 10px;font-size:14px}.input:hover{border-color:color-mix(in srgb, var(--color-text) 45%, transparent)}.input:focus-visible{border-color:var(--color-accent);outline-offset:0}textarea.input{resize:vertical;min-height:90px}.radio{cursor:pointer;align-items:center;gap:8px;font-size:14px;display:inline-flex}.radio input,.seg-opt input{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.radio .dot{border:1.5px solid var(--color-divider);border-radius:50%;flex:none;width:16px;height:16px}.radio:hover .dot{border-color:var(--color-accent)}.radio input:checked+.dot{border-color:var(--color-accent);background:var(--color-accent);box-shadow:inset 0 0 0 4px var(--color-bg)}.radio input:focus-visible+.dot{outline:2px solid var(--color-accent);outline-offset:2px}.seg{border:1px solid var(--color-divider);border-radius:var(--radius-md);display:inline-flex;overflow:hidden}.seg-opt{cursor:pointer;align-items:center;gap:6px;padding:7px 12px;font-size:13px;display:inline-flex}.seg-opt+.seg-opt{border-left:1px solid var(--color-divider)}.seg-opt:has(input:checked){background:var(--color-accent);color:var(--color-bg)}.seg-opt:not(:has(input:checked)):hover{background:color-mix(in srgb, var(--color-text) 7%, transparent)}.seg-opt:has(input:focus-visible){outline:2px solid var(--color-accent);outline-offset:-2px}.card{gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-surface);flex-direction:column;display:flex}.card-kicker{letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent);font-size:10px}.card-title{font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:17px;line-height:1.2}.card-body{opacity:.8;flex:1;margin:0;font-size:13px}.card-meta{color:color-mix(in srgb, var(--color-text) 50%, transparent);align-items:center;gap:6px;font-size:11px;display:flex}.elev-sm{box-shadow:var(--shadow-sm)}.elev-md{box-shadow:var(--shadow-md)}.elev-lg{box-shadow:var(--shadow-lg)}.tag{letter-spacing:.02em;border-radius:calc(var(--radius-md) * .75);align-items:center;padding:3px 10px;font-size:11px;display:inline-flex}.tag-accent{background:var(--color-accent-100);color:var(--color-accent-800)}.tag-accent-2{background:var(--color-accent-2-100);color:var(--color-accent-2-800)}.tag-neutral{background:var(--color-neutral-100);color:var(--color-neutral-800)}.tag-outline{border:1px solid var(--color-accent);color:var(--color-accent)}.nav{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-bottom:none;display:flex}.nav-brand{font-family:var(--font-heading);font-weight:var(--font-heading-weight);margin-right:auto;font-size:18px}.nav a{color:inherit;font-size:14px;text-decoration:none}.nav a:hover,.nav a[aria-current=page]{color:var(--color-accent)}.table{border-collapse:collapse;width:100%;font-size:14px}.table th{text-align:left;letter-spacing:.08em;text-transform:uppercase;color:color-mix(in srgb, var(--color-text) 60%, transparent);padding:var(--space-2);border-bottom:1px solid var(--color-divider);font-size:11px}.table td{padding:var(--space-2);border-bottom:1px solid color-mix(in srgb, var(--color-text) 8%, transparent)}.table tbody tr:hover{background:color-mix(in srgb, var(--color-text) 4%, transparent)}.dialog-backdrop{padding:var(--space-4);background:color-mix(in srgb, var(--color-neutral-900) 50%, transparent);place-items:center;display:grid;position:fixed;inset:0}.dialog{gap:var(--space-3);width:min(440px,100%);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-lg);flex-direction:column;display:flex}.dialog-title{font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:20px}.dialog-body{opacity:.85;font-size:14px}.dialog-actions{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2);display:flex}.card,.btn,.input,.tag,.seg,.dialog{border-radius:0}.card,.dialog{border:1px solid var(--color-divider);background:0 0}.btn{border:1px solid var(--color-divider)}.btn-primary{border-color:var(--color-accent)}.btn-ghost{border-color:#0000}
:root{--color-bg:#f7f4ef;--color-surface:#efe9e1;--color-text:#2d2926;--color-accent:#a65a45;--color-accent-2:#8a9a7e;--color-divider:#2d292629;--color-neutral-100:#f4f1ec;--color-neutral-200:#e8e3dc;--color-neutral-300:#d6d0c8;--color-neutral-400:#b9b2a9;--color-neutral-500:#9a938a;--color-neutral-600:#7c756d;--color-neutral-700:#5f5953;--color-neutral-800:#443f3a;--color-neutral-900:#2d2926;--color-accent-100:#f8ece7;--color-accent-200:#f0d5cb;--color-accent-300:#e4b7a7;--color-accent-400:#d29580;--color-accent-500:#bc7660;--color-accent-600:#a65a45;--color-accent-700:#874634;--color-accent-800:#633326;--color-accent-900:#3f2119;--color-accent-2-100:#eaeee5;--color-accent-2-200:#d9e0d1;--color-accent-2-300:#c5cfbb;--color-accent-2-400:#a8b59c;--color-accent-2-500:#8a9a7e;--color-accent-2-600:#6e7e63;--color-accent-2-700:#55644b;--color-accent-2-800:#3e4a37;--color-accent-2-900:#2a3325;--font-heading:"Barlow Condensed", "Noto Sans TC", system-ui, sans-serif;--font-body:"Barlow", "Noto Sans TC", system-ui, sans-serif;--font-display:"Instrument Serif", "Noto Sans TC", system-ui, sans-serif}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:16px;line-height:1.7}a{color:var(--color-accent-700)}a:hover{color:var(--color-accent-800)}.btn-primary{color:#fff}@keyframes confetti-fall{0%{opacity:1;transform:translateY(-20px)rotate(0)}to{transform:translate3d(var(--dx), 70vh, 0) rotate(540deg);opacity:0}}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition-duration:0s!important;animation:none!important}}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;background:var(--color-text);color:var(--color-bg);font-family:var(--font-heading);letter-spacing:.1em;text-transform:uppercase;padding:10px 16px;position:absolute;top:-100px;left:12px}.skip-link:focus{color:var(--color-bg);top:12px}
.site-shell{background:var(--color-bg);min-height:100vh;color:var(--color-text);overflow-x:clip}.m0{margin:0}.c-accent{color:var(--color-accent)}.c-accent-700{color:var(--color-accent-700)}.c-muted{color:var(--color-neutral-700)}.c-text{color:var(--color-text)}.eyebrow{font-family:var(--font-heading);letter-spacing:.16em;text-transform:uppercase;color:var(--color-accent-700);align-items:center;gap:12px;font-size:13px;display:flex}.eyebrow-rule{background:currentColor;width:32px;height:1px}.site-header{z-index:30;background:color-mix(in srgb, var(--color-bg) 94%, transparent);border-bottom:1px solid var(--color-divider);display:none;position:sticky;top:0}.site-header .nav{gap:32px;max-width:1120px;margin:0 auto;padding:14px 48px}.site-header .nav .site-brand,.site-header .nav .site-brand:hover{font-family:var(--font-display);letter-spacing:0;color:var(--color-text);font-size:24px;font-weight:400;text-decoration:none}.site-header .nav .site-navlink,.site-header .nav .site-navlink:hover{font-family:var(--font-heading);letter-spacing:.12em;text-transform:uppercase;color:var(--color-neutral-700);align-items:center;min-height:44px;font-size:15px;display:flex}.site-header .nav .site-navlink.is-active{color:var(--color-accent-700)}.site-header-cta{letter-spacing:.1em;text-transform:uppercase;min-height:44px;padding:0 20px;font-size:15px;transition:transform .15s}.site-header-cta:hover{transform:scale(1.03)}.site-topbar{font-family:var(--font-heading);letter-spacing:.14em;text-transform:uppercase;color:var(--color-neutral-700);justify-content:space-between;align-items:center;padding:16px 20px 0;font-size:13px;display:flex}.site-topbar-brand{font-family:var(--font-display);letter-spacing:0;text-transform:none;color:var(--color-text);font-size:20px}@media (min-width:768px){.site-header{display:block}.site-topbar{display:none}}.hero{flex-wrap:wrap;align-items:center;gap:clamp(40px,5vw,64px);max-width:1120px;margin:0 auto;padding:clamp(20px,5vw,72px) clamp(20px,5vw,48px) clamp(64px,9vw,120px);display:flex}.hero-copy{flex-direction:column;flex:2 300px;gap:20px;min-width:0;display:flex}.hero-title{font-family:var(--font-display);letter-spacing:-.02em;text-wrap:balance;margin:0;font-size:clamp(42px,6vw,80px);font-weight:400;line-height:.98}.hero-title em{color:var(--color-accent-700)}.hero-sub{font-family:var(--font-display);margin:0;font-size:clamp(20px,2.1vw,24px);line-height:1.5}.hero-status{border-top:1px solid var(--color-divider);flex-direction:column;gap:14px;max-width:440px;padding-top:18px;display:flex}.hero-status-line{font-family:var(--font-display);align-items:center;gap:12px;margin:0;font-size:26px;line-height:1.2;display:flex}.hero-check{background:var(--color-accent-2-600);color:#fff;flex:none;place-items:center;width:26px;height:26px;display:grid}.hero-match-word{vertical-align:baseline;font-family:Barlow Condensed,sans-serif}.hero-notes{color:var(--color-neutral-700);flex-direction:column;gap:4px;margin:0;padding-left:38px;font-size:15px;line-height:1.7;display:flex}.hero-notes-row{align-items:center;gap:8px;display:flex}.badge-1day{font-family:var(--font-heading);letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--color-neutral-400);color:var(--color-neutral-700);padding:1px 6px;font-size:11px}.hl{color:var(--color-accent-700);box-shadow:inset 0 -6px 0 var(--color-accent-100);margin:0 2px;font-weight:500}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:8px;display:flex}.hero-story-btn{letter-spacing:.06em;min-height:48px;padding:0 20px;font-size:16px;transition:transform .15s}.hero-story-btn:hover{transform:scale(1.02)}.hero-card-wrap{flex:3 460px;width:100%;min-width:0;max-width:560px;margin:0 auto}.match-card{background:var(--color-bg);flex-direction:column;gap:22px;padding:16px;transition:transform .25s;display:flex}.match-card-head{font-family:var(--font-heading);letter-spacing:.16em;text-transform:uppercase;color:var(--color-neutral-700);justify-content:space-between;align-items:center;font-size:12px;display:flex}.match-card-new{color:var(--color-accent-700);align-items:center;gap:6px;display:flex}.dot6{background:var(--color-accent);width:6px;height:6px}.dot6-sage{background:var(--color-accent-2-600);width:6px;height:6px}.match-photos{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:clamp(10px,3vw,16px);padding:12px 4px;display:grid}.polaroid{background:var(--color-bg);flex-direction:column;padding:6px 6px 0;display:flex}.polaroid-a{animation:1s cubic-bezier(.2,.8,.2,1) .12s both polaroid-a-in,.6s .12s both fade-in;transform:translate(0)rotate(-3deg)}.polaroid-b{animation:1s cubic-bezier(.2,.8,.2,1) .12s both polaroid-b-in,.6s .12s both fade-in;transform:translate(0)translateY(10px)rotate(3deg)}.polaroid-photo{aspect-ratio:3/4;border:1px solid var(--color-divider);margin:0;position:relative}.photo-frame{background:#7f7f7f14;position:absolute;inset:0;overflow:hidden}.photo-frame img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.polaroid-name{font-family:var(--font-heading);letter-spacing:.12em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:4px;padding:8px 2px 9px;font-size:clamp(13px,3.6vw,15px);line-height:1;display:flex}.match-heart{flex-direction:column;align-items:center;gap:8px;animation:.4s cubic-bezier(.3,1.6,.5,1) .87s both heart-pop,.25s .87s both fade-in;display:flex}.vrule{background:var(--color-divider);width:1px;height:18px}.heart-box{background:var(--color-accent);color:#fff;place-items:center;width:clamp(38px,10vw,46px);height:clamp(38px,10vw,46px);display:grid}.matched-label{font-family:var(--font-heading);letter-spacing:.18em;text-transform:uppercase;color:var(--color-accent-700);font-size:11px;line-height:1}.match-caption{text-align:center;flex-direction:column;gap:6px;animation:.4s 1.07s both fade-in;display:flex}.match-big{font-family:var(--font-display);color:var(--color-accent-700);letter-spacing:-.01em;margin:0;font-size:clamp(44px,12vw,58px);font-style:italic;line-height:1}.match-line{margin:0;font-size:16px}.facts-2{border-top:1px solid var(--color-divider);grid-template-columns:1fr 1fr;margin:0;display:grid}.facts-2-a{border-right:1px solid var(--color-divider);padding:12px 12px 4px 0}.facts-2-b{padding:12px 0 4px 12px}.fact-dt{font-family:var(--font-heading);letter-spacing:.14em;text-transform:uppercase;color:var(--color-neutral-700);font-size:12px}.fact-date{font-family:var(--font-display);margin:2px 0 0;font-size:24px;line-height:1.2}.fact-day{font-family:var(--font-heading);letter-spacing:.1em;color:var(--color-neutral-700);font-size:13px}.fact-loc{margin:2px 0 0;font-size:15px;line-height:1.4}.match-cta{letter-spacing:.08em;gap:10px;min-height:54px;font-size:18px;transition:transform .15s,background .15s}.match-cta:hover{transform:scale(1.02)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes polaroid-a-in{0%{transform:translate(-60%)rotate(-10deg)}to{transform:translate(0)rotate(-3deg)}}@keyframes polaroid-b-in{0%{transform:translate(60%)translateY(10px)rotate(10deg)}to{transform:translate(0)translateY(10px)rotate(3deg)}}@keyframes heart-pop{0%{transform:scale(.4)}to{transform:scale(1)}}.section{border-top:1px solid var(--color-divider)}.section-inner{max-width:1120px;margin:0 auto;padding:clamp(64px,9vw,120px) clamp(20px,5vw,48px)}.section-head{flex-direction:column;gap:16px;display:flex}.h2-display{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:clamp(40px,5.4vw,64px);font-weight:400;line-height:1}.story-inner{flex-direction:column;gap:clamp(64px,9vw,112px);display:flex}.story-intro{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));align-items:start;gap:clamp(32px,6vw,88px);display:grid}.story-heading{flex-direction:column;gap:16px;display:flex;position:static;top:96px}@media (min-width:768px){.story-heading{position:sticky}}.story-body{max-width:520px;color:var(--color-neutral-700);text-wrap:pretty;flex-direction:column;gap:22px;font-size:16px;line-height:1.9;display:flex}.story-lede{color:var(--color-text);margin:0;font-size:clamp(18px,2vw,20px);line-height:1.75}.story-quote{border-top:1px solid var(--color-divider);border-bottom:1px solid var(--color-divider);flex-direction:column;gap:8px;margin:8px 0;padding:22px 0;display:flex}.story-quote-a{color:var(--color-neutral-700);margin:0;font-size:15px}.story-quote-b{color:var(--color-accent-700);margin:0;font-size:clamp(20px,2.4vw,24px);line-height:1.6}.story-final{color:var(--color-text);margin:0;font-size:18px;font-weight:500;line-height:1.7}.timeline{flex-direction:column;gap:clamp(48px,7vw,80px);margin:0;padding:0;list-style:none;display:flex}.tl-item{border-top:1px solid var(--color-divider);flex-wrap:wrap;gap:16px clamp(24px,5vw,64px);padding-top:clamp(28px,4vw,40px);display:flex}.tl-date{flex-direction:column;flex:0 0 190px;gap:8px;display:flex}.tl-num{font-family:var(--font-display);letter-spacing:-.01em;color:var(--color-accent-700);font-size:clamp(44px,6vw,60px);line-height:.9}.tl-num.is-sm{font-size:clamp(32px,4vw,40px)}.tl-num.is-range{white-space:nowrap;font-size:clamp(28px,3.2vw,34px)}.tl-tag{font-family:var(--font-heading);letter-spacing:.14em;text-transform:uppercase;color:var(--color-text);font-size:14px}.tl-body{flex-direction:column;flex:320px;gap:18px;min-width:0;max-width:640px;display:flex}.tl-p{color:var(--color-neutral-700);text-wrap:pretty;margin:0;font-size:16px;line-height:1.85}.tl-p.is-strong{color:var(--color-text)}.tl-note{color:var(--color-accent-700);text-wrap:pretty;margin:0;font-size:16px;line-height:1.7}.tl-note.is-loose{color:var(--color-neutral-700);line-height:1.85}.chat{border-top:1px solid var(--color-divider);border-bottom:1px solid var(--color-divider);flex-direction:column;gap:4px;padding:8px 0 18px;display:flex}.chat-msg{flex-direction:column;align-items:flex-start;gap:4px;margin-top:10px;display:flex}.chat-msg.is-me{align-items:flex-end}.chat-msg.is-cont{margin-top:0}.chat-who{font-family:var(--font-heading);letter-spacing:.14em;text-transform:uppercase;color:var(--color-neutral-700);font-size:12px}.chat-msg.is-me .chat-who{color:var(--color-accent-700)}.chat-bubble{text-align:left;max-width:min(80%,440px);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-divider);margin:0;padding:9px 14px;font-size:16px;line-height:1.55}.chat-msg.is-me .chat-bubble{background:var(--color-accent-100);border:1px solid var(--color-accent-200)}.chat-big{letter-spacing:.01em;font-family:Barlow Condensed,sans-serif;font-size:clamp(24px,5vw,32px);font-weight:600;line-height:1.1}.chat-aside{flex-direction:column;gap:6px;margin-top:8px;display:flex}.chat-aside-label{font-family:var(--font-heading);letter-spacing:.14em;text-transform:uppercase;color:var(--color-neutral-700);font-size:12px}.moved-line{font-family:var(--font-heading);letter-spacing:.14em;text-transform:uppercase;color:var(--color-neutral-700);align-items:center;gap:12px;padding-top:12px;font-size:13px;display:flex}.moved-rule{background:var(--color-divider);flex:1;height:1px}.wedding-inner{flex-direction:column;gap:40px;display:flex}.wedding-title{font-family:var(--font-display);letter-spacing:-.02em;text-wrap:balance;margin:0;font-size:clamp(40px,5.4vw,64px);font-weight:400;line-height:1.05}.info-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));margin:0;display:grid}.info-cell{border-right:1px solid var(--color-divider);border-bottom:1px solid var(--color-divider);margin:0 -1px -1px 0;padding:24px}.info-dt{font-family:var(--font-heading);letter-spacing:.14em;text-transform:uppercase;color:var(--color-neutral-700);font-size:13px}.info-big{font-family:var(--font-display);margin:8px 0 0;font-size:34px;line-height:1.1}.info-venue{margin:8px 0 0;font-size:18px;font-weight:500;line-height:1.4}.info-sub{color:var(--color-neutral-700);margin:4px 0 0;font-size:15px}.info-actions{flex-wrap:wrap;gap:12px;display:flex}.info-actions .map-btn{min-height:48px;padding:0 20px;font-size:16px;text-decoration:none;transition:transform .15s}.info-actions .map-btn:hover{transform:scale(1.02)}.info-actions .map-btn.btn-primary{letter-spacing:.06em;gap:8px;padding:0 22px}.info-actions a.map-btn.btn-primary,.info-actions a.map-btn.btn-primary:hover{color:#fff}.info-actions a.map-btn.btn-secondary,.info-actions a.map-btn.btn-secondary:hover{color:var(--color-text)}.dress-inner{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));align-items:end;gap:40px;display:grid}.dress-title{font-family:var(--font-display);letter-spacing:-.01em;text-wrap:balance;margin:0;font-size:clamp(34px,4.4vw,52px);font-weight:400;line-height:1.15}.dress-note{color:var(--color-neutral-700);max-width:420px;margin:0}.swatches{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.swatch{flex-direction:column;gap:8px;display:flex}.swatch-chip{aspect-ratio:3/4;border:1px solid var(--color-divider)}.swatch-name{font-family:var(--font-heading);letter-spacing:.08em;text-transform:uppercase;font-size:14px}.faq-inner{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));align-items:start;gap:clamp(32px,6vw,88px);display:grid}.faq-head{align-self:center}.faq-list{border-top:1px solid var(--color-divider)}.faq-item{border-bottom:1px solid var(--color-divider)}.faq-h3{font-family:var(--font-body);letter-spacing:0;margin:0;font-size:17px;font-weight:500}.faq-btn{width:100%;min-height:60px;font:inherit;color:var(--color-text);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:16px;padding:14px 0;display:flex}.faq-btn:hover{color:var(--color-accent-700)}.faq-q{font-family:var(--font-heading);letter-spacing:.1em;color:var(--color-accent-700);font-size:14px}.faq-text{flex:1}.faq-chev{flex:none;transition:transform .2s}.faq-btn[aria-expanded=true] .faq-chev{transform:rotate(180deg)}.faq-panel{color:var(--color-neutral-800);text-wrap:pretty;white-space:pre-line;padding:0 4px 20px 40px;font-size:15px}.faq-panel strong{color:var(--color-accent-700);font-weight:700}@media (min-width:768px){.faq-panel{padding:0 36px 20px 44px}}.site-footer{border-top:1px solid var(--color-divider);padding:clamp(56px, 8vw, 96px) clamp(20px, 5vw, 48px) calc(clamp(56px, 8vw, 96px) + calc(64px + env(safe-area-inset-bottom)));text-align:center;flex-direction:column;align-items:center;gap:10px;display:flex}@media (min-width:768px){.site-footer{padding-bottom:calc(clamp(56px,8vw,96px) + 0px)}}.footer-quote{font-family:var(--font-display);text-wrap:balance;max-width:640px;margin:0;font-size:clamp(28px,4vw,40px);font-style:italic;line-height:1.2}.footer-meta{font-family:var(--font-heading);letter-spacing:.16em;text-transform:uppercase;color:var(--color-neutral-700);margin:0;font-size:13px}.bottom-nav{z-index:40;background:var(--color-bg);border-top:1px solid var(--color-divider);padding-bottom:env(safe-area-inset-bottom);grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav a.bottom-nav-link,.bottom-nav a.bottom-nav-link:hover{min-height:60px;color:var(--color-neutral-700);font-family:var(--font-heading);letter-spacing:.12em;text-transform:uppercase;border-top:2px solid #0000;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:12px;text-decoration:none;display:flex}.bottom-nav a.bottom-nav-link.is-active{color:var(--color-accent-700);border-top-color:var(--color-accent)}@media (min-width:768px){.bottom-nav{display:none}}.toast-region{z-index:70;height:0;position:fixed;bottom:0;left:0;right:0}.toast{left:50%;bottom:calc(76px + env(safe-area-inset-bottom));background:var(--color-text);color:var(--color-bg);align-items:center;gap:10px;max-width:calc(100vw - 32px);padding:12px 18px;font-size:15px;animation:.25s both toast-in;display:flex;position:fixed;transform:translate(-50%)}@media (min-width:768px){.toast{bottom:32px}}.confetti-layer{pointer-events:none;z-index:80;height:100vh;position:fixed;inset:0 0 auto;overflow:hidden}
.rsvp{border-top:1px solid var(--color-divider);background:var(--color-surface)}.rsvp-inner{flex-direction:column;gap:36px;max-width:720px;margin:0 auto;padding:clamp(64px,9vw,120px) clamp(20px,5vw,48px);display:flex}.rsvp-head{text-align:center;flex-direction:column;align-items:center;gap:14px;display:flex}.rsvp-title{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:clamp(46px,7vw,76px);font-weight:400;line-height:1}.rsvp-lede{text-wrap:pretty;max-width:440px;margin:0}.rsvp-deadline{font-family:var(--font-heading);letter-spacing:.12em;text-transform:uppercase;color:var(--color-neutral-700);margin:0;font-size:14px}.rsvp-deadline strong{color:var(--color-accent-700);font-weight:700}.rsvp-joke{color:var(--color-accent-700);margin:-8px 0 0;font-size:14px}.choose{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(12px,3vw,24px);display:grid}.choose-btn{background:var(--color-bg);cursor:pointer;font:inherit;color:var(--color-text);flex-direction:column;justify-content:center;align-items:center;gap:14px;min-height:200px;padding:clamp(20px,5vw,36px) 12px;transition:transform .2s,border-color .2s;display:flex}.choose-btn.is-yes:hover{border-color:var(--color-accent);transform:translate(6px)rotate(1.5deg)}.choose-btn.is-no{background:0 0}.choose-btn.is-no:hover{border-color:var(--color-neutral-600);transform:translate(-6px)rotate(-1.5deg)}.choose-icon{place-items:center;width:64px;height:64px;display:grid}.choose-icon.is-yes{background:var(--color-accent);color:#fff}.choose-icon.is-no{border:1px solid var(--color-neutral-500);color:var(--color-neutral-800)}.choose-word{font-family:var(--font-heading);letter-spacing:.1em;font-size:clamp(26px,6vw,34px);font-weight:600;line-height:1}.choose-sub{font-size:16px}.rsvp-form{background:var(--color-bg);flex-direction:column;gap:32px;padding:clamp(20px,5vw,40px);display:flex}.form-head{font-family:var(--font-heading);letter-spacing:.14em;text-transform:uppercase;color:var(--color-neutral-700);border-bottom:1px solid var(--color-divider);justify-content:space-between;align-items:center;padding-bottom:14px;font-size:13px;display:flex}.req{color:var(--color-accent-700)}.field-block{flex-direction:column;gap:8px;display:flex}.field-block.is-loose{gap:10px}.field-label{font-family:var(--font-heading);letter-spacing:.08em;text-transform:uppercase;font-size:15px}.field-label-note{font-family:var(--font-body);text-transform:none;letter-spacing:0;color:var(--color-neutral-700);font-size:14px}.field-input{min-height:48px;font-size:16px}.field-input[aria-invalid=true]{border-color:var(--color-accent-700)}textarea.field-input{min-height:110px}.field-error{color:var(--color-accent-800);align-items:center;gap:6px;margin:0;font-size:14px;display:flex}.field-hint{color:var(--color-neutral-700);margin:0;font-size:14px}.field-sublabel{color:var(--color-neutral-700);font-size:14px}.relation-group{outline-offset:6px;flex-direction:column;gap:8px;display:flex}.seg-group{border:1px solid var(--color-divider);grid-template-columns:1fr 1fr;display:grid}.seg-btn{min-height:48px;color:var(--color-text);font:inherit;cursor:pointer;background:0 0;border:0;font-size:16px;transition:background .15s}.seg-btn+.seg-btn{border-left:1px solid var(--color-divider)}.seg-btn[aria-checked=true]{background:var(--color-accent);color:#fff}.seg-btn.is-flex{justify-content:center;align-items:center;gap:8px;display:flex}.seg-btn.is-padded{padding:0 20px}.seg-btn.is-meal{min-height:44px;font-size:15px}.seg-center{align-self:center;min-width:240px}.seg-kids{min-width:200px}.stepper{border:1px solid var(--color-divider);align-items:stretch;display:flex}.stepper.is-center{align-self:center}.stepper-btn{cursor:pointer;width:52px;min-height:52px;color:var(--color-text);background:0 0;border:0;place-items:center;display:grid}.stepper-btn:hover{background:var(--color-accent-100)}.stepper-btn:disabled{opacity:.45;cursor:not-allowed;background:0 0}.stepper.is-sm .stepper-btn{width:48px;min-height:48px}.stepper-value{white-space:nowrap;border-left:1px solid var(--color-divider);border-right:1px solid var(--color-divider);flex-direction:row;justify-content:center;align-items:center;gap:6px;min-width:88px;padding:0 12px;display:flex}.stepper-num{font-family:var(--font-display);font-size:26px;line-height:1;display:block}.stepper-unit{font-family:var(--font-body);font-size:14px;line-height:1;display:block}.stepper-output{border-left:1px solid var(--color-divider);border-right:1px solid var(--color-divider);place-items:center;min-width:96px;font-size:15px;display:grid}.guests{border-top:1px solid var(--color-divider);flex-direction:column;display:flex}.guest-row{border-bottom:1px solid var(--color-divider);flex-wrap:wrap;align-items:center;gap:10px 16px;padding:14px 0;display:flex}.guest-name{flex-direction:column;flex:200px;gap:6px;min-width:0;display:flex}.guest-label{font-family:var(--font-heading);letter-spacing:.12em;text-transform:uppercase;color:var(--color-neutral-700);font-size:13px}.guest-self{align-items:center;min-height:44px;font-size:16px;display:flex}.guest-input{min-height:44px;font-size:16px}.meal-group{border:1px solid var(--color-divider);flex:240px;grid-template-columns:repeat(2,1fr);display:grid}.chip-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;display:grid}.check-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.chip{border:1px solid var(--color-divider);min-height:48px;color:var(--color-text);font:inherit;cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:6px;padding:8px 12px;font-size:15px;transition:transform .15s,background .15s;display:flex}.chip:hover{transform:scale(1.02)}.chip[aria-checked=true]{border-color:var(--color-accent);background:var(--color-accent-100);color:var(--color-accent-800)}.chip-mark{font-size:13px}.check{border:1px solid var(--color-divider);min-height:48px;color:var(--color-text);font:inherit;cursor:pointer;text-align:center;background:0 0;justify-content:center;align-items:center;gap:10px;padding:8px 12px;font-size:15px;transition:background .15s;display:flex}.check:hover{background:var(--color-accent-100)}.check-box{border:1px solid var(--color-neutral-500);color:#fff;background:0 0;flex:none;place-items:center;width:20px;height:20px;font-size:13px;line-height:1;display:grid}.check[aria-checked=true] .check-box{border-color:var(--color-accent);background:var(--color-accent)}.kids-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;display:flex}.kids-extra{flex-direction:column;gap:10px;margin-top:4px;display:flex}.kids-extra-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px 16px;display:flex}.kids-extra-label{min-width:112px;font-size:15px}.remind-note{color:var(--color-neutral-700);text-align:center;margin:0;font-size:14px}.form-foot{border-top:1px solid var(--color-divider);flex-direction:column;gap:12px;padding-top:24px;display:flex}.form-alert{color:var(--color-accent-800);align-items:center;gap:6px;margin:0;font-size:15px;display:flex}.submit-btn{letter-spacing:.1em;gap:12px;min-height:56px;font-size:18px;transition:transform .15s,background .15s}.submit-btn:hover{transform:scale(1.02)}.submit-zh{font-family:var(--font-body);letter-spacing:.04em;font-size:16px;font-weight:500}.back-btn{min-height:44px;color:var(--color-accent-700);align-self:center;font-size:15px}.rsvp-backdrop{z-index:60;background:color-mix(in srgb, var(--color-neutral-900) 45%, transparent)}.confirm-dialog{background:var(--color-bg);overscroll-behavior:contain;width:min(460px,100%);max-height:calc(100dvh - 32px);box-shadow:none;border-radius:0;gap:18px;padding:clamp(20px,5vw,32px);overflow:auto}.cf-kicker{font-family:var(--font-heading);letter-spacing:.16em;text-transform:uppercase;color:var(--color-accent-700);font-size:13px}.cf-title{font-family:var(--font-display);margin:0;font-size:40px;font-weight:400;line-height:1}.cf-list{border-top:1px solid var(--color-divider);flex-direction:column;margin:0;display:flex}.cf-row{border-bottom:1px solid var(--color-divider);grid-template-columns:104px 1fr;gap:12px;padding:12px 0;display:grid}.cf-row dt{font-family:var(--font-heading);letter-spacing:.14em;text-transform:uppercase;color:var(--color-neutral-700);padding-top:2px;font-size:13px}.cf-row dd{white-space:pre-line;margin:0;font-size:16px}.cf-actions{grid-template-columns:1fr 1.4fr;gap:10px;display:grid}.cf-back{min-height:52px;font-size:16px}.cf-send{letter-spacing:.06em;min-height:52px;font-size:17px;transition:transform .15s}.cf-send:hover:not(:disabled){transform:scale(1.02)}.cf-error{color:var(--color-accent-800);align-items:flex-start;gap:6px;margin:0;font-size:15px;display:flex}.success{text-align:center;flex-direction:column;align-items:center;gap:18px;display:flex}.success-kicker{font-family:var(--font-heading);letter-spacing:.16em;text-transform:uppercase;color:var(--color-accent-2-700);align-items:center;gap:8px;font-size:13px;display:flex}.success-title{font-family:var(--font-display);letter-spacing:-.02em;color:var(--color-accent-700);margin:0;font-size:clamp(60px,13vw,120px);font-style:italic;font-weight:400;line-height:.95}.success-see{font-family:var(--font-display);margin:0;font-size:28px}.success-line{color:var(--color-neutral-700);max-width:400px;margin:0}.success-facts{text-align:left;grid-template-columns:1fr 1fr;width:100%;max-width:480px;margin:8px 0 0;display:grid}.success-fact{padding:18px}.success-fact.is-first{border-right:1px solid var(--color-divider)}.success-date{font-family:var(--font-display);margin:4px 0 0;font-size:26px;line-height:1.2}.success-venue{margin:4px 0 0;font-size:16px;font-weight:500;line-height:1.4}.success-sub{color:var(--color-neutral-700);margin:0;font-size:14px}.success-actions{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;width:100%;max-width:480px;display:grid}.success-actions .btn,.gc-actions .btn{gap:8px;min-height:48px;font-size:16px;transition:transform .15s}.success-actions .btn:hover,.gc-actions .btn:hover{transform:scale(1.02)}.gc-wrap{flex-direction:column;align-items:center;gap:16px;width:100%;margin-top:40px;display:flex}.gc-kicker{font-family:var(--font-heading);letter-spacing:.16em;text-transform:uppercase;color:var(--color-neutral-700);font-size:13px}.gc{aspect-ratio:9/16;background:var(--color-accent-900);width:320px;max-width:100%;color:var(--color-bg);text-align:left;flex-direction:column;gap:16px;padding:22px;display:flex}.gc.blueprint>.corner{color:var(--color-accent-900)}.gc-head{font-family:var(--font-heading);letter-spacing:.16em;text-transform:uppercase;color:var(--color-accent-200);justify-content:space-between;font-size:12px;display:flex}.gc-photo{border:1px solid color-mix(in srgb, var(--color-bg) 30%, transparent);flex:auto;min-height:120px;position:relative}.gc-empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:12px;font:13px/1.3 system-ui,-apple-system,sans-serif;display:flex;position:absolute;inset:0}.gc-empty svg{opacity:.45}.gc-empty-cap{letter-spacing:.01em;opacity:.75;max-width:90%;font-weight:500}.gc-empty-ring{pointer-events:none;opacity:.35;border:1.5px dashed;position:absolute;inset:0}.gc-names{font-family:var(--font-display);margin:0;font-size:34px;line-height:1.05}.gc-tag{font-family:var(--font-display);color:var(--color-accent-200);margin:4px 0 0;font-size:18px;font-style:italic}.gc-facts{border-top:1px solid color-mix(in srgb, var(--color-bg) 25%, transparent);grid-template-columns:1fr 1fr;gap:12px 10px;margin:0;padding-top:14px;display:grid}.gc-facts dt{font-family:var(--font-heading);letter-spacing:.16em;text-transform:uppercase;color:var(--color-accent-200);font-size:11px}.gc-facts dd{margin:2px 0 0;font-size:16px;font-weight:500}.gc-foot{font-family:var(--font-heading);letter-spacing:.14em;text-transform:uppercase;justify-content:space-between;align-items:baseline;font-size:13px;display:flex}.gc-foot span:last-child{color:var(--color-accent-200)}.gc-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.gc-actions .btn{padding:0 20px}.gc-hint{color:var(--color-neutral-700);margin:0;font-size:14px}.declined{background:var(--color-bg);text-align:center;flex-direction:column;align-items:center;gap:20px;padding:clamp(24px,6vw,48px);display:flex}.declined-kicker{font-family:var(--font-heading);letter-spacing:.16em;text-transform:uppercase;color:var(--color-neutral-700);font-size:13px}.declined-title{font-family:var(--font-heading);letter-spacing:.02em;text-transform:uppercase;margin:0;font-size:clamp(40px,9vw,64px);font-weight:600;line-height:1}.declined-love{font-family:var(--font-display);color:var(--color-accent-700);margin:0;font-size:26px}.declined-note{color:var(--color-neutral-700);max-width:420px;margin:0}.declined-form{text-align:left;flex-direction:column;gap:16px;width:100%;max-width:480px;display:flex}.declined-submit{letter-spacing:.06em;min-height:52px;font-size:17px;transition:transform .15s}.declined-submit:hover:not(:disabled){transform:scale(1.02)}.declined-sent{color:var(--color-accent-2-800);align-items:center;gap:8px;margin:0;font-size:16px;display:flex}.declined-back{min-height:44px;color:var(--color-accent-700);font-size:15px}.notice-title{font-family:var(--font-display);margin:0;font-size:clamp(32px,7vw,44px);font-weight:400;line-height:1.1}.guest-removed{flex-wrap:wrap;align-items:center;gap:4px 8px;display:flex}.guest-undo{min-height:32px;color:var(--color-accent-700);padding:0 8px;font-size:14px}
.admin-root{background:var(--color-bg);min-height:100vh;color:var(--color-text);font-size:15px;line-height:1.55}.admin-header{border-bottom:1px solid var(--color-divider);z-index:20;background:var(--color-bg);position:sticky;top:0}.admin-header .nav{flex-wrap:wrap;gap:clamp(12px,3vw,28px);max-width:1440px;margin:0 auto;padding:12px clamp(16px,3vw,40px)}.admin-brand{font-family:var(--font-display);align-items:baseline;gap:10px;font-size:24px;font-weight:400;display:flex}.admin-brand-tag{font-family:var(--font-heading);letter-spacing:.16em;text-transform:uppercase;color:var(--color-accent-700);font-size:13px}.admin-tabs{gap:4px;display:flex}.admin-tab{min-height:44px;font-family:var(--font-heading);letter-spacing:.12em;text-transform:uppercase;color:var(--color-neutral-700);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;padding:0 16px;font-size:15px}.admin-tab:hover{color:var(--color-accent-700)}.admin-tab[aria-selected=true]{border-bottom-color:var(--color-accent);color:var(--color-accent-700)}.admin-private{align-items:center;gap:6px;display:flex}.admin-account{color:var(--color-neutral-700);align-items:center;gap:8px;font-size:13px;display:flex}.admin-logout{min-height:36px;color:var(--color-accent-700);gap:6px;padding:0 10px;font-size:13px}.admin-main{flex-direction:column;gap:36px;max-width:1440px;margin:0 auto;padding:clamp(24px,4vw,48px) clamp(16px,3vw,40px) 80px;display:flex}.admin-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.admin-top-copy{flex-direction:column;gap:6px;display:flex}.admin-kicker{font-family:var(--font-heading);letter-spacing:.16em;text-transform:uppercase;color:var(--color-accent-700);font-size:13px}.admin-title{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:clamp(36px,4.4vw,56px);font-weight:400;line-height:1}.admin-sub{color:var(--color-neutral-700);margin:0}.admin-actions{flex-wrap:wrap;gap:10px;display:flex}.admin-actions .btn{gap:8px;min-height:44px;padding:0 16px;font-size:15px}.admin-actions .btn-primary{padding:0 18px;transition:transform .15s}.admin-actions .btn-primary:hover{transform:scale(1.02)}.stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;display:grid}.stat{flex-direction:column;gap:6px;min-height:132px;padding:18px;display:flex}.stat-head{font-family:var(--font-heading);letter-spacing:.14em;text-transform:uppercase;color:var(--color-neutral-700);justify-content:space-between;align-items:center;font-size:13px;display:flex}.stat-dot{width:8px;height:8px}.stat-value{font-family:var(--font-display);margin-top:auto;font-size:48px;line-height:1}.stat-sub{color:var(--color-neutral-700);font-size:13px}.progress{flex-direction:column;gap:14px;padding:20px;display:flex}.progress-head{font-family:var(--font-heading);letter-spacing:.14em;text-transform:uppercase;color:var(--color-neutral-700);flex-wrap:wrap;justify-content:space-between;gap:8px;font-size:13px;display:flex}.progress-bar{gap:2px;height:14px;display:flex}.pb-going{background:var(--color-accent-2-500)}.pb-declined{background:var(--color-accent-300)}.pb-pending{background:repeating-linear-gradient(45deg, var(--color-neutral-300) 0 4px, transparent 4px 8px);border:1px solid var(--color-neutral-300)}.progress-legend{flex-wrap:wrap;gap:18px;font-size:14px;display:flex}.legend-item{align-items:center;gap:8px;display:flex}.legend-sw{width:12px;height:12px}.legend-sw.is-pending{border:1px solid var(--color-neutral-400);background:repeating-linear-gradient(45deg, var(--color-neutral-300) 0 3px, transparent 3px 6px)}.dash-cols{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));align-items:start;gap:24px;display:grid}.dash-section{flex-direction:column;gap:16px;display:flex}.dash-section-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.dash-h2{font-family:var(--font-heading);letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:22px}.dash-meta{color:var(--color-neutral-700);flex-wrap:wrap;align-items:center;gap:12px;font-size:14px;display:flex}.dash-add{min-height:0;color:var(--color-accent-700);gap:6px;padding:2px 8px;font-size:14px;line-height:1.2}.tables{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px;display:grid}.tcard{flex-direction:column;gap:10px;padding:16px;display:flex}.tcard-head{justify-content:space-between;align-items:center;gap:6px;display:flex}.tcard-name{font-family:var(--font-heading);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:4px;min-width:0;font-size:15px;display:flex}.tcard-edit{width:28px;height:28px;color:var(--color-neutral-700);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid}.tcard-edit:hover{color:var(--color-accent-700);background:var(--color-accent-100)}.tcard-state{white-space:nowrap;color:var(--color-neutral-700);padding:2px 8px;font-size:12px}.tcard-state.is-full{background:var(--color-accent-2-100);color:var(--color-accent-2-800)}.tcard-state.is-over{background:var(--color-accent-100);color:var(--color-accent-800)}.tcard-used{font-family:var(--font-display);font-size:34px;line-height:1}.tcard-cap{color:var(--color-neutral-600);font-size:20px}.tcard-bar{background:var(--color-neutral-200);height:6px}.tcard-fill{background:var(--color-accent-2-500);height:100%}.tcard-fill.is-full{background:var(--color-accent-2-700)}.tcard-fill.is-over{background:var(--color-accent-700)}.tcard-names{color:var(--color-neutral-700);min-height:40px;font-size:13px;line-height:1.5}.messages{border-top:1px solid var(--color-divider);flex-direction:column;display:flex}.message{border-bottom:1px solid var(--color-divider);flex-direction:column;gap:6px;padding:14px 0;display:flex}.message-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.message-name{font-weight:500}.message-text{font-family:var(--font-display);margin:0;font-size:19px;line-height:1.4}.mini-badge{gap:4px;padding:2px 8px;font-size:12px;display:inline-flex}.empty-note{color:var(--color-neutral-700);margin:0;padding:24px 0}.badge{white-space:nowrap;border:1px solid var(--color-neutral-400);color:var(--color-neutral-800);background:0 0;align-items:center;gap:5px;padding:3px 10px;font-size:13px;display:inline-flex}.badge.is-going,.mini-badge.is-going{background:var(--color-accent-2-100);color:var(--color-accent-2-800);border-color:var(--color-accent-2-300)}.badge.is-declined,.mini-badge.is-declined{background:var(--color-accent-100);color:var(--color-accent-800);border-color:var(--color-accent-200)}.mini-badge.is-pending{color:var(--color-neutral-800)}.inv-tag{font-size:11px;font-weight:400;font-family:var(--font-heading);letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--color-neutral-400);color:var(--color-neutral-700);vertical-align:middle;margin-left:6px;padding:1px 6px;display:inline-block}.toolbar{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.search{flex:260px;min-width:0;max-width:380px;position:relative}.search svg{position:absolute;top:50%;left:12px;transform:translateY(-50%)}.search .input{background:0 0;min-height:44px;padding-left:36px;font-size:15px}.filters{flex-wrap:wrap;gap:6px;display:flex}.filter{border:1px solid var(--color-divider);min-height:40px;color:var(--color-text);font:inherit;cursor:pointer;background:0 0;align-items:center;gap:6px;padding:0 12px;font-size:14px;display:flex}.filter:hover{border-color:var(--color-accent)}.filter[aria-pressed=true]{border-color:var(--color-accent);background:var(--color-accent-100);color:var(--color-accent-800)}.filter-n{font-family:var(--font-heading);opacity:.8;font-size:13px}.row-count{color:var(--color-neutral-700);font-size:14px}.gtable-wrap{overflow-x:auto}.gtable{min-width:1680px;font-size:14px}.gtable th:first-child{padding:12px 14px}.gtable td.c-name{white-space:nowrap;padding:12px 14px;font-weight:500}.gtable td.c-count{font-family:var(--font-display);font-size:20px}.gtable td.c-nowrap{white-space:nowrap}.gtable td.c-num{white-space:nowrap;font-variant-numeric:tabular-nums}.gtable td.c-time{white-space:nowrap;color:var(--color-neutral-700);font-variant-numeric:tabular-nums}.gtable td.c-msg{color:var(--color-neutral-800);max-width:220px}.gtable td.c-note{max-width:160px;color:var(--color-neutral-800)}.gtable td.c-w160{max-width:160px}.gtable td.c-w180{max-width:180px}.gtable th.c-msg-h{width:220px}.table-select{background:0 0;width:120px;min-height:40px;font-size:14px}.row-actions{gap:4px;display:flex}.row-actions .btn-icon{width:40px;height:40px;color:var(--color-text)}.row-actions .btn-icon.is-danger{color:var(--color-accent-700)}.no-rows{text-align:center;color:var(--color-neutral-700);margin:0;padding:40px}.gcards{border-top:1px solid var(--color-divider);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.gcard{border-bottom:1px solid var(--color-divider)}.gcard-btn{width:100%;min-height:64px;font:inherit;color:var(--color-text);text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;gap:8px;padding:14px 2px;display:flex}.gcard-top{align-items:center;gap:10px;width:100%;display:flex}.gcard-name{flex:1;min-width:0;font-size:16px;font-weight:500}.gcard-chev{flex:none;transition:transform .2s}.gcard-btn[aria-expanded=true] .gcard-chev{transform:rotate(180deg)}.gcard-meta{color:var(--color-neutral-700);flex-wrap:wrap;gap:4px 14px;font-size:14px;display:flex}.gcard-panel{flex-direction:column;gap:12px;padding:0 2px 16px;display:flex}.gcard-dl{grid-template-columns:88px minmax(0,1fr);gap:8px 12px;margin:0;font-size:14px;display:grid}.gcard-dl dt,.mini-label{font-family:var(--font-heading);letter-spacing:.14em;text-transform:uppercase;color:var(--color-neutral-700);font-size:12px}.gcard-dl dd{overflow-wrap:anywhere;margin:0}.gcard-field{flex-direction:column;gap:6px;display:flex}.gcard-select{background:0 0;width:100%;min-height:44px;font-size:16px}.gcard-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.gcard-actions .btn{min-height:44px;font-size:15px}.gcard-actions .is-danger{color:var(--color-accent-700)}.no-rows-m{text-align:center;color:var(--color-neutral-700);margin:0;padding:32px 0}.only-wide{display:none}@media (min-width:768px){.only-wide{display:block}.only-narrow{display:none}}.admin-backdrop{z-index:50;background:color-mix(in srgb, var(--color-neutral-900) 45%, transparent)}.admin-dialog{background:var(--color-bg);width:min(560px,100%);max-height:calc(100vh - 32px);box-shadow:none;border-radius:0;gap:16px;padding:28px;overflow:auto}.admin-dialog.is-small{width:min(440px,100%)}.admin-dialog-title{font-family:var(--font-display);margin:0;font-size:34px;font-weight:400}.form-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;display:grid}.admin-dialog .input{min-height:44px;font-size:15px}.admin-dialog textarea.input{min-height:80px}.admin-dialog .field>label,.admin-dialog .field>.field-legend{color:color-mix(in srgb, var(--color-text) 70%, transparent);margin-bottom:5px;font-size:12px;display:block}.admin-fieldset{border:0;min-width:0;margin:0;padding:0}.admin-subhead{font-family:var(--font-heading);letter-spacing:.14em;text-transform:uppercase;color:var(--color-neutral-700);border-top:1px solid var(--color-divider);padding-top:12px;font-size:13px}.adult-rows{flex-direction:column;gap:8px;display:flex}.adult-row{grid-template-columns:minmax(0,1fr) 120px;align-items:center;gap:8px;display:grid}.checks{flex-wrap:wrap;gap:8px 16px;font-size:14px;display:flex}.checks label{cursor:pointer;align-items:center;gap:6px;display:inline-flex}.checks input{width:16px;height:16px;accent-color:var(--color-accent)}.dialog-error{color:var(--color-accent-800);margin:0;font-size:14px}.dialog-hint{color:var(--color-neutral-700);margin:0;font-size:13px}.admin-dialog .dialog-actions .btn{min-height:44px;padding:0 18px;font-size:15px}.admin-dialog .dialog-actions .btn-primary{padding:0 22px}.admin-dialog .dialog-actions .is-left{color:var(--color-accent-700);margin-right:auto}.link-box{gap:8px;display:flex}.link-box .input{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.admin-toast{z-index:60;background:var(--color-text);color:var(--color-bg);max-width:calc(100vw - 32px);padding:12px 18px;font-size:15px;animation:.25s both toast-in;position:fixed;bottom:28px;left:50%;transform:translate(-50%)}.admin-toast.is-error{background:var(--color-accent-800)}.auth-wrap{place-items:center;min-height:100vh;padding:24px 16px;display:grid}.auth-card{background:var(--color-bg);flex-direction:column;gap:18px;width:min(420px,100%);padding:clamp(24px,6vw,36px);display:flex}.auth-card .input{min-height:44px;font-size:16px}.auth-card .btn{min-height:48px;font-size:16px}.auth-error{color:var(--color-accent-800);align-items:flex-start;gap:6px;margin:0;font-size:14px;display:flex}@media (max-width:767px){.admin-account-email{display:none}}
