ZhaoJingzi's picture
Upload 6 files
b318c7d verified
Raw
History Blame Contribute Delete
16.2 kB
: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;
}
}