/* Shared reading journey: the same paper, plum and garden palette as Qoops. */
.reader-welcome {
    max-width:900px;
    margin:36px auto 64px;
    padding:0 24px;
}

.reader-welcome-heading,.welcome-step-heading,.registration-welcome {
    display:flex;
    align-items:center;
    gap:24px;
}

.reader-welcome-heading h1 {
    font-size:clamp(2rem,4vw,3.3rem);
    line-height:1.08;
    margin:10px 0;
}

.reader-welcome-heading p {
    max-width:590px;
}

.reader-welcome-heading img,.welcome-step-heading img,.registration-welcome img,.daily-adventure>img,.adventure-hero-art img,.adventure-trail img {
    object-fit:contain;
    image-rendering:pixelated;
    flex-shrink:0;
}

.welcome-steps {
    display:flex;
    gap:10px;
    padding:0;
    margin:24px 0;
    list-style:none;
}

.welcome-steps li {
    flex:1;
    border-bottom:3px solid #dccfbd;
    padding:12px;
    color:#695373;
    font-weight:700;
}

.welcome-steps [aria-current] {
    color:#2f5945;
    border-color:#2f5945;
}

.welcome-form {
    border:1px solid #ded1ba;
    background:#fffaf2;
    border-radius:24px;
    padding:28px;
    box-shadow:0 6px 0 #e9decb;
}

.welcome-step-heading h2 {
    margin:0 0 8px;
    font-size:1.7rem;
    line-height:1.2;
}

.welcome-step-heading p {
    margin:6px 0;
}

.taste-choices>div,.intent-choices>div {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
    margin:24px 0;
}

.taste-choices>div>div,.intent-choices>div>div {
    margin:0;
}

.taste-choices label,.intent-choices label {
    display:flex;
    align-items:center;
    gap:10px;
    padding:16px;
    border:1px solid #d6c5dd;
    background:#f0e6f3;
    border-radius:14px;
    font-weight:600;
    cursor:pointer;
    height:100%;
    line-height:1.35;
}

.taste-choices label:has(input:checked),.intent-choices label:has(input:checked) {
    background:#dcebd3;
    border-color:#416f4d;
    box-shadow:0 0 0 1px #416f4d;
}

.taste-choices input,.intent-choices input {
    accent-color:#315d48;
    flex-shrink:0;
    width:18px;
    height:18px;
}

.intent-choices>div {
    grid-template-columns:repeat(2,minmax(0,1fr));
}

.welcome-actions {
    display:flex;
    gap:12px;
    flex-wrap:wrap;
}

.welcome-privacy {
    margin:24px auto;
    color:#695373;
    font-size:.85rem;
    max-width:730px;
    text-align:center;
}

.welcome-privacy .quiet-link {
    margin-inline:auto;
    border:0;
    background:transparent;
    text-decoration:underline;
    font:inherit;
    cursor:pointer;
}

.registration-welcome {
    gap:12px;
}

.registration-welcome h1 {
    margin:0;
    font-size:2rem;
}

.registration-welcome .eyebrow {
    margin:0 0 6px;
}

.registration-promises {
    display:flex;
    gap:7px;
    flex-wrap:wrap;
    margin:18px 0;
}

.registration-promises span {
    padding:6px 10px;
    background:#e8edd7;
    border-radius:8px;
    font-size:.76rem;
    color:#315d48;
}

.registration-promises span:nth-child(2) {
    background:#f5dfd3;
    color:#713c36;
}

.registration-promises span:nth-child(3) {
    background:#eee2f2;
    color:#594269;
}

.daily-adventure {
    display:grid;
    grid-template-columns:88px minmax(0,1fr) auto;
    align-items:center;
    gap:14px;
    background:#eee5f1;
    border:1px solid #cebad8;
    border-radius:18px;
    padding:16px 20px;
    margin:0 0 20px;
    box-shadow:0 4px 0 #e2d4e7;
}

.daily-adventure h2 {
    font-size:1.3rem;
    margin:2px 0 5px;
}

.daily-adventure p {
    margin:0;
    font-size:.85rem;
}

.daily-adventure .eyebrow {
    font-size:.66rem;
    color:#695373;
}

.daily-adventure progress {
    width:100%;
    height:7px;
    display:block;
    margin-top:10px;
    accent-color:#77518d;
}

.daily-adventure .button {
    font-size:.8rem;
    white-space:normal;
}

.daily-adventure-start {
    grid-column:1/-1;
    border-top:1px solid #d5c5dd;
    padding-top:10px;
    display:flex;
    justify-content:space-between;
    gap:12px;
    font-size:.78rem;
}

.daily-adventure-start a {
    color:#4b355b;
    font-weight:600;
}

.adventure-hero {
    display:grid;
    grid-template-columns:1fr 230px;
    align-items:center;
    gap:24px;
    padding:32px 38px;
    background:#eee3f3;
    border:1px solid #cdb5d8;
    border-radius:24px;
    box-shadow:0 6px 0 #dfd0e6;
    margin-bottom:28px;
}

.adventure-hero h1 {
    font-size:clamp(2rem,3.7vw,3.4rem);
    line-height:1.07;
    margin:10px 0 16px;
    max-width:680px;
}

.adventure-hero p {
    max-width:560px;
}

.adventure-hero .eyebrow {
    color:#704481;
}

.adventure-hero-links {
    display:flex;
    gap:22px;
    align-items:center;
    flex-wrap:wrap;
    margin-top:22px;
}

.adventure-hero-links>a:last-child {
    color:#5a3b67;
    font-size:.85rem;
    font-weight:700;
}

.adventure-hero-art {
    text-align:center;
    align-self:center;
}

.adventure-hero-art img {
    width:192px;
    height:192px;
}

.adventure-hero-art span {
    display:block;
    font-size:.8rem;
    font-weight:600;
    color:#5a3b67;
}

.adventure-filter-drawer {
    border-bottom:1px solid #decebe;
    padding:12px 0;
    margin-bottom:8px;
}

.adventure-filter-drawer summary {
    cursor:pointer;
    font-size:.85rem;
    color:#695373;
}

.adventure-filter-drawer .adventure-tools {
    margin:16px 0 6px;
}

.adventure-trail {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:12px;
    margin:24px 0 32px;
}

.adventure-trail>div {
    display:flex;
    align-items:center;
    gap:10px;
    background:#f0ead5;
    border:1px solid #dcd1b3;
    border-radius:14px;
    padding:10px;
}

.adventure-trail>div:nth-child(2) {
    background:#f7e2d9;
    border-color:#e4c2b6;
}

.adventure-trail>div:nth-child(3) {
    background:#e8e1f1;
    border-color:#d3c5e0;
}

.adventure-trail p {
    margin:0;
    font-size:.85rem;
}

.adventure-trail strong,.adventure-trail span {
    display:block;
}

.adventure-trail span {
    font-size:.75rem;
    margin-top:5px;
}

.adventure-page .adventure-card {
    border-radius:16px;
    border-top:4px solid #70986a;
    box-shadow:0 3px 0 #e5dccb;
    background:#fffbf4;
}

.adventure-page .adventure-card[data-family="social"] {
    border-top-color:#c88372;
}

.adventure-page .adventure-card.is-ready {
    background:#f7efca;
    border-color:#b89945;
}

.adventure-page .adventure-card.is-ready .button {
    background:#67467e;
}

.adventure-page.just-rewarded .adventure-notice:not(:empty) {
    background:#f5e6a9;
    color:#503d24;
    border:2px solid #c5a54d;
    padding:18px;
    border-radius:16px;
    animation:reward-arrives .45s ease-out;
}

.adventure-page .adventure-tabs {
    scroll-margin-top:100px;
}

.adventure-page .adventure-summary {
    border-radius:18px;
}

.experience-promise {
    background:#eee4f0;
    border:1px solid #d9c4de;
    border-radius:24px;
    padding:28px 32px;
    margin:36px 0;
}

.experience-promise>header {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
}

.experience-promise h2 {
    font-size:clamp(1.7rem,3vw,2.6rem);
    margin:8px 0;
}

.experience-promise .adventure-trail {
    margin-bottom:18px;
}

.experience-promise>p {
    font-size:.85rem;
}

.comparison-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
    margin:28px 0;
}

.comparison-card {
    padding:24px;
    border:1px solid #ddcbbb;
    border-radius:18px;
    background:#fffaf3;
}

.comparison-card h2 {
    font-size:1.5rem;
    margin:0 0 12px;
}

.comparison-card p {
    font-size:.95rem;
}

.comparison-card a {
    color:#315d48;
    font-weight:700;
}

.comparison-choice {
    background:#e4ead6;
    border:1px solid #a7bd99;
    border-radius:22px;
    padding:30px;
    margin:30px 0;
}

.comparison-choice h2 {
    font-size:2rem;
    margin-top:0;
}

.comparison-note {
    font-size:.85rem;
    color:#695373;
}

.comparison-hero {
    max-width:850px;
}

.comparison-hero h1 {
    font-size:clamp(2.2rem,5vw,4rem);
    line-height:1.08;
}

@keyframes reward-arrives {
    from {
        transform:translateY(7px);
        opacity:.4;
    }
    to {
        transform:none;
        opacity:1;
    }
}

@media(prefers-reduced-motion:reduce) {
    .adventure-page.just-rewarded .adventure-notice {
        animation:none;
    }
}

@media(max-width:900px) {
    .daily-adventure {
        grid-template-columns:70px minmax(0,1fr);
    }
    .daily-adventure>img {
        width:70px;
        height:70px;
    }
    .daily-adventure>.button {
        grid-column:2;
        justify-self:start;
    }
    .adventure-trail {
        grid-template-columns:1fr;
    }
    .adventure-hero {
        grid-template-columns:1fr 160px;
        padding:26px;
    }
    .adventure-hero-art img {
        width:150px;
        height:150px;
    }
    .taste-choices>div {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:600px) {
    .reader-welcome {
        padding:0 16px;
        margin-top:24px;
    }
    .reader-welcome-heading {
        gap:12px;
    }
    .reader-welcome-heading>img {
        width:80px;
        height:90px;
    }
    .reader-welcome-heading h1 {
        font-size:2rem;
    }
    .reader-welcome-heading .eyebrow {
        font-size:.65rem;
    }
    .welcome-form {
        padding:20px 16px;
    }
    .welcome-step-heading {
        gap:10px;
        align-items:flex-start;
    }
    .welcome-step-heading>img {
        width:56px;
        height:56px;
    }
    .welcome-step-heading h2 {
        font-size:1.45rem;
    }
    .taste-choices label,.intent-choices label {
        padding:12px;
        font-size:.85rem;
    }
    .intent-choices>div {
        grid-template-columns:1fr;
    }
    .daily-adventure {
        padding:14px;
        gap:10px;
    }
    .daily-adventure-start {
        flex-wrap:wrap;
    }
    .adventure-hero {
        grid-template-columns:1fr;
        padding:22px;
    }
    .adventure-hero-art {
        display:none;
    }
    .adventure-hero h1 {
        font-size:2.2rem;
    }
    .adventure-hero-links {
        gap:16px;
    }
    .adventure-trail {
        gap:8px;
    }
    .experience-promise {
        padding:20px;
        margin:24px 0;
    }
    .experience-promise>header {
        display:block;
    }
    .comparison-grid {
        grid-template-columns:1fr;
    }
    .comparison-choice {
        padding:22px;
    }
    .registration-welcome img {
        width:78px;
        height:80px;
    }
    .registration-welcome h1 {
        font-size:1.65rem;
    }
}

.taste-choices .form-choice-row,.intent-choices .form-choice-row {
    position:relative;
    display:flex;
    align-items:center;
    gap:10px;
    padding:14px;
    background:#f0e6f3;
    border:1px solid #d6c5dd;
    border-radius:14px;
}

.taste-choices .form-choice-row label,.intent-choices .form-choice-row label {
    padding:0;
    border:0;
    border-radius:0;
    background:none;
    box-shadow:none;
    font-weight:600;
    flex:1;
}

.taste-choices .form-choice-row:has(input:checked),.intent-choices .form-choice-row:has(input:checked) {
    background:#dcebd3;
    border-color:#416f4d;
    box-shadow:0 0 0 1px #416f4d;
}

.taste-choices .form-choice-row:focus-within,.intent-choices .form-choice-row:focus-within {
    outline:2px solid #67467e;
    outline-offset:3px;
}

.adventure-hero {
    padding:22px 30px;
}

.adventure-hero h1 {
    font-size:clamp(2rem,3vw,2.8rem);
}

.adventure-hero-art img {
    height:140px;
    width:140px;
}

.adventure-hero-links {
    margin-top:16px;
}

.adventure-next {
    display:flex;
    align-items:center;
    gap:18px;
    padding:18px 22px;
    margin:18px 0;
    background:#f5e9bc;
    border:1px solid #d0b96c;
    border-radius:18px;
}

.adventure-next>img {
    object-fit:contain;
    image-rendering:pixelated;
    flex-shrink:0;
}

.adventure-next>div {
    flex:1;
}

.adventure-next h2 {
    font-size:1.35rem;
    margin:4px 0;
}

.adventure-next p {
    margin:0;
    font-size:.85rem;
}

.adventure-next .eyebrow {
    font-size:.65rem;
}

.adventure-card[id] {
    scroll-margin-top:110px;
}

.taste-choices .form-choice-row label,.intent-choices .form-choice-row label {
    margin:0;
}

.taste-choices input,.intent-choices input {
    min-height:18px;
    padding:0;
    margin:0;
}

.adventure-page[data-view="collection"] .adventure-next {
    display:none;
}

@media(max-width:600px) {
    .adventure-next {
        display:grid;
        grid-template-columns:56px 1fr;
        gap:12px;
        padding:16px;
    }
    .adventure-next img {
        width:56px;
        height:56px;
    }
    .adventure-next .button {
        grid-column:2;
        justify-self:start;
    }
}

.reader-welcome,.adventure-page,.daily-adventure,.comparison-hero,.comparison-grid,.comparison-choice,.comparison-note,.registration-promises,.registration-form {
    font-family:'Avenir Next','Segoe UI',Arial,sans-serif;
    font-size:1rem;
}

.reader-welcome h1,.reader-welcome h2,.adventure-page h1,.adventure-page h2,.adventure-page h3,.daily-adventure h2,.comparison-hero h1,.comparison-grid h2,.comparison-choice h2 {
    font-family:Georgia,'Times New Roman',serif;
}

.reader-welcome .eyebrow,.adventure-page .eyebrow {
    font-size:.7rem;
}

.adventure-hero-art {
    position:relative;
    padding-bottom:8px;
}

.adventure-hero-art .adventure-hero-village {
    display:block;
    width:230px;
    height:176px;
    object-fit:cover;
    border:3px solid #fffaf2;
    border-radius:18px;
    box-shadow:0 4px 0 #cdb5d8;
}

.adventure-hero-art .adventure-hero-treasure {
    position:absolute;
    right:-12px;
    bottom:24px;
    width:92px;
    height:92px;
}

.adventure-hero-art span {
    font-size:.7rem;
    margin-top:12px;
    padding-right:25px;
}

@media(max-width:900px) {
    .adventure-hero-art .adventure-hero-village {
        width:160px;
        height:150px;
    }
    .adventure-hero-art .adventure-hero-treasure {
        width:78px;
        height:78px;
    }
}

@media(max-width:600px) {
    .adventure-hero {
        padding:18px 20px;
        margin-bottom:20px;
    }
    .adventure-hero h1 {
        font-size:1.85rem;
        line-height:1.08;
        margin:8px 0 12px;
    }
    .adventure-hero p {
        font-size:.9rem;
        margin:8px 0;
    }
    .adventure-hero .eyebrow {
        font-size:.6rem;
    }
    .adventure-hero-links {
        gap:12px;
        margin-top:14px;
    }
    .adventure-hero-links .button {
        font-size:.85rem;
    }
    .adventure-hero-links>a:last-child {
        font-size:.8rem;
    }
    .adventure-filter-drawer {
        padding:9px 0;
    }
}

/* Native badge pixels keep the same scale in the suggested quest. */
.adventure-next > img { width:32px; height:32px; flex:0 0 32px; }
