:root{--bg: #f7f7f7;--surface: #ffffff;--ink: #040606;--ink-2: #2a2a2a;--muted: #555555;--line: #e2e2e2;--line-2: #eeeeee;--slate: #232d39;--slate-2: #3a4654;--amber: #f8b33f;--amber-tint: #fef4e2;--green: #5e9a57;--error: #b42318;--team-blue: #1e5bd8;--team-green: #15803d;--team-yellow: #f2c21b;--team-red: #d7322b;--radius: 14px;--font: Inter, system-ui, -apple-system, "Segoe UI", sans-serif;--font-head: Outfit, Inter, system-ui, sans-serif;--tabbar-h: 68px;color-scheme:light}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:17px;line-height:1.5}img{max-width:100%;display:block}a{color:var(--slate);text-underline-offset:3px}a:hover{color:var(--ink)}h1,h2,h3{font-family:var(--font-head);line-height:1.1;margin:0 0 .4em}h1{font-size:clamp(30px,7vw,46px);font-weight:800;letter-spacing:-.01em}h2{font-size:24px;font-weight:800}h3{font-size:19px;font-weight:700;font-family:var(--font)}p{margin:0 0 .8em}:focus-visible{outline:3px solid var(--amber);outline-offset:2px}.skip{position:absolute;left:-999px;top:8px;background:var(--surface);padding:8px 12px;z-index:50}.skip:focus{left:8px}.muted{color:var(--muted)}.small{font-size:14px}.strong{font-weight:600}.lead{font-size:18px;color:var(--ink-2);max-width:680px}.error{color:var(--error);background:#fdecea;border-radius:10px;padding:10px 14px}.eyebrow{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.eyebrow.light{color:var(--amber)}.app{min-height:100vh;display:flex;flex-direction:column}.main{flex:1}.page{max-width:1080px;margin:0 auto;padding:24px 16px 40px}.page.narrow{max-width:640px}.page.wide{max-width:1280px}.page-head{margin-bottom:20px}.section{margin:0 0 28px}.topbar{position:sticky;top:0;z-index:20;background:var(--surface);border-bottom:1px solid var(--line)}.topbar-inner{max-width:1280px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:8px 8px 8px 16px;min-height:60px}.brand{text-decoration:none}.wordmark{font-family:var(--font-head);font-weight:900;font-size:24px;color:var(--ink);letter-spacing:-.01em}.wordmark span{color:var(--green)}.menu-btn{width:48px;height:48px;border:0;background:none;color:var(--ink);border-radius:10px;display:grid;place-items:center;cursor:pointer}.desk-nav{display:none}.mobile-menu{display:flex;flex-direction:column;border-top:1px solid var(--line-2);padding:6px 0}.mobile-menu a{padding:14px 20px;text-decoration:none;color:var(--ink);font-weight:600}.mobile-menu a.active{color:var(--slate);background:var(--amber-tint)}.menu-session{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:12px 20px;border-top:1px solid var(--line-2)}.menu-session .btn-text{min-height:44px}.check .hint{display:block;font-weight:400}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:20;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--line)}.tabbar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--muted);text-decoration:none;font-size:12px;font-weight:600}.tabbar a.active{color:var(--ink)}.tabbar a.active svg{color:var(--slate)}.tabbar a.active span{border-bottom:3px solid var(--amber)}.footer{background:var(--surface);border-top:1px solid var(--line);text-align:center;padding:28px 16px calc(28px + var(--tabbar-h) + env(safe-area-inset-bottom))}.footer nav{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 18px;margin:14px 0}.footer nav a{color:var(--ink);text-decoration:none;padding:6px 0}@media (min-width: 900px){.menu-btn,.mobile-menu,.tabbar{display:none}.footer{padding-bottom:28px}.desk-nav{display:flex;align-items:center;gap:4px}.desk-nav a{padding:10px 12px;text-decoration:none;color:var(--ink-2);font-weight:500;border-radius:8px}.desk-nav a.active{color:var(--ink);font-weight:700;box-shadow:inset 0 -3px 0 var(--amber);border-radius:0}.desk-nav .desk-me{margin-left:8px;background:var(--slate);color:#fff;border-radius:10px;box-shadow:none}.desk-nav .desk-me.active{color:#fff}.page{padding:40px 24px 56px}}.hero{background:var(--slate);color:#fff}.hero-inner{max-width:1080px;margin:0 auto;padding:40px 16px 44px;text-align:center}.hero-title{color:#fff;font-size:clamp(38px,10vw,68px);font-weight:900;margin:6px 0 22px}.hero-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:26px}.countdown{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;max-width:460px;margin:0 auto}.countdown-cell{background:#ffffff14;border-radius:12px;padding:12px 4px;display:flex;flex-direction:column;align-items:center}.countdown-num{font-family:var(--font-head);font-size:clamp(30px,9vw,44px);font-weight:800;line-height:1;font-variant-numeric:tabular-nums}.countdown-label{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#d9dee4;margin-top:6px}.countdown.compact{margin:0}.countdown-done{font-size:20px;font-weight:700}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:14px}.card h3:last-child,.card p:last-child{margin-bottom:0}.card.dark{background:var(--slate);color:#fff;border-color:var(--slate)}.card.tint{background:var(--amber-tint);border-color:#f6dfb2}.card-link{display:flex;gap:16px;align-items:center;text-decoration:none;color:var(--ink)}.card-link:hover{border-color:var(--slate-2)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 20px;border-radius:12px;border:1px solid transparent;font:700 16px var(--font);text-decoration:none;cursor:pointer}.btn:disabled{opacity:.6;cursor:default}.btn-dark{background:var(--slate);color:#fff}.btn-dark:hover{background:var(--ink);color:#fff}.btn-accent{background:var(--amber);color:var(--ink)}.btn-accent:hover{background:#e09f30;color:var(--ink)}.btn-outline{background:var(--surface);color:var(--ink);border-color:#d0d0d0}.btn-outline:hover{border-color:var(--slate);color:var(--ink)}.btn-ghost-light{background:transparent;color:#fff;border-color:#fff9}.btn-ghost-light:hover{background:#ffffff1a;color:#fff}.btn-dashed{background:transparent;border:2px dashed #a8a8a8;color:var(--slate);margin-bottom:18px}.btn-block{width:100%}.btn-text{background:none;border:0;color:var(--error);font:600 15px var(--font);padding:10px;cursor:pointer}.row-wrap{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.badge{display:inline-block;background:var(--line-2);border-radius:999px;padding:3px 10px;font-size:13px;font-weight:700}.flag{display:inline-block;margin-left:6px;background:var(--amber-tint);color:#6b4e00;border-radius:6px;padding:1px 6px;font-size:12px;font-weight:600}.grid-2{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}.grid-2>.card{margin-bottom:0}@media (min-width: 640px){.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}}.grid-2.tight{gap:0 12px;grid-template-columns:repeat(2,minmax(0,1fr))}.mini-list{list-style:none;padding:0;margin:0 0 12px}.mini-list li{display:flex;flex-direction:column;padding:8px 0;border-bottom:1px solid var(--line-2)}.mini-when{font-size:13px;font-weight:700;color:var(--muted)}.timeline{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin:12px 0 16px}.timeline .card{margin:0}.timeline-arrow{display:none}@media (min-width: 640px){.timeline{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center}.timeline-arrow{display:block;font-size:28px;color:var(--muted)}}.chips{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 16px}.chip{min-height:40px;padding:0 14px;border-radius:999px;border:1px solid #d0d0d0;background:var(--surface);font:600 14px var(--font);color:var(--ink-2);cursor:pointer}.chip.on{background:var(--slate);border-color:var(--slate);color:#fff}.event-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:minmax(0,1fr);gap:12px}.event-list .card{margin:0}@media (min-width: 760px){.event-list{grid-template-columns:repeat(2,minmax(0,1fr))}}.event-facts{display:grid;gap:8px;margin:12px 0 0}.event-facts div{display:grid;grid-template-columns:96px minmax(0,1fr);gap:8px}.event-facts dt{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--muted)}.event-facts dd{margin:0;font-size:15px}.photo-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}@media (min-width: 760px){.photo-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.photo-btn{width:100%;padding:0;border:0;border-radius:10px;overflow:hidden;cursor:zoom-in;background:var(--line-2);aspect-ratio:4 / 3}.photo-btn img{width:100%;height:100%;object-fit:cover}.lightbox{border:0;padding:12px;background:var(--ink);color:#fff;max-width:min(96vw,1200px);border-radius:14px}.lightbox::backdrop{background:#000c}.lightbox img{max-height:78vh;margin:0 auto;border-radius:8px}.lightbox figure{margin:0 0 10px}.lightbox figcaption{margin-top:8px;color:#d9dee4}.branches{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}@media (min-width: 760px){.branches{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}}.branch{margin:0;padding:0}.branch summary{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;cursor:pointer;min-height:56px;list-style:none}.branch summary::-webkit-details-marker{display:none}.branch[open] summary{border-bottom:1px solid var(--line-2)}.branch-name{font-family:var(--font-head);font-weight:800;font-size:20px}.branch-list{list-style:none;margin:0;padding:6px 20px 14px}.branch-list li{display:flex;flex-direction:column;padding:8px 0;border-bottom:1px solid var(--line-2)}.branch-list li:last-child{border-bottom:0}.branch>p{padding:12px 20px;margin:0}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;font-size:14px;font-weight:600;color:var(--ink-2)}.field input,.field select,.field textarea,.table select{font:400 16px var(--font);color:var(--ink);background:var(--surface);border:1px solid #c4c4c4;border-radius:10px;padding:0 12px;min-height:48px;width:100%;min-width:0}.field textarea{padding:12px;min-height:90px}.hint{display:flex;align-items:center;gap:6px;font-weight:400;font-size:13px;color:var(--muted)}.check{display:flex;align-items:center;gap:10px;min-height:44px;font-size:16px;cursor:pointer}.check input{width:22px;height:22px;accent-color:var(--slate);flex-shrink:0}.check.align-end{align-self:end;margin-bottom:14px}.person{border:1px solid var(--line)}.person legend{font-family:var(--font-head);font-weight:800;font-size:20px;padding:0 6px}.subfield{border:0;padding:0;margin:0 0 12px}.subfield legend{font-size:14px;font-weight:600;color:var(--ink-2);padding:0;margin-bottom:4px}.person-foot{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line-2);padding-top:8px}.sticky-actions{position:sticky;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom));background:var(--bg);padding:12px 0;border-top:1px solid var(--line)}@media (min-width: 900px){.sticky-actions{bottom:0}}.member-summary{list-style:none;padding:0;margin:0 0 14px}.member-summary li{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line-2)}.toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}.toolbar .grow{flex:1 1 240px;margin-bottom:0}.table-box{overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.table{width:100%;border-collapse:collapse;font-size:15px;min-width:760px}.table th{text-align:left;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:12px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--surface)}.table td{padding:10px 12px;border-bottom:1px solid var(--line-2);vertical-align:top}.table select{min-height:40px;width:auto}.table input[type=checkbox]{width:22px;height:22px;accent-color:var(--slate)}.pick-list{list-style:none;padding:0;margin:14px 0 0}.pick-list li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line-2)}.link-btn,.btn-text-plain{background:none;border:0;padding:0;font:inherit;color:var(--slate);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.btn-text-plain{display:block;margin:16px auto 0;padding:10px}.btn-sm{min-height:36px;padding:0 12px;font-size:14px;border-radius:9px}.claim{margin-top:8px;padding:10px;background:var(--amber-tint);border-radius:10px;display:flex;flex-direction:column;gap:8px}.invite-panel{border:2px solid var(--slate)}.table input[type=checkbox]:disabled{opacity:.3}.branch-body{padding:8px 20px 16px}.branch-body .eyebrow{margin-top:12px}.tree-kids{list-style:none;margin:0;padding:0 0 0 18px;border-left:2px solid var(--line)}.tree-kids.top{padding-left:0;border-left:0}.tree-kids li{padding:6px 0 0 12px;position:relative}.tree-kids:not(.top)>li:before{content:"";position:absolute;left:-2px;top:18px;width:10px;border-top:2px solid var(--line)}.tree-kids.top>li{padding-left:0}.tree-person{display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:4px;min-height:28px}.memory{font-size:12px;font-weight:600;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:0 8px;margin-left:4px}.match-list{list-style:none;padding:8px 20px}.match-list li{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;padding:10px 0;border-bottom:1px solid var(--line-2)}.match-list li .small{flex-basis:100%}.match-list li:last-child{border-bottom:0}.pill{display:inline-flex;align-items:center;gap:4px;background:var(--line-2);border-radius:999px;padding:4px 4px 4px 12px;font-weight:600;font-size:15px}.pill button{width:30px;height:30px;border:0;border-radius:999px;background:transparent;font-size:18px;cursor:pointer;color:var(--ink-2)}.pill button:hover{background:#ddd}.lineage{display:block;font-size:13px;color:var(--muted)}.btn-text-plain.inline{display:inline;margin:4px 0 0;padding:4px 0;font-size:14px}.field-label{display:flex;flex-direction:column;gap:6px}.field input:disabled{background:#f2f2f2;color:var(--ink-2)}.picked{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#e8f2e6;border-radius:10px;padding:10px 12px;font-weight:400;color:var(--ink)}.suggest{display:flex;flex-direction:column;gap:6px;background:var(--amber-tint);border-radius:10px;padding:10px 12px;font-weight:400;color:var(--ink)}.suggest p{margin:0}.suggest-row{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;background:var(--surface);border:1px solid #f0d9a8;border-radius:10px;padding:10px 12px;min-height:48px;font:inherit;cursor:pointer;color:var(--ink)}.suggest-row:hover{border-color:var(--slate)}.suggest .link-btn{align-self:flex-start;padding:6px 0}.match-banner{background:var(--amber-tint);border-radius:10px;padding:12px;margin-bottom:14px}.match-banner p{margin:0 0 8px}.years{color:var(--muted);font-size:14px;font-weight:400}.suggestion-list{list-style:none;padding:0;margin:0}.suggest-choice{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line-2)}.conf{display:inline-block;font-size:12px;font-weight:700;border-radius:6px;padding:2px 6px;margin-right:2px}.conf-high{background:#e3efdf;color:#1f5a2e}.conf-medium{background:var(--amber-tint);color:#6b4e00}.conf-low{background:var(--line-2);color:var(--ink-2)}.conf-add{background:#e6ebf2;color:var(--slate)}.founders p{margin:0 0 4px}.team-dot{display:inline-block;border-radius:999px;vertical-align:-2px;flex-shrink:0}.team-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:14px}.team-tile{background:var(--surface);border:1px solid var(--line);border-top:6px solid;border-radius:var(--radius);padding:12px 14px}.team-tile p{margin:0 0 2px}.tag{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:999px;background:var(--amber-tint);border:1px solid #f6dfb2;font-size:13px;font-weight:600}.tag.on{margin-left:0;background:#e3f2e1;border-color:#b9dcb4}.rosters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;margin:12px 0}.roster p{margin:0}.roster-head{font-weight:600;display:flex;align-items:center;gap:6px}.captain-tools{border-top:1px solid var(--line-2);margin-top:12px;padding-top:12px}.roster-editor{margin-top:12px;padding:12px;background:var(--bg);border-radius:10px}.check-list{list-style:none;padding:0;margin:6px 0 10px}.check-list li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 10px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 10px}.table.compact{min-width:520px}.table.compact td,.table.compact th{padding:8px 10px}@media (min-width: 760px){.team-strip,.rosters{grid-template-columns:repeat(4,minmax(0,1fr))}}.badge-print{position:relative;overflow:hidden;background:#fff;color:#040606;font-family:var(--font-head);text-align:center;box-sizing:border-box;-webkit-print-color-adjust:exact;print-color-adjust:exact}.badge-print p{margin:0}.badge-print.sheet{width:4in;height:3in;padding:.3in .35in}.badge-print.card{width:3.375in;height:2.125in;padding:.16in .22in}.badge-top{font:600 11px var(--font);letter-spacing:.08em;text-transform:uppercase;color:#5e9a57}.badge-first{font-weight:800;line-height:1.05;margin-top:.18in!important;font-size:.62in;white-space:nowrap}.badge-print.card .badge-first{font-size:.46in;margin-top:.08in!important}.badge-last{font-weight:500;font-size:.24in}.badge-print.card .badge-last{font-size:.18in}.badge-line{position:absolute;left:.3in;right:.9in;bottom:.28in;text-align:left;font:600 12px var(--font);color:#2a2a2a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.badge-print.card .badge-line{left:.2in;right:.65in;bottom:.16in;font-size:10px}.badge-dot{position:absolute;right:.28in;bottom:.22in;width:.45in;height:.45in;border-radius:999px}.badge-print.card .badge-dot{right:.18in;bottom:.12in;width:.36in;height:.36in}.badge-preview{display:inline-block;border:1px dashed #bbb;border-radius:6px}.print-area{display:none}@media print{.topbar,.footer,.tabbar,.skip,.no-print{display:none!important}body{background:#fff}.main,.page{padding:0!important;margin:0!important;max-width:none!important}.print-area{display:block}.print-area.sheet{display:grid;grid-template-columns:4in 4in;grid-auto-rows:3in}.print-area.sheet .badge-print:nth-child(6n){break-after:page}.print-area.card .badge-print{break-after:page}}.chip-link{display:inline-flex;align-items:center;text-decoration:none}.chip-link:hover{border-color:var(--slate-2);color:var(--ink)}.chip-link.on:hover{color:#fff}.reunion-list{list-style:none;padding:0;margin:0 0 24px;position:relative}.reunion-list:before{content:"";position:absolute;left:31px;top:12px;bottom:12px;width:2px;background:var(--line)}.reunion-item{position:relative;display:grid;grid-template-columns:64px minmax(0,1fr);gap:14px;align-items:start;padding:10px 0}.reunion-year{position:relative;z-index:1;display:grid;place-items:center;height:36px;border-radius:999px;background:var(--surface);border:2px solid var(--line);font:800 15px var(--font-head);color:var(--ink-2)}.reunion-body{padding-top:5px}.reunion-body p{margin:0 0 4px}.reunion-place{font-weight:600}.reunion-photos{display:inline-flex;align-items:center;gap:6px;font-size:15px;font-weight:600}.reunion-item.upcoming .reunion-year{background:var(--amber);border-color:var(--amber);color:var(--ink)}.reunion-item.upcoming .reunion-place:after{content:"Up next";margin-left:8px;padding:2px 8px;border-radius:999px;background:var(--amber-tint);border:1px solid #f6dfb2;font-size:13px;font-weight:600}.branch-head{display:flex;flex-direction:column;gap:2px;min-width:0}.branch-full{font-family:var(--font);font-weight:500;font-size:15px;color:var(--ink-2)}.branch-spouses{color:var(--ink-2)}.spouse-link{font-weight:600;text-decoration-color:#bbb}.spouse-link .memory{text-decoration:none;display:inline-block}.tree-group{margin:4px 0 6px}.tree-with{margin:6px 0 0;font-size:14px;color:var(--ink-2)}.tree-kids.top+.tree-group,.tree-group+.tree-group{margin-top:10px}.tree-group>.tree-kids{margin-left:6px}.spouse-card{border:0;border-radius:var(--radius);padding:22px;max-width:min(420px,calc(100vw - 32px));width:100%}.spouse-card::backdrop{background:#04060673}.spouse-card h2{margin:0 0 4px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.chat{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}.bubble{max-width:88%;padding:10px 14px;border-radius:16px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.45}.bubble.me{align-self:flex-end;background:var(--slate);color:#fff;border-bottom-right-radius:4px}.bubble.them{align-self:flex-start;background:var(--surface);border:1px solid var(--line);border-bottom-left-radius:4px}.draft-card{border:2px solid var(--amber);margin:0}.draft-card h3{margin:0 0 6px}.draft-card .field select{width:100%}.story-text{white-space:pre-wrap;max-height:320px;overflow:auto;margin:8px 0;padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:10px;font-size:15px}.chat-input textarea{width:100%;padding:12px;border:1px solid #d0d0d0;border-radius:12px;font:inherit;resize:vertical;margin-bottom:8px;background:var(--surface)}.icon-btn{width:44px;height:44px;border:0;border-radius:12px;background:transparent;color:var(--ink-2);display:inline-grid;place-items:center;cursor:pointer}.icon-btn:hover{background:var(--line-2)}.fix-pill{position:fixed;z-index:30;right:16px;bottom:calc(var(--tabbar-h) + 16px + env(safe-area-inset-bottom));display:inline-flex;align-items:center;gap:10px;height:56px;padding:0 22px 0 16px;border:0;border-radius:999px;background:var(--amber);color:var(--ink);font:800 16px var(--font);cursor:pointer;box-shadow:0 8px 24px #232d3947,0 2px 6px #232d392e;transition:padding .2s ease,gap .2s ease}.fix-pill:hover{background:#efa52c}.fix-pill:focus-visible{outline:3px solid var(--slate);outline-offset:3px}.fix-pill-label{white-space:nowrap;overflow:hidden;max-width:140px;transition:max-width .2s ease,opacity .2s ease}.fix-pill.compact{padding:0 16px;gap:0}.fix-pill.compact .fix-pill-label{max-width:0;opacity:0}.fix-tip{position:fixed;z-index:30;right:16px;bottom:calc(var(--tabbar-h) + 84px + env(safe-area-inset-bottom));width:240px;padding:12px 40px 12px 14px;background:var(--slate);color:#fff;border-radius:14px;box-shadow:0 8px 24px #232d3940}.fix-tip p{margin:0;font-size:14px;color:#dfe3e8}.fix-tip p.strong{font-size:15px;color:#fff}.fix-tip:after{content:"";position:absolute;right:34px;bottom:-7px;width:14px;height:14px;background:var(--slate);transform:rotate(45deg)}.fix-tip-x{position:absolute;top:4px;right:4px;width:36px;height:36px;border:0;border-radius:10px;background:transparent;color:#fff;cursor:pointer;display:grid;place-items:center}.fix-bar{position:fixed;z-index:30;left:12px;right:12px;bottom:calc(var(--tabbar-h) + 12px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:10px;min-height:56px;padding:6px 6px 6px 16px;background:var(--slate);color:#fff;border-radius:16px;box-shadow:0 8px 24px #232d394d}.fix-bar-icon{color:var(--amber);display:grid}.fix-bar-label{flex:1;font-weight:600}.fix-sheet{position:fixed;z-index:40;left:0;right:0;bottom:0;display:flex;flex-direction:column;background:var(--bg);border-radius:22px 22px 0 0;box-shadow:0 -10px 34px #232d3938;padding-bottom:env(safe-area-inset-bottom);transition:height .25s ease}.fix-sheet.half{height:58vh;height:58dvh}.fix-sheet.full{height:92vh;height:92dvh}.fix-handle{align-self:center;width:72px;height:24px;border:0;background:transparent;display:grid;place-items:center;cursor:pointer}.fix-handle span{width:44px;height:5px;border-radius:99px;background:#c4c4c4}.fix-head{display:flex;align-items:center;gap:4px;padding:0 8px 6px 18px}.fix-head h2{flex:1;margin:0;font-size:20px}.fix-head-icon{color:#c98a1f;display:grid;margin-right:4px}.fix-head-link{margin-right:6px}.panel-thread{flex:1;min-height:0;overflow-y:auto;padding:4px 16px 8px}.panel-thread .chat{margin-bottom:0}.panel-thread .chips{margin:4px 0 10px}.helper-intro .bubble{display:inline-block;margin-bottom:4px}.panel-input{padding:10px 12px 12px;border-top:1px solid var(--line);background:var(--surface)}.panel-input textarea{margin-bottom:6px;min-height:48px}@media (min-width: 900px){.fix-pill{right:32px;bottom:32px}.fix-tip{right:32px;bottom:104px}.fix-sheet.docked{top:61px;left:auto;width:400px;height:auto;border-radius:0;border-left:1px solid var(--line);background:var(--surface);box-shadow:-8px 0 24px #232d390f}.fix-sheet.docked .fix-head{padding-top:12px}.page.with-helper{margin-right:400px;margin-left:max(0px,calc((100vw - 1480px)/2))}}.tree-person.hl,.branch-list li.hl{background:#fde7bd;border-radius:8px;box-shadow:0 0 0 4px #fde7bd;animation:tree-hl 6s ease forwards}@keyframes tree-hl{0%,60%{background:#fde7bd;box-shadow:0 0 0 4px #fde7bd}to{background:transparent;box-shadow:0 0 0 4px transparent}}.pending-dot{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:#5a3a00}.pending-dot:before{content:"";width:8px;height:8px;border-radius:99px;background:#e09f30}@media (prefers-reduced-motion: reduce){.fix-pill,.fix-pill-label,.fix-sheet{transition:none}.tree-person.hl,.branch-list li.hl{animation:none}}.talk-start,.talk-live{text-align:center}.talk-start .check,.talk-start .field{text-align:left}.talk-mic{width:132px;height:132px;margin:8px auto 10px;display:grid;place-items:center;border:0;border-radius:50%;background:var(--amber);color:var(--ink);cursor:pointer;box-shadow:0 10px 28px #232d3940}.talk-mic:hover{background:#efa52c}.talk-mic:focus-visible{outline:3px solid var(--slate);outline-offset:4px}.talk-who{font-family:var(--font-head);font-weight:800;font-size:22px;margin:6px 0}.talk-caption{font-size:20px;line-height:1.4;max-width:520px;margin:8px auto 10px}.talk-actions{justify-content:center;margin-top:12px}.talk-live progress{width:100%;max-width:360px}.talk-orb{width:120px;height:120px;margin:8px auto 6px;border-radius:50%;background:var(--amber-tint);display:grid;place-items:center}.talk-orb span{width:64px;height:64px;border-radius:50%;background:var(--amber);transition:transform .2s ease}.talk-orb.them span{animation:orb 1.2s ease-in-out infinite}.talk-orb.you span{background:var(--slate);transform:scale(1.1)}@keyframes orb{0%,to{transform:scale(1)}50%{transform:scale(1.3)}}@media (prefers-reduced-motion: reduce){.talk-orb.them span{animation:none;transform:scale(1.2)}}.error-text{color:var(--error)}.source-viewer{max-width:min(720px,calc(100vw - 32px))}.source-viewer .story-text{max-height:50vh}.setting-row{padding:6px 0 10px;border-bottom:1px solid var(--line-2)}.setting-row:last-child{border-bottom:0}.setting-row .field{margin-bottom:4px}.setting-row .field input,.setting-row .field select{max-width:220px}.setting-row .check .hint{display:block}.setting-source{margin:0}.card .table-box .table{min-width:0}
