:root{--paper:#f4efe4;--paper-strong:#e5dbc7;--ink:#2f2821;--muted:#776d61;--line:#8f8577;--accent:#8d6b2d;--panel:rgba(255,252,246,0.84);--panel-strong:rgba(255,250,242,0.96);--shadow:0 24px 70px rgba(44,31,10,0.14)}*{box-sizing:border-box}html{scroll-behavior:smooth;background:radial-gradient(circle at top,rgba(247,216,155,.25),transparent 30%),linear-gradient(180deg,#efe5d1,#eadfc8)}body{margin:0;color:var(--ink);font-family:Avenir Next,Segoe UI,sans-serif}a{color:inherit}button,input,select{font:inherit}.home-shell{min-height:100vh;display:grid;place-items:center;padding:32px}.chart-card,.compatibility-card,.hero-card,.logic-card,.placement-card,.report-header,.summary-card{background:var(--panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(98,84,66,.22);box-shadow:var(--shadow)}.hero-card{width:min(760px,100%);border-radius:36px;padding:48px;text-align:center}.eyebrow{margin:0 0 8px;color:var(--accent);letter-spacing:.18em;text-transform:uppercase;font-size:.72rem;font-weight:700}h1,h2{font-family:Iowan Old Style,Palatino Linotype,Book Antiqua,serif;font-weight:600;letter-spacing:-.02em}.hero-card h1{margin:0;font-size:clamp(3rem,6vw,5.5rem);line-height:.95}.hero-copy{max-width:560px;margin:20px auto 0;color:var(--muted);font-size:1.05rem;line-height:1.7}.hero-actions{margin-top:28px}.primary-link{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:14px 24px;background:linear-gradient(135deg,#8c6730,#bb9556);color:#fffaf1;text-decoration:none;font-weight:700}.report-shell{min-height:100vh;padding:28px}.page-jump-nav{position:fixed;left:28px;top:50%;transform:translateY(-50%);display:grid;grid-gap:18px;gap:18px;z-index:20}.page-jump-link{width:58px;height:58px;display:grid;place-items:center;border-radius:999px;border:1px solid rgba(141,107,45,.2);background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.98),rgba(255,248,236,.92) 58%,rgba(229,219,199,.9) 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.92),0 14px 28px rgba(141,107,45,.16);text-decoration:none;color:#7e5a22;font-size:1.1rem;font-weight:700;transition:transform .14s ease,box-shadow .14s ease,background .14s ease,color .14s ease,border-color .14s ease}.page-jump-link:focus-visible,.page-jump-link:hover{transform:translateY(-2px) scale(1.04);border-color:rgba(141,107,45,.34);box-shadow:inset 0 1px 0 rgba(255,255,255,.95),0 20px 36px rgba(141,107,45,.22);background:radial-gradient(circle at 30% 25%,rgba(255,255,255,1),rgba(255,250,242,.98) 58%,rgba(238,227,208,.95) 100%);color:#5f4215}.report-header{border-radius:28px;padding:28px 30px;display:flex;justify-content:space-between;gap:24px;margin:0 auto 20px;max-width:1500px}.chart-card h2,.compatibility-card h2,.logic-card h2,.placement-card h2,.report-header h1,.summary-card h2{margin:0}.report-meta{text-align:right;color:var(--muted);line-height:1.5}.report-meta p{margin:0}.report-top-grid{max-width:1500px;margin:0 auto;display:grid;grid-template-columns:320px 320px minmax(420px,1fr);grid-gap:20px;gap:20px;align-items:start}.chart-card,.compatibility-card,.logic-card,.placement-card,.summary-card{border-radius:28px;padding:22px}.card-copy,.logic-card p,.modal-copy,.section-copy,.summary-card p{color:var(--muted);line-height:1.65}.sex-row{display:grid;grid-gap:8px;gap:8px;margin:18px 0 16px;color:var(--muted)}.card-save-button{margin-top:8px;border:1px solid rgba(98,84,66,.18);border-radius:999px;background:white;color:var(--ink);padding:10px 14px;font-weight:700;cursor:pointer}.upload-field{display:grid;grid-gap:8px;gap:8px;margin-top:18px;color:var(--muted)}.import-textarea{min-height:220px;border:1px solid rgba(98,84,66,.16);border-radius:16px;background:rgba(255,255,255,.92);padding:12px 14px;color:var(--ink);resize:vertical;line-height:1.5}.import-action{border:1px solid rgba(98,84,66,.18);border-radius:999px;background:linear-gradient(135deg,#8c6730,#bb9556);color:#fffaf1;padding:10px 16px;font-weight:700;cursor:pointer}.import-action,.import-status{margin-top:14px}.import-warnings{margin:12px 0 0;padding-left:18px;color:var(--ink);line-height:1.55}.debug-panel{margin-top:18px}.calibration-panel{margin-top:14px;padding:14px;border-radius:18px;border:1px solid rgba(98,84,66,.12);background:rgba(255,251,245,.82)}.calibration-head{display:flex;justify-content:space-between;gap:12px;align-items:baseline;flex-wrap:wrap;color:var(--muted)}.calibration-head strong{color:var(--ink)}.calibration-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px;margin-top:12px}.calibration-row label{display:grid;grid-gap:6px;gap:6px;font-size:.9rem;color:var(--muted)}.calibration-row select{border:1px solid rgba(98,84,66,.16);border-radius:12px;background:white;padding:10px 12px;color:var(--ink)}.calibration-readout{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px;color:var(--muted);font-size:.9rem}.calibration-status{margin:10px 0 0;color:var(--muted);font-size:.9rem}.calibration-controls{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.calibration-controls button{border:1px solid rgba(98,84,66,.16);border-radius:999px;background:white;color:var(--ink);padding:8px 12px;font-weight:700;cursor:pointer}.debug-image-wrap{position:relative;margin-top:12px;border-radius:18px;overflow:hidden;border:1px solid rgba(98,84,66,.16);background:rgba(255,251,245,.72)}.debug-image{display:block;width:100%;height:auto}.debug-box{position:absolute;border:2px solid;border-radius:6px;pointer-events:none}.debug-box span{position:absolute;top:-18px;left:0;padding:2px 6px;border-radius:999px;font-size:.7rem;font-weight:700;white-space:nowrap}.debug-box-a{border-color:rgba(37,99,235,.95);background:rgba(59,130,246,.12)}.debug-box-a span{background:rgba(37,99,235,.95);color:white}.debug-box-b{border-color:rgba(249,115,22,.95);background:rgba(249,115,22,.12)}.debug-box-b span{background:rgba(249,115,22,.95);color:white}.placement-list{display:grid;grid-gap:10px;gap:10px}.placement-row{display:grid;grid-template-columns:72px 1fr;grid-gap:12px;gap:12px;align-items:center;padding:10px 12px;border-radius:18px;background:rgba(255,251,245,.8);border:1px solid rgba(98,84,66,.12)}.planet-mark{display:grid}.planet-mark strong{font-size:1.35rem}.planet-mark span{font-size:.72rem;color:var(--muted)}select{width:100%;border-radius:12px;border:1px solid rgba(98,84,66,.18);background:#fffdf8;color:var(--ink);padding:10px 12px}.section-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin-bottom:16px}.section-heading.compact{align-items:start}.section-heading h2{margin-bottom:0}.section-copy{max-width:430px;margin:0}.section-actions{display:flex;flex-direction:column;align-items:flex-end;gap:12px}.grid-toggles{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:12px}.grid-toggles label{display:grid;grid-gap:6px;gap:6px;color:var(--muted);font-size:.9rem}.grid-toggles select{border:1px solid rgba(98,84,66,.16);border-radius:12px;background:white;padding:10px 12px;color:var(--ink)}.grid-toggle-check{display:flex!important;align-items:center;gap:8px;align-self:end}.download-button{border:1px solid rgba(98,84,66,.18);border-radius:999px;background:linear-gradient(135deg,#8c6730,#bb9556);color:#fffaf1;padding:10px 16px;font-weight:700;cursor:pointer}.chart-scroll,.compatibility-scroll{overflow-x:auto}.chart-table,.compatibility-table{width:100%;border-collapse:separate;border-spacing:6px}.compatibility-table{min-width:680px}.chart-table td,.chart-table th,.compatibility-table td,.compatibility-table th{text-align:center;vertical-align:middle}.compatibility-table th{color:var(--muted);font-size:.78rem;font-weight:700;letter-spacing:.08em}.compatibility-symbol{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;border:1px solid var(--line);background:var(--panel-strong);font-size:1rem;line-height:1}.legend-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px;margin-top:18px}.legend-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:16px;background:rgba(255,251,245,.74);border:1px solid rgba(98,84,66,.12);width:100%;color:var(--ink);cursor:pointer;transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease,background .14s ease}.legend-item.is-active,.legend-item:focus-visible,.legend-item:hover{transform:translateY(-1px);border-color:rgba(141,107,45,.28);background:rgba(255,251,245,.96);box-shadow:0 12px 26px rgba(44,31,10,.1)}.legend-item-static{cursor:default}.legend-item-static:focus-visible,.legend-item-static:hover{transform:none;border-color:rgba(98,84,66,.12);background:rgba(255,251,245,.74);box-shadow:none}.relation-filter-bar{display:flex;flex-wrap:wrap;gap:10px;flex:1 1;min-width:0}.relation-filter-button{width:auto;white-space:nowrap}.grid-filter-row{display:flex;align-items:center;gap:12px;margin-top:14px}.chart-card,.logic-card{max-width:1500px;margin:20px auto 0}.chart-card{position:relative;--note-marker-shift-x:0px;--note-marker-shift-y:0px}.chart-table{min-width:980px}.chart-table th{min-width:112px;padding:10px;border-radius:18px;background:rgba(255,251,245,.74);border:1px solid rgba(98,84,66,.12);transition:opacity .14s ease,box-shadow .14s ease,background .14s ease}.axis-th-focused{box-shadow:0 16px 32px rgba(44,31,10,.12)}.axis-th-dimmed{opacity:.4}.axis-focus-button{width:100%;border:0;background:transparent;color:inherit;padding:0;cursor:pointer}.axis-symbol{font-size:1.2rem;font-weight:700}.axis-subcopy{margin-top:4px;color:var(--muted);font-size:.78rem;line-height:1.35}.chart-cell{position:relative;width:100%;min-width:112px;height:88px;display:grid;place-items:center;grid-gap:6px;gap:6px;border-radius:18px;border:1px solid var(--line);cursor:pointer;transition:transform .14s ease,box-shadow .14s ease}.chart-cell:focus-visible,.chart-cell:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(44,31,10,.14)}.chart-cell-dimmed{opacity:.28;filter:saturate(.35);box-shadow:none}.chart-cell-note-marker{position:absolute;top:calc(8px + var(--note-marker-shift-y));right:calc(9px - var(--note-marker-shift-x));width:18px;height:18px;pointer-events:none;--note-marker-rotation:0deg}.chart-cell-note-marker-shifted{top:calc(25px + var(--note-marker-shift-y))}.chart-cell-note-marker img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 2px 3px rgba(44,31,10,.18));transform:rotate(var(--note-marker-rotation));transform-origin:center}.chart-cell-star-marker{position:absolute;top:7px;right:10px;font-size:.9rem;line-height:1;color:rgba(95,66,21,.92);text-shadow:0 1px 2px rgba(255,250,241,.85);pointer-events:none}.chart-cell-empty{min-width:112px;height:88px}.chart-symbol{font-size:1.4rem;font-weight:700;line-height:1}.chart-pair{font-size:.8rem;opacity:.85}.focus-shortcut-button{width:52px;height:52px;display:grid;place-items:center;border-radius:999px;border:1px solid rgba(98,84,66,.16);background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.98),rgba(255,248,236,.92) 58%,rgba(229,219,199,.9) 100%);color:#7e5a22;font-size:1.35rem;box-shadow:inset 0 1px 0 rgba(255,255,255,.92),0 14px 28px rgba(141,107,45,.12);cursor:pointer;transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease,color .14s ease}.focus-shortcut-button.is-active,.focus-shortcut-button:focus-visible,.focus-shortcut-button:hover{transform:translateY(-2px);border-color:rgba(141,107,45,.34);color:#5f4215;box-shadow:inset 0 1px 0 rgba(255,255,255,.95),0 18px 32px rgba(141,107,45,.18)}.grid-focus-shortcuts{display:flex;gap:10px;flex-shrink:0}.grid-action-row{display:flex;align-items:center;justify-content:flex-end;gap:14px}.grid-action-row .section-copy{max-width:280px;text-align:right}.summary-grid{max-width:1500px;margin:20px auto 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:20px;gap:20px}.summary-table{display:grid;grid-template-columns:1.8fr repeat(3,minmax(0,1fr));grid-gap:10px 14px;gap:10px 14px;align-items:center}.summary-card h2{display:flex;align-items:center;gap:10px}.summary-title-symbol{font-size:1.05em;color:var(--accent)}.summary-grid-secondary{margin-top:20px;align-items:stretch;grid-template-columns:repeat(3,minmax(0,1fr))}.qualifier-table{display:block}.qualifier-stack{display:grid;grid-gap:14px;gap:14px;margin-top:18px}.qualifier-line{display:grid;grid-gap:6px;gap:6px;padding:14px 16px;border-radius:16px;background:rgba(255,251,245,.72);border:1px solid rgba(98,84,66,.1)}.qualifier-line span{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.qualifier-line strong{font-size:1.08rem;font-weight:600}.qualifier-table-row{display:grid;grid-template-columns:1.2fr repeat(3,minmax(0,1fr));grid-gap:10px 14px;gap:10px 14px;align-items:start;padding-top:10px}.qualifier-table-row+.qualifier-table-row{border-top:1px solid rgba(98,84,66,.1);margin-top:10px}.summary-head{font-size:.76rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.logic-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:20px;gap:20px}.logic-copy{padding:4px 2px}.saved-chart-panel{padding:16px;border-radius:22px;background:rgba(255,251,245,.8);border:1px solid rgba(98,84,66,.12)}.saved-chart-loaders{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px}.saved-chart-loaders.compact label{display:grid;grid-gap:6px;gap:6px;color:var(--muted);font-size:.9rem}.saved-chart-loaders select,.saved-chart-manage select{border:1px solid rgba(98,84,66,.16);border-radius:12px;background:white;padding:10px 12px;color:var(--ink)}.saved-chart-manage{display:grid;grid-template-columns:1fr auto;grid-gap:8px;gap:8px}.saved-chart-manage button{border:1px solid rgba(98,84,66,.16);border-radius:999px;background:white;color:var(--ink);padding:8px 12px;font-weight:700;cursor:pointer}.saved-chart-manage button:disabled{opacity:.45;cursor:not-allowed}.saved-chart-count{margin:12px 2px 0;color:var(--muted);font-size:.92rem}.saved-chart-loaders.compact select,.saved-chart-manage select{width:100%}.saved-chart-manage button{white-space:nowrap}.saved-chart-loaders.compact label{min-width:0}.saved-chart-loaders.compact{align-items:end}.saved-chart-loaders select,.saved-chart-manage button,.saved-chart-manage select{font-weight:500}.modal-backdrop{position:fixed;inset:0;display:grid;place-items:center;padding:20px;background:rgba(31,23,13,.48);animation:fade-in .16s ease}.modal-layout{width:min(980px,100%);display:grid;grid-template-columns:minmax(0,1fr) 82px;grid-gap:0;gap:0;align-items:start}.modal-card{width:100%;max-height:min(88vh,980px);border-radius:28px;padding:24px;overflow-y:auto;background:var(--panel-strong);border:1px solid rgba(98,84,66,.22);box-shadow:0 32px 90px rgba(28,20,9,.25);animation:lift-in .18s ease;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.sticky-note-wrap{display:grid;justify-items:end;align-self:start;padding-top:12px}.sticky-note-tab{width:62px;min-height:62px;padding:8px;border:1px solid rgba(167,133,20,.24);border-radius:10px;background:linear-gradient(180deg,#fff7a8,#fde977);box-shadow:0 18px 34px rgba(72,58,11,.18),inset 0 1px 0 rgba(255,255,255,.6);color:#6f5200;cursor:pointer;transform:rotate(1.2deg)}.sticky-note-tab-label{display:grid;place-items:center;width:100%;height:100%;font-size:1.2rem;line-height:1;color:#fffdf3;text-shadow:0 1px 2px rgba(111,82,0,.28)}.sticky-note-wrap.is-open .sticky-note-tab{display:none}.sticky-note-pad{width:248px;min-height:230px;padding:16px 16px 14px;border-radius:16px;background:linear-gradient(180deg,#fff7a8,#fde977);border:1px solid rgba(167,133,20,.24);box-shadow:0 18px 34px rgba(72,58,11,.18),inset 0 1px 0 rgba(255,255,255,.6);transform:none}.sticky-note-wrap.is-open .sticky-note-pad{transform:translateX(14px)}.sticky-note-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.sticky-note-label{margin:0;min-height:14px}.sticky-note-close{border:0;background:transparent;color:#6f5200;font-size:.82rem;font-weight:700;cursor:pointer}.sticky-note-pad textarea{box-sizing:border-box;width:100%;max-width:100%;min-width:0;min-height:160px;border:0;resize:both;background:transparent;color:#473400;font:inherit;line-height:1.5;outline:none;overflow-wrap:anywhere;word-break:break-word;white-space:pre-wrap}.modal-close{margin-left:auto;display:block;border:1px solid rgba(98,84,66,.22);border-radius:999px;background:transparent;padding:8px 14px;color:var(--ink);cursor:pointer}.modal-tags{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 14px}.modal-pair-summary{margin:-4px 0 14px;color:var(--muted);font-size:.92rem}.modal-tags>span{display:inline-flex;align-items:center;padding:10px 14px;border-radius:999px;border:1px solid rgba(98,84,66,.16);background:rgba(255,251,245,.8)}.person-chip[data-sex=male]{background:#dbeafe;border-color:#93c5fd;color:#163252}.person-chip[data-sex=female]{background:#ffe4e6;border-color:#f9a8d4;color:#7a284d}.same-planet-inline-star{margin-left:3px;font-size:.9em;line-height:1;color:inherit}.modal-compare-grid{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);grid-gap:18px;gap:18px;align-items:start}.modal-interaction-card{margin-bottom:18px;padding:14px 16px;border-radius:18px;border:1px solid rgba(98,84,66,.14);background:rgba(255,251,245,.78)}.modal-interaction-card p:last-child{margin:0;line-height:1.55}.modal-cross,.modal-divider{display:grid;place-items:center;font-family:Iowan Old Style,Palatino Linotype,Book Antiqua,serif;font-size:1.8rem;color:var(--accent)}.modal-detail{display:grid;grid-gap:12px;gap:12px}.modal-block{padding:16px;border-radius:18px;border:1px solid rgba(98,84,66,.14);background:rgba(255,251,245,.78)}.modal-block-label{margin:0 0 8px;color:var(--accent);font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.modal-block h3{margin:0;font-size:1.35rem}.modal-date{margin:8px 0 0;color:var(--muted);font-size:.92rem}.modal-list{margin:12px 0 0;padding-left:18px;color:var(--ink);line-height:1.55}.modal-list li+li{margin-top:6px}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes lift-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (max-width:1260px){.page-jump-nav{left:14px}.logic-card,.report-top-grid,.summary-grid{grid-template-columns:1fr}.report-header,.section-heading{flex-direction:column;align-items:start}.section-actions{align-items:start}.report-meta{text-align:left}.section-copy{max-width:none}.modal-layout{grid-template-columns:1fr}.sticky-note-pad{transform:none}}@media (max-width:720px){.page-jump-nav{display:none}.home-shell,.report-shell{padding:18px}.chart-card,.compatibility-card,.hero-card,.logic-card,.modal-card,.placement-card,.report-header,.summary-card{border-radius:22px;padding:18px}.hero-card h1{font-size:2.8rem}.calibration-row,.placement-row,.saved-chart-loaders{grid-template-columns:1fr}.legend-grid{grid-template-columns:1fr 1fr}.modal-compare-grid{grid-template-columns:1fr}.modal-cross{order:2}}