:root { --panel-width: clamp(340px, 34vw, 440px); --accent: #d6d0ff; }
button, input, textarea { font: inherit; }
button { cursor: pointer; }
button:focus-visible, input:focus-visible, textarea:focus-visible { outline: 2px solid #c4b7ff; outline-offset: 4px; }
[hidden] { display: none !important; }
#inventory-launch { position: fixed; z-index: 5; display: flex; align-items: center; gap: 10px; right: 28px; top: 20px; }
#inventory-launch[data-placement="bottom"] { top: auto; bottom: 28px; right: 50%; transform: translateX(50%); flex-direction: column; gap: 10px; }
.start-button { min-height: 48px; border: 1px solid #ffffff29; color: #eeeaf6; border-radius: 30px; padding: 0 24px; background: linear-gradient(145deg,#18171c,#08080b 70%); box-shadow: 0 0 30px 18px #0009,0 7px 22px #000c,inset 0 1px #ffffff0b; letter-spacing: .015em; font-size: 13px; transition: border-color .25s, transform .25s; }
.start-button:hover { border-color:#ffffff66; transform:translateY(-2px); }
.start-button span { margin-left: 14px; color:#a9a2b9; }
.placement-toggle { display: flex; gap: 2px; padding: 3px; border: 1px solid #ffffff17; border-radius: 20px; background: #09090dd9; }
.placement-toggle button { font-size: 10px; padding: 6px 9px; border: 0; border-radius: 14px; background: transparent; color: #a4a0ad; }
.placement-toggle button[aria-pressed="true"] { background: #ffffff17; color:#fff; }
#inventory-panel { position:fixed; z-index:6; inset:0 auto 0 0; width:var(--panel-width); background:linear-gradient(160deg,#131219f5,#08080ef5 65%); border-right:1px solid #ffffff16; box-shadow:20px 0 100px #0008; padding:28px 30px; overflow-y:auto; overscroll-behavior:contain; animation:panel-in .45s cubic-bezier(.22,1,.36,1); scrollbar-width:thin; }
@keyframes panel-in { from { transform:translateX(-100%); opacity:0; } to { transform:translateX(0); opacity:1; } }
.panel-bar { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:32px; }
.panel-brand { font-family:Jost,sans-serif; font-size:17px; letter-spacing:.06em; }
.close-panel { width:36px; height:36px; border:1px solid #ffffff1d; border-radius:50%; color:#d0ccd9; background:transparent; font-size:22px; }
.inventory-open header { left:var(--panel-width); transition:left .5s; }
.inventory-open #hint, .inventory-open #caption, .inventory-open #fx { display:none; }
.kicker { font-size:10px; font-weight:500; text-transform:uppercase; letter-spacing:.16em; color:var(--accent); margin:0 0 15px; }
#inventory-content h1, #inventory-content h2 { font-family:Jost,sans-serif; font-weight:350; font-size:clamp(28px,3vw,38px); line-height:1.14; letter-spacing:-.015em; margin:0 0 20px; }
#inventory-content h3 { font-family:Jost,sans-serif; font-weight:400; font-size:21px; margin:24px 0 10px; }
#inventory-content p { font-size:13px; line-height:1.65; color:#b8b3c3; }
#inventory-content .quiet { color:#8f899d; font-size:11px; line-height:1.6; }
.inventory-primary, .inventory-secondary { width:100%; min-height:46px; border-radius:10px; padding:12px 15px; font-size:13px; margin-top:10px; }
.inventory-primary { color:#141119; background:#e5def2; border:1px solid #e5def2; }
.inventory-primary:hover { background:#fff; }
.inventory-secondary { color:#d9d3e4; background:#ffffff06; border:1px solid #ffffff20; }
.inventory-primary:disabled { opacity:.35; cursor:default; }
.inventory-link { border:0; background:none; color:#aaa4b7; font-size:11px; padding:10px 0; text-decoration:underline; text-underline-offset:3px; }
.intro-points { display:grid; gap:16px; padding:22px 0; margin:15px 0; border-top:1px solid #ffffff14; border-bottom:1px solid #ffffff14; }
.intro-points div { display:flex; gap:14px; align-items:baseline; font-size:12px; color:#c6bfd3; }
.intro-points span { color:#777082; font-size:10px; font-variant-numeric:tabular-nums; }
.progress-meta { display:flex; justify-content:space-between; gap:12px; font-size:11px; color:#aba3ba; margin:0 0 12px; }
.inventory-progress { width:100%; height:3px; display:block; accent-color:var(--accent); margin-bottom:24px; border:0; }
.inventory-progress::-webkit-progress-bar { background:#ffffff12; border-radius:4px; }
.inventory-progress::-webkit-progress-value { background:var(--accent); border-radius:4px; transition:width .3s; }
.question-context { margin:0 0 12px !important; font-size:11px !important; color:#918b9d !important; }
#inventory-content .question-heading { font-size:29px; margin-bottom:23px; }
.answer-options { border:0; margin:0; padding:0; display:grid; gap:8px; }
.answer-options label { display:flex; gap:12px; align-items:center; padding:13px 15px; min-height:47px; font-size:13px; line-height:1.3; border:1px solid #ffffff18; border-radius:10px; cursor:pointer; background:#ffffff03; transition:background .2s,border-color .2s; }
.answer-options label:has(input:checked) { background:color-mix(in srgb,var(--accent) 12%,transparent); border-color:var(--accent); }
.answer-options input { accent-color:var(--accent); width:15px; height:15px; margin:0; flex-shrink:0; }
.question-nav { display:flex; gap:12px; margin-top:16px; }
.question-nav .inventory-secondary { width:85px; }
.question-nav button { margin-top:0; }
.question-nav .inventory-primary { flex:1; }
.result-legend { padding:13px 0; border-top:1px solid #ffffff15; border-bottom:1px solid #ffffff15; font-size:11px !important; }
.result-row { display:flex; align-items:center; gap:12px; width:100%; text-align:left; border:0; border-bottom:1px solid #ffffff10; color:#e4deed; background:transparent; padding:12px 0; }
.result-row[aria-pressed="true"] { background:#ffffff06; }
.result-dot { width:29px; height:29px; flex-shrink:0; display:grid; place-items:center; }
.result-dot::before { content:""; width:var(--size); height:var(--size); border-radius:50%; border:1px solid var(--realm); background:color-mix(in srgb,var(--realm) 13%,transparent); box-shadow:0 0 10px color-mix(in srgb,var(--realm) 20%,transparent); }
.result-row.unmapped .result-dot::before { border-style:dashed; background:none; box-shadow:none; }
.result-row strong { font-size:12px; font-weight:400; display:block; }
.result-row small { color:#9e96ab; display:block; font-size:10px; margin-top:4px; }
.result-row .row-arrow { margin-left:auto; color:#8e859e; font-size:12px; }
.focus-note { border-left:2px solid var(--accent); padding-left:13px; }
.plan-field { display:grid; gap:8px; font-size:12px; color:#c3bace; margin:17px 0; }
.plan-field textarea, .plan-field input { width:100%; color:#eee9f5; background:#ffffff05; border:1px solid #ffffff25; border-radius:8px; padding:12px; font-size:13px; line-height:1.5; }
.plan-field textarea { resize:vertical; min-height:85px; }
.plan-card { border:1px solid #ffffff20; background:#ffffff04; padding:16px; border-radius:10px; margin-top:20px; }
.plan-card p { white-space:pre-wrap; overflow-wrap:anywhere; margin:0 0 8px; color:#eee6f6 !important; }
.plan-card label { display:flex; gap:10px; align-items:center; font-size:12px; color:#bcb3ca; margin-top:15px; }
.plan-card input { accent-color:#d6c3ff; width:17px; height:17px; }
.node.suggested::after { content:"Start here"; position:absolute; top:calc(100% + 6px); white-space:nowrap; font-family:Archivo,sans-serif; font-size:10px; letter-spacing:.02em; color:#ece4f5; background:#09080dcc; border:1px solid #ffffff20; border-radius:15px; padding:5px 8px; animation:guide-pulse 6s ease-in-out infinite; }
.node.unmapped { outline:1px dashed #ffffff50; outline-offset:4px; }
@keyframes guide-pulse { 50% { opacity:.8; box-shadow:0 0 10px #cbb4ff14; } }
#inventory-status { min-height:16px; margin:12px 0 0; font-size:11px; color:#a89eb7; }
@media (max-width:760px) {
  #inventory-launch { top:12px; right:14px; gap:7px; flex-direction:column; align-items:flex-end; }
  #inventory-launch[data-placement="bottom"] { bottom:64px; align-items:center; }
  .start-button { min-height:42px; padding:0 17px; font-size:12px; }
  .placement-toggle button { padding:4px 8px; }
  #inventory-panel { inset:44dvh 0 0; width:100%; padding:18px 22px 28px; border-right:0; border-top:1px solid #ffffff20; border-radius:22px 22px 0 0; box-shadow:0 -20px 50px #0006; animation:panel-up .4s ease-out; }
  @keyframes panel-up { from {transform:translateY(35%);opacity:0;} to {transform:translateY(0);opacity:1;} }
  .panel-bar { margin-bottom:18px; }
  .inventory-open header { left:0; max-width:100%; }
  .inventory-open header #crumbs { font-size:10px; }
  #inventory-content .question-heading { font-size:24px; margin-bottom:17px; }
  .answer-options { gap:6px; }
  .answer-options label { min-height:42px; padding:10px 12px; font-size:12px; }
  .inventory-progress { margin-bottom:17px; }
  #inventory-content h1,#inventory-content h2 { font-size:29px; }
  .node.suggested::after { font-size:8px; top:100%; padding:3px 5px; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none !important; transition:none !important; } }
@media (max-width:760px) {
  #inventory-panel[data-mode="questions"] .panel-bar { position:absolute; right:18px; top:12px; margin:0; }
  #inventory-panel[data-mode="questions"] .panel-brand { display:none; }
  #inventory-panel[data-mode="questions"] .progress-meta { padding-right:42px; min-height:30px; align-items:center; font-size:10px; }
  #inventory-panel[data-mode="questions"] .question-heading { font-size:21px; line-height:1.2; }
  #inventory-panel[data-mode="questions"] .answer-options { grid-template-columns:repeat(5,minmax(0,1fr)); gap:5px; }
  #inventory-panel[data-mode="questions"] .answer-options label { flex-direction:column; justify-content:flex-start; text-align:center; gap:9px; padding:10px 3px; font-size:10px; min-height:76px; border-radius:8px; }
  #inventory-panel[data-mode="questions"] .question-context { font-size:10px !important; line-height:1.5; }
  #inventory-panel[data-mode="questions"] #inventory-content > .quiet { display:none; }
}
