:root {
    --pw-ink: #172033;
    --pw-paper: #fffdf8;
    --pw-canvas: #f3f5f8;
    --pw-coral: #f05a47;
    --pw-leaf: #20a779;
    --pw-sun: #f4b740;
    --pw-violet: #6d5ce7;
    --pw-line: #d9dde5;
    --pw-muted: #616b7d;
    --pw-shadow: 0 5px 0 rgba(23, 32, 51, 0.08), 0 18px 42px rgba(23, 32, 51, 0.11);
    --pw-ease: cubic-bezier(.2, .8, .2, 1);
}

html[data-hackathon-mode="true"] body,
.paper-world-cases {
    color: var(--pw-ink);
    background: var(--pw-canvas);
}

html[data-hackathon-mode="true"] :is(a, button, input, select, summary),
.paper-world-cases :is(a, button, input, select, summary) {
    letter-spacing: 0;
}

html[data-hackathon-mode="true"] :is(a, button, input, select, summary):focus-visible,
.paper-world-cases :is(a, button, input, select, summary):focus-visible {
    outline: 3px solid rgba(109, 92, 231, 0.38);
    outline-offset: 3px;
}

html[data-hackathon-mode="true"] :is(.hackathon-button, .nav-cta-btn, .upload-btn-primary, .upload-selected-primary, .upload-selected-secondary, .hackathon-sample-button, .age-group-card, .hackathon-goal-control button, .case-try, .paper-world-note),
.paper-world-cases :is(.cases-start, .case-try, .cases-cta a) {
    min-width: 44px;
    min-height: 44px;
    transform: translateY(0) scale(1);
    transition: transform 140ms var(--pw-ease), box-shadow 140ms var(--pw-ease), background-color 140ms ease;
}

html[data-hackathon-mode="true"] :is(.hackathon-button, .nav-cta-btn, .upload-btn-primary, .upload-selected-primary, .upload-selected-secondary, .hackathon-sample-button, .age-group-card, .hackathon-goal-control button, .case-try, .paper-world-note):is(:active, .is-pressed),
.paper-world-cases :is(.cases-start, .case-try, .cases-cta a):is(:active, .is-pressed) {
    transform: translateY(2px) scale(.97);
}

/* Landing: one canvas, with copy and notes living around the artwork. */
html[data-hackathon-mode="true"] .companion-landing {
    max-width: none;
    padding: 0;
    background: var(--pw-canvas);
}

html[data-hackathon-mode="true"] .paper-world-hero {
    position: relative;
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    grid-template-rows: auto auto;
    align-items: start;
    min-height: min(920px, calc(100dvh - 68px));
    max-width: 1440px;
    margin: 0 auto;
    padding: clamp(96px, 10vh, 126px) clamp(24px, 5vw, 76px) 88px;
    overflow: clip;
}

html[data-hackathon-mode="true"] .companion-hero__copy {
    position: relative;
    z-index: 3;
    display: grid;
    grid-column: 1 / 13;
    grid-row: 1;
    grid-template-columns: minmax(0, 1fr) minmax(390px, 450px);
    grid-template-rows: auto repeat(4, auto);
    column-gap: clamp(42px, 7vw, 96px);
    width: auto;
    max-width: none;
    padding-top: 0;
    min-width: 0;
}

html[data-hackathon-mode="true"] .companion-hero h1 {
    grid-column: 1;
    grid-row: 2 / 6;
    max-width: 15ch;
    margin: 12px 0 22px;
    color: var(--pw-ink);
    font-family: ui-rounded, "Arial Rounded MT Bold", Arial, sans-serif;
    font-size: 3.3rem;
    line-height: 1.02;
    letter-spacing: 0;
}

html[data-hackathon-mode="true"] .companion-hero__copy > p:not(.hackathon-eyebrow, .companion-boundary, .companion-moments) {
    grid-column: 2;
    grid-row: 2;
    max-width: 36ch;
    color: var(--pw-muted);
    font-size: 1.05rem;
    line-height: 1.58;
}

html[data-hackathon-mode="true"] .companion-moments {
    grid-column: 2;
    grid-row: 3;
    display: flex;
    flex-wrap: wrap;
    gap: 6px 10px;
    align-items: center;
    margin: 24px 0;
    color: var(--pw-ink);
    font-size: .72rem;
    font-weight: 850;
}

html[data-hackathon-mode="true"] .companion-moments span { border-bottom: 3px solid var(--pw-sun); }
html[data-hackathon-mode="true"] .companion-moments i { color: var(--pw-coral); font-style: normal; }

html[data-hackathon-mode="true"] .companion-actions { grid-column: 2; grid-row: 4; align-items: center; }
html[data-hackathon-mode="true"] .companion-boundary { grid-column: 2; grid-row: 5; }
html[data-hackathon-mode="true"] .companion-hero__copy > .hackathon-eyebrow { grid-column: 1 / 3; grid-row: 1; }
html[data-hackathon-mode="true"] .companion-actions .hackathon-button--primary { position: relative; overflow: visible; }
html[data-hackathon-mode="true"] .companion-actions .hackathon-button--primary::after {
    position: absolute;
    right: 16px;
    bottom: 7px;
    left: 16px;
    height: 3px;
    content: "";
    background: var(--pw-paper);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 240ms var(--pw-ease);
}
html[data-hackathon-mode="true"] .companion-actions .hackathon-button--primary:hover::after,
html[data-hackathon-mode="true"] .companion-actions .hackathon-button--primary:focus-visible::after { transform: scaleX(1); }

html[data-hackathon-mode="true"] .companion-compare {
    position: relative;
    z-index: 2;
    grid-column: 2 / 12;
    grid-row: 2;
    align-self: start;
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 10px;
    border: 1px solid rgba(23, 32, 51, .1);
    border-radius: 4px;
    background: var(--pw-paper);
    box-shadow: var(--pw-shadow);
    transform: rotate(.5deg);
}

html[data-hackathon-mode="true"] .companion-compare::before {
    position: absolute;
    z-index: -1;
    inset: 10px -7px -7px 10px;
    border-radius: 4px;
    background: rgba(32, 167, 121, .18);
    content: "";
    pointer-events: none;
}

html[data-hackathon-mode="true"] .companion-compare__stage {
    aspect-ratio: 1.42 / 1;
    overflow: hidden;
    border-radius: 10px;
    background: #fff;
}

html[data-hackathon-mode="true"] .companion-compare__stage > img,
html[data-hackathon-mode="true"] .companion-compare__reveal img {
    object-fit: contain;
    background: #fff;
}

html[data-hackathon-mode="true"] .paper-world-hero.is-in-view .companion-compare::before { animation: pw-paper-breathe 8s ease-in-out infinite; }

.paper-world-notes {
    position: absolute;
    z-index: 6;
    inset: 0;
    width: auto;
    pointer-events: none;
}

.paper-world-note {
    position: absolute;
    width: min(250px, 34%);
    min-height: 54px;
    padding: 12px 14px;
    border: 1px solid rgba(23, 32, 51, .11);
    border-radius: 10px;
    background: var(--pw-paper);
    box-shadow: 0 4px 0 rgba(23, 32, 51, .07), 0 10px 24px rgba(23, 32, 51, .09);
    color: var(--pw-ink);
    text-align: left;
    cursor: pointer;
    pointer-events: auto;
    transform: rotate(-1deg);
    transition: transform 180ms var(--pw-ease), box-shadow 180ms var(--pw-ease);
}
.paper-world-note:nth-child(1) { top: 15%; right: -34px; }
.paper-world-note:nth-child(2) { bottom: 24%; left: -62px; transform: rotate(1deg); }
.paper-world-note:nth-child(3) { right: 8%; bottom: -38px; transform: rotate(-.5deg); }
.paper-world-note > span { display: block; color: var(--pw-muted); font-size: .68rem; font-weight: 850; text-transform: uppercase; }
.paper-world-note > strong { display: none; margin-top: 5px; font-size: .86rem; line-height: 1.38; }
.paper-world-note.is-open { transform: translateX(-10px) rotate(0); box-shadow: 0 5px 0 rgba(23, 32, 51, .09), 0 16px 30px rgba(23, 32, 51, .12); }
.paper-world-note.is-open > strong { display: block; }
.paper-world-note--coral { border-left: 5px solid var(--pw-coral); }
.paper-world-note--leaf { border-left: 5px solid var(--pw-leaf); }
.paper-world-note--sun { border-left: 5px solid var(--pw-sun); }

.paper-world-trail {
    position: absolute;
    z-index: 1;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
}
.paper-world-trail span {
    position: absolute;
    width: 20px;
    height: 4px;
    border-radius: 2px;
    background: var(--pw-coral);
    opacity: 0;
    pointer-events: none;
}
.paper-world-trail span:nth-child(3n + 2) { background: var(--pw-leaf); }
.paper-world-trail span:nth-child(3n) { background: var(--pw-sun); }
.paper-world-trail span.is-live { animation: pw-trail 760ms var(--pw-ease) both; }

html[data-hackathon-mode="true"] :is(.companion-journey, .companion-cases-preview, .companion-safety) {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: clamp(72px, 9vw, 126px) max(24px, calc((100% - 1240px) / 2));
    border: 0;
}
html[data-hackathon-mode="true"] .companion-journey { background: var(--pw-paper); }
html[data-hackathon-mode="true"] .companion-journey h2,
html[data-hackathon-mode="true"] .companion-journey h3,
html[data-hackathon-mode="true"] .paper-world-journey-choice > p,
html[data-hackathon-mode="true"] .paper-world-journey-choice strong { color: var(--pw-ink); }
html[data-hackathon-mode="true"] .companion-journey li p,
html[data-hackathon-mode="true"] .paper-world-journey-choice small { color: var(--pw-muted); }
html[data-hackathon-mode="true"] .companion-journey .hackathon-eyebrow { color: var(--pw-coral); }
html[data-hackathon-mode="true"] .companion-journey li > span { color: var(--pw-violet); }
html[data-hackathon-mode="true"] .companion-journey ol { border: 0; gap: 0; }
html[data-hackathon-mode="true"] .companion-journey li { border-top: 1px solid var(--pw-line); background: transparent; }
html[data-hackathon-mode="true"] .companion-journey li:last-child { border-bottom: 1px solid var(--pw-line); }

.paper-world-journey-choice {
    display: grid;
    grid-template-columns: minmax(220px, .7fr) minmax(0, 1.3fr);
    gap: 32px;
    align-items: center;
    margin-top: 54px;
}
.paper-world-journey-choice > p { margin: 0; max-width: 26ch; font-size: 1.2rem; font-weight: 800; line-height: 1.4; }
html[data-hackathon-mode="true"] .paper-world-journey-choice .companion-choice-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }

html[data-hackathon-mode="true"] .companion-cases-preview { background: #eaf4ef; }
html[data-hackathon-mode="true"] .companion-case-strip { align-items: end; }
html[data-hackathon-mode="true"] .companion-case-strip a {
    padding: 12px 12px 16px;
    border: 1px solid rgba(23, 32, 51, .1);
    border-radius: 12px;
    background: var(--pw-paper);
    box-shadow: var(--pw-shadow);
    transform: rotate(-1deg);
}
html[data-hackathon-mode="true"] .companion-case-strip a:nth-child(2) { transform: translateY(18px) rotate(1.2deg); }
html[data-hackathon-mode="true"] .companion-case-strip a:nth-child(3) { transform: rotate(-.4deg); }
html[data-hackathon-mode="true"] .companion-case-strip img { object-fit: contain; background: #fff; }

html[data-hackathon-mode="true"] .companion-safety { background: var(--pw-ink); color: #fff; }
html[data-hackathon-mode="true"] .companion-safety h2 { color: #fff; }
html[data-hackathon-mode="true"] .companion-safety > div:last-child { display: grid; gap: 28px; justify-items: start; }
html[data-hackathon-mode="true"] .companion-safety .hackathon-button { background: var(--pw-coral); }

/* Upload: one paper, then a compact control rail. */
html[data-hackathon-mode="true"] body[data-page="app"] .main-content { background: var(--pw-canvas); }
html[data-hackathon-mode="true"] #step-upload > .text-center,
html[data-hackathon-mode="true"] #step-upload .features-grid { display: none; }
html[data-hackathon-mode="true"] .hackathon-upload-intro { max-width: 720px; margin: 0 auto 24px; text-align: center; }
html[data-hackathon-mode="true"] .living-upload-stage { max-width: 880px; margin: 0 auto; }
html[data-hackathon-mode="true"] .upload-card-wrapper,
html[data-hackathon-mode="true"] .upload-flow-border { padding: 0; border: 0; background: transparent; box-shadow: none; }
html[data-hackathon-mode="true"] .living-upload-stage .upload-area {
    min-height: clamp(420px, 58vh, 610px);
    border: 2px dashed #b8bec9;
    border-radius: 16px;
    background: var(--pw-paper);
    box-shadow: var(--pw-shadow);
    transform: translateY(0);
    transition: transform 180ms var(--pw-ease), border-color 180ms ease, background-color 180ms ease;
}
html[data-hackathon-mode="true"] .living-upload-stage:is([data-state="drag"], :hover) .upload-area { border-style: solid; border-color: var(--pw-coral); background: #fffaf5; transform: translateY(-4px); }
html[data-hackathon-mode="true"] .upload-floating-icons { opacity: .3; pointer-events: none; }
html[data-hackathon-mode="true"] .upload-content { max-width: 520px; margin: auto; }
html[data-hackathon-mode="true"] .upload-icon-wrapper { color: var(--pw-coral); background: transparent; box-shadow: none; }
html[data-hackathon-mode="true"] .upload-selected-state { background: var(--pw-paper); }
html[data-hackathon-mode="true"] .upload-selected-image { width: 100%; height: 100%; object-fit: contain; background: #fff; }
html[data-hackathon-mode="true"] .upload-selected-topbar { background: rgba(255, 253, 248, .94); }
html[data-hackathon-mode="true"] .upload-selected-footer { min-height: 70px; background: rgba(255, 253, 248, .96); }
html[data-hackathon-mode="true"] .living-upload-control-rail { max-width: 880px; margin: 24px auto 0; border: 0; background: transparent; }
html[data-hackathon-mode="true"] .age-group-cards { display: flex; gap: 10px; overflow-x: auto; padding: 4px 3px 10px; scroll-snap-type: x proximity; }
html[data-hackathon-mode="true"] .age-group-card { flex: 0 0 min(190px, 72vw); scroll-snap-align: start; border-radius: 10px; background: var(--pw-paper); }
html[data-hackathon-mode="true"] .hackathon-parent-goal { border: 0; background: transparent; }
html[data-hackathon-mode="true"] .hackathon-goal-control button { border-radius: 10px; }
html[data-hackathon-mode="true"] .hackathon-submit-row { display: flex; justify-content: flex-end; padding-top: 10px; }
html[data-hackathon-mode="true"] .hackathon-sample-button {
    display: inline-flex;
    min-height: 46px !important;
    align-items: center;
    justify-content: center;
    padding: 10px 8px;
}
html[data-hackathon-mode="true"] #selectFileBtn { min-height: 46px; }

/* Processing: the original and five truthful stamps only. */
html[data-hackathon-mode="true"] .processing-container { padding: 0; background: transparent; box-shadow: none; }
html[data-hackathon-mode="true"] .processing-bg,
html[data-hackathon-mode="true"] .processing-animation,
html[data-hackathon-mode="true"] .step-progress-bar,
html[data-hackathon-mode="true"] .step-progress-labels,
html[data-hackathon-mode="true"] .detail-progress,
html[data-hackathon-mode="true"] .fun-tip { display: none; }
html[data-hackathon-mode="true"] .processing-content { padding: 24px 0 0; }
html[data-hackathon-mode="true"] .processing-title { margin-bottom: 8px; color: var(--pw-ink); }
html[data-hackathon-mode="true"] .processing-step { color: var(--pw-muted); }
html[data-hackathon-mode="true"] .hackathon-processing-journey { grid-template-columns: minmax(360px, 1.15fr) minmax(300px, .85fr); gap: clamp(26px, 5vw, 64px); align-items: center; min-width: 0; max-width: 100%; overflow-x: clip; }
html[data-hackathon-mode="true"] .hackathon-processing-artwork { padding: 14px; border: 1px solid rgba(23, 32, 51, .1); border-radius: 16px; background: var(--pw-paper); box-shadow: var(--pw-shadow); }
html[data-hackathon-mode="true"] .living-processing-frame { border-radius: 10px; background: #fff; }
html[data-hackathon-mode="true"] .living-processing-effect { pointer-events: none; }
html[data-hackathon-mode="true"] .hackathon-processing-stages { display: grid; grid-template-columns: 1fr; gap: 10px; min-width: 0; max-width: 100%; }
html[data-hackathon-mode="true"] .hackathon-processing-stage {
    position: relative;
    min-height: 58px;
    padding: 10px 12px 10px 54px;
    border: 1px solid var(--pw-line);
    border-radius: 10px;
    background: var(--pw-paper);
}
html[data-hackathon-mode="true"] .hackathon-processing-stage::before {
    position: absolute;
    top: 11px;
    left: 12px;
    display: grid;
    width: 32px;
    height: 32px;
    place-items: center;
    border: 2px solid #aab1bf;
    border-radius: 50%;
    color: #8b93a2;
    content: "";
}
html[data-hackathon-mode="true"] .hackathon-processing-stage.is-complete::before { border-color: var(--pw-leaf); background: var(--pw-leaf); content: "✓"; color: #fff; }
html[data-hackathon-mode="true"] .hackathon-processing-stage.is-active { border-color: var(--pw-coral); transform: translateY(2px) rotate(-.4deg); }
html[data-hackathon-mode="true"] .hackathon-processing-stage.is-active::before { border-color: var(--pw-coral); background: #fff0ed; }

/* Result: original first, tactile notes, reference and story as supporting papers. */
html[data-hackathon-mode="true"] #step-result { max-width: 1280px; margin: 0 auto; }
html[data-hackathon-mode="true"] .hackathon-result-primary,
html[data-hackathon-mode="true"] .result-first-screen,
html[data-hackathon-mode="true"] .result-second-screen { width: 100%; max-width: none; }
html[data-hackathon-mode="true"] .hackathon-result-primary { order: 1; }
html[data-hackathon-mode="true"] .result-first-screen { order: 2; }
html[data-hackathon-mode="true"] .result-second-screen { order: 3; }
html[data-hackathon-mode="true"] .hackathon-result-band { padding: clamp(50px, 7vw, 88px) 0; border: 0; }
html[data-hackathon-mode="true"] .hackathon-original-frame { padding: 14px; border-radius: 16px; background: var(--pw-paper); box-shadow: var(--pw-shadow); }
html[data-hackathon-mode="true"] .hackathon-original-frame img { object-fit: contain; background: #fff; }
html[data-hackathon-mode="true"] .hackathon-conversation-paths {
    display: flex;
    gap: 14px;
    overflow-x: auto;
    min-width: 0;
    padding: 8px 4px 18px;
    scroll-snap-type: x mandatory;
    overscroll-behavior-inline: contain;
}
html[data-hackathon-mode="true"] .hackathon-question-item {
    flex: 1 0 min(300px, 82vw);
    min-width: 0;
    min-height: 210px;
    scroll-snap-align: start;
    border: 1px solid rgba(23, 32, 51, .12);
    border-radius: 10px;
    background: var(--pw-paper);
    box-shadow: 0 4px 0 rgba(23, 32, 51, .07), 0 12px 26px rgba(23, 32, 51, .08);
    cursor: pointer;
    transition: transform 180ms var(--pw-ease), border-color 180ms ease;
}
html[data-hackathon-mode="true"] .hackathon-score-intro,
html[data-hackathon-mode="true"] .result-header,
html[data-hackathon-mode="true"] .feedback-section-compact,
html[data-hackathon-mode="true"] .result-chart-section { display: none; }
html[data-hackathon-mode="true"] .result-overview-grid { grid-template-columns: minmax(0, 1fr); }
html[data-hackathon-mode="true"] .hackathon-question-item:nth-child(2) { transform: rotate(.6deg); }
html[data-hackathon-mode="true"] .hackathon-question-item:nth-child(3) { transform: rotate(-.6deg); }
html[data-hackathon-mode="true"] .hackathon-question-item small { display: none; }
html[data-hackathon-mode="true"] .hackathon-question-item.is-open { border-color: var(--pw-leaf); transform: translateY(-4px) rotate(0); }
html[data-hackathon-mode="true"] .hackathon-question-item.is-open small { display: block; }
html[data-hackathon-mode="true"] .result-first-screen {
    margin-top: 22px;
    padding: clamp(42px, 6vw, 76px) 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    overflow: visible;
}
html[data-hackathon-mode="true"] .feedback-card { border: 0; border-left: 5px solid var(--pw-coral); border-radius: 0; background: transparent; box-shadow: none; }
html[data-hackathon-mode="true"] .result-overview-grid { align-items: start; }
html[data-hackathon-mode="true"] .result-image-section {
    width: 100%;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}
html[data-hackathon-mode="true"] .image-compare-container {
    width: min(100%, 1160px);
    height: auto;
    aspect-ratio: 4 / 3;
    margin: 0 auto;
    padding: 12px;
    overflow: hidden;
    border: 1px solid rgba(23, 32, 51, .1);
    border-radius: 4px;
    background: var(--pw-paper);
    box-shadow: var(--pw-shadow);
}
html[data-hackathon-mode="true"] .image-compare-wrapper { border-radius: 2px; box-shadow: none; }
html[data-hackathon-mode="true"] .image-compare-container canvas,
html[data-hackathon-mode="true"] .image-compare-container img { max-width: 100%; }
html[data-hackathon-mode="true"] .result-image-section > :is(.image-labels, .hackathon-reference-note) { width: min(100%, 1160px); margin-inline: auto; }
html[data-hackathon-mode="true"] .enhanced-story {
    width: min(100%, 980px);
    margin: 72px auto 0;
    padding: clamp(32px, 5vw, 58px);
    border: 1px solid rgba(23, 32, 51, .09);
    border-radius: 4px;
    background: #fff8df;
    box-shadow: 0 5px 0 rgba(23, 32, 51, .07), 0 18px 38px rgba(23, 32, 51, .09);
}
html[data-hackathon-mode="true"] .enhanced-story-content { padding-inline: 0; border: 0; border-left: 5px solid var(--pw-sun); border-radius: 0; background: transparent; animation: pw-page-reveal 520ms var(--pw-ease) both; }
html[data-hackathon-mode="true"] .result-actions { margin-top: 48px; }
html[data-hackathon-mode="true"] .hackathon-detailed-observations { margin-top: 56px; border-top: 1px solid var(--pw-line); }

/* Cases: a compact wall first, complete journeys below. */
.paper-world-cases .cases-header { position: relative; top: auto; background: rgba(255, 253, 248, .96); }
.paper-world-cases .cases-intro { min-height: 330px; padding-block: clamp(68px, 8vw, 104px) 58px; background: var(--pw-canvas); }
.paper-world-cases .cases-intro h1 { color: var(--pw-ink); font-family: ui-rounded, "Arial Rounded MT Bold", Arial, sans-serif; }
.paper-world-case-wall {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr);
    grid-template-rows: repeat(2, minmax(190px, auto));
    gap: 18px;
    max-width: 1240px;
    margin: 0 auto;
    padding: 0 24px 92px;
}
.paper-world-case-card {
    display: grid;
    grid-template-columns: minmax(160px, .9fr) minmax(0, 1.1fr);
    gap: 18px;
    min-width: 0;
    padding: 12px;
    border: 1px solid rgba(23, 32, 51, .1);
    border-radius: 10px;
    background: var(--pw-paper);
    box-shadow: 0 4px 0 rgba(23, 32, 51, .07), 0 14px 30px rgba(23, 32, 51, .09);
}
.paper-world-case-card.paper-world-case-featured { grid-row: 1 / 3; grid-template-columns: minmax(0, 1fr); }
.paper-world-case-card figure { min-width: 0; margin: 0; }
.paper-world-case-card img { display: block; width: 100%; height: 100%; max-height: 340px; object-fit: contain; border-radius: 6px; background: #fff; }
.paper-world-case-card__copy { display: grid; gap: 8px; align-content: center; min-width: 0; }
.paper-world-case-card h2 { margin: 0; font-size: clamp(1.35rem, 2.2vw, 2rem); line-height: 1.06; }
.paper-world-case-card p,
.paper-world-case-card blockquote { margin: 0; }
.paper-world-case-card blockquote { font-size: .94rem; font-weight: 750; line-height: 1.4; }
.paper-world-case-card__age { color: var(--pw-muted); font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.paper-world-case-card__keyword { color: var(--pw-leaf); font-size: .78rem; font-weight: 850; }
.paper-world-case-card__link { display: inline-flex; min-height: 44px; align-items: center; justify-self: start; color: var(--pw-ink); font-size: .82rem; font-weight: 850; }
.paper-world-case-journeys { border-top: 1px solid var(--pw-line); background: var(--pw-paper); }
.paper-world-cases .paper-world-case-journeys .case-study {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(330px, .85fr);
    gap: clamp(40px, 7vw, 92px);
    max-width: 1240px;
    margin: 0 auto;
    padding: clamp(72px, 9vw, 116px) 24px;
    border: 0;
    border-bottom: 1px solid var(--pw-line);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    transform: none;
}
.paper-world-cases .paper-world-case-journeys .case-study:nth-child(even) .case-media { order: 2; }
.paper-world-cases .case-study--compare .case-media { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.paper-world-cases .case-media img { object-fit: contain; border-radius: 6px; background: #fff; }
.paper-world-cases .case-copy h2 { font-size: 3.4rem; }
.paper-world-cases .case-copy blockquote { margin-top: 20px; border-left-color: var(--pw-leaf); font-size: 1.35rem; }
.paper-world-cases .case-try,
.paper-world-cases .cases-cta a { display: inline-flex; align-items: center; justify-content: center; border-radius: 10px; background: var(--pw-coral); color: #fff; }

@keyframes pw-paper-breathe { 0%, 100% { transform: translateY(0) scale(1); opacity: .7; } 50% { transform: translateY(-3px) scale(1.01); opacity: 1; } }
@keyframes pw-trail { 0% { opacity: 0; transform: translate3d(var(--pw-x), var(--pw-y), 0) rotate(var(--pw-r)) scaleX(.4); } 18% { opacity: .5; } 100% { opacity: 0; transform: translate3d(calc(var(--pw-x) + 10px), calc(var(--pw-y) - 4px), 0) rotate(var(--pw-r)) scaleX(1); } }
@keyframes pw-page-reveal { from { opacity: 0; clip-path: inset(0 0 100% 0); transform: translateY(12px); } to { opacity: 1; clip-path: inset(0); transform: translateY(0); } }

@media (max-width: 1100px) {
    html[data-hackathon-mode="true"] .paper-world-hero { display: flex; min-height: auto; flex-direction: column; gap: 34px; padding: 110px 28px 72px; }
    html[data-hackathon-mode="true"] .companion-hero__copy { display: block; width: 100%; max-width: 760px; }
    html[data-hackathon-mode="true"] .companion-hero h1 { font-size: 3rem; }
    html[data-hackathon-mode="true"] .companion-compare { width: 100%; margin-top: 0; }
    .paper-world-notes { position: relative; inset: auto; display: flex; width: 100%; gap: 10px; overflow-x: auto; padding: 14px 2px 10px; pointer-events: auto; scroll-snap-type: x mandatory; }
    .paper-world-note,
    .paper-world-note:nth-child(1),
    .paper-world-note:nth-child(2),
    .paper-world-note:nth-child(3) { position: relative; inset: auto; flex: 0 0 calc(50% - 8px); width: auto; transform: none; scroll-snap-align: start; }
    html[data-hackathon-mode="true"] .hackathon-processing-journey { grid-template-columns: minmax(320px, 1fr) minmax(280px, .8fr); }
    .paper-world-case-card:not(.paper-world-case-featured) { grid-template-columns: minmax(100px, .75fr) minmax(0, 1.25fr); }
    .paper-world-cases .paper-world-case-journeys .case-study { grid-template-columns: minmax(0, 1fr); }
    .paper-world-cases .paper-world-case-journeys .case-study:nth-child(even) .case-media { order: initial; }
}

@media (max-width: 767px) {
    html[data-hackathon-mode="true"] .paper-world-hero { padding: 104px 16px 56px; overflow: hidden; }
    html[data-hackathon-mode="true"] .companion-hero__copy { width: 100%; padding-top: 0; }
    html[data-hackathon-mode="true"] .companion-hero h1 { max-width: 14ch; font-size: 2.8rem; }
    html[data-hackathon-mode="true"] .companion-actions { align-items: stretch; }
    html[data-hackathon-mode="true"] .companion-actions .hackathon-button { width: 100%; }
    html[data-hackathon-mode="true"] .companion-compare { width: 100%; padding: 10px; transform: none; }
    .paper-world-note,
    .paper-world-note:nth-child(1),
    .paper-world-note:nth-child(2),
    .paper-world-note:nth-child(3) { flex-basis: calc(100% - 18px); min-height: 88px; }
    .paper-world-note > strong { display: block; }
    .paper-world-note.is-open { transform: none; }
    html[data-hackathon-mode="true"] :is(.companion-journey, .companion-cases-preview, .companion-safety) { padding: 64px 16px; }
    .paper-world-journey-choice { grid-template-columns: 1fr; gap: 20px; }
    html[data-hackathon-mode="true"] .paper-world-journey-choice .companion-choice-list { grid-template-columns: 1fr; }
    html[data-hackathon-mode="true"] .companion-case-strip { display: flex; gap: 14px; overflow-x: auto; padding: 8px 2px 28px; scroll-snap-type: x mandatory; }
    html[data-hackathon-mode="true"] .companion-case-strip a,
    html[data-hackathon-mode="true"] .companion-case-strip a:nth-child(2),
    html[data-hackathon-mode="true"] .companion-case-strip a:nth-child(3) { flex: 0 0 calc(100% - 28px); transform: none; scroll-snap-align: start; }
    html[data-hackathon-mode="true"] .living-upload-stage .upload-area { min-height: min(500px, 62vh); }
    html[data-hackathon-mode="true"] .upload-selected-footer { align-items: flex-end; }
    html[data-hackathon-mode="true"] .living-upload-control-rail { padding-inline: 0; }
    html[data-hackathon-mode="true"] .hackathon-submit-row { justify-content: stretch; }
    html[data-hackathon-mode="true"] .hackathon-submit-row #uploadBtn { width: 100%; }
    html[data-hackathon-mode="true"] .hackathon-processing-journey { grid-template-columns: minmax(0, 1fr); gap: 24px; }
    html[data-hackathon-mode="true"] .hackathon-processing-artwork { padding: 10px; }
    html[data-hackathon-mode="true"] .hackathon-processing-stages { display: flex; width: 100%; gap: 8px; overflow-x: auto; padding: 4px 2px 14px; scroll-snap-type: x mandatory; overscroll-behavior-inline: contain; }
    html[data-hackathon-mode="true"] .hackathon-processing-stage { flex: 0 0 calc(100% - 20px); min-height: 70px; scroll-snap-align: start; }
    html[data-hackathon-mode="true"] .hackathon-processing-stage::before,
    html[data-hackathon-mode="true"] .hackathon-processing-stage.is-active::before { top: 11px; left: 12px; transform: none; }
    html[data-hackathon-mode="true"] .hackathon-processing-stage strong,
    html[data-hackathon-mode="true"] .hackathon-processing-stage span { display: block; }
    html[data-hackathon-mode="true"] .hackathon-result-band { padding-block: 48px; }
    html[data-hackathon-mode="true"] .hackathon-conversation-paths { width: 100%; }
    html[data-hackathon-mode="true"] .hackathon-question-item { flex-basis: calc(100% - 18px); }
    html[data-hackathon-mode="true"] .result-first-screen { width: 100%; padding: 34px 0; }
    html[data-hackathon-mode="true"] .image-compare-container { width: 100%; aspect-ratio: 1.08 / 1; padding: 8px; }
    html[data-hackathon-mode="true"] .enhanced-story { width: 100%; padding: 28px 14px; }
    .paper-world-cases .cases-intro { min-height: 0; padding: 54px 16px 36px; }
    .paper-world-case-wall { display: flex; gap: 12px; overflow-x: auto; padding: 0 14px 54px; scroll-snap-type: x mandatory; }
    .paper-world-case-card:not(.paper-world-case-featured),
    .paper-world-case-card.paper-world-case-featured { flex: 0 0 min(78vw, 300px); grid-template-columns: 1fr; grid-template-rows: 148px auto; min-height: 360px; scroll-snap-align: start; }
    .paper-world-case-card img { height: 148px; }
    .paper-world-cases .paper-world-case-journeys .case-study { grid-template-columns: 1fr; padding: 64px 14px; }
    .paper-world-cases .paper-world-case-journeys .case-study:nth-child(even) .case-media { order: initial; }
    .paper-world-cases .case-study--compare .case-media { grid-template-columns: 1fr; }
    .paper-world-cases .case-copy h2 { font-size: 2.3rem; }
    .paper-world-cases .case-copy blockquote { font-size: 1.08rem; }
}

@media (max-width: 430px) {
    html[data-hackathon-mode="true"] .companion-hero h1 { font-size: 2.35rem; }
    html[data-hackathon-mode="true"] .companion-moments { gap: 5px 7px; font-size: .65rem; }
    html[data-hackathon-mode="true"] .upload-content { padding-inline: 14px; }
    html[data-hackathon-mode="true"] .upload-title { font-size: 1.35rem; }
    html[data-hackathon-mode="true"] .upload-subtitle { font-size: .88rem; }
    .paper-world-cases .cases-header nav > a:not(.cases-start) { display: none; }
    .paper-world-cases .cases-language button { padding-inline: 8px; }
}

@media (prefers-reduced-motion: reduce) {
    html[data-hackathon-mode="true"] *,
    .paper-world-cases * { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
    html[data-hackathon-mode="true"] .paper-world-trail,
    .paper-world-cases .paper-world-trail { display: none !important; }
    html[data-hackathon-mode="true"] .companion-compare::before,
    html[data-hackathon-mode="true"] .hackathon-processing-stage,
    html[data-hackathon-mode="true"] .hackathon-question-item { transform: none !important; }
}
