/* SPARK light academic styles on top of Bulma. Pure white, one ink accent. */

body{ background:#fff; color:#1c1c1c; font-family:system-ui, -apple-system, 'Segoe UI', sans-serif; }

/* title block */
.publication-title{ font-family:system-ui, -apple-system, 'Segoe UI', sans-serif; font-weight:600; letter-spacing:-.01em; font-size:5.2rem; line-height:1; margin-bottom:.3rem; }
.spark-expand{ font-family:system-ui, -apple-system, 'Segoe UI', sans-serif; font-weight:400; color:#4a4a4a; margin-top:.2rem !important; margin-bottom:1.3rem !important; }
.publication-authors{ margin-bottom:.4rem; font-family:system-ui, -apple-system, 'Segoe UI', sans-serif; }
.publication-authors a{ color:#2a2a2a; border-bottom:1px solid #d8d4ca; transition:color .15s, border-color .15s; }
.publication-authors a:hover{ color:#dc2626; border-color:#dc2626; }

/* nav buttons with inline SVG logos */
.publication-links{ display:flex; gap:.6rem; justify-content:center; flex-wrap:wrap; margin-top:1.6rem; }
.btn-link{ display:inline-flex; align-items:center; gap:.5rem; background:#1c1c1c; color:#fff; border-radius:6px; padding:.5rem 1.15rem; font-family:system-ui, -apple-system, 'Segoe UI', sans-serif; font-size:.92rem; transition:background .2s, transform .2s; }
.btn-link:hover{ background:#000; color:#fff; transform:translateY(-2px); }
.btn-link svg{ width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linejoin:round; stroke-linecap:round; }
.btn-link .ai{ font-size:1.12rem; line-height:1; }
.btn-link svg path[fill-rule]{ fill:currentColor; stroke:none; }
.btn-link svg ellipse{ fill:none; stroke:currentColor; stroke-width:1.7; }

/* hero / coil */
.coil-section{ position:relative; width:100%; background:#fff; border-top:1px solid #eee; border-bottom:1px solid #eee; overflow:hidden; }
#hero-frame{ width:100%; height:80vh; min-height:540px; display:block; border:0; }
#hero-rot{ position:absolute; right:1rem; bottom:.7rem; z-index:6; font-family:ui-monospace, 'SF Mono', Menlo, monospace; font-size:.72rem; color:#b8b3a8; user-select:text; }

/* compact task menu (no header) */
.score-menu{ position:absolute; top:50%; left:1.6rem; transform:translateY(-50%); z-index:5; display:flex; flex-direction:column; gap:.32rem; }
.menu-item{ display:flex; align-items:center; gap:.55rem; cursor:pointer; text-align:left; background:rgba(255,255,255,.94); border:1px solid #e6e4dc; border-radius:8px; padding:.25rem .65rem .25rem .25rem; font-family:system-ui, -apple-system, 'Segoe UI', sans-serif; font-size:.84rem; color:#2a2a2a; transition:transform .18s, border-color .18s, box-shadow .18s; }
.menu-item img{ width:34px; height:22px; object-fit:cover; border-radius:4px; display:block; }
.menu-item span{ display:flex; flex-direction:column; line-height:1.05; }
.menu-item em{ font-style:normal; font-size:.62rem; color:#a39d91; letter-spacing:normal; margin-top:1px; }
.menu-item:hover{ border-color:#1c1c1c; transform:translateX(4px); box-shadow:0 3px 12px rgba(0,0,0,.1); }

.sc{ text-transform:uppercase; font-weight:600; letter-spacing:.02em; }
.approach .content p{ line-height:1.8; }
.approach em{ color:#333; }

/* score + robot blocks */
.cat-grasp{ color:#2563eb; font-weight:600; }
.cat-move{ color:#059669; font-weight:600; }
.cat-manip{ color:#d97706; font-weight:600; }
.cat-release{ color:#dc2626; font-weight:600; }
.score-block{ border-top:1px solid #eee; padding:2.4rem 0 1rem; text-align:center; }
.score-block:first-of-type{ border-top:none; }
.score-title{ font-family:system-ui, -apple-system, 'Segoe UI', sans-serif; font-size:1.15rem; color:#555; margin-bottom:1rem; }
.score-img{ display:block; width:100%; max-width:880px; margin:0 auto 1.1rem; }
.score-vid{ display:block; width:100%; max-width:560px; margin:0 auto; border:1px solid #d9d9d9; border-radius:8px; background:#000; }

/* results chart + table */
.spark-chart{ max-width:660px; margin:1.5rem auto 1.2rem; }
.spark-table{ max-width:720px; margin:1.4rem auto 0; }
.spark-table-wide{ max-width:880px; margin-left:auto; margin-right:auto; font-size:.88rem; }
.spark-table-wide th, .spark-table-wide td{ padding:.4rem .55rem; }
.spark-table tr.sep td{ border-top:2px solid #d8d4ca; }
.chart-legend{ display:flex; gap:1.5rem; justify-content:center; font-family:system-ui, -apple-system, 'Segoe UI', sans-serif; font-size:.82rem; color:#555; margin:.1rem 0; }
.chart-legend span{ display:inline-flex; align-items:center; gap:.4rem; }
.chart-legend i{ width:14px; height:14px; border-radius:3px; display:inline-block; }
.spark-table th{ font-family:system-ui, -apple-system, 'Segoe UI', sans-serif; color:#666; font-weight:600; border-bottom:2px solid #1c1c1c; }
.spark-table td{ vertical-align:middle; }
.spark-table tr.spark-row{ background:#f4f3ef; }
.spark-table tr.spark-row td{ border-color:#e7e5dd; }
.spark-table tr.spark-row strong{ color:#1c1c1c; font-weight:700; }

/* figures: architecture + result graphs */
.arch-fig{ margin:.4rem 0 1.8rem; }
.arch-fig img{ display:block; width:100%; max-width:940px; margin:0 auto .6rem; }
.result-fig{ margin:1.6rem 0; }
.result-fig img{ display:block; width:100%; max-width:880px; margin:0 auto .5rem; }
.result-fig--narrow img{ max-width:560px; }
.result-fig--heat img{ max-width:720px; margin-bottom:.9rem; }
.arch-fig figcaption, .result-fig figcaption{ font-family:system-ui, -apple-system, 'Segoe UI', sans-serif; font-size:.8rem; color:#777; text-align:center; line-height:1.55; max-width:760px; margin:0 auto; }

/* rollout cards */
.vcard video{ width:100%; display:block; aspect-ratio:16/10; object-fit:cover; border:1px solid #d9d9d9; border-radius:8px; background:#000; }
.vcard p{ font-family:system-ui, -apple-system, 'Segoe UI', sans-serif; font-size:.92rem; color:#2a2a2a; margin:.5rem 0 0; text-align:center; }
.vcard p .emb{ display:block; font-size:.72rem; color:#a39d91; margin-top:1px; }

#BibTeX pre{ background:#f5f5f3; border:1px solid #e7e7e3; border-radius:8px; padding:1.1rem 1.3rem; font-size:.85rem; color:#2a2a2a; }
.footer{ background:#fafafa; }

@media(max-width:860px){
  .publication-title{ font-size:3.4rem; }
  #hero-canvas{ height:60vh; min-height:380px; }
  .score-menu{ position:static; transform:none; flex-direction:row; flex-wrap:wrap; justify-content:center; margin:.4rem auto 0; }
}
