:root { --forest: #263a27; --forest-2: #344831; --ink: #241f17; --muted: #746b57; --paper: #efe2c5; --paper-light: #f8efd9; --paper-deep: #dfcda6; --line: #594f38; --gold: #a98d4c; --shadow: rgba(44, 36, 23, 0.24); } html, body { margin: 0; background: #2d3027; color: var(--ink); } .gradio-container { width: 100vw !important; min-width: 980px; max-width: 1600px !important; height: 100vh; max-height: 100vh; overflow: hidden; box-sizing: border-box; margin: 0 auto !important; padding: 10px !important; color: var(--ink); font-family: Georgia, "Noto Serif SC", "Songti SC", serif !important; } #journey-tabs { height: 100%; border: 0 !important; background: transparent !important; } #journey-tabs > .tab-wrapper { display: none !important; } #journey-tabs > [role="tabpanel"] { height: 100%; } .app-screen { position: relative; height: calc(100vh - 20px); min-height: calc(100vh - 20px); max-height: calc(100vh - 20px); overflow: hidden; box-sizing: border-box; border: 3px double var(--line); border-radius: 4px; background: linear-gradient(rgba(255, 250, 235, 0.32), rgba(255, 250, 235, 0.08)), repeating-linear-gradient( 0deg, rgba(72, 60, 37, 0.025) 0, rgba(72, 60, 37, 0.025) 1px, transparent 1px, transparent 4px ), radial-gradient(circle at 13% 17%, rgba(151, 119, 66, 0.08), transparent 22%), radial-gradient(circle at 83% 72%, rgba(151, 119, 66, 0.08), transparent 25%), var(--paper); box-shadow: inset 0 0 0 6px rgba(244, 232, 202, 0.78), inset 0 0 0 7px rgba(73, 63, 42, 0.36), 0 16px 50px rgba(0, 0, 0, 0.3); padding: 0 18px; } .app-screen > .column { gap: 0 !important; } .app-screen > .column > .block.padded { min-height: auto !important; border: 0 !important; background: transparent !important; padding: 0 !important; } .app-screen::before, .app-screen::after { position: absolute; z-index: 5; color: var(--line); font-size: 28px; line-height: 1; content: "⌜"; pointer-events: none; } .app-screen::before { top: 8px; left: 10px; } .app-screen::after { right: 10px; bottom: 8px; transform: rotate(180deg); } .vintage-header { display: grid; grid-template-columns: auto auto auto 1fr auto auto; align-items: center; height: 42px; min-height: 42px; margin: 0 -18px; padding: 0 28px; border-bottom: 2px solid #172518; background: linear-gradient(90deg, rgba(255, 255, 255, 0.04), transparent 40%), var(--forest); color: #e7d9b8; font-family: Georgia, "Noto Serif SC", serif; font-size: 11px; letter-spacing: 0.12em; } .header-paw { margin-right: 9px; color: #c7ad69; font-size: 15px; } .header-brand { font-weight: 700; } .header-divider { margin: 0 12px; color: #8f9c7f; } .header-chapter { color: #cbbd9c; } .header-step { margin-right: 16px; color: #a89977; font-size: 10px; } .header-moon { color: #e6cc82; font-size: 20px; } .vintage-footer { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; min-height: 30px; margin-top: auto; border-top: 1px solid rgba(77, 68, 48, 0.48); color: var(--muted); font-size: 10px; letter-spacing: 0.16em; text-align: center; } .vintage-footer span:first-child { justify-self: start; font-size: 18px; } .vintage-footer span:last-child { justify-self: end; font-size: 14px; } .ornament-title { position: relative; z-index: 2; width: 100%; padding: 16px 10px 8px; box-sizing: border-box; text-align: center; } .ornament-title > span, .final-kicker { display: inline-block; color: var(--gold); font-family: Georgia, serif; font-size: 10px; font-weight: 700; letter-spacing: 0.24em; } .ornament-title h1 { margin: 5px 0 3px; color: var(--ink); font-size: clamp(26px, 3vw, 44px); font-weight: 700; line-height: 1.08; letter-spacing: 0.08em; } .ornament-title h1::before, .ornament-title h1::after { display: inline-block; margin: 0 15px; color: var(--gold); content: "✦"; font-size: 13px; vertical-align: middle; } .ornament-title p { margin: 5px 0 0; color: var(--muted); font-size: 12px; line-height: 1.55; letter-spacing: 0.08em; } .screen-body, .question-layout, .story-layout, .final-layout { flex: 1; min-height: 0; } .landing-layout { align-items: center; gap: 46px; padding: 16px 50px 8px; } .landing-copy { align-items: flex-start; justify-content: center; padding-left: 24px; } .landing-copy .ornament-title { padding: 0; text-align: left; } .landing-copy .ornament-title h1 { margin: 12px 0 20px; font-size: clamp(40px, 5vw, 70px); line-height: 1.18; letter-spacing: 0.05em; } .landing-copy .ornament-title h1::before, .landing-copy .ornament-title h1::after { display: none; } .landing-copy .ornament-title p { padding-left: 28px; border-left: 2px solid var(--gold); font-size: 15px; line-height: 1.8; } .hero-illustration { position: relative; align-items: center; justify-content: center; } .sparkle { position: absolute; z-index: 4; color: var(--gold); font-size: 22px; } .sparkle.s1 { top: 10%; left: 5%; } .sparkle.s2 { right: 5%; bottom: 23%; } .vintage-cat-image { border: 0 !important; background: transparent !important; box-shadow: none !important; } .vintage-cat-image > div { background: transparent !important; } .vintage-cat-image button, .vintage-cat-image a, .card-cat-image button, .card-cat-image a { display: none !important; } .vintage-cat-image img { filter: sepia(0.34) saturate(0.72) contrast(1.06); } .oval-image { width: min(430px, 100%); padding: 12px !important; border: 1px solid var(--line) !important; border-radius: 48% 48% 8px 8px !important; background: rgba(244, 232, 203, 0.72) !important; box-shadow: 10px 12px 0 rgba(82, 70, 44, 0.08) !important; } .oval-image img { border-radius: 46% 46% 6px 6px !important; object-fit: cover; } .hero-caption, .collage-caption, .polaroid-note { color: var(--muted); font-size: 9px; letter-spacing: 0.18em; text-align: center; } .ink-button, .paper-button { min-height: 42px !important; border-radius: 5px !important; font-family: Georgia, "Noto Serif SC", serif !important; letter-spacing: 0.08em; box-shadow: 0 3px 0 rgba(40, 34, 24, 0.18) !important; } button.ink-button, a.ink-button { border: 1px solid #172518 !important; background: linear-gradient(rgba(255, 255, 255, 0.05), transparent), var(--forest) !important; color: #f0e5ca !important; } button.ink-button:hover, a.ink-button:hover { background: var(--forest-2) !important; } button.paper-button { border: 1px solid #8b7c5a !important; background: rgba(247, 236, 210, 0.82) !important; color: var(--ink) !important; } button:disabled { opacity: 0.42 !important; } .relationship-deck { max-width: 1040px; flex: 1; align-items: stretch; gap: 16px; min-height: 0; margin: 0 auto; padding: 6px 22px; } .relationship-card { position: relative; min-width: 0 !important; justify-content: flex-start; overflow: hidden; border: 1px solid #8a7956; border-radius: 7px; background: rgba(248, 237, 211, 0.62); box-shadow: 0 5px 14px rgba(59, 49, 30, 0.12); padding: 10px 10px 12px; } .relationship-card::before { position: absolute; inset: 5px; border: 1px dotted rgba(84, 71, 43, 0.45); border-radius: 4px; content: ""; pointer-events: none; } .card-corner { position: absolute; z-index: 4; top: 13px; right: 15px; color: var(--gold); } .card-cat-image { margin: 12px 8px 2px; overflow: hidden; border: 1px solid #8e7e5d !important; border-radius: 4px !important; } .card-cat-image img { object-fit: cover; } .quiet-card .card-cat-image img { object-position: 35% center; filter: sepia(0.6) saturate(0.45) contrast(1.15) brightness(0.75); } .door-card .card-cat-image img { object-position: 63% center; transform: scaleX(-1); filter: sepia(0.34) saturate(0.8) contrast(1.05); } .lap-card .card-cat-image img { object-position: center; filter: sepia(0.05) hue-rotate(305deg) saturate(1.35) contrast(1.05); } .relationship-card h3 { margin: 8px 0 3px; font-size: 18px; letter-spacing: 0.12em; text-align: center; } .relationship-card p { margin: 0; color: var(--muted); font-size: 10px; letter-spacing: 0.1em; text-align: center; } .deck-actions, .draw-result-row, .matching-actions { width: min(720px, 80%); align-self: center; gap: 14px; } .draw-result-row { min-height: 66px; } .drawn-card { width: 100%; border: 1px solid #9d8a64; border-radius: 4px; background: rgba(255, 248, 228, 0.55); padding: 8px 18px; color: var(--muted); text-align: center; } .drawn-card h3 { margin: 0 0 4px; color: var(--ink); font-size: 16px; } .drawn-card p { margin: 0; font-size: 11px; } .question-layout { width: min(1050px, 92%); align-self: center; align-items: center; gap: 42px; padding: 2px 20px 8px; } .question-cat-panel { position: relative; align-items: center; justify-content: center; } .cutout-cat { width: min(440px, 100%); overflow: hidden; border: 1px solid #8a7956 !important; border-radius: 50% 50% 8px 8px !important; background: #d7c49e !important; box-shadow: 10px 11px 0 rgba(67, 57, 37, 0.08) !important; } .cutout-cat img { object-fit: cover; object-position: 60% center; filter: sepia(0.6) saturate(0.5) contrast(1.25) brightness(0.72); } .cat-two img { transform: scaleX(-1); filter: sepia(0.45) saturate(0.62) contrast(1.22) brightness(0.78); } .cat-prop { position: absolute; z-index: 5; right: 8%; bottom: 5%; width: 66px; height: 66px; border: 1px solid #735f39; border-radius: 50%; background: var(--paper-light); color: var(--forest); font-size: 33px; line-height: 66px; text-align: center; transform: rotate(7deg); } .paw-prop { right: auto; left: 7%; transform: rotate(-7deg); } .choice-panel { justify-content: center; border: 1px solid #8d7c57; border-radius: 7px; background: rgba(250, 240, 216, 0.58); box-shadow: 8px 9px 0 rgba(73, 62, 39, 0.07); padding: 20px 24px; } .vintage-radio { border: 0 !important; background: transparent !important; } .vintage-radio > label { color: var(--muted) !important; font-size: 10px !important; letter-spacing: 0.14em; text-transform: uppercase; } .vintage-radio .wrap { gap: 9px !important; } .vintage-radio .wrap > label { min-height: 52px; box-sizing: border-box; border: 1px solid #9a8964; border-radius: 5px; background: rgba(255, 248, 228, 0.62); padding: 13px 16px !important; color: var(--ink) !important; font-size: 14px; letter-spacing: 0.06em; box-shadow: 0 2px 0 rgba(64, 54, 35, 0.1); } .vintage-radio .wrap > label:has(input:checked) { border-color: var(--forest); background: var(--forest); color: #efe1c1 !important; } .vintage-radio input { accent-color: var(--forest); } .nav-actions { gap: 12px; margin-top: 10px; } .matching-stage { flex: 1; align-items: center; justify-content: center; min-height: 0; } .matching-visual { position: relative; max-width: 860px; align-items: center; } .matching-cat { z-index: 2; width: 330px; overflow: hidden; border: 1px solid #806e4a !important; border-radius: 50% 50% 12px 12px !important; background: #d3c09a !important; } .matching-cat img { object-fit: cover; object-position: 55% center; filter: sepia(0.62) saturate(0.48) contrast(1.28) brightness(0.7); } .sound-wave { display: flex; width: 100%; height: 70px; align-items: center; justify-content: center; gap: 4px; margin-top: -34px; } .sound-wave::before, .sound-wave::after { flex: 1; height: 1px; background: var(--line); content: ""; } .sound-wave span { width: 2px; height: 18px; background: var(--forest); animation: sound 0.9s ease-in-out infinite alternate; } .sound-wave span:nth-child(3n) { height: 42px; animation-delay: 0.16s; } .sound-wave span:nth-child(4n) { height: 28px; animation-delay: 0.31s; } .sound-wave span:nth-child(5n) { height: 55px; animation-delay: 0.47s; } @keyframes sound { from { transform: scaleY(0.42); opacity: 0.45; } to { transform: scaleY(1); opacity: 1; } } .match-metrics { display: grid; width: min(820px, 82%); grid-template-columns: repeat(4, 1fr); align-self: center; margin: 0 auto 8px; border-top: 1px solid rgba(85, 72, 45, 0.42); border-bottom: 1px solid rgba(85, 72, 45, 0.42); } .match-metrics div { display: grid; place-items: center; padding: 8px 12px; border-right: 1px solid rgba(85, 72, 45, 0.28); } .match-metrics div:last-child { border-right: 0; } .match-metrics b { color: var(--forest); font-size: 22px; } .match-metrics strong { margin-top: 2px; font-size: 11px; letter-spacing: 0.12em; } .match-metrics span { color: var(--muted); font-size: 9px; } .matching-actions { width: min(620px, 75%); } .story-layout { width: min(1080px, 92%); align-self: center; align-items: center; gap: 54px; padding: 5px 24px 10px; } .polaroid-panel { position: relative; align-items: center; padding: 18px 18px 32px; border: 1px solid #8c7b58; background: #f5e8c9; box-shadow: 12px 14px 0 rgba(57, 48, 30, 0.12); transform: rotate(-2.2deg); } .paperclip { position: absolute; z-index: 6; top: -21px; left: 17%; color: #75623f; font-size: 55px; transform: rotate(18deg); } .polaroid-image { width: 100%; overflow: hidden; border: 1px solid #766849 !important; border-radius: 2px !important; } .polaroid-image img { object-fit: cover; filter: sepia(0.55) saturate(0.58) contrast(1.18) brightness(0.8); } .story-copy-panel { justify-content: center; } .story-heading { border-bottom: 1px solid rgba(80, 68, 44, 0.45); } .story-heading h2, .final-heading h2 { margin: 0 0 10px; color: var(--ink); font-size: clamp(28px, 3.2vw, 46px); line-height: 1.12; letter-spacing: 0.08em; } .story-profile { max-height: 220px; overflow: auto; color: var(--muted); font-size: 12px; line-height: 1.75; } .story-profile strong { color: var(--forest); } .story-traits { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 6px 0; } .story-traits span { border: 1px solid #9a8964; border-radius: 3px; background: rgba(255, 248, 228, 0.48); padding: 8px 10px; color: var(--forest); font-size: 11px; } .final-layout { width: min(1160px, 94%); align-self: center; align-items: center; gap: 42px; padding: 28px 24px 14px; } .photo-collage { position: relative; justify-content: center; } .collage-stars { color: var(--gold); font-size: 18px; letter-spacing: 0.8em; text-align: center; } .collage-row { align-items: center; gap: 0; padding: 8px 0 16px; } .collage-photo { min-width: 0 !important; overflow: hidden; border: 9px solid #f5e8cb !important; border-bottom-width: 28px !important; border-radius: 2px !important; background: #f5e8cb !important; box-shadow: 5px 7px 12px rgba(54, 45, 28, 0.22) !important; } .collage-photo img { object-fit: cover; filter: sepia(0.35) saturate(0.75) contrast(1.08); } .photo-left { transform: rotate(-5deg) translateX(18px); } .photo-center { z-index: 3; transform: translateY(-10px); } .photo-right { transform: rotate(5deg) translateX(-18px); } .final-copy-panel { justify-content: center; padding: 30px 10px; } .final-heading { margin-top: 10px; } .final-copy { margin: 4px 0 12px; color: var(--muted); font-size: 13px; line-height: 1.75; } .cta-button { min-height: 52px !important; font-size: 16px !important; } @media (max-height: 760px) { .ornament-title { padding-top: 8px; } .ornament-title h1 { font-size: 28px; } .relationship-deck { max-height: 235px; } .question-layout, .story-layout { padding-top: 0; } .cutout-cat { height: 285px !important; } .matching-cat { height: 190px !important; } .collage-photo { height: 265px !important; } }