:root { --ink:#17202a; --paper:#f4f7fb; --line:#c8d1dc; --blue:#155eef; --blue-dark:#0e3da8; --amber:#b54708; --mist:#e8eef6; --muted:#516173; --mono:ui-monospace, SFMono-Regular, Consolas, monospace; --body:Inter, ui-sans-serif, system-ui, sans-serif; --display:"Arial Narrow", "Roboto Condensed", Impact, sans-serif; }
* { box-sizing:border-box; }
html { background:var(--paper); color:var(--ink); font-family:var(--body); }
body { margin:0; min-width:320px; }
a { color:var(--blue-dark); }
a:focus-visible, button:focus-visible, input:focus-visible { outline:3px solid var(--blue); outline-offset:3px; }
.skip-link { background:var(--ink); color:white; left:1rem; padding:.7rem 1rem; position:fixed; top:-5rem; z-index:9; }
.skip-link:focus { top:1rem; }
.masthead, footer { align-items:center; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; margin:auto; max-width:1240px; padding:1.25rem 1.5rem; }
.masthead p, footer { color:var(--muted); font-size:.78rem; margin:0; }
.wordmark { color:var(--ink); font-family:var(--mono); font-size:.9rem; font-weight:800; letter-spacing:.12em; text-decoration:none; }.wordmark span { color:var(--blue); font-weight:500; }
main { margin:auto; max-width:1240px; padding:clamp(2rem,6vw,6rem) 1.5rem 4rem; }.hero { max-width:800px; }.eyebrow,.section-tag { color:var(--blue-dark); font-family:var(--mono); font-size:.76rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
h1,h2 { font-family:var(--display); letter-spacing:-.035em; line-height:.94; margin:.3rem 0 1.3rem; }h1 { font-size:clamp(3.4rem,9vw,7.8rem); font-weight:800; max-width:780px; text-transform:uppercase; }h1 em { color:var(--blue); font-style:normal; }h2 { font-size:clamp(2.2rem,4vw,3.8rem); text-transform:uppercase; }.lede { color:var(--muted); font-size:clamp(1rem,2vw,1.22rem); line-height:1.6; max-width:620px; }
.workbench { display:grid; gap:clamp(2rem,5vw,5rem); grid-template-columns:220px minmax(0, 720px); margin-top:clamp(3.5rem,8vw,8rem); }.rail ol { border-left:1px solid var(--line); list-style:none; margin:0; padding:0; }.rail li { color:var(--muted); display:grid; gap:.1rem; grid-template-columns:3rem 1fr; padding:0 0 2.2rem 1.25rem; position:relative; }.rail li::before { background:var(--paper); border:1px solid var(--line); border-radius:50%; content:""; height:.62rem; left:-.35rem; position:absolute; top:.2rem; width:.62rem; }.rail li.is-active { color:var(--ink); }.rail li.is-active::before { background:var(--blue); border-color:var(--blue); box-shadow:0 0 0 5px #dce8ff; }.rail span { font-family:var(--mono); font-size:.75rem; grid-row:span 2; }.rail b { font-size:.88rem; }.rail small { font-size:.74rem; }
.panel { animation:rise .3s ease-out; background:#fff; border:1px solid var(--line); box-shadow:12px 12px 0 var(--mist); padding:clamp(1.4rem,4vw,3rem); }.panel[hidden] { display:none; }form { margin-top:2rem; }label,legend { display:block; font-weight:700; margin-bottom:.55rem; }input { border:1px solid #7d8a99; border-radius:0; color:var(--ink); font:inherit; min-height:3.1rem; padding:.7rem .85rem; width:100%; }.input-row { display:flex; gap:.7rem; }.input-row input { flex:1; }button,.booking { background:var(--blue); border:1px solid var(--blue); color:white; cursor:pointer; display:inline-block; font:700 .95rem var(--body); min-height:3.1rem; padding:.75rem 1.1rem; text-decoration:none; }.booking { margin-top:1.5rem; }.text-button { background:transparent; color:var(--blue-dark); padding:.25rem 0; }.hint,.version,.privacy,.boundary { color:var(--muted); font-size:.85rem; line-height:1.5; }.field-error { color:#9d1c12; font-weight:700; }.consent { border:1px solid var(--line); margin:1.5rem 0; padding:1rem; }.check { align-items:flex-start; display:flex; font-weight:400; gap:.65rem; }.check input { accent-color:var(--blue); flex:0 0 auto; height:1.25rem; min-height:0; margin:.1rem 0; width:1.25rem; }.status-card { background:var(--mist); display:flex; gap:1rem; margin:1.7rem 0; padding:1.1rem; }.status-card p { margin:0; }.pulse { background:var(--blue); border-radius:50%; height:.75rem; margin-top:.25rem; width:.75rem; }.score-grid { display:grid; gap:1rem; grid-template-columns:repeat(2,minmax(0,1fr)); margin:1.5rem 0; }.score-grid article { border-top:4px solid var(--ink); padding:1rem 0; }.score-grid p,.score-grid strong,.score-grid small,.score-grid span { display:block; }.score-grid p { font:700 .78rem var(--mono); margin:0; }.score-grid strong { color:var(--muted); font:3.5rem var(--display); line-height:1; }.score-grid small { font-weight:700; }.score-grid span { color:var(--muted); font-size:.78rem; margin-top:.5rem; }.notice { border-left:4px solid var(--amber); line-height:1.5; padding:.85rem 1rem; }.doi-status strong { font-family:var(--mono); }.boundary { border-top:1px solid var(--line); margin-top:1.5rem; padding-top:1rem; }footer { border-top:1px solid var(--line); border-bottom:0; }
@keyframes rise { from { opacity:0; transform:translateY(5px); } to { opacity:1; transform:translateY(0); } }
@media (max-width:720px) { .masthead { align-items:flex-start; flex-direction:column; gap:.55rem; }.workbench { grid-template-columns:1fr; }.rail ol { display:flex; gap:.3rem; overflow:auto; }.rail li { flex:0 0 8.5rem; grid-template-columns:1.7rem 1fr; padding:0 0 1rem .75rem; }.panel { box-shadow:7px 7px 0 var(--mist); }.input-row { flex-direction:column; }.input-row button { width:100%; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation-duration:.01ms!important; scroll-behavior:auto!important; transition-duration:.01ms!important; } }
