@import url('./help.css');
@import url('./event-shell.css');
:root {
  --green:#3eb354; --green-dark:#22502c; --green-text:#2c6e3a; --mint:#c0ebc5;
  --pale:#e8f8ea; --ink:#1e1e1b; --paper:#f7f7f5; --muted:#66665f; --line:#ddded7;
  --display:'DM Sans',sans-serif; --heading:'Zilla Slab',Georgia,serif; --body:'Rubik',sans-serif;
}
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:var(--paper); font:400 15px/1.65 var(--body); }
[hidden] { display:none!important; }
button,input,select,textarea { font:inherit; color:inherit; }
button,a { -webkit-tap-highlight-color:transparent; touch-action:manipulation; }
button { cursor:pointer; }
a { color:inherit; text-decoration:none; }
a:hover { text-decoration:underline; text-underline-offset:4px; }
:focus-visible { outline:2px solid var(--green-text); outline-offset:5px; }
h1,h2,h3,p { margin:0; }
h1 { font:700 34px/1.2 var(--display); letter-spacing:-1px; }
h2 { font:600 27px/1.2 var(--heading); }
h3 { font:600 23px/1.3 var(--heading); }
.wrap { width:100%; margin:0; }
.site-header { position:sticky; top:0; z-index:10; background:var(--paper); border-bottom:1px solid var(--line); }
.masthead { display:flex; align-items:center; justify-content:space-between; height:86px; }
.help-link { border:1px solid #bfc3b9; border-radius:6px; padding:8px 13px; background:transparent; font-size:12px; }
.help-link:hover { background:var(--pale); }
.tabs { display:flex; gap:32px; overflow-x:auto; scrollbar-width:thin; }
.tabs button { position:relative; border:0; padding:14px 0 17px; background:transparent; font-size:13px; color:var(--muted); white-space:nowrap; }
.tabs button[aria-selected=true] { color:var(--ink); font-weight:500; }
.tabs button[aria-selected=true]::after { content:''; position:absolute; bottom:-1px; left:0; right:0; height:3px; background:var(--green); }
main { padding:48px 0 90px; }
.page-heading { margin-bottom:35px; }
.page-heading p { font-size:13px; color:var(--muted); margin-top:12px; }
.workshop-picker { display:flex; gap:8px; margin-bottom:36px; }
.workshop-picker a { padding:7px 15px; border-radius:5px; font-size:13px; }
.workshop-picker a[aria-current] { background:var(--mint); color:var(--green-dark); }
.guide-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-bottom:27px; border-bottom:1px solid var(--line); }
.guide-links { display:flex; flex-wrap:wrap; gap:12px 24px; font-size:12px; color:var(--green-text); }
.guide-links a { text-decoration:underline; text-underline-offset:4px; }
.guide-links span { margin-left:4px; }
.step { display:grid; grid-template-columns:64px minmax(0,1fr); gap:28px; padding:34px 0; border-bottom:1px solid var(--line); scroll-margin-top:160px; }
.step>div { max-width:700px; }
.step-number { color:var(--green-text); font:500 15px/32px var(--display); }
.step ol { padding-left:21px; margin:16px 0 0; }
.step li { padding-left:7px; margin:9px 0; line-height:1.85; font-size:14px; }
.step li::marker { color:#797b72; font-size:12px; }
.step-note { font-size:12px; margin-top:18px; color:var(--muted); }
.step .guide-links { margin-top:18px; }
pre { white-space:pre-wrap; overflow-wrap:anywhere; padding:18px 20px; margin:20px 0 0; background:#eeeee8; font:13px/1.8 var(--body); }
code { font:inherit; }
.resource-group { display:grid; grid-template-columns:220px minmax(0,1fr); gap:24px; margin-bottom:40px; }
.resource-group h2 { padding-top:14px; }
.resource-row { display:flex; align-items:center; gap:15px; padding:17px 0; border-bottom:1px solid var(--line); font-size:14px; }
.resource-row small { margin-left:auto; font-size:11px; color:var(--muted); }
.resource-row>span:last-child { color:var(--green-text); }
.button { display:inline-flex; align-items:center; gap:15px; padding:10px 16px; border:1px solid var(--line); border-radius:6px; background:white; font:500 13px var(--body); }
.button.primary { background:var(--green); border-color:var(--green); }
.close-dialog { border:0; }
.skip-link { position:fixed; top:-100px; left:12px; z-index:30; background:var(--ink); color:white; padding:10px; }
.skip-link:focus { top:12px; }
@media(max-width:650px) {
  .wrap { width:100%; }
  .masthead { height:77px; }
  .help-link { font-size:11px; padding:7px 10px; }
  .tabs { gap:22px; }
  .tabs button { font-size:11px; padding-bottom:15px; }
  main { padding-top:32px; }
  h1 { font-size:28px; }
  h2 { font-size:24px; }
  .page-heading { margin-bottom:26px; }
  .workshop-picker { gap:1px; margin-bottom:27px; }
  .workshop-picker a { font-size:12px; padding:7px 12px; }
  .guide-heading { display:block; }
  .guide-heading .guide-links { margin-top:17px; }
  .step { grid-template-columns:26px minmax(0,1fr); gap:13px; padding:28px 0; }
  .step li { font-size:13px; padding-left:3px; }
  .step h3 { font-size:22px; }
  .resource-group { grid-template-columns:1fr; gap:8px; margin-bottom:30px; }
  .resource-row { font-size:13px; }
}

/* Component gallery uses the same renderers and styles as the walkthroughs. */
.component-section { padding:0 0 40px; margin:0 0 36px; border-bottom:1px solid var(--line); }
.component-section>h2,.component-heading { margin-bottom:24px; }
.component-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; }
.component-heading>span { font-size:12px; color:var(--muted); }
.logo-preview { padding:36px 24px; background:white; border:1px solid var(--line); }
.lesson-video { margin:24px 0 0; max-width:720px; }
.lesson-video video { display:block; width:100%; aspect-ratio:16/9; background:var(--ink); border-radius:6px; }
.lesson-video figcaption { margin-top:12px; color:var(--muted); font-size:12px; }
.lesson-video details { margin-top:12px; font-size:12px; }
.lesson-video summary { cursor:pointer; width:fit-content; }
.lesson-video details p { max-width:640px; margin-top:12px; line-height:1.8; }
.component-section .step { border-bottom:0; padding-top:12px; padding-bottom:0; }
.dev-resource { margin-top:24px; max-width:720px; }
.component-actions { display:flex; flex-wrap:wrap; gap:12px; }
.help-samples { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.help-samples .help-state { margin-bottom:0; }
.type-samples { display:flex; align-items:baseline; flex-wrap:wrap; gap:32px; margin-bottom:24px; }
.type-display { font:700 30px var(--display); }
.type-heading { font:600 30px var(--heading); }
.color-samples { display:grid; grid-template-columns:repeat(6,1fr); gap:16px; }
.color-samples i { display:block; height:64px; border:1px solid #1e1e1b18; border-radius:4px; }
.color-samples span { display:block; font-size:11px; margin-top:8px; color:var(--muted); }
@media(max-width:650px) {
  .tabs { gap:18px; }
  .component-section { padding-bottom:30px; margin-bottom:28px; }
  .logo-preview { padding:24px 16px; }
  .help-samples { grid-template-columns:1fr; gap:0; }
  .color-samples { grid-template-columns:repeat(3,1fr); }
}
@media(max-width:360px) { .tabs { gap:14px; }.tabs button { font-size:10px; } }
.lesson-legend { display:flex; flex-wrap:wrap; gap:12px 24px; list-style:none; padding:0; margin:0 0 24px; }
.lesson-legend li { display:flex; align-items:center; gap:8px; font-size:12px; color:var(--muted); }
.lesson-legend span { display:grid; place-items:center; min-width:25px; height:25px; background:var(--pale); border-radius:4px; color:var(--green-text); font-size:12px; }

.schedule-row { display:grid; grid-template-columns:205px minmax(0,1fr) 44px; align-items:center; gap:20px; padding:22px 20px; border-top:1px solid var(--line); }
.schedule-row:last-child { border-bottom:1px solid var(--line); }
.session-time { display:flex; gap:7px; white-space:nowrap; font-size:12px; color:var(--muted); font-variant-numeric:tabular-nums; }
.session-title h2 { font:500 16px/1.5 var(--display); }
.session-title a { display:inline-block; margin-top:5px; font-size:11px; color:var(--green-text); text-decoration:underline; text-underline-offset:3px; }
.schedule-row.is-current { background:var(--pale); }
.schedule-row.is-current .session-time { color:var(--green-dark); }
.session-now { padding:3px 8px; border-radius:4px; color:var(--green-dark); background:var(--mint); font-size:11px; }
.schedule-note { font-size:12px; color:var(--muted); margin-top:20px; }
.page-heading a { text-decoration:underline; text-underline-offset:3px; }
.question { border-top:1px solid var(--line); }
.question:last-child { border-bottom:1px solid var(--line); }
.question summary { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:21px 0; list-style:none; cursor:pointer; font:500 16px/1.5 var(--display); }
.question summary::-webkit-details-marker { display:none; }
.question summary::after { content:'+'; font-size:22px; color:var(--green-text); }
.question[open] summary::after { content:'−'; }
.question>div { padding:0 32px 23px 0; max-width:780px; font-size:14px; line-height:1.85; }
.question .guide-links { margin-top:14px; }
@media(max-width:650px) {
  .schedule-row { grid-template-columns:minmax(0,1fr) 44px; gap:9px 10px; padding:20px 12px; }
  .session-time { grid-column:1; font-size:11px; }
  .session-title { grid-column:1; grid-row:2; }
  .session-title h2 { font-size:15px; }
  .session-now { grid-column:2; grid-row:1; }
  .question summary { font-size:15px; }
  .question>div { font-size:13px; padding-right:12px; }
}
.tab-short { display:none; }
@media(max-width:650px) { .tab-wide { display:none; }.tab-short { display:inline; } }
