/* Open linen table. Card shadows carry the structure, rather than panels. */
body:has(.table),body:has(.result-panel){background-color:#eee0ca;background-image:radial-gradient(ellipse at 35% 12%,#fff8e7b0,transparent 70%),repeating-linear-gradient(0deg,#74573b03 0 1px,transparent 1px 4px),repeating-linear-gradient(90deg,#fffaf40d 0 1px,transparent 1px 5px)}
body:has(.table) .top,body:has(.result-panel) .top{background:#f2e7d68c;color:#683649;border:0;border-bottom:1px solid #9d765724;backdrop-filter:blur(10px);box-shadow:none}
body:has(.table) .brand,body:has(.result-panel) .brand{color:#623547}body:has(.table) .brand small,body:has(.result-panel) .brand small{color:#a48067}
body:has(.table) .top-controls button,body:has(.result-panel) .top-controls button{color:#765460;background:transparent;border-color:transparent}body:has(.table) .top-controls button:hover,body:has(.result-panel) .top-controls button:hover{background:#e8d5bc70}.volume{color:#987a60}
.table{padding-top:14px;column-gap:24px}.table-heading{padding-bottom:4px}.table-identity strong{font-size:21px}.player-chip{border:0;border-radius:0;background:transparent;padding:5px 7px;color:#9a7b65;box-shadow:none}.player-chip.active{background:transparent;color:#703648;border:0;box-shadow:none;font-weight:700}.player-chip.active:after{content:'✦';font-size:11px;color:#a67742}.player-chip small{font-size:9px}.connection-invite button{border-color:transparent;background:transparent;color:#986c58}.status{opacity:.7}
.score-strip{padding:6px 0 9px}.score-family,.score-family.mine{background:transparent;color:#69483f;border:0;box-shadow:none;border-radius:0;position:relative;padding:5px 10px;gap:9px}.score-family .name{color:#9a7864}.score-family b{font-size:25px;color:#734a48}.score-family.mine:after{display:none}.score-family.mine:before{content:'';position:absolute;left:10px;right:10px;bottom:-2px;height:2px;background:#bb955c70;border-radius:50%}.score-family .trait img{mix-blend-mode:multiply}.score-gain{color:#8c5e33}
.generation-nav{padding:3px 0 9px;gap:5px}.generation-nav>button,.generation-nav>button.active{background:transparent;border:0;border-radius:0;box-shadow:none;color:#9c7d65;padding:7px 5px;position:relative}.generation-nav>button.active{color:#71394c}.generation-nav>button.active:after{content:'';position:absolute;bottom:0;left:7px;right:7px;height:2px;background:#9d65735c;border-radius:50%}.generation-nav .roman{color:#ac8b68}.generation-nav>button.active .roman{color:#7d4655}.generation-nav small{color:#b2967a}.legal-dot{background:#b58b45;right:5px;top:7px;box-shadow:0 0 0 3px #b58b4517}.generation-nav .all-generations{font-size:10px}
.album{position:relative;background:none;border:0;border-radius:0;box-shadow:none;padding:12px 4px 18px;overflow-x:hidden;isolation:isolate;scrollbar-color:#bd9b7550 transparent}.album:before,.album:after{display:none}.generation{border:0;padding-bottom:25px;margin-bottom:15px;position:relative;z-index:1}.generation-head{border:0;background:none;padding:0 4px;margin:0 0 9px}.generation-head .eyebrow{display:none}.generation-head h3{font-size:23px;color:#764657}.generation-note{color:#a1856c;font-size:10px}.portrait-rail{padding:12px 5px 8px;scrollbar-color:#bd9b7535 transparent;scrollbar-width:thin}.row{gap:13px}.pair-wrap{border:0;border-radius:0;box-shadow:none;background:none;padding:3px;position:relative}.pair,.pair:disabled{border:0;background:none;box-shadow:none;border-radius:0;padding:0}.pair.target{border:0;background:none;box-shadow:none}.pair.target:hover{background:none;box-shadow:none}.pair.target:after{display:none}.pair.target .live-portrait{outline:2px solid #b28b4c80;outline-offset:3px;box-shadow:0 7px 17px #66432d30,0 0 16px #dbb56b30}.pair .live-portrait{border:0;border-radius:4px;box-shadow:0 5px 12px #54342025,0 1px 3px #49301c35;transform:rotate(-1.1deg)}.pair .live-portrait+.live-portrait{transform:rotate(1.5deg);margin-left:-23px;margin-top:8px;box-shadow:0 8px 15px #55342235,0 1px 2px #492f2330}.pair .live-portrait img{box-shadow:none;border-radius:3px}.portrait-caption{justify-content:center;margin-top:5px;color:#a38b72;font-size:9px;letter-spacing:.5px}.target-action{border:0;background:transparent;color:#8a5a3c;padding:7px;font-size:11px;font-weight:600;box-shadow:none}.target-action:hover:not(:disabled){color:#63324a;background:#f7e5c050;box-shadow:none}.parent-reference{text-align:center;color:#b49a7c;font-size:8px}.parent-nav{background:transparent;border:0;color:#a18167}.empty-slot,.empty-generation .empty-slot{border:0;background:none;opacity:.45;width:58px;height:210px;color:#b29a77}.empty-slot small{display:none}.empty-slot span{font-size:27px}.action-arrival{box-shadow:none}.action-arrival .portrait-caption{color:#986c3d}.marriage-hearts{filter:drop-shadow(0 2px 5px #c5848130)}
.table-branches{position:absolute;left:0;top:0;pointer-events:none;z-index:0}.table-branches path{fill:none;stroke:#ad835b;stroke-width:1.6;opacity:.27;stroke-linecap:round;vector-effect:non-scaling-stroke}
.play-dock{border:0;border-radius:0;background:none;box-shadow:none;overflow:visible}.hand-panel{border:0;border-radius:0;background:transparent;box-shadow:none;padding:5px 9px 7px;color:#5a3440;backdrop-filter:none}.hand-head{border:0;padding-bottom:8px}.hand-head h3{color:#6d3b4c;font-size:22px}.hand-title .tiny{background:none;color:#a3886c;padding:0;font-size:11px}.hand-cost{color:#ad927c;font-size:9px}.hand-secret{border:0;border-radius:0;background:none;padding:2px 0;gap:8px}.hand-secret .trait{width:29px;height:35px;filter:drop-shadow(0 2px 3px #5a38231a)}.hand-secret .trait img{mix-blend-mode:multiply}.hand-secret small{color:#ab9075;font-size:8px}.hand-secret strong{color:#704052;font:16px Georgia}.hand-turn{color:#a1856c}.hand-turn.my-turn{color:#8c6337}.hand-pass{background:linear-gradient(#f8e7bb,#e9cd99);border:1px solid #c5a26b70;box-shadow:0 4px 8px #71523a1c;color:#6a3a45;min-height:50px}.hand-pass:hover:not(:disabled){box-shadow:0 5px 12px #88614129}.hand-pass:disabled{opacity:.5}.hand-pass small{color:#a07b55}
.hand{padding:20px 4px 11px}.hand-card{transform:rotate(var(--card-tilt));transform-origin:50% 90%;padding:0}.hand-card>button:first-child{border:2px solid #f6e9cb;border-radius:4px;box-shadow:0 5px 12px #5738202b,0 1px 3px #53321f40;background:#f7eccc}.hand-card:hover,.hand-card:focus-within{transform:translateY(-6px) rotate(0deg);z-index:9}.hand-card.selected,.hand-card.selected:hover,.hand-card.selected:focus-within{transform:translateY(-11px) rotate(0deg);z-index:10}.hand-card.selected>button:first-child{border-color:#e8bd68;outline:2px solid #bd9257;outline-offset:2px;box-shadow:0 0 0 6px #f2cd8730,0 12px 20px #51302038}.hand-card.selected:after{background:#efd69e;color:#663947;box-shadow:0 2px 6px #593b2620}.hand.has-selection .hand-card:not(.selected)>button{opacity:.93;filter:saturate(.9)}.hand-card .live-portrait,.hand-card img{box-shadow:none}.hand-card .live-portrait{border:0}
.action-panel{border:0;border-radius:0;background:none;color:#8a6a56;padding:8px 9px 0;gap:9px;min-height:54px}.action-guidance{color:#9c7e67;font-size:11px;line-height:1.5}.action-panel button{background:transparent;border:0;border-bottom:1px solid #b9946835;border-radius:0;color:#946a4e;box-shadow:none;font-size:11px;padding:6px 5px}.action-panel button:hover:not(:disabled){background:none;color:#633549;box-shadow:none}.target-shortcuts b{color:#956e3e}.action-panel .tiny{color:#af957e}.action-panel #cancel{min-height:34px;padding:7px 3px;color:#8c5969}
.social-panels{margin-top:16px;gap:24px}.social-panels>.panel{background:none;border:0;box-shadow:none;padding:8px 4px;border-radius:0}.social-panels summary{font-size:11px;color:#a48469}.social-panels[open] summary{color:#704054}.social-panels .member{border-color:#b6956c20;font-size:11px}.chat-form input{background:#faf1e259;border-color:#b18e6730}.reactions button{background:none;border:0}.chat-form button{background:#f6e8d2;border-color:#ba986c50}.history p{border-color:#b6956c20}
.family-history{border:0;border-radius:0;box-shadow:none;background:none;margin-top:25px;overflow:visible}.history-heading{border:0;background:none;padding:12px 5px}.history-controls button{border-color:transparent;background:#f4e7d133;color:#946d56}.history-controls button:hover{background:#f5e8cd;color:#71394b}.history-progress{border:0;background:none;padding:10px 5px 18px}.history-progress button{border-color:transparent;background:none}.history-progress button.lit{background:#9b687317;color:#713b4f;border-color:transparent}.history-viewport{background:radial-gradient(ellipse,#fff5dd30,transparent);border:0;border-radius:0;scrollbar-color:#ba987055 transparent}.history-finale{border:0;background:none;padding-top:50px}.history-champion .live-portrait{border-color:#f3e0b4;box-shadow:0 10px 25px #67452930;transform:rotate(-2deg)}.history-caption{background:none;padding:12px 5px;color:#a1856c}.result{border:0;border-radius:0;background:none;box-shadow:none;padding:18px 5px}.result.winner{border:0;background:radial-gradient(ellipse,#f4d99f40,transparent);box-shadow:none}.revealed-trait{border-color:#b6956c25}.result .total{border-color:#b6956c25}.result-avatar img{border:2px solid #f2e2be;box-shadow:0 4px 10px #78543720}.history-card .live-portrait{box-shadow:0 5px 10px #6d4b302b}.history-card-score{border:0;box-shadow:0 2px 6px #60422a25}.result-panel>h1{font-size:28px}.reveal-emblem{margin-top:8px}
.tree-download{display:inline-block;padding:12px 18px;background:#6b3549;color:#fff0d0;border-radius:8px;text-decoration:none;font-weight:600;font-size:14px}.export-tree-picture{display:block;width:100%;height:auto;margin-top:15px;box-shadow:0 5px 25px #65452c25}.tree-download:hover{background:#87475d}
@media(min-width:1000px){.table{grid-template-columns:minmax(0,1fr) 420px}.hand{padding-right:4px;scrollbar-color:#bb9d7240 transparent}.album{max-height:calc(100dvh - 260px)}.hand-title{gap:5px}.generation{padding-bottom:30px}.generation-nav{padding-bottom:7px}.hand-panel{padding-top:4px}}
@media(min-width:1450px) and (min-height:850px){.table{grid-template-columns:minmax(0,1fr) 500px;column-gap:32px}.hand-head h3{font-size:24px}.hand{padding-top:23px;gap:13px 0}}
@media(max-width:999px){.play-dock{margin-top:15px}.hand-panel{padding-top:12px}.hand-head{padding-bottom:5px}.hand{padding-top:19px}.generation-nav{margin-bottom:0}.album{padding-top:9px}.score-strip{padding-bottom:5px}.hand-card.selected:after{font-size:10px}}
@media(max-width:550px){.table{padding:9px 11px 15px}.top{padding:10px 13px}.score-family{padding:4px 2px}.score-family .name{font-size:8px}.score-family.mine:before{left:8px;right:8px}.player-chip{padding:4px 4px}.generation-nav>button{padding:7px 7px}.album{padding-left:0;padding-right:0;max-height:300px}.generation-head h3{font-size:21px}.generation-note{font-size:9px}.pair-wrap{padding:1px}.hand-panel{padding:6px 2px}.hand-secret strong{font-size:15px}.hand-head h3{font-size:20px}.hand-pass{min-width:133px}.hand-secret .trait{width:27px;height:32px}.hand-card,.hand-card:last-child{width:min(121px,calc((100vw - 42px)/3))}.hand-card.selected:after{font-size:9px;min-width:65px}.hand-turn{font-size:9px}.action-panel{padding:8px 2px}.social-panels{margin-top:16px}.history-heading h2{font-size:21px}.history-heading{gap:10px}.history-controls{gap:3px}.history-controls button{font-size:10px;padding:7px 6px}.history-progress{gap:4px}.history-progress button{padding:4px 8px}.history-finale{gap:18px}.result-panel>h1{font-size:24px}.tree-download{padding:11px 15px;font-size:13px}}
@media(prefers-reduced-motion:reduce){.hand-card{transform:none}.hand-card.selected{transform:none}.history-champion .live-portrait{transform:none}}
/* Personal accents use only state.me.trait; no opponent secrets are needed. */
.personal-table:before{content:'';position:fixed;right:0;top:0;width:50vw;height:100dvh;background:radial-gradient(ellipse at right,color-mix(in srgb,var(--personal-color),transparent 88%),transparent 70%);pointer-events:none;z-index:-1}.personal-table .play-dock{position:relative;isolation:isolate}.personal-table .play-dock:before{content:'';position:absolute;inset:-25px -20px;z-index:-1;background:radial-gradient(ellipse at 55% 45%,color-mix(in srgb,var(--personal-color),transparent 89%),transparent 70%);pointer-events:none;border-radius:50%}.personal-player .trait{width:16px;height:20px;margin:0 1px}.personal-player .trait img{mix-blend-mode:multiply}.player-chip.personal-player{color:#704754;text-shadow:0 0 14px color-mix(in srgb,var(--personal-color),transparent 45%)}.player-chip.personal-player.active:after{color:var(--personal-color)}.hand-secret .trait{filter:drop-shadow(0 0 7px color-mix(in srgb,var(--personal-color),transparent 65%))}.hand-secret strong{color:#674452}.personal-table .score-family.mine:before{background:var(--personal-color);opacity:.65}.hand-card.supports-family>button{box-shadow:0 5px 12px #5738202b,0 1px 3px #53321f40,0 0 14px color-mix(in srgb,var(--personal-color),transparent 85%)}.hand-card.selected.supports-family>button:first-child{outline-color:var(--personal-color);box-shadow:0 0 0 6px color-mix(in srgb,var(--personal-color),transparent 86%),0 10px 20px #51302038,0 0 22px color-mix(in srgb,var(--personal-color),transparent 65%)}.hand-card.selected.supports-family:after{border-left:4px solid var(--personal-color);background:#f6e5bc}.personal-arrival{animation:cardLand .55s ease-out both,personalArrival .9s .2s ease-out both!important}.personal-influence .trait{animation:familyInfluence .8s ease-out}.personal-influence strong{animation:familyText .8s ease-out}.score-family.mine .score-gain{color:#744f37;text-shadow:0 0 8px var(--personal-color)}@keyframes personalArrival{0%,100%{filter:drop-shadow(0 0 0 transparent)}45%{filter:drop-shadow(0 0 12px var(--personal-color))}}@keyframes familyInfluence{0%,100%{transform:none}45%{transform:translateY(-3px) scale(1.15);filter:drop-shadow(0 0 13px var(--personal-color))}}@keyframes familyText{0%,100%{text-shadow:none}45%{text-shadow:0 0 12px var(--personal-color)}}@media(min-width:1000px){.personal-table .play-dock{position:sticky;top:10px}}@media(max-width:999px){.personal-table .play-dock{position:static}.personal-table:before{width:65vw}}@media(prefers-reduced-motion:reduce){.personal-arrival,.personal-influence .trait,.personal-influence strong{animation:none!important}}.calm-motion .personal-arrival,.calm-motion .personal-influence .trait,.calm-motion .personal-influence strong{animation:none!important}
.personal-table:before{z-index:0}.personal-table .top,.personal-table #app{position:relative;z-index:1}@media(min-width:1000px){.hand{padding-right:28px}}@media(min-width:1000px) and (max-width:1299px){.pair-wrap{width:274px}.pair-wrap.single-person{width:146px}.pair .live-portrait+.live-portrait{margin-left:-42px}.single-person .pair .live-portrait{width:140px;height:197px}.row{gap:8px}}
.export-tree-picture{max-height:55dvh;object-fit:contain;object-position:center;background:#efdfc850;box-shadow:none}
.mobile-view-table,.mobile-view-hand{display:none}.personal-table #app{overflow-x:clip}.hand-panel{scroll-margin-top:12px}.family-album{scroll-margin-top:12px}@media(max-width:999px){.table{display:flex;flex-direction:column;gap:10px}.table-heading{order:0;width:100%;margin-bottom:0}.score-strip{order:1;width:100%}.play-dock{order:2;width:100%;margin-top:0}.family-album{order:3;width:100%;margin-top:10px}.social-panels{order:4;width:100%}.mobile-view-table,.mobile-view-hand{display:inline-block}.mobile-view-hand{padding:5px 6px;font-size:10px;background:none;border:0;color:#9b7259;box-shadow:none;white-space:nowrap}.generation-head{gap:6px}.generation-note{max-width:130px}.top-controls{flex-wrap:nowrap;overflow-x:auto;max-width:100%;scrollbar-width:none}.top-controls>*{flex-shrink:0}.score-family{min-width:0;display:flex;flex-direction:column;flex-wrap:nowrap;align-items:center;gap:3px;padding:5px 1px}.score-family .trait{order:0;width:24px;height:29px}.score-family b{order:1;margin:0;font-size:22px}.score-family .name{order:2;flex-basis:auto;font-size:9px;white-space:nowrap}.score-family.mine:before{bottom:0}.score-strip{grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:0;gap:3px}.hand-head{padding-bottom:5px}.hand{gap:10px 0}.hand-turn{font-size:10px}}
/* A family event: portraits and their real inheritance take centre stage. */
#modal.family-event-modal{width:min(1100px,96vw);max-width:1100px;max-height:94dvh;padding:28px 34px;background:radial-gradient(ellipse at 30% 25%,#ffedce,#fbf3e7 65%);border:1px solid #c9a575;border-radius:20px;overflow:auto;box-shadow:0 25px 100px #24151b66}
.birth-heading{text-align:center}.birth-heading h2{font-size:clamp(25px,3vw,38px);margin:12px 0 5px}.birth-heading p{margin:0;color:#83695c}.birth-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(250px,1fr);gap:36px;align-items:center;margin:22px 0}.birth-tree{max-width:500px;width:100%;margin:auto}.birth-parents{display:flex;justify-content:space-around;gap:30px}.birth-person{text-align:center;width:44%}.birth-tree .live-portrait{width:155px;height:218px;max-width:100%;box-shadow:0 8px 20px #56332725;border-radius:6px}.birth-person .live-portrait{animation:parentWelcome .75s ease both}.birth-person.parent-1 .live-portrait{animation-delay:.12s}.inherit-icons{display:flex;justify-content:center;gap:7px;margin:9px 0}.inherit-icon{display:inline-flex;border-radius:50%;padding:4px}.inherit-icon .trait{width:25px;height:30px}.inherit-icon.passed{background:color-mix(in srgb,var(--inherit-color) 22%,transparent);box-shadow:0 0 12px color-mix(in srgb,var(--inherit-color) 50%,transparent);animation:inheritPulse 1.5s .2s ease 2}.inherit-icon.unused{opacity:.35;filter:grayscale(.7)}.birth-branches{display:block;width:100%;height:72px;overflow:visible}.birth-branches path{fill:none;stroke:#bd8951;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:450;stroke-dashoffset:450;animation:birthBranch .55s .2s ease forwards}.birth-branches .child-link{animation-delay:.65s;stroke:#b95365}.birth-branches circle{fill:#b95365;animation:childArrive .4s .6s both}.birth-descendant{text-align:center;animation:childArrive .6s .85s both}.birth-descendant>.live-portrait{width:170px;height:239px}.birth-descendant>strong{display:block;font-size:13px;color:#916747}.birth-details h3{margin:0 0 15px;font-size:23px}.inherit-ledger{display:grid;gap:12px}.inherit-ledger>div{display:grid;grid-template-columns:40px 1fr;column-gap:8px;padding:8px 0 8px 13px;border-left:3px solid var(--inherit-color)}.inherit-ledger .trait{grid-row:span 3;width:32px;height:38px;align-self:center}.inherit-ledger strong{font-size:16px}.inherit-ledger span{font-size:13px;margin:5px 0}.inherit-ledger small{color:#906127;font-weight:bold}.birth-details .tiny{line-height:1.5;margin-top:18px}.birth-next{display:grid;gap:7px;margin-top:20px;font-size:13px;line-height:1.5}.birth-next b{color:#914151}.birth-exchange{border-top:1px solid #c9a57560;padding-top:18px}.exchange-heading{display:flex;align-items:center;justify-content:space-between;gap:18px}.exchange-heading h3{margin:0 0 5px;font-size:22px}.exchange-heading p{margin:0;line-height:1.4;font-size:14px;max-width:590px}.exchange-heading button{flex-shrink:0;padding:14px 18px}.exchange-heading button[aria-pressed=true]{background:#e8dbbf;border-color:#b99155}.exchange-flow{display:flex;align-items:center;gap:22px;margin:16px 0}.exchange-cards{display:flex;gap:12px;flex:1;overflow-x:auto;padding:12px 5px 8px}.exchange-card{padding:0;background:transparent;border:0;flex:0 0 110px;position:relative}.exchange-card .live-portrait{display:block;width:110px;height:155px;box-shadow:0 5px 12px #57382925;border-radius:5px}.exchange-card>span:last-child{display:block;font-size:11px;margin-top:8px;line-height:1.3}.exchange-card.chosen{transform:translateY(-7px)!important}.exchange-card.chosen .live-portrait{outline:4px solid #bc8b45;outline-offset:3px;box-shadow:0 0 20px #d4ad6655}.exchange-draw{display:flex;align-items:center;gap:14px;flex-shrink:0}.exchange-draw>span{font-size:30px;color:#b78a4d}.exchange-draw>div{width:85px;text-align:center}.exchange-draw img{width:78px;height:110px;object-fit:cover;border-radius:5px;box-shadow:0 4px 10px #57382925}.exchange-draw b{display:block;font-size:11px;margin-top:8px;line-height:1.4}#exchangeStatus{font-size:13px;color:#895c40;min-height:20px}.birth-actions{position:sticky;bottom:-28px;z-index:3;background:linear-gradient(transparent,#fbf3e7 25%);padding:20px 0 4px;margin-top:8px}.birth-actions button{min-height:52px;font-size:16px}.birth-actions button:first-child{flex:.5}.birth-actions .primary{flex:1.5}
@keyframes birthBranch{to{stroke-dashoffset:0}}@keyframes childArrive{from{opacity:0;transform:translateY(-14px) scale(.9)}to{opacity:1;transform:none}}@keyframes parentWelcome{50%{box-shadow:0 0 30px #d8aa6c99;transform:translateY(-5px)}}@keyframes inheritPulse{50%{transform:scale(1.12);box-shadow:0 0 18px var(--inherit-color)}}
@media(max-width:650px){#modal.family-event-modal{padding:24px 16px;width:96vw}.birth-layout{grid-template-columns:1fr;gap:20px}.birth-tree{max-width:370px}.birth-tree .live-portrait{width:125px;height:176px}.birth-descendant>.live-portrait{width:145px;height:204px}.birth-details h3{font-size:20px}.inherit-ledger{grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:7px}.inherit-ledger>div{padding-left:7px;grid-template-columns:30px 1fr}.inherit-ledger .trait{width:25px;height:30px}.inherit-ledger span{font-size:11px}.birth-details .tiny{margin:10px 0}.birth-next{margin-top:10px}.exchange-heading{align-items:start;flex-direction:column;gap:10px}.exchange-heading button{padding:11px 15px}.exchange-flow{gap:8px}.exchange-cards{gap:10px}.exchange-card{flex-basis:94px}.exchange-card .live-portrait{width:94px;height:132px}.exchange-draw>div{width:58px}.exchange-draw img{width:54px;height:76px}.exchange-draw{gap:4px}.exchange-draw>span{font-size:22px}.birth-actions{bottom:-24px}.birth-actions button{font-size:13px;padding:12px}}
.calm-motion .family-event *{animation:none!important;opacity:1}.calm-motion .birth-branches path{stroke-dashoffset:0}
@media(prefers-reduced-motion:reduce){.family-event *{animation:none!important}.birth-branches path{stroke-dashoffset:0}}
.birth-tree .live-portrait{display:block;margin-inline:auto}.family-event-modal .close{position:sticky;top:0;float:right;z-index:5;background:#fff8e9}
/* One continuous family tree, with one camera for every generation. */
.tree-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:3px 0 12px}.tree-toolbar h3{font-size:21px;margin:0 0 4px;color:#78465a}.tree-toolbar small{font-size:10px;color:#a18066}.tree-tools{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.tree-tools button{font-size:11px;padding:8px 10px;background:#fff8e570;border:0;box-shadow:0 2px 6px #7651390c}.tree-tools [data-tree-zoom]{font-size:20px;width:34px;padding:2px;min-height:34px}.tree-tools #treeFollow[aria-pressed=true]{color:#885427;background:#e5c99866}.tree-tools>span{font-size:10px;color:#a18166;width:34px;text-align:center}
.table .tree-viewport.album{padding:0;position:relative;overflow:auto;height:calc(100dvh - 260px);max-height:none;min-height:420px;background:radial-gradient(ellipse at 50% 20%,#fff6e84a,transparent 75%);border:0;box-shadow:none;border-radius:0;cursor:grab;scrollbar-color:#a67f5650 transparent;scrollbar-width:thin;overscroll-behavior:contain;touch-action:pan-x pan-y}.tree-viewport.panning{cursor:grabbing;user-select:none}.tree-space{position:relative}.living-tree{position:absolute;left:0;top:0;transform-origin:0 0;isolation:isolate}.living-branches{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0;overflow:visible}.living-branches path{fill:none;stroke:#b78b60;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;opacity:.7;transition:stroke .2s,opacity .2s}.living-branches circle{fill:#b78b60}.living-branches .branch-highlight path{stroke:#ac526c;stroke-width:5;opacity:1;filter:drop-shadow(0 0 4px #dc9ab180)}.living-branches .new-tree-link{stroke:#b84d6c;stroke-dasharray:200;stroke-dashoffset:200;animation:birthBranch .6s ease forwards}
.tree-generation-label{position:absolute;width:300px;text-align:center;pointer-events:none;color:#92714d}.tree-generation-label strong{font:20px Georgia;display:block}.tree-generation-label small{display:block;font-size:10px;margin-top:4px;color:#aa8d75}.tree-person.pair-wrap,.tree-person.pair-wrap.single-person{position:absolute;width:300px;padding:3px 5px;z-index:1;background:transparent!important;border:0;box-shadow:none;border-radius:0}.tree-person .pair,.tree-person.past-family .pair{height:235px;display:flex;align-items:flex-start;justify-content:center;position:relative;border:0;padding:4px;background:transparent;width:100%;cursor:default;opacity:1}.tree-person .pair.target{cursor:pointer;background:radial-gradient(ellipse,#ecc48130,transparent 70%);border-radius:16px}.tree-person .pair .live-portrait,.tree-person .pair .live-portrait+.live-portrait{width:155px;height:218px;flex-shrink:0;margin:0;box-shadow:0 6px 14px #57372726,0 1px 3px #56352133;border-radius:5px}.tree-person .pair .live-portrait+.live-portrait{margin-left:-24px;margin-top:7px}.tree-person .pair .live-portrait img{width:100%;height:100%}.tree-person .pair:disabled{opacity:1}.tree-person.past-family .pair{filter:saturate(.72);opacity:.83}.tree-person .portrait-caption{font-size:10px;color:#987956;text-align:center;margin:0;min-height:17px}.tree-person .target-action{width:auto;min-height:30px;display:block;margin:4px auto 0;padding:6px 14px;background:#f5dcae;border:1px solid #c3965340;font-size:12px;color:#784250;box-shadow:0 3px 7px #76543017}.tree-person .pair.target .live-portrait{outline:2px solid #ce9959;outline-offset:3px}.tree-person:hover .pair.target .live-portrait{outline-color:#ae5a6f}.tree-bud{position:absolute;width:240px;text-align:center;font:70px Georgia;color:#b49a7840}.tree-bud span{display:block;font:13px 'DM Sans',sans-serif;color:#ad8d6e}.tree-pan-controls{display:flex;gap:4px;align-items:center;margin-top:5px;flex-wrap:wrap}.tree-pan-controls button{background:transparent;border:0;padding:5px 10px;min-width:30px;color:#8d694b;font-size:18px}.tree-pan-controls span{font-size:9px;color:#a88c71;margin-left:8px}.tree-pan-controls .mobile-view-hand{font-size:11px;margin-left:auto}.table .family-album{min-width:0}.table .play-dock{align-self:start}
@media(max-width:999px){.table .tree-viewport.album{height:65dvh;min-height:400px;max-height:650px}.tree-toolbar{margin-top:15px}.tree-toolbar h3{font-size:20px}.tree-tools button{padding:9px 10px}.tree-pan-controls span{flex:1}.tree-person.pair-wrap,.tree-person.pair-wrap.single-person{width:300px}.tree-person .pair .live-portrait,.tree-person .pair .live-portrait+.live-portrait{width:155px;height:218px}.tree-person .pair{height:235px}}
@media(prefers-reduced-motion:reduce){.living-branches .new-tree-link{animation:none;stroke-dashoffset:0}}.calm-motion .living-branches .new-tree-link{animation:none;stroke-dashoffset:0}
.tree-person .marriage-hearts{position:absolute;inset:0;pointer-events:none;overflow:visible}.tree-person .marriage-hearts i{position:absolute;top:42%;left:46%;font-size:20px;opacity:0;animation:coupleLoveFloat 5.5s var(--love-delay,0s) ease-in-out infinite;transform:none;color:#cc617c;text-shadow:0 2px 4px #fff9}.tree-person .marriage-hearts i:nth-child(1){left:10%;--love-delay:-.4s;--love-drift:-13px}.tree-person .marriage-hearts i:nth-child(2){left:83%;--love-delay:-2s;--love-drift:13px}.tree-person .marriage-hearts i:nth-child(3){left:43%;--love-delay:-3.8s;--love-drift:-9px;font-size:25px}.tree-person .marriage-hearts i:nth-child(4){left:69%;--love-delay:-1s;--love-drift:16px}.tree-person .marriage-hearts i:nth-child(5){left:20%;--love-delay:-3s;--love-drift:-20px}.tree-person .marriage-hearts i:nth-child(6){left:4%;--love-delay:-4.5s;--love-drift:-10px;font-size:17px;animation-duration:9s}.tree-person .marriage-hearts i:nth-child(7){left:87%;--love-delay:-6s;--love-drift:10px;font-size:17px;animation-duration:9s}.tree-person .marriage-hearts i:nth-child(8){left:48%;--love-delay:-7.8s;--love-drift:4px;font-size:17px;animation-duration:11s}.tree-person .pair:hover .marriage-hearts i{animation-duration:3s}@keyframes coupleLoveFloat{0%,12%,85%,100%{opacity:0;transform:translate(0,24px) scale(.75) rotate(-8deg)}25%{opacity:.85}65%{opacity:.75;transform:translate(var(--love-drift,10px),-105px) scale(1.05) rotate(10deg)}80%{opacity:0;transform:translate(var(--love-drift,10px),-130px) scale(.9)}}
.calm-motion .tree-person .marriage-hearts i{animation:none!important;opacity:0}.calm-motion .tree-person .marriage-hearts i:nth-child(-n+2){opacity:.65;top:5%}@media(prefers-reduced-motion:reduce){.tree-person .marriage-hearts i{animation:none!important;opacity:0}.tree-person .marriage-hearts i:nth-child(-n+2){opacity:.65;top:5%}}

.tree-person .portrait-caption{border:0;background:none}
/* Named portraits, quiet scoring and a two-column family event. */
.portrait-name{position:absolute;left:-10%;right:-10%;top:-25px;text-align:center;font:600 17px 'Libre Baskerville',Georgia,serif;letter-spacing:.4px;color:#6c3d4b;text-shadow:0 1px 0 #fff7e9;white-space:nowrap;pointer-events:none;z-index:4}.hand .portrait-name{font-size:14px;top:-23px}.hand{row-gap:28px!important}.tree-person .portrait-name{font-size:17px}.tree-person .tree-card-points{position:absolute;top:238px;left:0;right:0}.tree-card-points{display:flex;justify-content:center;gap:8px;color:#815d42;font-size:10px;pointer-events:auto}.tree-card-points>span{display:flex;align-items:center;gap:2px}.tree-card-points .trait{width:15px;height:19px}.tree-card-points b{font-size:11px;font-weight:600}.tree-person .portrait-caption{padding-top:24px}.tree-person .target-action{margin-top:2px}.history-node .tree-card-points{position:relative;margin-top:5px}.history-portraits{padding-top:28px}.history-card .portrait-name{font-size:14px}.history-scoreboard{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px}.history-scoreboard .result{display:block;background:none;box-shadow:none;border:0;text-align:left;padding:12px 16px}.history-scoreboard .result.winner{background:#eac77c20;border-left:3px solid #b69455}.history-scoreboard .result h3{font-size:21px}.calm-results .result,.calm-results .revealed-trait,.calm-results .history-current,.calm-results .history-points,.calm-results .history-card-score,.calm-results .history-family,.calm-results .family-member{animation:none!important}.calm-results .history-generation{transition:opacity 1s ease,filter 1s ease}.calm-results .history-current .family-member .live-portrait{box-shadow:0 0 0 2px var(--family-color),0 0 22px color-mix(in srgb,var(--family-color),transparent 78%);transition:box-shadow 1.2s ease}.calm-results .live-portrait,.calm-results .portrait-lids,.calm-results .portrait-brows{animation:none!important}.calm-results [data-count-to]{font-variant-numeric:tabular-nums}.calm-results .history-progress>span{font-size:18px}.calm-results .history-branch.drawing{animation-duration:1.8s}.calm-results .history-card-score{background:none!important;border:0;color:#8c6038}.calm-results .history-finale{animation:none!important}.calm-results .history-points{color:#a27841}.tree-card-points .trait img{mix-blend-mode:multiply}
@media(min-width:1000px){
 #modal.family-event-modal{width:min(1320px,97vw);max-width:1320px;max-height:96dvh;padding:20px 26px;overflow:auto}
 .family-event{display:grid;grid-template-columns:minmax(400px,1fr) minmax(390px,1fr);grid-template-rows:auto auto 1fr auto;column-gap:30px;row-gap:10px;min-height:0}
 .birth-heading{grid-column:1/-1}.birth-heading h2{font-size:28px;margin:0 0 3px}.birth-heading .eyebrow{font-size:9px}.birth-heading p{display:none}.birth-flavor{font-size:14px;color:#9b7057;line-height:1.5;margin:3px 0 8px}
 .birth-layout{display:contents}.birth-tree{grid-column:1;grid-row:2/4;width:100%;max-width:500px;padding-top:25px;align-self:center}.birth-tree .live-portrait,.birth-descendant>.live-portrait{width:clamp(140px,19dvh,160px);height:clamp(197px,26.7dvh,225px)}.birth-descendant{padding-top:22px}.birth-branches{height:32px}.inherit-icons{margin:5px 0;gap:6px}.inherit-icon{padding:2px}.inherit-icon .trait{width:22px;height:26px}.birth-descendant>strong{font-size:11px}
 .birth-details{grid-column:2;grid-row:2}.birth-details h3{font-size:19px;margin:0 0 8px}.inherit-ledger{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.inherit-ledger>div{padding:3px 0 3px 7px;grid-template-columns:25px 1fr;column-gap:5px}.inherit-ledger .trait{width:23px;height:28px}.inherit-ledger strong{font-size:12px}.inherit-ledger span{font-size:10px;line-height:1.5;margin:3px 0}.inherit-ledger small{font-size:10px}.birth-details .tiny{margin:7px 0 0;font-size:10px}.birth-next{display:none}
 .birth-exchange{grid-column:2;grid-row:3;border:0;padding-top:12px;min-width:0}.exchange-heading{display:grid;grid-template-columns:1fr;gap:8px}.exchange-heading h3{font-size:20px}.exchange-heading p{font-size:12px;line-height:1.4}.exchange-heading button{font-size:12px;padding:10px 13px;justify-self:start}.exchange-flow{align-items:center;gap:12px;margin:10px 0}.exchange-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 8px;padding:22px 5px 5px;max-height:calc(100dvh - 380px);overflow:auto}.exchange-card{width:100%;flex:none}.exchange-card .live-portrait{width:clamp(95px,13dvh,120px);height:clamp(134px,18.3dvh,169px);margin:auto}.exchange-card .portrait-name{font-size:13px;top:-20px}.exchange-card>span:last-child{margin-top:4px;font-size:10px}.exchange-draw>div{width:60px}.exchange-draw img{width:54px;height:76px}.exchange-draw b{font-size:10px}.exchange-draw>span{font-size:22px}#exchangeStatus{font-size:11px;line-height:1.4}
 .birth-actions{grid-column:1/-1;grid-row:4;position:static;padding:8px 0 0;margin:0;background:none}.birth-actions button{min-height:47px;font-size:14px;padding:12px}.family-event-modal .close{position:absolute;top:10px;right:10px}.family-event .birth-tree .live-portrait{animation-duration:.5s}
}
.exchange-cards.has-choice .exchange-card:not(.chosen){opacity:.55;filter:saturate(.7)}.exchange-card.chosen .live-portrait{outline:4px solid #b97845;box-shadow:0 0 0 6px #d6b2682e,0 9px 15px #704d3033}.birth-flavor{font-family:Georgia,serif;color:#95705a}.family-event .inherit-icon{animation:none;transition:box-shadow .5s}.family-event .inherit-icon.passed{box-shadow:0 0 10px color-mix(in srgb,var(--inherit-color),transparent 55%)}
@media(max-width:999px){.birth-flavor{font-size:14px;line-height:1.5}.birth-person{padding-top:22px}.birth-descendant{padding-top:22px}.exchange-cards{padding-top:27px}.exchange-card .portrait-name{font-size:12px}.birth-tree .portrait-name{font-size:15px}.hand{padding-top:28px}.tree-card-points{font-size:10px}}
@media(min-width:1000px){.exchange-flow{display:block;position:relative;margin-top:15px}.exchange-cards{display:flex;justify-content:flex-start;gap:0;overflow:visible;max-height:none;width:100%;padding:24px 0 5px}.exchange-card{flex:1 1 70px;min-width:35px;max-width:125px;width:auto}.exchange-card:last-child{flex:0 0 clamp(95px,13dvh,120px)}.exchange-card .live-portrait{margin:0;width:clamp(95px,13dvh,120px);height:clamp(134px,18.3dvh,169px)}.exchange-card .portrait-name{left:0;right:0;font-size:12px}.exchange-card:hover,.exchange-card:focus-within,.exchange-card.chosen{z-index:5}.exchange-card>span:last-child{width:90px}.exchange-draw{position:absolute;right:0;top:-78px;gap:4px}.exchange-draw img{width:35px;height:49px}.exchange-draw>div{width:62px}.exchange-draw b{font-size:9px}.exchange-draw>span{font-size:18px}.birth-exchange .exchange-heading p{padding-right:70px}.exchange-heading button{font-size:13px}.birth-exchange{align-self:start}.birth-tree{margin:0 auto}.family-event-modal .birth-descendant{animation-delay:.65s}.birth-exchange #exchangeStatus{margin-top:10px}.family-event-modal .birth-tree .portrait-name{background:#fff4df60}}
@media(min-width:1000px){.birth-descendant>.inherit-icons{display:none}.birth-descendant>strong{margin-top:5px}.family-event-modal .birth-heading .eyebrow{font-size:8px}.family-event-modal .birth-tree{padding-top:22px}.family-event-modal .inherit-icons{margin:3px 0}.family-event-modal .inherit-icon{padding:1px}.family-event-modal .birth-branches{height:25px}}
@media(min-width:1000px) and (max-height:780px){#modal.family-event-modal{padding:12px 22px}.family-event{row-gap:6px}.birth-heading h2{font-size:24px;margin:0}.birth-flavor{font-size:12px;margin:2px 0 4px}.birth-details .tiny{font-size:9px}.birth-actions{padding-top:4px}.birth-actions button{min-height:43px;padding:10px}.birth-heading .eyebrow{line-height:1.3}}
/* Soft 3D buoyancy: the artwork always faces the player. No flips. */
.tree-person .pair,.hand-card,.birth-person,.birth-descendant,.exchange-card{perspective:1000px}.tree-person .live-portrait,.hand-card .live-portrait,.birth-tree .live-portrait,.exchange-card .live-portrait{transform-style:preserve-3d;backface-visibility:hidden;animation:portraitFloat3d calc(var(--blink-duration) + 2s) var(--blink-delay) ease-in-out infinite!important;transform-origin:50% 55%;transition:box-shadow .3s,rotate .35s;box-shadow:5px 10px 18px #54372827,0 1px 3px #52362722}.tree-person .live-portrait:after,.hand-card .live-portrait:after,.birth-tree .live-portrait:after,.exchange-card .live-portrait:after{content:'';position:absolute;inset:0;background:linear-gradient(125deg,#fff9 0,transparent 36%,transparent 75%,#4d24300d);opacity:.14;border-radius:inherit;pointer-events:none}.live-portrait:hover{animation-play-state:paused!important;rotate:y -5deg}.hand-card.selected .live-portrait,.exchange-card.chosen .live-portrait{animation:none!important;transform:perspective(1000px) translateY(-2px) rotateX(2deg);rotate:none}.tree-person .in-love>.live-portrait:nth-child(2){animation-delay:calc(var(--blink-delay) - 2s)!important}.calm-results .live-portrait{animation:none!important;transform:none!important;rotate:none!important}.hero-art.box-display{perspective:1300px}.game-box{animation:menuBoxFloat 8s ease-in-out infinite;transition:rotate .4s,translate .4s}.game-box:hover{animation-play-state:paused;rotate:y 4deg;translate:0 -5px}.box-portraits{perspective:900px}.box-display .box-portraits img{animation:menuPortraitFloat 6.8s ease-in-out infinite;backface-visibility:hidden;transform-style:preserve-3d}.box-display .box-portraits img:nth-child(2){animation-delay:-2.3s}.box-display .box-portraits img:nth-child(3){animation-delay:-4.6s}.box-pedestal{animation:menuTableShadow 8s ease-in-out infinite}
@keyframes portraitFloat3d{0%,100%{transform:perspective(1000px) translate3d(0,1px,0) rotateX(2deg) rotateY(-7deg) rotateZ(-.6deg);box-shadow:6px 9px 16px #54372827,0 1px 3px #52362722}50%{transform:perspective(1000px) translate3d(0,-7px,9px) rotateX(-3deg) rotateY(7deg) rotateZ(.7deg);box-shadow:-4px 16px 23px #54372824,0 1px 3px #52362722}}@keyframes menuBoxFloat{0%,100%{transform:translateY(2px) rotateX(2deg) rotateY(-16deg) rotateZ(1.5deg);filter:drop-shadow(20px 25px 18px #49233738)}50%{transform:translateY(-13px) rotateX(-2deg) rotateY(-7deg) rotateZ(-.5deg);filter:drop-shadow(10px 37px 24px #49233730)}}@keyframes menuPortraitFloat{0%,100%{translate:0 2px;rotate:y -8deg}50%{translate:0 -8px;rotate:y 7deg}}@keyframes menuTableShadow{50%{opacity:.6;scale:.94}}
.calm-motion .tree-person .live-portrait,.calm-motion .hand-card .live-portrait,.calm-motion .birth-tree .live-portrait,.calm-motion .exchange-card .live-portrait,.calm-motion .game-box,.calm-motion .box-portraits img,.calm-motion .box-pedestal{animation:none!important;rotate:none;translate:none}.calm-motion .live-portrait{transform:none!important}@media(prefers-reduced-motion:reduce){.tree-person .live-portrait,.hand-card .live-portrait,.birth-tree .live-portrait,.exchange-card .live-portrait,.game-box,.box-portraits img,.box-pedestal{animation:none!important;rotate:none;translate:none}.live-portrait{transform:none!important}}
/* Table gestures never create the browser's blue text/image selection. */
.table,.table *,#modalBody,#modalBody *,.result-panel,.result-panel *,.hero-art,.hero-art *{-webkit-user-select:none;user-select:none}.table input,.table textarea,#modalBody input,#modalBody textarea,.result-panel input,.result-panel textarea{ -webkit-user-select:text;user-select:text}.table img,#modalBody img,.result-panel img,.hero-art img{-webkit-user-drag:none}.table ::selection,#modalBody ::selection,.result-panel ::selection,.hero-art ::selection{background:transparent}.table input::selection,.table textarea::selection,#modalBody input::selection,#modalBody textarea::selection{background:Highlight;color:HighlightText}
/* A prominent personal crest, woven into the hand rather than a separate panel. */
.hand-head .hand-secret{grid-column:1/-1;display:flex;align-items:center;gap:15px;width:100%;padding:13px 12px;margin:8px 0 3px;border:0;border-radius:0;background:radial-gradient(ellipse at 20% 50%,color-mix(in srgb,var(--family-color),transparent 76%),transparent 85%);position:relative;isolation:isolate}.hand-secret:after{content:'';position:absolute;left:12px;right:18px;bottom:0;height:2px;background:linear-gradient(90deg,var(--family-color),transparent);opacity:.6}.hand-head .hand-secret>.trait{width:60px;height:72px;flex:0 0 60px;filter:drop-shadow(0 4px 8px color-mix(in srgb,var(--family-color),transparent 45%));transform:rotate(-4deg)}.hand-secret .secret-identity-copy{min-width:0;flex:1}.hand-head .hand-secret .secret-identity-copy>small{font-size:10px;letter-spacing:.6px;font-weight:700;color:#76544c}.hand-head .hand-secret .secret-identity-copy>strong{font:bold 28px 'Libre Baskerville',Georgia,serif;color:#603747;line-height:1.3;margin-top:4px}.secret-identity-copy>span{display:block;font-size:11px;line-height:1.5;color:#8b6653;margin-top:5px}.secret-family-score{flex:0 0 70px;text-align:center;align-self:center}.secret-family-score>b{font:32px Georgia;color:#77522f}.hand-secret .secret-family-score>small{font-size:9px;line-height:1.4;color:#9b7759;letter-spacing:0;margin-top:3px}.personal-table .play-dock:before{background:radial-gradient(ellipse at 55% 45%,color-mix(in srgb,var(--personal-color),transparent 83%),transparent 70%)}
@media(max-width:999px){.hand-head .hand-secret{gap:10px;padding:11px 7px;margin:6px 0 2px}.hand-head .hand-secret>.trait{width:48px;height:58px;flex-basis:48px}.hand-head .hand-secret .secret-identity-copy>strong{font-size:25px}.hand-head .hand-secret .secret-identity-copy>small{font-size:9px;letter-spacing:.2px}.secret-identity-copy>span{font-size:10px}.secret-family-score{flex-basis:54px}.secret-family-score>b{font-size:29px}.hand-secret .secret-family-score>small{font-size:8px}}
.tree-person .pair:disabled{pointer-events:none}.tree-person,.tree-person .pair{cursor:grab}.tree-person .pair.target{cursor:pointer}.tree-viewport.panning .tree-person,.tree-viewport.panning .tree-person .pair{cursor:grabbing}
.hand-head .hand-turn{grid-column:1/-1;grid-row:3;justify-self:end;margin:0 7px 2px 0;font-size:11px}.hand-panel .hand{padding-top:34px!important}
/* A reserved action ribbon below the artwork, separate from scoring and labels. */
.tree-person .portrait-caption{position:absolute;left:0;right:0;top:263px;padding:0;line-height:16px;min-height:16px;font-size:10px}.tree-person:has(.family-action) .portrait-caption{display:none}.tree-person .target-action.family-action{position:absolute;top:274px;left:50%;transform:translateX(-50%);margin:0;display:flex;align-items:center;gap:9px;min-height:54px;min-width:174px;padding:7px 15px 7px 9px;border-radius:30px;border:1px solid #bd8b5a50;box-shadow:0 5px 11px #7651391a, inset 0 1px 0 #fff8;white-space:nowrap;background:linear-gradient(145deg,#fff5d8,#edd5a8);color:#784451;transition:box-shadow .18s,background .18s,scale .18s}.tree-person .target-action.family-action.wedding-action{background:linear-gradient(145deg,#fff1e9,#edd1d3);border-color:#c38c9c70}.tree-person .family-action>svg{width:34px;height:34px;flex:0 0 34px;transition:rotate .2s}.tree-person .family-action>span{display:grid;gap:3px;text-align:left}.tree-person .family-action strong{font:600 15px Georgia,serif;color:#724050}.tree-person .family-action small{font-size:8px;letter-spacing:.6px;color:#a18164;text-transform:uppercase}.tree-person .target-action.family-action:hover:not(:disabled){transform:translateX(-50%);scale:1.035;box-shadow:0 7px 14px #76513926,0 0 16px #e5b4ad30}.tree-person .family-action:hover>svg{rotate:-6deg}.tree-person .family-action:active{scale:.97}.tree-person .family-action:focus-visible{outline:3px solid #b78242;outline-offset:4px}.tree-generation-label{z-index:2;background:radial-gradient(ellipse,#f2e5cee8 35%,#f2e5ce90 60%,transparent 78%);padding:3px 0;line-height:1.3}.tree-person{min-height:330px}.tree-person .tree-card-points{top:239px;height:19px}.tree-person .pair{margin-bottom:0}.tree-person .target-action.family-action:before,.tree-person .target-action.family-action:after{display:none}
.return-card-slot{width:54px;height:76px;border:2px dashed #bd9867;border-radius:5px;background:#f5e6c850;display:grid;place-items:center;color:#bc945e;overflow:hidden}.return-card-slot>span{font:28px Georgia}.return-card-slot img{width:100%!important;height:100%!important;object-fit:cover;border-radius:3px}.return-card-slot.filled{border-style:solid;border-color:#b68055;background:#fff3d6;box-shadow:0 3px 7px #8e653926}.exchange-draw .exchange-return{width:65px}.exchange-place-hint{font-weight:600;color:#86523f}.exchange-heading .exchange-rule-hint{font-size:10px;color:#a0866b;margin-top:5px}.exchange-return>b{font-size:9px;line-height:1.25}
@media(min-width:1000px){.exchange-draw{right:0;top:-93px;gap:6px}.exchange-draw>div{width:60px}.exchange-draw img{width:46px;height:65px}.return-card-slot{width:46px;height:65px;margin:auto}.exchange-heading .exchange-place-hint,.exchange-heading .exchange-rule-hint{padding-right:155px}.exchange-heading .exchange-rule-hint{font-size:9px}.exchange-draw b{font-size:9px}.exchange-flow{margin-top:17px}.exchange-return>b{margin-top:7px}.exchange-draw .exchange-return{width:64px}}
@media(max-width:999px){.exchange-draw .return-card-slot{width:44px;height:62px}.exchange-draw .exchange-return{width:50px}.exchange-return>b{font-size:9px}.exchange-draw{gap:5px}}
@media(min-width:1000px){.birth-exchange{display:grid;grid-template-columns:minmax(0,1fr) 155px;column-gap:12px;row-gap:16px}.exchange-heading{grid-column:1;grid-row:1}.exchange-flow{display:contents}.exchange-draw{position:static;grid-column:2;grid-row:1;align-self:center;justify-content:end}.exchange-cards{grid-column:1 / -1;grid-row:2;padding-top:22px}.birth-exchange #exchangeStatus{grid-column:1 / -1;margin-top:0}.birth-exchange .exchange-heading p{padding-right:0}.exchange-heading .exchange-rule-hint{font-size:10px}.exchange-heading .exchange-place-hint{font-size:12px}}
/* A little messenger at the table edge; opens only when invited. */
.people-panel{position:fixed!important;right:18px;bottom:14px;z-index:40;width:auto!important;max-width:calc(100vw - 32px);margin:0!important;padding:0!important;border:0!important;background:transparent!important}.people-panel>summary{font-size:12px!important;padding:9px 15px!important;border-radius:24px;background:#fbefdc;box-shadow:0 3px 15px #55332622;list-style:none;color:#71354b}.people-panel[open]{width:300px!important;padding:14px!important;border-radius:18px;background:#fff5e6!important;box-shadow:0 10px 40px #43241d35}.people-panel[open]>summary{margin-bottom:10px}.people-panel .chat{max-height:180px;min-height:60px}.people-panel .member{font-size:12px}.people-panel .reactions button{padding:6px}.people-panel .chat-form{display:flex;gap:5px}.people-panel .chat-form input{min-width:0;flex:1}.people-panel .chat-form button{padding:8px}
#chatNotices{position:fixed;right:18px;bottom:66px;z-index:100;display:grid;gap:8px;width:290px;max-width:calc(100vw - 36px);pointer-events:none}.chat-notice{pointer-events:auto;text-align:left;display:grid;gap:5px;background:#fff5e6;border:1px solid #cfab75;border-radius:16px;padding:14px 18px;box-shadow:0 7px 26px #47252930;animation:childArrive .25s ease both}.chat-notice strong{color:#8a4058;font-size:14px}.chat-notice span{font-size:14px;line-height:1.4;overflow-wrap:anywhere}
.lobby{max-width:1100px!important;padding:clamp(24px,4vw,52px)!important;background:radial-gradient(ellipse at top,#fff5db,#f6e5cf)!important;border:1px solid #b9915740!important;border-radius:30px!important;box-shadow:0 18px 60px #55332618}.lobby h1{font:clamp(36px,5vw,58px) Georgia,serif;color:#71354b}.lobby .seats{gap:22px}.lobby .seat{padding:22px!important;border-radius:22px!important;background:linear-gradient(135deg,#fff9ed,#efddbf)!important;box-shadow:0 8px 22px #78533615;border:1px solid #bd965846!important}.lobby .seat .avatar{width:90px!important;height:126px!important;object-fit:cover;border-radius:9px;box-shadow:0 6px 14px #55332630;transform:rotate(-3deg)}.lobby .seat strong{font:24px Georgia,serif}.lobby-actions button{min-height:56px;font-size:17px;border-radius:18px}.hero .entry{padding:26px!important;border-radius:24px;background:linear-gradient(145deg,#fff9ed,#ead6b8);box-shadow:0 12px 35px #70482920;border:1px solid #c19b6240}.hero .entry input{min-height:52px;font-size:18px}.hero .entry button{min-height:54px;font-size:17px;border-radius:15px}@media(max-width:600px){.lobby .seat .avatar{width:70px!important;height:98px!important}.lobby .seat strong{font-size:20px}.people-panel{right:10px;bottom:10px}}
