:root{--bg: #f7f5f0;--surface: #ffffff;--ink: #1b1a17;--ink-soft: #4c483f;--muted: #8b857a;--line: #e6e0d5;--line-strong: #d4cdbf;--accent: #0f5d54;--accent-ink: #0a423b;--accent-soft: #e9f1ee;--danger: #a32219;--good: #0f5d54;--radius: 7px;--radius-sm: 5px;--shadow-sm: 0 1px 2px rgba(27, 26, 23, .04);--shadow-md: 0 12px 30px -18px rgba(27, 26, 23, .28);--serif: "Fraunces", Georgia, "Times New Roman", serif;--sans: "Source Sans 3", system-ui, -apple-system, Segoe UI, Roboto, sans-serif}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:var(--accent);color:#fff}.page{max-width:1140px;margin:0 auto;padding:clamp(2.5rem,6vw,5.5rem) 1.5rem 4rem}.page--narrow{max-width:620px}.page-title{font-family:var(--serif);font-weight:600;font-size:clamp(1.8rem,4vw,2.5rem);line-height:1.1;margin:.6rem 0 .75rem;color:var(--ink)}.back-link{font-size:.85rem;font-weight:600;color:var(--accent);text-decoration:none}.back-link:hover{text-decoration:underline}.layout{display:grid;grid-template-columns:minmax(0,1fr);gap:2rem;max-width:620px;margin:0 auto}@media (min-width: 900px){.layout{grid-template-columns:minmax(0,1fr) minmax(0,1.02fr);gap:clamp(3rem,6vw,6rem);align-items:start;max-width:none}.intro{position:sticky;top:3.5rem}}.header{margin-bottom:2.25rem}.brand{display:flex;align-items:center;gap:.6rem;margin-bottom:1.75rem}.brand-mark{color:var(--accent);display:block}.brand-name{font-family:var(--sans);font-weight:700;font-size:1rem;letter-spacing:.01em;color:var(--ink)}.brand-tag{font-size:.8rem;color:var(--muted);padding-left:.6rem;border-left:1px solid var(--line-strong)}.eyebrow{font-size:.72rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin:0 0 .7rem}.header h1{font-family:var(--serif);font-weight:600;font-optical-sizing:auto;font-size:clamp(2.1rem,4.5vw,3.4rem);line-height:1.07;letter-spacing:-.01em;margin:0 0 .85rem;color:var(--ink)}.subtitle{margin:0;font-size:1.075rem;color:var(--ink-soft);max-width:48ch}.disclaimer{display:flex;gap:.85rem;align-items:flex-start;margin:0;padding:1rem 1.15rem;background:var(--accent-soft);border:1px solid #d4e4df;border-radius:var(--radius)}.disclaimer-icon{color:var(--accent);flex:none;margin-top:.15rem}.disclaimer-body{font-size:.9rem;color:var(--ink-soft)}.disclaimer-body strong{color:var(--accent-ink);font-weight:600}.disclaimer-body p{margin:.25rem 0 0}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:clamp(1.5rem,4vw,2rem)}.form{display:flex;flex-direction:column;gap:1.4rem}.field{display:flex;flex-direction:column;gap:.45rem}.field-label{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;font-size:.86rem;font-weight:600;letter-spacing:.01em;color:var(--ink)}.optional{font-weight:400;font-size:.78rem;color:var(--muted)}.hint{font-size:.8rem;color:var(--muted);margin:0}input[type=text],input[type=email],select{width:100%;font-family:var(--sans);font-size:.98rem;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:.7rem .8rem;transition:border-color .15s ease,box-shadow .15s ease}input::placeholder{color:#b3ada1}input[type=text]:focus,input[type=email]:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%238b857a' stroke-width='1.6' d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .85rem center;padding-right:2.2rem;cursor:pointer}.cd{position:relative}.cd-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-family:var(--sans);font-size:.98rem;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:.7rem .8rem;cursor:pointer;text-align:left}.cd-trigger:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.cd-trigger-label{display:flex;align-items:center;gap:.55rem;min-width:0}.cd-placeholder{color:#b3ada1}.cd-chevron{flex:none;color:var(--muted)}.cd-flag{width:21px;height:15px;flex:none;border-radius:2px;box-shadow:0 0 0 1px #1b1a1714;object-fit:cover}.cd-flag-empty{background:var(--line)}.cd-panel{position:absolute;z-index:30;top:calc(100% + 4px);left:0;right:0;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);padding:.4rem}.cd-search{width:100%;font-family:var(--sans);font-size:.9rem;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);padding:.5rem .6rem;margin-bottom:.35rem}.cd-search:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.cd-list{list-style:none;margin:0;padding:0;max-height:15rem;overflow-y:auto}.cd-option{display:flex;align-items:center;gap:.55rem;padding:.5rem .55rem;border-radius:var(--radius-sm);cursor:pointer;font-size:.92rem}.cd-option.active{background:var(--accent-soft)}.cd-option.selected{font-weight:600}.cd-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cd-empty{padding:.6rem;color:var(--muted);font-size:.88rem;text-align:center}.file-drop{position:relative;display:flex;align-items:center;gap:.85rem;padding:1rem 1.1rem;border:1.5px dashed var(--line-strong);border-radius:var(--radius-sm);background:#fcfbf8;cursor:pointer;transition:border-color .15s ease,background .15s ease}.file-drop:hover,.file-drop.dragging{border-color:var(--accent);background:var(--accent-soft)}.file-drop.has-file{border-style:solid;border-color:var(--line-strong);background:var(--surface)}.file-drop input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.file-icon{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--accent-soft);color:var(--accent)}.file-text{display:flex;flex-direction:column;min-width:0}.file-primary{display:block;font-size:.95rem;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-secondary{display:block;font-size:.8rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn{font-family:var(--sans);font-size:.98rem;font-weight:600;letter-spacing:.01em;color:#fff;background:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-sm);padding:.8rem 1.1rem;cursor:pointer;transition:background .15s ease,transform .05s ease}.btn:hover:not(:disabled){background:var(--accent-ink);border-color:var(--accent-ink)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-row{display:flex;flex-direction:column;gap:.75rem;margin-top:.25rem}.turnstile:not(:empty){margin-bottom:.25rem}.req{color:var(--danger)}textarea{width:100%;font-family:var(--sans);font-size:.98rem;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:.7rem .8rem;resize:vertical}textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.consent{display:flex;gap:.65rem;align-items:flex-start;padding:.9rem 1rem;background:var(--accent-soft);border:1px solid #d4e4df;border-radius:var(--radius-sm);font-size:.88rem;color:var(--ink-soft);cursor:pointer}.consent input[type=checkbox]{flex:none;width:18px;height:18px;margin-top:.1rem;accent-color:var(--accent);cursor:pointer}.consent strong{color:var(--accent-ink);font-weight:600}.success{margin-top:1.5rem;padding:1.1rem 1.25rem;background:var(--accent-soft);border:1px solid #cfe3dd;border-left:3px solid var(--accent);border-radius:var(--radius);color:var(--ink-soft)}.success-title{margin:0 0 .25rem;font-weight:700;color:var(--accent-ink)}.success p{margin:.15rem 0}.success-link{display:inline-block;margin-top:.6rem;font-weight:600;color:var(--accent);text-decoration:none}.success-link:hover{text-decoration:underline}.footer-links a{color:var(--accent);text-decoration:none}.footer-links a:hover{text-decoration:underline}.tree-head{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;padding-bottom:.75rem;margin-bottom:.5rem;border-bottom:1px solid var(--line)}.tn-name--root{font-weight:700;font-size:1.05rem;color:var(--accent-ink)}.tn-children{list-style:none;margin:0;padding:0 0 0 1.1rem}.tn-root{padding-left:0}.tn{border-left:1px solid var(--line)}.tn-root>.tn{border-left:none}.tn-row{display:flex;align-items:center;gap:.5rem;padding:.3rem .2rem;border-radius:var(--radius-sm)}.tn-row:hover{background:#faf8f3}.tn-toggle{flex:none;width:1.4rem;height:1.4rem;display:grid;place-items:center;background:none;border:none;cursor:pointer;color:var(--accent);font-size:.9rem}.tn-toggle.tn-leaf{color:var(--line-strong);cursor:default}.tn-name{background:none;border:none;cursor:pointer;font-family:var(--sans);font-weight:600;font-size:.92rem;color:var(--ink);padding:0;text-decoration:none}.tn-name:hover{color:var(--accent);text-decoration:underline}.tn-count{flex:none;min-width:1.5rem;text-align:center;padding:.05rem .4rem;border-radius:999px;background:var(--accent-soft);color:var(--accent-ink);font-size:.72rem;font-weight:700}.tn-formed{font-size:.78rem;color:var(--muted)}.tn-here{font-size:.75rem;color:var(--accent);font-weight:600}.tn-loading{padding:.3rem 0 .3rem 1.9rem;color:var(--muted);font-size:.85rem}.spinner{display:inline-block;width:.95em;height:.95em;margin-right:.5rem;vertical-align:-.12em;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error{margin:0;font-size:.88rem;color:var(--danger);display:flex;gap:.4rem;align-items:center}.result{margin-top:1.5rem;background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--accent);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:clamp(1.5rem,4vw,2rem);animation:rise .35s ease}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.result-eyebrow{font-size:.72rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:0}.haplogroup{font-family:var(--sans);font-weight:700;font-size:clamp(2.2rem,7vw,3.1rem);line-height:1;letter-spacing:-.02em;color:var(--accent);margin:.4rem 0 0}.badge{display:inline-block;margin-top:.9rem;padding:.25rem .65rem;font-size:.78rem;font-weight:600;color:var(--accent-ink);background:var(--accent-soft);border:1px solid #d4e4df;border-radius:999px}.discover-link{display:inline-flex;align-items:center;gap:.35rem;margin-top:.85rem;font-size:.92rem;font-weight:600;color:var(--accent);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .15s ease}.discover-link:hover{border-bottom-color:var(--accent)}.discover-link svg{flex:none}.confidence{margin-top:1.5rem}.confidence-head{display:flex;justify-content:space-between;align-items:baseline;font-size:.82rem;color:var(--ink-soft);margin-bottom:.4rem}.confidence-head b{color:var(--ink);font-weight:600}.meter{height:7px;border-radius:999px;background:var(--line);overflow:hidden}.meter>span{display:block;height:100%;background:var(--accent);border-radius:999px;transition:width .5s ease}.result-grid{display:grid;grid-template-columns:1fr;gap:0;margin:1.5rem 0 0;border-top:1px solid var(--line)}.row{display:flex;justify-content:space-between;gap:1.25rem;padding:.7rem 0;border-bottom:1px solid var(--line);font-size:.92rem}.row dt{color:var(--muted);flex:none}.row dd{margin:0;text-align:right;color:var(--ink);min-width:0;overflow-wrap:anywhere}.row dd.path{font-family:var(--sans);font-weight:600}.support{margin-top:1.5rem}.support-title{font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 .6rem}.support-list{list-style:none;margin:0;padding:0;max-height:15rem;overflow-y:auto;border:1px solid var(--line);border-radius:var(--radius-sm)}.support-step{display:flex;justify-content:space-between;gap:1rem;padding:.5rem .8rem;border-bottom:1px solid var(--line);font-size:.86rem}.support-step:last-child{border-bottom:none}.support-clade{font-family:var(--sans);font-weight:600;color:var(--ink);flex:none}.support-snps{flex:1;min-width:0;color:var(--muted);font-size:.8rem;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-notes{margin:1.25rem 0 0;padding:.9rem 1rem;background:#faf8f3;border:1px solid var(--line);border-radius:var(--radius-sm);font-size:.82rem;color:var(--ink-soft);line-height:1.55}.footer{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--line);font-size:.82rem;color:var(--muted);text-align:center;max-width:52ch;margin-left:auto;margin-right:auto}@media (max-width: 600px){html,body{overflow-x:hidden}.page{padding-left:1.15rem;padding-right:1.15rem}.row{flex-direction:column;gap:.15rem}.row dt{font-size:.8rem}.row dd{text-align:left}.support-step{flex-direction:column;align-items:flex-start;gap:.15rem}.support-snps{text-align:left;white-space:normal}.file-secondary{white-space:normal}}.tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--line);margin-bottom:.25rem}.tab{background:none;border:none;cursor:pointer;font-family:var(--sans);font-size:.92rem;font-weight:600;color:var(--muted);padding:.55rem .8rem;border-bottom:2px solid transparent;margin-bottom:-1px}.tab.is-active{color:var(--accent-ink);border-bottom-color:var(--accent)}.link-btn{background:none;border:none;padding:0;cursor:pointer;font-family:var(--sans);font-size:.82rem;font-weight:600;color:var(--accent)}.link-btn:hover{text-decoration:underline}code{font-size:.85em;background:#f1eee7;padding:0 .25em;border-radius:3px}#str-text{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.88rem}.str-panel{border:1px solid var(--line);border-radius:var(--radius-sm);padding:.6rem .7rem .75rem;margin:0 0 .6rem}.str-panel legend{font-size:.75rem;font-weight:700;color:var(--accent-ink);padding:0 .3rem}.str-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:.45rem}.str-cell{display:flex;flex-direction:column;gap:.15rem;font-size:.7rem;color:var(--muted);min-width:0}.str-cell span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.str-cell input{width:100%;font-family:var(--sans);font-size:.9rem;color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:.35rem .45rem;background:var(--surface)}.str-cell input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.clade-short{display:inline-block;margin-left:.4rem;padding:0 .4rem;border-radius:999px;background:var(--accent-soft);color:var(--accent-ink);font-size:.72rem;font-weight:700}.lineage{list-style:none;margin:1rem 0 .5rem;padding:0;display:flex;flex-direction:column;gap:.25rem}.lineage li{display:flex;align-items:center;gap:.4rem;font-size:.9rem;color:var(--ink-soft)}.lineage li:before{content:"›";color:var(--line-strong)}.lineage li.is-confident{font-weight:700;color:var(--ink)}.lineage a{color:inherit;text-decoration:none}.lineage a:hover{color:var(--accent);text-decoration:underline}.lineage-p{margin-left:auto;font-variant-numeric:tabular-nums;color:var(--muted);font-weight:600}.haplogroup-p{margin-left:.6rem;font-size:.55em;font-weight:600;color:var(--muted);vertical-align:middle}.confident-note{margin:.5rem 0 0;font-size:.85rem;color:var(--ink)}.warn-note{margin:.75rem 0 0;padding:.7rem .9rem;border-radius:var(--radius-sm);background:#fbf3e2;color:#6b4a07;font-size:.85rem}.result-subtitle{font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:1.6rem 0 .75rem}.donut{display:flex;gap:1.25rem;align-items:center;flex-wrap:wrap}.donut-svg{width:180px;height:180px;flex:none}.donut-svg path{cursor:default;transition:opacity .15s ease}.donut-center-value{font-family:var(--sans);font-weight:700;font-size:22px;fill:var(--ink)}.donut-center-label{font-family:var(--sans);font-size:11px;fill:var(--ink-soft)}.donut-legend{list-style:none;margin:0;padding:0;flex:1;min-width:200px;display:flex;flex-direction:column;gap:.3rem}.donut-legend li{display:flex;align-items:center;gap:.5rem;font-size:.86rem;padding:.15rem .3rem;border-radius:4px}.donut-legend li.is-hover{background:#faf8f3}.swatch{width:10px;height:10px;border-radius:2px;flex:none}.lg-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-weight:600}.lg-sub{color:var(--muted);font-weight:400}.lg-value{margin-left:auto;font-variant-numeric:tabular-nums;color:var(--ink-soft)}.str-table{width:100%;border-collapse:collapse;margin-top:1.25rem;font-size:.85rem}.str-table th{text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700;padding:.4rem .35rem;border-bottom:1px solid var(--line)}.str-table td{padding:.45rem .35rem;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}.str-table td a{color:var(--ink);font-weight:600;text-decoration:none}.str-table td a:hover{color:var(--accent);text-decoration:underline}.branch-group{display:block;font-size:.74rem;color:var(--muted)}.str-details{margin-top:1.25rem}.str-details summary{cursor:pointer;font-weight:600;font-size:.88rem;color:var(--ink)}.str-details .str-table{margin-top:.5rem}a.brand{text-decoration:none}.tool-switch{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:0 0 1.75rem;padding:4px;background:var(--accent-soft);border:1px solid var(--line);border-radius:var(--radius)}.tool-tab{display:flex;flex-direction:column;gap:.15rem;min-width:0;padding:.6rem .75rem;border-radius:calc(var(--radius) - 3px);text-decoration:none;color:var(--ink-soft);transition:background .15s,box-shadow .15s}.tool-tab:hover{background:#fff9}.tool-tab.is-active{background:var(--surface);box-shadow:0 1px 3px #0000001f;color:var(--ink)}.tool-tab-title{font-weight:700;font-size:.92rem;color:var(--accent-ink)}.tool-tab-sub{font-size:.74rem;color:var(--muted)}.tool-badge{display:inline-block;margin-left:.3rem;padding:.05rem .4rem;border-radius:999px;background:var(--accent);color:#fff;font-size:.62rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;vertical-align:.12em}.promo{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:1.25rem;padding:1rem 1.1rem;border:1px solid var(--accent);border-radius:var(--radius);background:var(--accent-soft);text-decoration:none;color:var(--ink-soft);font-size:.9rem}.promo strong{display:block;color:var(--accent-ink);font-size:.98rem;margin-bottom:.15rem}.promo-sub{display:block}.promo:hover{box-shadow:0 2px 8px #0f5d542e}.promo-arrow{flex:none;display:grid;place-items:center;width:2rem;height:2rem;border-radius:999px;background:var(--accent);color:#fff;font-weight:700}@media (max-width: 600px){.str-table th:nth-child(5),.str-table td:nth-child(5),.str-table th:nth-child(6),.str-table td:nth-child(6){display:none}.donut{justify-content:center}}
