/* Quiveld: restrained type, space, and the original Nolri silhouette. */
:root { color-scheme: light; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif; color:#202124; background:#fff; font-synthesis:none; -webkit-font-smoothing:antialiased; --blue:#0866c9; --muted:#63656a; --soft:#f5f5f7; }
*,*::before,*::after { box-sizing:border-box; }
html { scroll-padding-top:82px; }
body { margin:0; min-height:100svh; display:flex; flex-direction:column; }
[hidden] { display:none!important; }
a { color:inherit; text-underline-offset:.2em; }
button { font:inherit; }
a:focus-visible,summary:focus-visible,button:focus-visible { outline:2px solid var(--blue); outline-offset:5px; border-radius:3px; }
.skip-link { position:fixed; left:16px; top:8px; z-index:20; background:white; padding:12px; transform:translateY(-160%); }
.skip-link:focus { transform:none; }
.site-header { position:sticky; top:0; z-index:10; background:#fff; border-bottom:1px solid #f0f0f2; }
.nav { max-width:1120px; margin:auto; min-height:62px; padding:0 28px; display:flex; align-items:center; gap:38px; }
.brand { display:inline-flex; align-items:center; gap:8px; flex:none; text-decoration:none; white-space:nowrap; font-size:17px; font-weight:650; letter-spacing:-.5px; }
.brand-mark { display:block; width:26px; height:24px; flex:none; background:currentColor; -webkit-mask:url('/assets/brand/quiveld-logo.svg') center/contain no-repeat; mask:url('/assets/brand/quiveld-logo.svg') center/contain no-repeat; }
.primary-menu { display:flex; align-items:center; justify-content:flex-end; flex:1; gap:32px; }
.nav-link,summary { font-size:13px; text-decoration:none; color:#414247; }
.nav-link,summary { padding:22px 0; }
summary { cursor:pointer; list-style:none; }
summary::-webkit-details-marker { display:none; }
summary::after { content:'+'; font-size:12px; margin-left:7px; color:#777; }
details[open]>summary::after { content:'−'; }
.mega-panel { position:absolute; left:0; right:0; top:100%; background:#fff; box-shadow:0 16px 22px -22px #202124; border-bottom:1px solid #ececef; animation:appear .16s ease-out; }
.mega-inner { max-width:1120px; margin:auto; padding:38px 28px 48px; display:grid; grid-template-columns:1fr 1fr 1fr; gap:52px; }
.mega-inner a { display:block; width:fit-content; text-decoration:none; padding:7px 0; }
.mega-inner a:hover,.nav-link:hover { color:var(--blue); }
.mega-inner .mega-title { font-size:31px; font-weight:650; letter-spacing:-.035em; }
.mega-inner .group-title { font-weight:650; font-size:17px; margin-bottom:7px; }
.mega-inner p { color:var(--muted); line-height:1.65; max-width:32ch; font-size:13px; margin-top:12px; }
.mobile-toggle { display:none; }
main { flex:1; }
h1,h2,h3,p { overflow-wrap:break-word; }
h1,h2,h3 { color:#1c1d20; }
h1 { margin:0 0 24px; font-size:clamp(40px,5.5vw,66px); line-height:1.1; letter-spacing:-.045em; font-weight:650; }
h2 { font-size:28px; line-height:1.2; letter-spacing:-.03em; font-weight:650; }
p { line-height:1.8; }
.hero { min-height:min(860px,calc(100svh - 62px)); padding:58px 24px 76px; text-align:center; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.hero-mascot { width:clamp(160px,19vw,215px); height:auto; margin:0 0 30px; }
.hero h1 { font-size:clamp(62px,8vw,92px); letter-spacing:-.065em; margin:0 0 18px; }
.tagline { font-size:clamp(18px,2vw,23px); margin:0; line-height:1.6; letter-spacing:-.02em; }
.tagline-secondary { font-size:14px; color:var(--muted); margin:8px 0 0; }
.hero-actions { display:flex; align-items:center; justify-content:center; gap:28px; margin-top:34px; }
.button { display:inline-block; background:var(--blue); color:white; padding:12px 23px; border-radius:28px; text-decoration:none; font-size:15px; }
.button:hover { background:#0658b0; }
.text-link { color:var(--blue); text-decoration:none; font-size:16px; }
.text-link:hover { text-decoration:underline; }
.section-inner { width:min(100% - 64px,1040px); margin-inline:auto; }
.eyebrow { font-size:12px; letter-spacing:.09em; text-transform:uppercase; color:var(--muted); margin:0 0 18px; }
.featured { background:var(--soft); padding:84px 0 88px; }
.featured h2 { font-size:clamp(42px,6vw,66px); margin:0 0 32px; }
.feature-detail { display:grid; grid-template-columns:1.4fr 1fr; gap:70px; align-items:start; }
.feature-detail>p { max-width:43ch; font-size:21px; line-height:1.6; margin:0; color:#515259; }
.feature-detail>div { padding-top:6px; }
.feature-detail>div>p a { text-decoration:none; font-size:14px; }
.separator { margin:0 18px; color:#aaa; }
.showcases { display:grid; grid-template-columns:1fr 1fr; gap:90px; padding-block:92px 102px; }
.showcases h2 { font-size:36px; margin:0 0 20px; }
.showcases p:not(.eyebrow) { color:var(--muted); min-height:6em; margin-bottom:24px; }
.archive-entry { background:var(--soft); padding:66px 0; }
.split { display:grid; grid-template-columns:1fr 1.3fr; gap:80px; align-items:baseline; }
.split h2 { font-size:34px; margin:0; }
.split p { margin:0 0 20px; color:var(--muted); }
.about-entry { padding-block:80px 90px; }
.directory { width:min(100% - 64px,880px); margin-inline:auto; padding-block:72px 96px; }
.page-description,.subtitle { color:var(--muted); font-size:18px; line-height:1.8; max-width:68ch; margin-bottom:34px; }
.breadcrumbs { font-size:12px; color:var(--muted); margin-bottom:35px; }
.breadcrumbs ol { display:flex; flex-wrap:wrap; list-style:none; gap:6px 10px; padding:0; }
.breadcrumbs li+li::before { content:'/'; color:#aaa; margin-right:10px; }
.breadcrumbs a { text-decoration:none; }
.project-index { margin-top:60px; }
.project-index article { display:grid; grid-template-columns:36px 1fr 32px; gap:28px; border-top:1px solid #e6e6e9; padding:36px 0; }
.project-index h2 { margin:0 0 12px; font-size:34px; }
.project-index h2 a { text-decoration:none; }
.project-index p { color:var(--muted); margin:0; max-width:55ch; }
.index-number { font-size:12px; color:#888; padding-top:8px; }
.project-arrow { text-decoration:none; color:var(--blue); font-size:27px; }
.secondary-entry { background:var(--soft); margin-top:48px; padding:32px; border-radius:4px; }
.secondary-entry h2 { margin-top:0; }
.secondary-entry p { color:var(--muted); }
.section-list,.exercise-list { list-style:none; margin:38px 0 0; padding:0; border-top:1px solid #e4e4e7; }
.section-list li,.exercise-list li { border-bottom:1px solid #e4e4e7; }
.section-list a,.exercise-list a { display:flex; align-items:center; gap:24px; text-decoration:none; padding:22px 8px; min-height:76px; }
.section-list a { justify-content:space-between; }
.section-list a:hover,.exercise-list a:hover { background:var(--soft); }
.exercise-number { flex:none; font-size:12px; color:var(--muted); font-variant-numeric:tabular-nums; }
.exercise-name { flex:1; min-width:0; font-size:16px; overflow-wrap:anywhere; }
.exercise-note { display:block; font-size:12px; color:var(--muted); line-height:1.7; margin-top:6px; }
.exercise-arrow { flex:none; color:var(--muted); }
.exercise-list .practice-row { display:grid; grid-template-columns:36px minmax(0,1fr) auto; gap:24px; align-items:center; padding:18px 8px; }
.practice-actions { display:flex; flex-wrap:wrap; gap:20px; }
.exercise-list .practice-actions a { display:inline-flex; align-items:center; gap:6px; min-height:44px; padding:8px 0; font-size:13px; color:var(--blue); }
.exercise-list .practice-actions a:hover { background:none; text-decoration:underline; }
.source-filename { overflow-wrap:anywhere; color:var(--muted); }
.source-files ul { padding-left:20px; line-height:1.9; overflow-wrap:anywhere; }
.source-files [aria-current] { font-weight:600; }
.source-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:18px; margin:24px 0 12px; font-size:14px; }
.source-toolbar a,.source-copy { color:var(--blue); }
.source-copy { font:inherit; border:1px solid #d9dade; border-radius:3px; background:white; padding:10px 14px; min-height:44px; cursor:pointer; }
.source-status { color:var(--muted); }
.source-scroll { display:flex; overflow:auto; max-height:70vh; border:1px solid #e4e4e7; background:#fafafa; font:13px/1.7 ui-monospace,"Cascadia Code",Consolas,monospace; tab-size:4; }
.source-lines { flex:none; list-style:none; user-select:none; margin:0; padding:18px 14px; text-align:right; color:#767880; border-right:1px solid #e4e4e7; }
.source-scroll pre { flex:1; min-width:max-content; margin:0; padding:18px; font:inherit; white-space:pre; }
.source-scroll code { font:inherit; }
.source-controls { display:flex; align-items:center; flex-wrap:wrap; gap:6px; margin:0 0 12px; font-size:13px; }
.source-controls button { min-width:44px; min-height:44px; padding:8px; background:white; border:1px solid #d9dade; border-radius:3px; cursor:pointer; }
.source-controls button:disabled { opacity:.45; cursor:default; }
.source-size { min-width:36px; text-align:center; font-variant-numeric:tabular-nums; }
.source-wrap-label { display:flex; align-items:center; gap:5px; min-height:44px; cursor:pointer; }
.source-wrap { width:18px; height:18px; accent-color:var(--blue); }
.source-wrap:focus-visible,.source-scroll:focus-visible { outline:2px solid var(--blue); outline-offset:3px; }
.source-scroll .source-lined { display:block; white-space:normal; }
.source-line { display:block; white-space:pre; min-height:1.7em; }
.source-scroll.is-wrapped pre { min-width:0; width:0; }
.source-scroll.is-wrapped .source-line { white-space:pre-wrap; overflow-wrap:anywhere; }
.source-viewer .token.comment,.source-viewer .token.doctype,.source-viewer .token.prolog { color:#626a73; }
.source-viewer .token.tag,.source-viewer .token.selector,.source-viewer .token.keyword { color:#07539a; }
.source-viewer .token.attr-name,.source-viewer .token.property { color:#79521b; }
.source-viewer .token.attr-value,.source-viewer .token.string { color:#216639; }
.source-viewer .token.number,.source-viewer .token.boolean,.source-viewer .token.function,.source-viewer .token.atrule { color:#70449b; }
.source-viewer .token.punctuation,.source-viewer .token.operator,.source-viewer .token.entity { color:#505761; }
.source-copy-buffer { position:fixed; left:-9999px; }
@media(max-width:600px) { .exercise-list .practice-row { grid-template-columns:28px minmax(0,1fr); gap:6px 14px; padding-inline:2px; } .practice-actions { grid-column:2; gap:18px; } }
.project-section { margin-top:46px; }
.project-section h2 { font-size:24px; }
.project-highlights,.project-resources { padding-left:22px; }
.project-highlights li,.project-resources li { line-height:1.85; margin-bottom:12px; }
.project-boundary,.project-notice { background:var(--soft); padding:20px 24px; line-height:1.85; font-size:14px; }
.project-external,.project-repository a { color:var(--blue); }
.return-link { margin-top:44px; font-size:14px; }
.editorial { max-width:780px; }
.editorial h1 { max-width:13ch; }
.editorial section { margin-top:42px; }
.editorial section h2 { font-size:25px; }
.editorial section p,.editorial>p { color:#53555a; line-height:1.95; }
.about-mascot { width:120px; height:auto; margin:24px 0 4px; }
.contact-addresses { border-top:1px solid #e5e5e8; }
.contact-addresses>div { padding:18px 0; border-bottom:1px solid #e5e5e8; }
.contact-addresses h2 { overflow-wrap:anywhere; }
.status { color:var(--muted); font-size:14px; }
.error-main { text-align:center; padding:70px 24px 100px; }
.error-code { font-size:clamp(110px,20vw,180px); letter-spacing:-.06em; font-weight:650; margin:0; line-height:1.2; }
.error-main h1 { font-size:30px; margin-top:22px; }
.error-main>p:not(.error-code) { color:var(--muted); margin-bottom:30px; }
.site-footer { background:#25262a; color:#c4c5cb; padding:52px max(24px,calc((100% - 1040px) / 2)) 24px; font-size:12px; }
.footer-top { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:36px; }
.footer-top h2 { font-size:12px; letter-spacing:0; margin:0 0 17px; }
.footer-top a { display:block; width:fit-content; margin-bottom:12px; text-decoration:none; }
.footer-top a:hover { text-decoration:underline; }
.site-footer h2,.site-footer a { color:#f1f1f3; }
.site-footer a:focus-visible { outline-color:#a8c8ff; }
.brand-wordmark { font-size:24px; color:#f1f1f3; font-weight:650; letter-spacing:-.05em; }
.footer-brand p { margin:12px 0; }
.footer-policy { margin-top:32px; max-width:110ch; font-size:11px; line-height:1.8; }
.footer-bottom { border-top:1px solid #505157; margin-top:22px; padding-top:14px; display:flex; flex-wrap:wrap; justify-content:space-between; gap:0 28px; font-size:10px; }
@keyframes appear { from { opacity:0; transform:translateY(-5px); } to { opacity:1; transform:none; } }
@media(max-width:760px) {
 .nav { min-height:58px; padding:0 20px; gap:18px; flex-wrap:wrap; }
 .brand { margin-right:auto; }
 .mobile-toggle:not([hidden]) { display:block; border:0; background:transparent; padding:15px 0; font-size:13px; color:inherit; }
  .primary-menu { flex:0 0 100%; order:4; display:block; padding:0 0 20px; max-height:calc(100svh - 58px); overflow-y:auto; }
 .nav-link { display:block; font-size:18px; padding:18px 0; }
 summary { font-size:23px; padding:18px 0; }
 .mega-panel { position:static; border:0; box-shadow:none; }
 .mega-inner { display:block; padding:2px 0 20px 18px; }
 .mega-inner>div { margin-bottom:20px; }
 .mega-inner .mega-title { font-size:24px; }
 .mega-inner .eyebrow { display:none; }
 .mega-inner p { max-width:40ch; }
 .hero { min-height:calc(90svh - 58px); padding:50px 20px 65px; }
 .hero-mascot { width:162px; margin-bottom:28px; }
 .hero h1 { font-size:67px; }
 .tagline { font-size:18px; }
 .tagline-secondary { font-size:12px; }
 .hero-actions { margin-top:28px; gap:24px; }
 .section-inner,.directory { width:calc(100% - 40px); }
 .featured { padding:58px 0; }
 .feature-detail,.split,.showcases { grid-template-columns:1fr; gap:30px; }
 .feature-detail>p { font-size:19px; }
 .showcases { padding-block:60px; gap:60px; }
 .showcases p:not(.eyebrow) { min-height:0; }
 .archive-entry { padding:48px 0; }
 .about-entry { padding-block:56px; }
 .split h2 { font-size:29px; }
 .directory { padding-block:48px 68px; }
 .directory h1 { font-size:40px; }
 .project-index article { grid-template-columns:24px 1fr 24px; gap:14px; }
 .project-index h2 { font-size:28px; }
 .page-description { font-size:16px; }
 .exercise-list a { gap:14px; padding-inline:2px; }
 .secondary-entry { padding:24px; }
 .footer-top { grid-template-columns:1fr 1fr; gap:30px 22px; }
 .footer-brand { grid-column:1/-1; }
 .site-footer { padding-inline:20px; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }

/* Current-language disclosure, with registry-derived options and native no-JS support. */
.language-selector { position:relative; flex:none; }
.language-selector>summary { display:flex; align-items:center; gap:7px; padding:9px 10px; border:1px solid #e4e4e7; border-radius:5px; font-size:13px; min-height:40px; -webkit-tap-highlight-color:transparent; }
.language-selector>summary::after,.language-selector[open]>summary::after { content:none; }
.language-chevron { font-size:11px; color:var(--muted); }
.language-options { position:absolute; right:0; top:calc(100% + 7px); width:176px; padding:6px; background:#fff; border:1px solid #e4e4e7; border-radius:6px; box-shadow:0 5px 18px #20212412; }
.language-options ul { list-style:none; margin:0; padding:0; }
.language-option { display:flex; align-items:center; justify-content:space-between; min-height:44px; padding:9px 12px; font-size:14px; text-decoration:none; border-radius:3px; }
.language-option:hover,.language-option:focus-visible { background:var(--soft); }
.language-option[aria-current] { color:var(--blue); font-weight:600; }
.language-check { padding-left:16px; }
.hero-actions a { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:44px; padding:8px 4px; text-decoration:none; border-radius:0; }
.hero-project-link { color:var(--blue); font-size:17px; font-weight:600; }
.hero-project-link::before { content:''; width:2px; height:22px; background:currentColor; margin-right:3px; }
.hero-archive-link { color:var(--muted); font-size:15px; }
.hero-actions a:hover { text-decoration:underline; text-underline-offset:5px; }
.about-intro { font-size:24px; line-height:1.5; margin:0 0 34px; }
.editorial .nolri-section { display:grid; grid-template-columns:minmax(0,1fr) 180px; gap:42px; align-items:center; }
.nolri-section figure { margin:0; text-align:center; }
.nolri-section .about-mascot { width:160px; max-width:100%; margin:0; }
.nolri-section figcaption { color:var(--muted); font-size:13px; margin-top:12px; }
.repository-identifier { display:inline-block; color:var(--muted); font-size:13px; text-decoration:none; margin:0 0 16px; overflow-wrap:anywhere; }
.repository-identifier:hover { color:var(--blue); text-decoration:underline; }
.project-license { font-size:13px; color:var(--muted); margin:0 0 24px; }
@media(max-width:760px) {
 .nav { gap:12px; }
 .language-selector>summary { font-size:12px; padding:8px; }
 .editorial .nolri-section { grid-template-columns:1fr; gap:22px; }
 .nolri-section figure { text-align:left; }
 .nolri-section .about-mascot { width:130px; }
 .nolri-section figcaption { width:130px; text-align:center; }
}
.regional-notice { max-width:1100px; margin:16px auto; padding:16px 12px 16px 20px; border:1px solid #dedee2; border-radius:4px; background:#fafafa; display:flex; gap:12px; align-items:flex-start; width:calc(100% - 32px); }
.regional-notice[hidden] { display:none; }
.regional-notice h2 { margin:0 0 6px; font-size:15px; letter-spacing:normal; }
.regional-notice p { margin:0; font-size:13px; line-height:1.7; }
.regional-notice button { flex:none; width:44px; height:44px; border:0; background:none; color:#202124; -webkit-text-fill-color:currentColor; cursor:pointer; }
