:root {
  --ink: #11110f;
  --ink-soft: #34332f;
  --paper: #f2efe6;
  --paper-deep: #e6e0d4;
  --white: #fffdf8;
  --line: #c9c1b2;
  --signal: #ff5a36;
  --signal-dark: #b82d14;
  --field: #0b6b4b;
  --clay: #9f4d2d;
  --focus: #005fcc;
  --success: #0d6a43;
  --danger: #a52620;
  --radius: .45rem;
  --shadow: 0 1.2rem 3rem rgba(17,17,15,.10);
  --font: "Segoe UI", Tahoma, Arial, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--font); line-height: 1.65; }
a { color: inherit; text-underline-offset: .22em; }
a:hover { text-decoration-thickness: .16em; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: .22rem solid var(--focus); outline-offset: .2rem; }
.skip-link { position: fixed; z-index: 1000; inset-inline-start: 1rem; top: -8rem; padding: .8rem 1rem; color: #fff; background: #000; }
.skip-link:focus { top: 1rem; }
.shell { width: min(1180px, calc(100% - 2rem)); margin-inline: auto; }
.site-header { position: sticky; top: 0; z-index: 20; color: var(--paper); background: rgba(17,17,15,.96); border-bottom: 1px solid rgba(255,255,255,.16); backdrop-filter: blur(12px); }
.site-header__inner { min-height: 4.6rem; display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.wordmark { display: inline-flex; align-items: center; gap: .72rem; color: inherit; font-weight: 760; text-decoration: none; letter-spacing: -.025em; }
.wordmark__mark { display: grid; place-items: center; width: 2.15rem; height: 2.15rem; color: var(--ink); background: var(--paper); border-radius: 50%; font-weight: 900; }
.primary-nav { display: flex; align-items: center; gap: 1.5rem; }
.primary-nav a { color: inherit; text-decoration: none; font-size: .95rem; }
.nav-toggle { display: none; color: inherit; background: transparent; border: 0; padding: .5rem; }
.hero { min-height: calc(100svh - 4.6rem); display: grid; align-items: end; color: var(--paper); background: var(--ink); overflow: hidden; }
.hero__inner { position: relative; padding-block: clamp(5rem, 12vw, 10rem) 4rem; }
.hero__index { position: absolute; direction: ltr; inset-inline-end: 0; top: 3rem; color: rgba(242,239,230,.18); font: 800 clamp(8rem, 30vw, 25rem)/.75 var(--font); letter-spacing: -.09em; }
.hero h1 { position: relative; z-index: 1; width: min(14ch, 100%); margin: 0; font-size: clamp(3.4rem, 10vw, 8.7rem); line-height: .92; letter-spacing: -.065em; }
.hero__lead { position: relative; z-index: 1; width: min(42rem, 100%); margin: 2.5rem 0 0; font-size: clamp(1.05rem, 2vw, 1.4rem); color: #d6d0c5; }
.hero__actions { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2rem; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 3rem; padding: .75rem 1.1rem; border: 1px solid currentColor; border-radius: 999px; text-decoration: none; font-weight: 700; cursor: pointer; }
.button--solid { color: var(--ink); background: var(--paper); border-color: var(--paper); }
.button--signal { color: #fff; background: var(--signal-dark); border-color: var(--signal-dark); }
.button--quiet { background: transparent; }
.eyebrow { margin: 0 0 .7rem; font-size: .78rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.section { padding-block: clamp(4rem, 9vw, 8rem); }
.section--white { background: var(--white); }
.section-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(16rem, .55fr); gap: 2rem; align-items: end; margin-bottom: 4rem; border-top: 2px solid var(--ink); padding-top: 1.2rem; }
.section-heading h2 { margin: 0; font-size: clamp(2.2rem, 6vw, 5.2rem); line-height: .96; letter-spacing: -.055em; }
.section-heading p { margin: 0; color: var(--ink-soft); }
.product-ledger { border-top: 1px solid var(--line); }
.product-row { display: grid; grid-template-columns: 5rem minmax(0, .8fr) minmax(18rem, 1.2fr); gap: 2rem; align-items: start; padding-block: 3rem; border-bottom: 1px solid var(--line); }
.product-row__number { direction: ltr; color: #827b70; font-weight: 800; }
.product-row h3 { margin: 0; font-size: clamp(2rem, 5vw, 4.3rem); line-height: .95; letter-spacing: -.05em; }
.product-row__content p { margin-top: 0; max-width: 44rem; }
.module-list { display: flex; flex-wrap: wrap; gap: .45rem; margin: 1.2rem 0; padding: 0; list-style: none; }
.module-list li { padding: .35rem .7rem; border: 1px solid var(--ink); border-radius: 999px; font-size: .86rem; }
.channel-strip { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.5rem; }
.channel-link { display: inline-flex; flex-direction: column; min-width: 10rem; padding: .8rem 1rem; color: var(--paper); background: var(--ink); text-decoration: none; border-radius: var(--radius); }
.channel-link small { color: #c8c2b7; }
.manifesto { color: var(--paper); background: var(--field); }
.manifesto blockquote { width: min(18ch, 100%); margin: 0; font-size: clamp(2.5rem, 7vw, 6rem); line-height: 1.02; letter-spacing: -.05em; }
.news-list { display: grid; grid-template-columns: repeat(12, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.news-item { grid-column: span 4; min-height: 21rem; display: flex; flex-direction: column; justify-content: space-between; padding: 1.5rem; background: var(--white); text-decoration: none; }
.news-item:first-child { grid-column: span 8; background: var(--ink); color: var(--paper); }
.news-item h3 { margin: 1rem 0; font-size: clamp(1.35rem, 3vw, 2.4rem); line-height: 1.12; letter-spacing: -.035em; }
.news-meta { display: flex; justify-content: space-between; gap: 1rem; font-size: .82rem; opacity: .75; }
.product-hero { padding-block: clamp(6rem, 14vw, 12rem) 4rem; color: var(--paper); background: var(--ink); }
.product-hero[data-brand="clay"] { background: #572716; }
.product-hero[data-brand="signal"] { background: #2a1010; }
.product-hero[data-brand="field"] { background: #073f2d; }
.product-hero h1 { max-width: 13ch; margin: .5rem 0 1rem; font-size: clamp(3.5rem, 9vw, 8rem); line-height: .9; letter-spacing: -.065em; }
.product-hero__summary { max-width: 45rem; font-size: 1.25rem; color: rgba(255,255,255,.78); }
.download-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1rem; }
.download-option { padding: 1.6rem; background: var(--white); border: 1px solid var(--line); }
.download-option h2, .download-option h3 { margin-top: 0; }
.hash { overflow-wrap: anywhere; font-family: ui-monospace, Consolas, monospace; font-size: .8rem; }
.article-shell { width: min(760px, calc(100% - 2rem)); margin-inline: auto; padding-block: 6rem; }
.article-shell h1 { margin: 1rem 0; font-size: clamp(2.6rem, 7vw, 5.8rem); line-height: .98; letter-spacing: -.055em; }
.article-lead { font-size: 1.28rem; color: var(--ink-soft); }
.article-body { margin-top: 3rem; white-space: pre-wrap; font-size: 1.08rem; }
.pagination { display: flex; gap: .5rem; justify-content: center; margin-top: 2rem; }
.pagination a, .pagination span { padding: .5rem .8rem; border: 1px solid var(--ink); text-decoration: none; }
.site-footer { padding-block: 4rem 2rem; color: var(--paper); background: var(--ink); }
.site-footer__grid { display: grid; grid-template-columns: 1fr auto; gap: 3rem; }
.site-footer__statement { max-width: 37rem; font-size: 1.4rem; }
.site-footer nav { display: grid; align-content: start; gap: .5rem; }
.site-footer .site-footer__social { display: flex; flex-wrap: wrap; gap: 1.25rem; margin-top: 1rem; }
.help-channels { margin-top: 1rem; }
.site-footer__legal { grid-column: 1 / -1; padding-top: 2rem; border-top: 1px solid rgba(255,255,255,.2); color: #aaa399; }
/* Administrative interface */
.admin-body { background: #e9e6de; }
.admin-frame { min-height: 100svh; display: grid; grid-template-columns: 17rem minmax(0,1fr); }
.admin-rail { position: sticky; top: 0; height: 100svh; padding: 1.5rem; color: var(--paper); background: var(--ink); }
.wordmark--admin { margin-bottom: 2.5rem; }
.admin-nav { display: grid; gap: .35rem; }
.admin-nav a { padding: .75rem .8rem; color: inherit; text-decoration: none; border-radius: var(--radius); }
.admin-nav a:hover, .admin-nav a:focus-visible { background: rgba(255,255,255,.1); }
.admin-workspace { min-width: 0; }
.admin-topbar { min-height: 4.5rem; display: flex; justify-content: space-between; align-items: center; padding-inline: 2rem; background: var(--white); border-bottom: 1px solid var(--line); }
.status-dot { display: inline-block; width: .65rem; height: .65rem; margin-inline-end: .4rem; background: #0f9d61; border-radius: 50%; }
.admin-main { width: min(1500px, 100%); padding: 2rem; }
.admin-title { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; align-items: end; margin-bottom: 2rem; }
.admin-title h1 { margin: 0; font-size: clamp(2rem, 4vw, 3.8rem); line-height: 1; letter-spacing: -.05em; }
.metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 1rem; margin-bottom: 2rem; }
dl.metric-grid>div { padding:1.25rem; background:var(--white); border:1px solid var(--line); border-radius:12px; min-width:0; }
dl.metric-grid dt { line-height:1.6; color:var(--ink-soft); }
dl.metric-grid dd { margin:.5rem 0 0; color:var(--field); font-size:2rem; font-weight:700; line-height:1.3; font-variant-numeric:tabular-nums; }
.metric { padding: 1.25rem; background: var(--white); border-top: .25rem solid var(--ink); }
.metric__value { display: block; font-size: 2rem; font-weight: 800; }
.admin-panel { margin-bottom: 1.25rem; padding: 1.4rem; background: var(--white); border: 1px solid var(--line); }
.admin-panel h2 { margin-top: 0; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; background: var(--white); }
th, td { padding: .85rem; text-align: start; border-bottom: 1px solid var(--line); vertical-align: top; }
th { font-size: .82rem; text-transform: uppercase; letter-spacing: .04em; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1rem; }
.form-field { display: grid; gap: .35rem; }
.form-field--wide { grid-column: 1 / -1; }
.form-field label { font-weight: 720; }
.form-field input, .form-field select, .form-field textarea { width: 100%; padding: .78rem; color: var(--ink); background: var(--white); border: 1px solid #777065; border-radius: var(--radius); }
.form-field textarea { min-height: 9rem; resize: vertical; }
.field-error, .validation-summary-errors { color: var(--danger); font-weight: 650; }
.form-actions { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1.5rem; }
.notice { margin-bottom: 1rem; padding: .9rem 1rem; border-inline-start: .35rem solid; background: var(--white); }
.notice--success { border-color: var(--success); }
.notice--error { border-color: var(--danger); }
.code-box { padding: 1rem; overflow-wrap: anywhere; direction: ltr; text-align: left; color: #d7ffd7; background: #111; font: .9rem/1.6 ui-monospace, Consolas, monospace; }
.badge { display: inline-block; padding: .22rem .5rem; border: 1px solid currentColor; border-radius: 999px; font-size: .78rem; }
@media (max-width: 900px) {
  .nav-toggle { display: inline-flex; align-items: center; gap: .5rem; }
  .primary-nav { display: none; position: absolute; inset: 4.6rem 0 auto; padding: 1rem; background: var(--ink); border-top: 1px solid rgba(255,255,255,.15); }
  .primary-nav[data-open] { display: grid; }
  .section-heading, .product-row { grid-template-columns: 1fr; }
  .product-row__number { display: none; }
  .news-item, .news-item:first-child { grid-column: span 12; }
  .admin-frame { display: block; }
  .admin-rail { position: relative; height: auto; }
  .admin-nav { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .metric-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .download-grid, .form-grid { grid-template-columns: 1fr; }
  .form-field--wide { grid-column: auto; }
}
@media (max-width: 560px) {
  .hero h1 { font-size: 3.3rem; }
  .site-footer__grid { grid-template-columns: 1fr; }
  .site-footer__legal { grid-column: auto; }
  .admin-main, .admin-topbar { padding-inline: 1rem; }
  .metric-grid, .admin-nav { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
@media (prefers-color-scheme: dark) {
  body:not(.admin-body) { --paper: #171714; --paper-deep: #22221f; --white: #20201d; --line: #4d4b45; --ink: #f5f1e8; --ink-soft: #c9c4b9; }
  .button--solid { color: #11110f; background: #f2efe6; }
  .channel-link { color: #11110f; background: #f2efe6; }
  .channel-link small { color: #565047; }
}

.button:hover { transform: translateY(-2px); filter: brightness(1.1); box-shadow: 0 4px 12px rgba(0,0,0,0.15); }
.button:active { transform: translateY(0); filter: brightness(1); box-shadow: none; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
  a:hover, button:hover, .product-card:hover { transform: none !important; }
}

/* Keep inverse surfaces readable when the system's normal paper/ink palette is inverted. */
.site-header, .hero, .product-hero, .site-footer { color: #f2efe6; }
.hero, .product-hero:not([data-brand]), .site-footer { background: #11110f; }
.manifesto { color: #fffdf8; }
@media (max-width: 900px) { .primary-nav { background: #11110f; } }
.hero h1, .product-hero h1 { line-height: 1.14; }

/* Keep the task visible on phones; the complete navigation remains available. */
.admin-nav-toggle { display: none; }
.admin-topbar { flex-wrap: wrap; gap: .7rem; padding-block: .8rem; }
.admin-topbar > div { min-width: 0; overflow-wrap: anywhere; }
.admin-title { overflow-wrap: anywhere; }
@media (max-width: 960px) {
  .admin-rail.nav-enhanced .wordmark--admin { margin-bottom: 1rem; }
  .admin-nav-toggle:not([hidden]) { display: block; padding: .65rem 1rem; border: 1px solid currentColor; border-radius: var(--radius); color: inherit; background: transparent; font: inherit; }
  .admin-rail.nav-enhanced .admin-nav { display: none; margin-top: 1rem; }
  .admin-rail.nav-enhanced.is-open .admin-nav { display: grid; }
}

/* Revo supervision */
.admin-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-block-end:1.5rem}
.message-copy{white-space:pre-wrap;overflow-wrap:anywhere}
.admin-panel article{padding-block:1rem;border-block-end:1px solid var(--line,#d9ddd7)}
.admin-panel details{padding-block:.7rem}
.admin-panel form+form{margin-block-start:1.5rem}
.table-wrap .revo-table { min-width: 40rem; }

/* Accessible ryvo privacy request form */
.article-shell form.public-request-form{display:grid;gap:.8rem;margin-block:2rem;max-width:100%;}
.article-shell form.public-request-form input:not([type="hidden"]):not([type="checkbox"]),.article-shell form.public-request-form select,.article-shell form.public-request-form textarea{box-sizing:border-box;width:100%;min-width:0;padding:.85rem;font:inherit;color:var(--ink);background:var(--white);border:1px solid #777065;border-radius:var(--radius);}
.article-shell form.public-request-form textarea{min-height:9rem;resize:vertical;}
.article-shell form.public-request-form button{min-height:3rem;padding:.8rem 1.4rem;font:inherit;border-radius:999px;cursor:pointer;}
.article-shell form.public-request-form input[type="checkbox"]{width:1.25rem;height:1.25rem;vertical-align:middle;margin-inline-end:.5rem;}

/* Daily operations: retain Banana Finger's paper, ink and orange identity. */
.admin-main{max-width:96rem;min-width:0;}
.admin-rail .admin-priority-link{border-inline-start:3px solid #ff5a36;background:#292820;font-weight:700;}
.admin-tools{border-top:1px solid #57554c;padding-top:.8rem;margin-top:.5rem;}
.admin-tools summary{padding:.6rem;cursor:pointer;color:#f2efe6;}
.admin-tools a{display:block;}
.admin-body summary{cursor:pointer;font-weight:650;min-height:2.75rem;align-content:center;}
.admin-body .form-field{margin-block:.6rem;}
.admin-body .admin-panel>h2{line-height:1.45;}
.admin-body .button{min-height:2.75rem;}
.admin-body .button:hover{transform:none;box-shadow:none;}
.revo-navigation{padding-block:.75rem;border-block-end:1px solid var(--line);gap:.4rem;}
.revo-navigation a{padding:.5rem .9rem;text-decoration:none;}
.revo-navigation [aria-current="page"]{color:var(--white);background:var(--ink);border-color:var(--ink);}
.attention-heading{border-inline-start:4px solid var(--signal-dark);padding-inline-start:1.25rem;}
.attention-heading h1{margin-block:.25rem;}
.attention-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;}
.attention-card{display:flex;flex-direction:column;align-items:flex-start;margin:0;border-top:3px solid var(--line);}
.attention-card--pending{border-top-color:var(--signal-dark);}
.attention-card h2{font-size:1.25rem;margin-block:.2rem;}
.attention-card .button{margin-block-start:auto;}
.attention-state{font-size:.9rem;color:var(--ink-soft);margin:0 0 .5rem;}
.attention-controls label{display:block;margin-block:.75rem;}
.attention-controls input[type="checkbox"]{width:1.2rem;height:1.2rem;vertical-align:middle;margin-inline-end:.5rem;}
.attention-entry{border-inline-start:4px solid var(--signal-dark);}
.review-card{max-width:52rem;}
.review-facts{display:grid;grid-template-columns:10rem minmax(0,1fr);gap:.75rem;border-block:1px solid var(--line);padding-block:1rem;}
.review-facts dt{font-weight:700;}.review-facts dd{margin:0;overflow-wrap:anywhere;}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
@media(max-width:700px){.attention-grid{grid-template-columns:1fr;}.review-facts{grid-template-columns:1fr;gap:.35rem;}.review-facts dd{margin-block-end:.65rem;}.revo-navigation .button{flex:1 1 8rem;text-align:center;}}

/* Bilingual reading, measured spacing and shared public components. */
html[dir="rtl"] .hero h1, html[dir="rtl"] .product-hero h1, html[dir="rtl"] .section-heading h2,
html[dir="rtl"] .article-shell h1, html[dir="rtl"] .news-item h3, html[dir="rtl"] .product-row h3 { line-height:1.28; letter-spacing:0; }
.hero h1 { max-width:15ch; font-size:clamp(3rem,7.5vw,6.5rem); line-height:1.06; }
.hero { min-height: min(760px,90svh); }
.hero__inner { padding-block:6rem 4rem; }
.hero__index { font-size:clamp(8rem,28vw,22rem); top:2rem; }
.product-hero h1 { max-width:19ch; font-size:clamp(2.5rem,6vw,5.5rem); line-height:1.12; }
.product-hero { padding-block:5rem 3rem; }
.section-heading h2 { font-size:clamp(2rem,4vw,3.8rem); line-height:1.15; }
.news-item h3 { line-height:1.3; font-size:clamp(1.35rem,2.5vw,2rem); }
.article-shell { width:min(790px,calc(100% - 2.5rem)); padding-block:3.5rem 5rem; }
.article-shell h1 { font-size:clamp(2.1rem,5vw,3.8rem); line-height:1.2; }
.article-back { display:inline-block; margin-bottom:2rem; }
.article-byline { color:var(--ink-soft); font-size:.95rem; }
.article-prose { white-space:normal; font-size:1.13rem; line-height:1.95; overflow-wrap:anywhere; }
.article-prose h2 { font-size:1.6rem; line-height:1.5; margin-block:2.5rem 1rem; }
.article-prose h3 { font-size:1.3rem; margin-block:2rem 1rem; }
.article-prose p { margin-block:0 1.35rem; }
.article-prose li { margin-block:.55rem; }
.article-cover { width:100%; height:auto; }
.article-note { padding:1.25rem; border-inline-start:3px solid var(--field); background:var(--paper-deep); margin-block:2.5rem; font-size:1rem; line-height:1.8; }
.team-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; list-style:none; padding:0; }
.team-grid li { border-top:2px solid var(--field); padding-block:1.5rem; }
.team-grid h3 { font-size:1.6rem; margin:.8rem 0; text-align:start; }
.team-grid span { color:var(--ink-soft); }
.language-link { border:1px solid currentColor; border-radius:999px; padding:.4rem .75rem; }
.visit-counter { display:flex; align-items:baseline; gap:1rem; margin-top:2rem; }
.visit-counter strong { font-size:1.7rem; font-variant-numeric:tabular-nums; direction:ltr; }
.visit-meter { display:block; width:min(100%,18rem); height:.6rem; margin-block:.35rem; }
.manifesto h2 { max-width:24ch; font-size:clamp(2.2rem,5vw,4rem); line-height:1.3; margin-block:1rem; }
.accessibility-copy { max-width:46rem; font-size:1.2rem; line-height:1.9; }
.store-heading { margin-top:3rem; }
.pagination { flex-wrap:wrap; }
section[id] { scroll-margin-top:6rem; }
@media (max-width:700px) { .team-grid { grid-template-columns:1fr; } .hero { min-height:auto; } .hero__inner { padding-top:5rem; } .article-shell { padding-top:2.5rem; } }

/* Ryvo guide: one public navigation for games, social life and practical help. */
.feature-grid,.topic-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem; }
.feature-card,.topic-card { border:1px solid var(--line);padding:clamp(1.4rem,3vw,2.5rem);display:flex;flex-direction:column;align-items:flex-start; }
.feature-card:nth-child(3n+1),.topic-card:first-child { border-top:3px solid var(--field); }
.feature-number { display:block;font-size:.85rem;font-weight:700;color:var(--ink-soft);font-variant-numeric:tabular-nums;margin-bottom:1rem; }
.feature-card h3,.topic-card h2,.entry-grid h3 { font-size:clamp(1.5rem,2.7vw,2.1rem);line-height:1.4;margin:0 0 .8rem;letter-spacing:0; }
.feature-card p,.topic-card>p,.entry-grid p { color:var(--ink-soft);line-height:1.9;margin:0 0 1.4rem; }
.feature-card>a { margin-top:auto;font-weight:700;text-underline-offset:.25em; }
.topic-card .guide-links { padding-inline-start:1.2rem;margin:0 0 1.6rem;line-height:1.8; }
.guide-links li+li { margin-top:.7rem; }
.guide-links a,.faq-list a { text-underline-offset:.25em; }
.topic-all { margin-top:auto;font-weight:700;display:flex;gap:.7rem;align-items:center; }
.topic-count { display:inline-flex;align-items:center;justify-content:center;min-width:2rem;min-height:2rem;padding:.2rem .5rem;border:1px solid currentColor;border-radius:999px;font-size:.85rem; }
.guide-search { margin:0 0 3rem;max-width:52rem; }
.guide-search label,.article-filters label { display:block;font-weight:700;margin-bottom:.6rem; }
.search-row { display:flex;gap:.75rem; }
.search-row input { flex:1;min-width:0; }
.article-filters { display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) auto;gap:1rem;align-items:end; }
.guide-search input,.article-filters input,.article-filters select { width:100%;min-height:3.2rem;padding:.7rem .9rem;background:var(--paper);color:var(--ink);border:1px solid var(--ink-soft);border-radius:.3rem;font:inherit; }
.guide-search button,.article-filters button { min-height:3.2rem;white-space:nowrap; }
.results-heading { display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin:1.5rem 0; }
.results-heading strong { margin-inline-start:.45rem;font-variant-numeric:tabular-nums; }
.article-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.article-grid .news-item,.article-grid .news-item:first-child { grid-column:auto;background:var(--white);color:var(--ink); }
.article-grid .news-item h3 { font-size:1.5rem;line-height:1.5; }
.article-grid .news-item p { line-height:1.9; }
.article-breadcrumb { display:flex;flex-wrap:wrap;gap:.7rem;margin-bottom:2rem;line-height:1.8;font-size:.95rem; }
.article-contents { padding:1.2rem 1.5rem;border:1px solid var(--line);margin:2rem 0; }
.article-contents summary { cursor:pointer;font-weight:700;padding:.4rem 0; }
.article-contents ol { line-height:1.9;padding-inline-start:1.5rem; }
.article-contents li+li { margin-top:.35rem; }
.article-prose h2 { scroll-margin-top:7rem; }
.article-actions,.guide-bottom { display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap; }
.guide-bottom { border-top:1px solid var(--line);margin-top:3rem;padding-top:1.5rem; }
.guide-bottom p { flex:1 1 24rem; }
.entry-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem; }
.entry-grid>a { padding:1.7rem;border-top:3px solid var(--field);background:var(--paper-deep);color:var(--ink);text-decoration:none; }
.entry-grid>a:hover h3 { text-decoration:underline;text-underline-offset:.25em; }
.entry-grid p { margin-bottom:0; }
.help-shell { max-width:64rem; }
.faq-list details { border-top:1px solid var(--line);padding:1rem 0; }
.faq-list details:last-child { border-bottom:1px solid var(--line); }
.faq-list summary { cursor:pointer;font-size:1.2rem;font-weight:700;padding:.65rem;line-height:1.7; }
.faq-list details>div { padding:.3rem .65rem 1.2rem;line-height:1.9;max-width:52rem; }
.help-actions { display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-top:3rem; }
.help-actions h2 { font-size:1.5rem;line-height:1.5; }
.help-actions p { line-height:1.9; }
.help-actions a { display:inline-block;margin-block:.5rem;margin-inline-end:1rem; }
.pagination { flex-wrap:wrap; }
.product-hero a:not(.button) { color:inherit; }
.hero-actions { display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2rem; }
.primary-nav { gap:clamp(.8rem,1.5vw,1.4rem); }
@media(max-width:900px) { .article-grid,.entry-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .article-filters { grid-template-columns:1fr 1fr; } .article-filters>div:first-child { grid-column:1/-1; } }
@media(max-width:600px) { .feature-grid,.topic-grid,.article-grid,.entry-grid,.help-actions { grid-template-columns:1fr; } .search-row { flex-direction:column; } .article-filters { grid-template-columns:1fr; } .article-filters>div:first-child { grid-column:auto; } .article-contents { padding:1rem; } .feature-card,.topic-card { padding:1.4rem; } .guide-bottom { align-items:flex-start;flex-direction:column; } .guide-bottom p { flex:auto; } }

/* Accessible file library: native file selector and progress, no focus movement during transfer. */
#file-upload [hidden]{display:none!important}
.file-upload-progress{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;margin-block:20px}
.file-upload-progress label{grid-column:1/-1}
.file-upload-progress progress{width:100%;min-height:20px;accent-color:#216b56}
#upload-error{padding:14px;border-inline-start:4px solid #ae362b;background:#fff0eb;color:#7a261e;border-radius:8px}
/* Selected recipients reuse the admin form and button styles. */
.campaign-selection{margin-block:1.5rem;padding:1.25rem;border:1px solid var(--line,#cbc7bb);border-radius:var(--radius-sm,12px)}
.campaign-search{display:flex;align-items:end;gap:1rem;flex-wrap:wrap}
.campaign-search .form-field{flex:1;min-width:12rem}
.campaign-player-list{list-style:none;padding:0;margin-block:1rem;display:grid;gap:.75rem}
.campaign-player-list li{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem;border:1px solid var(--line,#cbc7bb);border-radius:var(--radius-sm,12px);overflow-wrap:anywhere}
.campaign-player-list li>span{display:grid;gap:.25rem;min-width:0}
.campaign-player-list button{flex-shrink:0}
#recipient-error{color:var(--danger,#a42a13)}
#campaign-form [hidden]{display:none!important}
@media(max-width:560px){.campaign-player-list li{align-items:stretch;flex-direction:column}.campaign-search{align-items:stretch}.campaign-search .form-field{min-width:0;flex-basis:100%}}

.download-option details{margin-top:1rem}.download-option summary{cursor:pointer;min-height:2.75rem}.download-option .hash{overflow-wrap:anywhere}.game-guide-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));gap:1rem}.game-guide-grid a{display:block;padding:1.2rem;border:1px solid var(--line,#777065);border-radius:var(--radius);color:inherit;text-decoration:none}.game-guide-grid a:focus-visible{outline:3px solid currentColor;outline-offset:3px}.account-access{max-width:38rem}.account-access form{display:grid;gap:1rem}.product-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,24rem),1fr));gap:1.5rem}.product-gallery figure{margin:0}.product-gallery img{display:block;width:100%;height:auto;border-radius:var(--radius)}.product-gallery figcaption{padding-block:.75rem}
.ryvo-screens{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.ryvo-screens figure{margin:0}.ryvo-screens img{display:block;width:100%;height:auto;border-radius:12px;border:1px solid var(--line)}.ryvo-screens figcaption{padding-block:12px;font-weight:600}@media(max-width:700px){.ryvo-screens{grid-template-columns:1fr}}
