/* Update 019: Website Demo 003 — Ready, Set, Roam! */
.roam-ready-demo {
    --roam-navy: #17345b;
    --roam-blue: #2f76c5;
    --roam-sky: #8ed8ef;
    --roam-yellow: #ffd45f;
    --roam-orange: #f28b49;
    --roam-coral: #ed5d67;
    --roam-green: #54b889;
    --roam-purple: #7766c6;
    --roam-cream: #fff8e8;
    --roam-paper: #fffdf7;
    --roam-ink: #21324a;
    --roam-muted: #66758b;
    --roam-line: #d8e2eb;
    overflow: hidden;
    color: var(--roam-ink);
    background: var(--roam-paper);
}
.roam-ready-demo *,
.roam-ready-demo *::before,
.roam-ready-demo *::after { box-sizing: border-box; }
.roam-ready-demo h1,
.roam-ready-demo h2,
.roam-ready-demo h3,
.roam-ready-demo p { margin-top: 0; }
.roam-ready-demo button,
.roam-ready-demo select { font: inherit; }
.roam-ready-disclaimer {
    padding: .7rem max(1rem, calc((100vw - 1380px) / 2 + 1.5rem));
    display: flex;
    justify-content: center;
    gap: .75rem 1rem;
    flex-wrap: wrap;
    color: #fff;
    background: #172b4a;
    font-size: .72rem;
    text-align: center;
}
.roam-ready-disclaimer strong { color: var(--roam-yellow); letter-spacing: .04em; text-transform: uppercase; }
.roam-ready-masthead {
    position: relative;
    z-index: 20;
    min-height: 86px;
    padding: 1rem max(1.2rem, calc((100vw - 1380px) / 2 + 1.5rem));
    display: grid;
    grid-template-columns: minmax(250px, auto) 1fr auto;
    gap: 2rem;
    align-items: center;
    border-bottom: 1px solid rgba(23,52,91,.12);
    background: rgba(255,253,247,.96);
    box-shadow: 0 10px 35px rgba(30,58,92,.08);
}
.roam-ready-brand { display: inline-flex; gap: .8rem; align-items: center; color: var(--roam-navy); text-decoration: none; }
.roam-ready-brand > span:last-child { display: grid; }
.roam-ready-brand strong { font-size: 1rem; line-height: 1; }
.roam-ready-brand small { margin-top: .28rem; color: var(--roam-muted); font-size: .64rem; }
.roam-ready-brand-mark {
    position: relative;
    width: 52px;
    aspect-ratio: 1;
    display: grid;
    place-items: center;
    overflow: hidden;
    border: 3px solid var(--roam-navy);
    border-radius: 50%;
    color: #fff;
    background: linear-gradient(135deg, var(--roam-blue), var(--roam-purple));
    box-shadow: 0 6px 0 rgba(23,52,91,.14);
}
.roam-ready-brand-mark i { position: absolute; width: 70px; height: 9px; background: var(--roam-yellow); transform: rotate(-25deg); }
.roam-ready-brand-mark b { position: relative; z-index: 2; font-size: 1.15rem; }
.roam-ready-masthead nav { display: flex; justify-content: center; gap: clamp(.8rem, 2vw, 1.7rem); }
.roam-ready-masthead nav a,
.roam-ready-back { color: #425b77; font-size: .72rem; font-weight: 850; text-decoration: none; }
.roam-ready-masthead nav a:hover,
.roam-ready-masthead nav a:focus-visible,
.roam-ready-back:hover,
.roam-ready-back:focus-visible { color: var(--roam-blue); }
.roam-ready-back { padding: .65rem .8rem; border: 1px solid #cfd9e2; border-radius: 10px; background: #fff; }
.roam-ready-hero {
    position: relative;
    min-height: 760px;
    padding: clamp(4rem, 7vw, 7.5rem) max(1.5rem, calc((100vw - 1380px) / 2 + 1.5rem));
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(350px, .82fr);
    gap: clamp(2.5rem, 6vw, 7rem);
    align-items: center;
    overflow: hidden;
    background:
        linear-gradient(180deg, rgba(255,255,255,.2), transparent 35%),
        linear-gradient(135deg, #dff7ff 0 55%, #fff0c4 55% 100%);
}
.roam-ready-hero::after {
    content: '';
    position: absolute;
    left: -8%;
    right: -8%;
    bottom: -92px;
    height: 210px;
    border-radius: 50% 50% 0 0;
    background: var(--roam-green);
    transform: rotate(-2deg);
}
.roam-ready-hero-copy { position: relative; z-index: 5; max-width: 770px; }
.roam-ready-eyebrow {
    margin: 0 0 1rem;
    color: #386b8d;
    font-size: .68rem;
    font-weight: 950;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.roam-ready-eyebrow.light { color: #ffe18a; }
.roam-ready-hero h1 {
    max-width: 11ch;
    margin: 0;
    color: var(--roam-navy);
    font-size: clamp(4.1rem, 8.2vw, 8.7rem);
    letter-spacing: -.065em;
    line-height: .82;
}
.roam-ready-hero h1 span { color: var(--roam-coral); }
.roam-ready-hero-copy > p:not(.roam-ready-eyebrow) { max-width: 690px; margin: 2rem 0 0; color: #475d76; font-size: 1.06rem; line-height: 1.75; }
.roam-ready-hero-actions { margin-top: 2rem; display: flex; gap: .8rem; flex-wrap: wrap; align-items: center; }
.roam-ready-primary,
.roam-ready-sound-toggle {
    min-height: 50px;
    padding: .85rem 1.2rem;
    display: inline-flex;
    gap: .65rem;
    align-items: center;
    border: 0;
    border-radius: 14px;
    font-size: .78rem;
    font-weight: 950;
    text-decoration: none;
    cursor: pointer;
}
.roam-ready-primary { color: #fff; background: var(--roam-navy); box-shadow: 0 8px 0 #0d2442; }
.roam-ready-primary:hover,
.roam-ready-primary:focus-visible { transform: translateY(2px); box-shadow: 0 6px 0 #0d2442; }
.roam-ready-sound-toggle { border: 1px solid #bfd0dc; color: var(--roam-navy); background: rgba(255,255,255,.78); }
.roam-ready-sound-toggle[aria-pressed="true"] { border-color: var(--roam-green); background: #e5f8ef; }
.roam-ready-hero-visual { position: relative; z-index: 4; min-height: 540px; }
.roam-ready-sun { position: absolute; right: 0; top: 1%; width: 145px; aspect-ratio: 1; border: 18px solid rgba(255,212,95,.28); border-radius: 50%; background: var(--roam-yellow); box-shadow: 0 0 0 26px rgba(255,212,95,.14); }
.roam-ready-cloud,
.roam-ready-cloud::before,
.roam-ready-cloud::after { position: absolute; border-radius: 999px; background: rgba(255,255,255,.9); }
.roam-ready-cloud { width: 130px; height: 38px; }
.roam-ready-cloud::before,
.roam-ready-cloud::after { content: ''; bottom: 0; }
.roam-ready-cloud::before { left: 18px; width: 58px; height: 62px; }
.roam-ready-cloud::after { right: 14px; width: 48px; height: 50px; }
.roam-ready-cloud.cloud-one { left: 2%; top: 9%; }
.roam-ready-cloud.cloud-two { right: 10%; top: 38%; transform: scale(.7); }
.roam-ready-plane { position: absolute; left: 3%; top: 26%; width: 94px; height: 34px; border-radius: 60% 15% 15% 60%; background: #fff; box-shadow: 0 12px 24px rgba(38,74,105,.18); transform: rotate(-10deg); }
.roam-ready-plane::before { content: ''; position: absolute; left: 30px; top: -24px; width: 54px; height: 34px; border-radius: 100% 0 12px; background: var(--roam-coral); transform: skewX(-24deg); }
.roam-ready-plane::after { content: ''; position: absolute; left: 32px; bottom: -22px; width: 48px; height: 31px; border-radius: 0 0 100%; background: var(--roam-blue); transform: skewX(28deg); }
.roam-ready-plane i { position: absolute; left: 14px; top: 10px; width: 10px; height: 10px; border-radius: 50%; background: var(--roam-sky); box-shadow: 17px 0 var(--roam-sky), 34px 0 var(--roam-sky); }
.roam-ready-plane b { position: absolute; right: -13px; top: 5px; width: 20px; height: 24px; border-radius: 0 100% 0 0; background: var(--roam-orange); }
.roam-ready-route { position: absolute; inset: 0; border: 3px dashed rgba(47,118,197,.45); border-left-color: transparent; border-bottom-color: transparent; border-radius: 50%; transform: rotate(8deg); }
.roam-ready-route i { position: absolute; width: 14px; aspect-ratio: 1; border: 3px solid #fff; border-radius: 50%; background: var(--roam-coral); box-shadow: 0 0 0 7px rgba(237,93,103,.14); }
.roam-ready-route i:nth-child(1) { left: 8%; top: 39%; }
.roam-ready-route i:nth-child(2) { right: 15%; top: 19%; background: var(--roam-blue); }
.roam-ready-route i:nth-child(3) { right: 3%; bottom: 23%; background: var(--roam-green); }
.roam-ready-route i:nth-child(4) { left: 22%; bottom: 7%; background: var(--roam-yellow); }
.roam-ready-passport-cover {
    position: absolute;
    left: 17%;
    top: 20%;
    width: min(330px, 68%);
    aspect-ratio: .72;
    padding: 2rem;
    display: grid;
    place-items: center;
    align-content: center;
    border: 10px solid #fff;
    border-radius: 24px;
    color: #fff;
    background: linear-gradient(150deg, var(--roam-purple), #4d4295);
    box-shadow: 0 35px 80px rgba(42,50,105,.34);
    text-align: center;
    transform: rotate(-7deg);
}
.roam-ready-passport-cover::before { content: ''; position: absolute; inset: 13px; border: 2px solid rgba(255,255,255,.44); border-radius: 15px; }
.roam-ready-passport-cover span,
.roam-ready-passport-cover small { position: relative; z-index: 2; font-size: .62rem; font-weight: 950; letter-spacing: .16em; }
.roam-ready-passport-cover strong { position: relative; z-index: 2; margin: 1.2rem 0; font-size: clamp(1.8rem, 3vw, 3rem); line-height: .92; }
.roam-ready-passport-cover i { position: relative; z-index: 2; width: 92px; aspect-ratio: 1; display: grid; place-items: center; border: 4px double var(--roam-yellow); border-radius: 50%; color: var(--roam-yellow); font-size: 2rem; font-style: normal; }
.roam-ready-stamp { position: absolute; z-index: 8; width: 112px; aspect-ratio: 1; display: grid; place-items: center; border: 5px double currentColor; border-radius: 50%; font-size: .72rem; font-weight: 950; letter-spacing: .08em; transform: rotate(13deg); }
.roam-ready-stamp.stamp-one { right: 2%; bottom: 8%; color: var(--roam-coral); background: rgba(255,255,255,.72); }
.roam-ready-stamp.stamp-two { left: 2%; bottom: 2%; color: var(--roam-blue); background: rgba(255,255,255,.72); transform: rotate(-12deg); }
.roam-ready-brief {
    position: absolute;
    z-index: 10;
    right: max(1.5rem, calc((100vw - 1380px) / 2 + 1.5rem));
    bottom: 2.8rem;
    width: min(570px, 42vw);
    padding: 1.2rem 1.35rem;
    border: 1px solid rgba(23,52,91,.16);
    border-radius: 20px;
    background: rgba(255,255,255,.94);
    box-shadow: 0 22px 60px rgba(34,66,96,.16);
}
.roam-ready-brief > span { color: #6a7083; font-size: .62rem; font-weight: 950; letter-spacing: .1em; text-transform: uppercase; }
.roam-ready-brief blockquote { margin: .7rem 0; color: var(--roam-navy); font-size: 1rem; font-weight: 850; }
.roam-ready-brief ol { margin: 0; padding: 0; display: flex; gap: .45rem; flex-wrap: wrap; list-style: none; }
.roam-ready-brief li a { padding: .42rem .58rem; display: inline-flex; gap: .35rem; border: 1px solid #d5e0e8; border-radius: 8px; color: #3d5873; background: #fff; font-size: .68rem; font-weight: 850; text-decoration: none; }
.roam-ready-brief li b { font-weight: 900; }
.roam-ready-brief p { margin: .75rem 0 0; color: #687a8c; font-size: .68rem; }
.roam-ready-progress-dock {
    position: relative;
    z-index: 12;
    max-width: 1240px;
    margin: -16px auto 0;
    padding: 1.3rem 1.5rem;
    display: grid;
    grid-template-columns: auto minmax(130px, 1fr) auto auto;
    gap: 1.4rem;
    align-items: center;
    border: 1px solid #d7e2e9;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 18px 60px rgba(28,61,93,.14);
}
.roam-ready-progress-copy { display: grid; }
.roam-ready-progress-copy span { color: #66798d; font-size: .62rem; font-weight: 950; letter-spacing: .1em; text-transform: uppercase; }
.roam-ready-progress-copy strong { color: var(--roam-navy); font-size: .92rem; }
.roam-ready-progress-copy b { color: var(--roam-coral); }
.roam-ready-progress-track { height: 11px; overflow: hidden; border-radius: 999px; background: #e8eef3; }
.roam-ready-progress-track i { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--roam-coral), var(--roam-yellow), var(--roam-green)); transition: width .35s ease; }
.roam-ready-progress-stamps { display: flex; gap: .5rem; }
.roam-ready-progress-stamps span { min-width: 62px; display: grid; justify-items: center; color: #8a98a7; font-size: .58rem; font-weight: 850; }
.roam-ready-progress-stamps b { width: 30px; aspect-ratio: 1; display: grid; place-items: center; border: 2px solid #cad5dd; border-radius: 50%; color: #8a98a7; background: #f8fafb; }
.roam-ready-progress-stamps span.is-complete { color: var(--roam-green); }
.roam-ready-progress-stamps span.is-complete b { border-color: var(--roam-green); color: #fff; background: var(--roam-green); }
.roam-ready-progress-dock > button { padding: .55rem .7rem; border: 1px solid #d6dfe6; border-radius: 9px; color: #7c5360; background: #fff; font-size: .64rem; font-weight: 900; cursor: pointer; }
.roam-ready-mode,
.roam-ready-map,
.roam-ready-passport,
.roam-ready-public-vote,
.roam-ready-exit { max-width: 1380px; margin: auto; padding: clamp(5rem, 8vw, 8rem) 1.5rem; }
.roam-ready-section-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, .55fr); gap: 2rem; align-items: end; }
.roam-ready-section-heading h2,
.roam-ready-notes h2,
.roam-ready-public-vote h2 { margin: 0; color: var(--roam-navy); font-size: clamp(2.8rem, 5vw, 5.7rem); letter-spacing: -.055em; line-height: .93; }
.roam-ready-section-heading > p { margin: 0; color: var(--roam-muted); font-size: .94rem; line-height: 1.7; }
.roam-ready-section-heading.light h2 { color: #fff; }
.roam-ready-section-heading.light > p { color: #bed2df; }
.roam-ready-mode-grid { margin-top: 3rem; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.roam-ready-mode-grid button {
    min-height: 250px;
    padding: 1.6rem;
    display: grid;
    align-content: start;
    justify-items: start;
    border: 2px solid #d9e3ea;
    border-radius: 24px;
    color: var(--roam-ink);
    background: #fff;
    text-align: left;
    cursor: pointer;
    box-shadow: 0 12px 32px rgba(23,52,91,.07);
}
.roam-ready-mode-grid button:hover,
.roam-ready-mode-grid button:focus-visible { transform: translateY(-3px); border-color: var(--roam-blue); }
.roam-ready-mode-grid button.is-active { border-color: var(--roam-navy); box-shadow: 0 0 0 5px rgba(47,118,197,.12), 0 18px 38px rgba(23,52,91,.12); }
.roam-ready-mode-icon { width: 64px; aspect-ratio: 1; display: grid; place-items: center; border-radius: 19px; color: #fff; font-size: 1.8rem; box-shadow: 0 7px 0 rgba(23,52,91,.12); }
.roam-ready-mode-icon.sun { background: var(--roam-orange); }
.roam-ready-mode-icon.family { background: var(--roam-green); }
.roam-ready-mode-icon.compass { background: var(--roam-purple); }
.roam-ready-mode-grid small { margin-top: 1.4rem; color: #7c8b9b; font-size: .62rem; font-weight: 950; letter-spacing: .1em; text-transform: uppercase; }
.roam-ready-mode-grid strong { margin-top: .3rem; color: var(--roam-navy); font-size: 1.45rem; }
.roam-ready-mode-grid p { margin: .7rem 0 0; color: var(--roam-muted); font-size: .82rem; line-height: 1.6; }
.roam-ready-mode-message { margin: 1rem 0 0; padding: .9rem 1rem; border-left: 5px solid var(--roam-yellow); color: #586d80; background: #fff8db; font-size: .82rem; }
.roam-ready-map { position: relative; }
.roam-ready-map-line { position: absolute; left: 8%; right: 8%; top: 58%; height: 0; border-top: 4px dashed #d4dee6; }
.roam-ready-map-grid { position: relative; z-index: 2; margin-top: 3.5rem; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.roam-ready-map-card {
    min-height: 310px;
    padding: 1.4rem;
    display: grid;
    align-content: start;
    border: 2px solid #fff;
    border-radius: 28px;
    color: var(--roam-ink);
    box-shadow: 0 18px 45px rgba(29,60,91,.13);
    text-decoration: none;
    transform: rotate(-1deg);
}
.roam-ready-map-card:nth-child(even) { transform: rotate(1deg) translateY(22px); }
.roam-ready-map-card.source { background: #dff3ff; }
.roam-ready-map-card.plan { background: #fff1bd; }
.roam-ready-map-card.scam { background: #ffe0e1; }
.roam-ready-map-card.help { background: #dff5e8; }
.roam-ready-map-card:hover,
.roam-ready-map-card:focus-visible { transform: translateY(-5px) rotate(0); }
.roam-ready-map-card > span { color: #677b8d; font-size: .62rem; font-weight: 950; letter-spacing: .1em; text-transform: uppercase; }
.roam-ready-map-card > i { width: 78px; aspect-ratio: 1; margin: 1.3rem 0; display: grid; place-items: center; border: 4px solid #fff; border-radius: 50%; color: #fff; font-size: 2rem; font-style: normal; box-shadow: 0 8px 0 rgba(23,52,91,.1); }
.roam-ready-map-card.source > i { background: var(--roam-blue); }
.roam-ready-map-card.plan > i { background: var(--roam-orange); }
.roam-ready-map-card.scam > i { background: var(--roam-coral); }
.roam-ready-map-card.help > i { background: var(--roam-green); }
.roam-ready-map-card > strong { color: var(--roam-navy); font-size: 1.45rem; line-height: 1.05; }
.roam-ready-map-card > p { margin: .8rem 0 0; color: #5e7284; font-size: .82rem; line-height: 1.55; }
.roam-ready-map-card > b { margin-top: auto; padding-top: 1.1rem; color: #8794a1; font-size: .65rem; }
.roam-ready-map-card.is-complete > b { color: var(--roam-green); }
.roam-ready-map-card.is-complete > b::before { content: '✓ '; }
.roam-ready-challenges { padding: clamp(5rem, 8vw, 8rem) max(1.5rem, calc((100vw - 1380px) / 2 + 1.5rem)); color: #fff; background: var(--roam-navy); }
.roam-ready-challenge {
    margin-top: 2rem;
    padding: clamp(1.2rem, 3vw, 2rem);
    display: grid;
    grid-template-columns: 140px minmax(0, 1fr);
    gap: 1.5rem;
    border: 1px solid rgba(255,255,255,.15);
    border-radius: 28px;
    background: #fff;
    color: var(--roam-ink);
    box-shadow: 0 24px 65px rgba(0,0,0,.18);
}
.roam-ready-challenge:first-of-type { margin-top: 3rem; }
.roam-ready-challenge-number { min-height: 160px; padding: 1rem; display: grid; place-items: center; align-content: center; border-radius: 20px; color: #fff; text-align: center; }
.roam-ready-challenge.source .roam-ready-challenge-number { background: var(--roam-blue); }
.roam-ready-challenge.plan .roam-ready-challenge-number { background: var(--roam-orange); }
.roam-ready-challenge.scam .roam-ready-challenge-number { background: var(--roam-coral); }
.roam-ready-challenge.help .roam-ready-challenge-number { background: var(--roam-green); }
.roam-ready-challenge-number span { font-size: 3.4rem; font-weight: 950; line-height: 1; }
.roam-ready-challenge-number small { font-size: .62rem; font-weight: 950; letter-spacing: .1em; text-transform: uppercase; }
.roam-ready-challenge-body { min-width: 0; }
.roam-ready-challenge-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1.5rem; align-items: start; }
.roam-ready-challenge-heading p { margin: 0 0 .3rem; color: #7d8a98; font-size: .63rem; font-weight: 950; letter-spacing: .1em; text-transform: uppercase; }
.roam-ready-challenge-heading h3 { max-width: 850px; margin: 0; color: var(--roam-navy); font-size: clamp(1.6rem, 3vw, 3rem); line-height: 1.02; }
.roam-ready-mission-badge { padding: .5rem .7rem; border-radius: 999px; color: #6e7c8c; background: #eef2f5; font-size: .65rem; font-weight: 900; white-space: nowrap; }
.roam-ready-challenge.is-complete .roam-ready-mission-badge { color: #1d6b4c; background: #dff5e8; }
.roam-ready-source-choices { margin-top: 1.5rem; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; }
.roam-ready-source-choices button {
    min-height: 180px;
    padding: 1rem;
    display: grid;
    align-content: start;
    justify-items: start;
    border: 2px solid #dde5eb;
    border-radius: 18px;
    color: var(--roam-ink);
    background: #fbfcfd;
    text-align: left;
    cursor: pointer;
}
.roam-ready-source-choices button:hover,
.roam-ready-source-choices button:focus-visible { border-color: var(--roam-blue); }
.roam-ready-source-choices button.is-correct { border-color: var(--roam-green); background: #edf9f2; }
.roam-ready-source-choices button.is-wrong { border-color: var(--roam-coral); background: #fff1f1; }
.roam-ready-source-choices span { min-width: 50px; padding: .55rem .65rem; display: inline-grid; place-items: center; border-radius: 12px; color: #fff; background: var(--roam-blue); font-size: .8rem; font-weight: 950; }
.roam-ready-source-choices strong { margin-top: 1.2rem; color: var(--roam-navy); font-size: 1rem; }
.roam-ready-source-choices small { margin-top: .5rem; color: var(--roam-muted); font-size: .72rem; line-height: 1.5; }
.roam-ready-feedback { margin-top: 1rem; padding: .85rem 1rem; border-radius: 12px; color: #5a6d80; background: #eef5fa; font-size: .78rem; }
.roam-ready-feedback.is-good { color: #1f684c; background: #e3f6ec; }
.roam-ready-feedback.is-bad { color: #8d3f49; background: #ffebed; }
.roam-ready-planner { margin-top: 1.5rem; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) auto; gap: .8rem; align-items: end; }
.roam-ready-planner label { display: grid; gap: .4rem; color: #657487; font-size: .66rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.roam-ready-planner select { width: 100%; min-height: 48px; padding: .7rem .8rem; border: 1px solid #cfdae3; border-radius: 11px; color: var(--roam-navy); background: #fff; font-size: .8rem; font-weight: 800; text-transform: none; }
.roam-ready-planner button,
.roam-ready-check-pack { min-height: 48px; padding: .75rem 1rem; border: 0; border-radius: 11px; color: #fff; background: var(--roam-navy); font-size: .75rem; font-weight: 950; cursor: pointer; }
.roam-ready-plan-card { margin-top: 1.2rem; overflow: hidden; border: 2px dashed #e2b35a; border-radius: 18px; background: #fff9e5; }
.roam-ready-plan-card-top { padding: 1rem 1.1rem; display: grid; grid-template-columns: auto 1fr auto; gap: .8rem; align-items: center; color: var(--roam-navy); background: #ffe8a0; }
.roam-ready-plan-card-top span { padding: .35rem .5rem; border-radius: 8px; color: #fff; background: var(--roam-orange); font-size: .62rem; font-weight: 950; }
.roam-ready-plan-card-top strong { font-size: .92rem; }
.roam-ready-plan-card-top i { font-style: normal; font-size: 1.5rem; }
.roam-ready-plan-card ul { margin: 0; padding: 1.1rem 1.2rem 0 2.4rem; columns: 2; column-gap: 2rem; }
.roam-ready-plan-card li { margin-bottom: .65rem; break-inside: avoid; color: #52697d; font-size: .78rem; }
.roam-ready-plan-card > p { margin: .5rem 1.2rem 1.1rem; color: #7b6e56; font-size: .68rem; }
.roam-ready-scam-grid { margin-top: 1.5rem; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.roam-ready-scam-grid article { padding: 1rem; border: 2px solid #e0e6eb; border-radius: 17px; background: #fbfcfd; }
.roam-ready-scam-grid article.is-correct { border-color: var(--roam-green); background: #eff9f3; }
.roam-ready-scam-grid article.is-wrong { border-color: var(--roam-coral); background: #fff0f1; }
.roam-ready-scam-grid article > span { color: #7b8896; font-size: .62rem; font-weight: 950; letter-spacing: .1em; text-transform: uppercase; }
.roam-ready-scam-grid article > p { min-height: 62px; margin: .65rem 0 1rem; color: var(--roam-navy); font-size: .86rem; font-weight: 750; line-height: 1.5; }
.roam-ready-scam-grid article > div { display: flex; gap: .5rem; }
.roam-ready-scam-grid button { flex: 1; padding: .65rem .7rem; border: 1px solid #d1dce4; border-radius: 9px; color: #52677a; background: #fff; font-size: .66rem; font-weight: 900; cursor: pointer; }
.roam-ready-scam-grid button.is-selected { color: #fff; border-color: var(--roam-navy); background: var(--roam-navy); }
.roam-ready-scam-grid small { display: block; margin-top: .7rem; color: #748292; font-size: .66rem; }
.roam-ready-help-grid { margin-top: 1.5rem; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.roam-ready-help-grid label { min-height: 155px; padding: 1rem; display: grid; align-content: start; border: 2px solid #dce5eb; border-radius: 17px; background: #fbfcfd; cursor: pointer; }
.roam-ready-help-grid label:has(input:checked) { border-color: var(--roam-green); background: #eff9f3; }
.roam-ready-help-grid input { position: absolute; width: 1px; height: 1px; margin: 0; opacity: 0; pointer-events: none; }
.roam-ready-help-grid span { width: 42px; aspect-ratio: 1; display: grid; place-items: center; border-radius: 11px; color: #fff; background: var(--roam-green); font-size: 1.1rem; font-weight: 950; }
.roam-ready-help-grid strong { margin-top: .8rem; color: var(--roam-navy); font-size: .9rem; }
.roam-ready-help-grid small { margin-top: .4rem; color: var(--roam-muted); font-size: .68rem; line-height: 1.4; }
.roam-ready-check-pack { margin-top: 1rem; background: var(--roam-green); }
.roam-ready-passport { background: var(--roam-paper); }
.roam-ready-passport-book { margin-top: 3rem; display: grid; grid-template-columns: .85fr 1.15fr; border: 14px solid var(--roam-purple); border-radius: 32px; background: #fffdf5; box-shadow: 0 28px 70px rgba(46,47,99,.2); }
.roam-ready-passport-left,
.roam-ready-passport-right { min-height: 470px; padding: clamp(1.5rem, 4vw, 3.3rem); }
.roam-ready-passport-left { position: relative; border-right: 2px dashed #cabfe8; background: linear-gradient(145deg, #f3edff, #fffdf8); }
.roam-ready-passport-left::before { content: 'READY · SET · ROAM'; position: absolute; left: 1rem; bottom: 1rem; color: rgba(119,102,198,.12); font-size: clamp(2.2rem, 5vw, 5rem); font-weight: 950; transform: rotate(-90deg); transform-origin: left bottom; }
.roam-ready-passport-identity { position: relative; z-index: 2; display: grid; grid-template-columns: 110px 1fr; gap: 1rem; align-items: center; }
.roam-ready-passport-photo { position: relative; aspect-ratio: .82; overflow: hidden; border: 5px solid #fff; border-radius: 18px; background: var(--roam-sky); box-shadow: 0 8px 20px rgba(23,52,91,.12); }
.roam-ready-passport-photo i { position: absolute; left: 50%; top: 20%; width: 46px; aspect-ratio: 1; border-radius: 50%; background: #ffd8b7; transform: translateX(-50%); }
.roam-ready-passport-photo b { position: absolute; left: 18%; right: 18%; bottom: -6%; height: 55%; border-radius: 45% 45% 0 0; background: var(--roam-blue); }
.roam-ready-passport-identity > div:last-child { display: grid; }
.roam-ready-passport-identity span { color: #786d9a; font-size: .62rem; font-weight: 950; letter-spacing: .1em; }
.roam-ready-passport-identity strong { margin-top: .4rem; color: var(--roam-navy); font-size: 1.35rem; }
.roam-ready-passport-identity small { margin-top: .3rem; color: var(--roam-muted); }
.roam-ready-passport-left blockquote { position: relative; z-index: 2; margin: 2.5rem 0 0; color: #4d5471; font-size: clamp(1.2rem, 2.2vw, 2rem); font-weight: 750; line-height: 1.35; }
.roam-ready-passport-code { position: absolute; left: 3rem; right: 3rem; bottom: 2rem; z-index: 2; padding-top: .8rem; border-top: 1px solid #d7d0e9; color: #7a7290; font-family: monospace; font-size: .72rem; letter-spacing: .12em; }
.roam-ready-passport-right { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; align-content: center; }
.roam-ready-passport-stamp { min-height: 150px; padding: 1rem; display: grid; place-items: center; align-content: center; border: 4px double #c6c1cb; border-radius: 50%; color: #a4a0aa; text-align: center; transform: rotate(-5deg); opacity: .55; transition: .25s ease; }
.roam-ready-passport-stamp:nth-child(even) { transform: rotate(6deg); }
.roam-ready-passport-stamp span { font-size: .62rem; font-weight: 950; }
.roam-ready-passport-stamp strong { font-size: 1rem; line-height: 1; }
.roam-ready-passport-stamp small { margin-top: .4rem; font-size: .6rem; }
.roam-ready-passport-stamp.is-complete { opacity: 1; transform: rotate(0) scale(1.03); }
.roam-ready-passport-stamp.source.is-complete { color: var(--roam-blue); border-color: var(--roam-blue); background: #e9f5ff; }
.roam-ready-passport-stamp.plan.is-complete { color: #c56b2c; border-color: var(--roam-orange); background: #fff1e2; }
.roam-ready-passport-stamp.scam.is-complete { color: #b8424c; border-color: var(--roam-coral); background: #ffeaec; }
.roam-ready-passport-stamp.help.is-complete { color: #237451; border-color: var(--roam-green); background: #e6f7ee; }
.roam-ready-passport-complete { position: absolute; inset: 20% 14%; z-index: 5; padding: 1.2rem; display: grid; place-items: center; align-content: center; border: 8px double var(--roam-green); border-radius: 28px; color: var(--roam-green); background: rgba(255,255,255,.94); text-align: center; transform: rotate(-4deg) scale(.7); opacity: 0; pointer-events: none; transition: .35s ease; }
.roam-ready-passport-complete.is-visible { transform: rotate(-4deg) scale(1); opacity: 1; }
.roam-ready-passport-complete span { font-size: 3rem; }
.roam-ready-passport-complete strong { font-size: clamp(2rem, 4vw, 4rem); line-height: .9; }
.roam-ready-passport-complete small { margin-top: .8rem; font-weight: 850; }
.roam-ready-notes { padding: clamp(5rem, 8vw, 8rem) max(1.5rem, calc((100vw - 1380px) / 2 + 1.5rem)); color: #fff; background: #172b4a; }
.roam-ready-notes > header { max-width: 980px; }
.roam-ready-notes h2 { color: #fff; }
.roam-ready-notes > header > p:last-child { max-width: 790px; margin: 1.4rem 0 0; color: #b8c9d8; font-size: .94rem; line-height: 1.7; }
.roam-ready-reference-grid { margin-top: 3rem; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.roam-ready-reference-grid a { min-width: 0; padding: 1.35rem; display: grid; grid-template-columns: auto 1fr auto; gap: .8rem; border: 1px solid rgba(255,255,255,.17); border-radius: 18px; color: #fff; background: rgba(255,255,255,.05); text-decoration: none; }
.roam-ready-reference-grid a:hover,
.roam-ready-reference-grid a:focus-visible { border-color: var(--roam-yellow); background: rgba(255,255,255,.08); }
.roam-ready-reference-grid a > span { color: var(--roam-yellow); font-size: 1rem; font-weight: 950; }
.roam-ready-reference-grid strong { font-size: 1rem; }
.roam-ready-reference-grid p { margin: .65rem 0 0; color: #b7c7d5; font-size: .78rem; line-height: 1.55; }
.roam-ready-reference-grid i { font-style: normal; }
.roam-ready-method-note { max-width: 940px; margin: 3rem auto 0; padding: clamp(1.5rem, 4vw, 3rem); border: 1px solid rgba(255,255,255,.17); border-radius: 22px; background: rgba(255,255,255,.05); text-align: center; }
.roam-ready-method-note > span { color: var(--roam-yellow); font-size: .65rem; font-weight: 950; letter-spacing: .12em; text-transform: uppercase; }
.roam-ready-method-note blockquote { margin: 1.1rem 0 0; font-size: clamp(1.5rem, 2.8vw, 2.7rem); font-weight: 800; line-height: 1.25; }
.roam-ready-method-note p { max-width: 760px; margin: 1.1rem auto 0; color: #b9cad8; font-size: .82rem; line-height: 1.65; }
.roam-ready-public-vote { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 3rem; align-items: center; }
.roam-ready-public-vote h2 { max-width: 14ch; }
.roam-ready-public-vote > div > p:last-child { max-width: 720px; margin: 1rem 0 0; color: var(--roam-muted); }
.roam-ready-public-vote .website-demo-vote { padding: 1.2rem; border: 1px solid var(--roam-line); border-radius: 17px; background: #fff; }
.roam-ready-exit { padding-top: 0; display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.roam-ready-exit a { color: var(--roam-navy); font-weight: 900; text-decoration: none; }
@media (max-width: 1180px) {
    .roam-ready-masthead { grid-template-columns: 1fr auto; }
    .roam-ready-masthead nav { display: none; }
    .roam-ready-hero { grid-template-columns: 1fr; padding-bottom: 15rem; }
    .roam-ready-hero-copy { max-width: 890px; }
    .roam-ready-hero-visual { min-height: 500px; }
    .roam-ready-brief { left: 1.5rem; right: 1.5rem; width: auto; bottom: 2.5rem; }
    .roam-ready-progress-dock { margin-left: 1.5rem; margin-right: 1.5rem; grid-template-columns: auto 1fr auto; }
    .roam-ready-progress-stamps { grid-column: 1 / -1; justify-content: center; }
    .roam-ready-map-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .roam-ready-map-line { display: none; }
    .roam-ready-planner { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .roam-ready-planner button { grid-column: 1 / -1; }
    .roam-ready-reference-grid { grid-template-columns: 1fr; }
}
@media (max-width: 820px) {
    .roam-ready-section-heading,
    .roam-ready-public-vote { grid-template-columns: 1fr; align-items: start; }
    .roam-ready-mode-grid { grid-template-columns: 1fr; }
    .roam-ready-mode-grid button { min-height: 0; }
    .roam-ready-challenge { grid-template-columns: 1fr; }
    .roam-ready-challenge-number { min-height: 100px; grid-template-columns: auto auto; gap: .8rem; }
    .roam-ready-source-choices,
    .roam-ready-help-grid { grid-template-columns: 1fr; }
    .roam-ready-scam-grid { grid-template-columns: 1fr; }
    .roam-ready-passport-book { grid-template-columns: 1fr; }
    .roam-ready-passport-left { border-right: 0; border-bottom: 2px dashed #cabfe8; }
}
@media (max-width: 620px) {
    .roam-ready-disclaimer { text-align: left; }
    .roam-ready-masthead { grid-template-columns: 1fr; gap: .7rem; }
    .roam-ready-back { display: none; }
    .roam-ready-brand small { display: none; }
    .roam-ready-hero { min-height: 0; padding-top: 3.5rem; padding-bottom: 17rem; }
    .roam-ready-hero h1 { font-size: clamp(3.8rem, 17vw, 5.8rem); }
    .roam-ready-hero-copy > p:not(.roam-ready-eyebrow) { font-size: .94rem; }
    .roam-ready-hero-visual { min-height: 430px; }
    .roam-ready-passport-cover { left: 8%; width: 70%; }
    .roam-ready-sun { width: 105px; }
    .roam-ready-stamp { width: 86px; }
    .roam-ready-progress-dock { grid-template-columns: 1fr auto; }
    .roam-ready-progress-track { grid-column: 1 / -1; }
    .roam-ready-progress-stamps { overflow-x: auto; justify-content: flex-start; }
    .roam-ready-map-grid { grid-template-columns: 1fr; }
    .roam-ready-map-card:nth-child(even) { transform: none; }
    .roam-ready-challenge-heading { grid-template-columns: 1fr; }
    .roam-ready-mission-badge { justify-self: start; }
    .roam-ready-planner { grid-template-columns: 1fr; }
    .roam-ready-planner button { grid-column: auto; }
    .roam-ready-plan-card ul { columns: 1; }
    .roam-ready-passport-book { border-width: 8px; }
    .roam-ready-passport-left,
    .roam-ready-passport-right { min-height: 420px; padding: 1.2rem; }
    .roam-ready-passport-right { gap: .6rem; }
    .roam-ready-passport-stamp { min-height: 125px; }
    .roam-ready-passport-identity { grid-template-columns: 86px 1fr; }
    .roam-ready-passport-code { left: 1.2rem; right: 1.2rem; }
    .roam-ready-public-vote .website-demo-vote { align-items: flex-start; flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
    .roam-ready-primary,
    .roam-ready-mode-grid button,
    .roam-ready-map-card,
    .roam-ready-passport-stamp,
    .roam-ready-passport-complete,
    .roam-ready-progress-track i { transition: none; }
}
