:root{--navy-950:#061018;--navy-900:#0a1a28;--navy-850:#0e2234;--navy-800:#143044;--navy-700:#1c4158;--foam:#e8f3f1;--foam-dim:#b7cfcb;--teal:#2ec4b6;--teal-deep:#1a9e94;--teal-soft:#2ec4b624;--brass:#d4a84b;--ok:#3dba7a;--ok-soft:#3dba7a24;--warn:#e0b14a;--warn-soft:#e0b14a29;--fail:#e56b5b;--fail-soft:#e56b5b24;--line:#e8f3f11a;--shadow:0 18px 50px #00000059;--radius:18px;--font:"Segoe UI", "Helvetica Neue", ui-sans-serif, system-ui, sans-serif;--display:Georgia, "Iowan Old Style", "Palatino Linotype", Palatino, serif}*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}html,body{background:var(--navy-950);min-height:100%;color:var(--foam);font-family:var(--font);margin:0;font-size:16px;line-height:1.5}body{background:radial-gradient(900px 480px at 12% -10%, #2ec4b629, transparent 55%), radial-gradient(700px 420px at 100% 0%, #d4a84b14, transparent 50%), linear-gradient(180deg, var(--navy-900) 0%, var(--navy-950) 42%, #050d14 100%)}#app{min-height:100vh}.wrap{width:min(1120px,100% - 32px);margin:0 auto}.site-header{padding:28px 0 18px}.brand-row{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.mark{align-items:center;gap:14px;display:flex}.mark svg{flex:none}.eyebrow{color:var(--teal);letter-spacing:.16em;text-transform:uppercase;margin:0 0 4px;font-size:.72rem;font-weight:700}h1{font-family:var(--display);letter-spacing:-.02em;margin:0;font-size:clamp(1.8rem,4vw,2.45rem);font-weight:600;line-height:1.15}.subtitle{color:var(--foam-dim);margin:6px 0 0;font-size:.98rem}.store-link{color:var(--foam-dim);border:1px solid var(--line);white-space:nowrap;border-radius:999px;padding:8px 14px;font-size:.86rem;text-decoration:none}.store-link:hover{color:var(--foam);border-color:var(--teal)}.layout{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:20px;padding-bottom:40px;display:grid}.card{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(#143044b8,#0a1a28e0)}.inputs,.results{padding:22px}.card h2{letter-spacing:.12em;text-transform:uppercase;color:var(--foam-dim);margin:0 0 16px;font-size:.78rem;font-weight:700}.layout-line{color:var(--teal);margin:-8px 0 14px;font-size:.95rem;font-weight:600}.field{margin-bottom:14px}.field label,.seg-label{color:var(--foam-dim);margin-bottom:6px;font-size:.82rem;font-weight:600;display:block}select,input[type=number]{appearance:none;background:var(--navy-950);width:100%;color:var(--foam);border:1px solid var(--line);font:inherit;border-radius:12px;padding:11px 12px}select#panel{cursor:pointer;border-color:var(--teal);background-color:var(--navy-950);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='%232ec4b6' d='M4 6l4 5 4-5z'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;padding-right:42px;font-size:1rem}select#panel.is-placeholder{color:var(--foam-dim)}select:focus,input[type=number]:focus,button:focus-visible{outline:2px solid var(--teal);outline-offset:2px}.seg{flex-wrap:wrap;gap:8px;display:flex}.seg button{font:inherit;cursor:pointer;background:var(--navy-950);color:var(--foam-dim);border:1px solid var(--line);border-radius:999px;padding:8px 12px;font-size:.88rem}.seg button[aria-pressed=true]{background:var(--teal-soft);color:var(--foam);border-color:var(--teal)}.pair{grid-template-columns:1fr 1fr;gap:10px;display:grid}.hint{color:var(--foam-dim);margin:6px 0 0;font-size:.78rem}.wiring-viz{flex-wrap:wrap;gap:6px;min-height:34px;margin:4px 0 12px;display:flex}.panel-chip{background:linear-gradient(160deg,#1d6b66,#0f3a44);border:1px solid #2ec4b673;border-radius:4px;width:34px;height:22px;box-shadow:inset 0 0 0 1px #ffffff0f}.string-row{align-items:center;gap:5px;display:flex}.string-row .join{background:var(--teal);opacity:.7;width:10px;height:2px}.metrics{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px;display:grid}.metric{border:1px solid var(--line);background:#06101873;border-radius:12px;padding:10px 10px 8px}.metric dt{color:var(--foam-dim);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:.7rem}.metric dd{font-family:var(--display);margin:2px 0 0;font-size:1.2rem}.reco{background:var(--teal-soft);border:1px solid #2ec4b659;border-radius:14px;margin-bottom:10px;padding:14px}.reco.alt{border-color:var(--line);background:#06101859}.reco .kicker{letter-spacing:.12em;text-transform:uppercase;color:var(--teal);margin:0 0 4px;font-size:.7rem;font-weight:700}.reco.alt .kicker{color:var(--foam-dim)}.reco h3{margin:0;font-size:1.2rem}.reco p{color:var(--foam-dim);margin:6px 0 0;font-size:.88rem}.empty{background:var(--fail-soft);border:1px solid #e56b5b59;border-radius:14px;padding:16px}.empty h3{color:var(--fail);margin:0 0 6px}.empty.prompt{background:var(--teal-soft);border-color:#2ec4b647}.empty.prompt h3{color:var(--teal)}.checks{gap:8px;margin:14px 0;display:grid}.check{border:1px solid var(--line);background:#0610184d;border-radius:12px;grid-template-columns:auto 1fr;gap:8px 10px;padding:10px 12px;display:grid}.check.pass{border-color:#3dba7a47}.check.warn{background:var(--warn-soft);border-color:#e0b14a52}.check.fail{background:var(--fail-soft);border-color:#e56b5b52}.badge{text-align:center;letter-spacing:.06em;text-transform:uppercase;border-radius:999px;align-self:start;min-width:52px;margin-top:2px;padding:2px 8px;font-size:.7rem;font-weight:800;display:inline-block}.pass .badge{background:var(--ok-soft);color:var(--ok)}.warn .badge{background:var(--warn-soft);color:var(--warn)}.fail .badge{background:var(--fail-soft);color:var(--fail)}.check strong{font-size:.9rem;display:block}.check span{color:var(--foam-dim);font-size:.82rem}.why{color:var(--foam);margin:0;font-size:.95rem}.site-footer{color:var(--foam-dim);padding:8px 0 36px;font-size:.8rem}.site-footer p{max-width:72ch;margin:0}@media (width<=860px){.layout{grid-template-columns:1fr}.brand-row{flex-direction:column}.metrics{grid-template-columns:repeat(2,1fr)}}@media (width<=520px){.wrap{width:min(100% - 20px,1120px)}.inputs,.results{padding:16px}.pair{grid-template-columns:1fr}}
