:root{--bg:#102726;--cream:#f3ecda;--muted:#a1b1a5;--gold:#c9aa71;--line:rgba(255,255,255,0.129);--serif:"Songti SC","Noto Serif CJK SC","STSong","SimSun",serif;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--cream);font-family:var(--sans);min-height:100vh}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid #d8bd88;outline-offset:6px}button:disabled{cursor:default}a{color:inherit}button{color:inherit}button,summary{touch-action:manipulation}[hidden]{display:none!important}.grain{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.055;z-index:30;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.7' filter='url(%23n)'/%3E%3C/svg%3E")}.ambient{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;background:radial-gradient(ellipse at 50% 0,rgba(84,112,90,0.133),transparent 65%)}.ambient span{position:absolute;width:3px;height:3px;border-radius:50%;background:#e4cc91;opacity:.3;animation:drift 16s linear infinite}.ambient span:nth-child(1){left:12%;top:37%}.ambient span:nth-child(2){left:80%;top:16%;animation-delay:-9s}.ambient span:nth-child(3){left:54%;top:60%;animation-delay:-4s}.ambient span:nth-child(4){left:20%;top:90%;animation-delay:-12s}.ambient span:nth-child(5){left:91%;top:69%;animation-delay:-7s}.ambient span:nth-child(6){left:64%;top:85%;animation-delay:-15s}@keyframes drift{0%{transform:translate(0,40px);opacity:0}25%,70%{opacity:.45}100%{transform:translate(25px,-90px);opacity:0}}.topbar{position:relative;z-index:2;max-width:1250px;margin:auto;padding:32px 44px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;grid-gap:12px;text-decoration:none;align-items:center;font-family:var(--serif);font-size:19px;letter-spacing:3px}.brand-mark{width:36px;height:40px;border:1px solid rgba(182,173,143,0.569);display:grid;align-items:center;justify-items:center;font-size:22px;border-radius:2px}.brand small{display:block;font:8px var(--sans);letter-spacing:2px;color:var(--muted);margin-top:5px}.shelf-button{border:1px solid rgba(120,146,130,0.333);background:transparent;border-radius:24px;padding:11px 15px;color:#c1cbbf;font-size:12px}.shelf-button>span{font-size:16px;margin-right:7px}.shelf-button b{font-weight:400;margin-left:8px;color:var(--gold)}main{position:relative;z-index:1}.home{max-width:1080px;margin:auto;padding:28px 40px 40px}.intro{text-align:center}.eyebrow{font-size:11px;color:var(--gold);letter-spacing:3px;font-weight:400}.eyebrow>span{display:inline-block;width:18px;height:1px;background:var(--gold);vertical-align:middle;margin-right:12px}.intro h1{font-family:var(--serif);font-weight:400;font-size:53px;line-height:1.44;letter-spacing:7px;margin:22px 0 16px}.intro h1 em{font-style:normal;color:#d6c29e}.intro p{font-size:13px;line-height:1.9;color:var(--muted);letter-spacing:2px;margin:0}.mobile{display:none}.choices{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:22px;margin:42px 0 30px}.scene-card{position:relative;text-align:left;height:310px;border:1px solid rgba(153,175,150,0.333);border-radius:120px 120px 5px 5px;background:#152e2b;overflow:hidden;padding:27px 25px;isolation:isolate;transition:transform .6s,border .6s,box-shadow .6s}.scene-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(transparent 45%,#10231e 100%);z-index:-1}.scene-card:hover{transform:translateY(-9px);border-color:#cab37d;box-shadow:0 20px 45px rgba(0,0,0,0.267)}.scene-card .scene-art{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-2}.scene-art svg{width:100%;height:100%;display:block}.card-num{position:absolute;bottom:101px;left:25px;font-size:8px;letter-spacing:3px;color:#adbaaa}.card-name{display:block;position:absolute;bottom:57px;font:27px var(--serif);letter-spacing:6px}.card-desc{position:absolute;bottom:30px;font-size:11px;color:#adbaaa;letter-spacing:1px}.card-arrow{position:absolute;bottom:36px;right:22px;color:#b9aa83;font-size:20px}.footnote{text-align:center;font-size:10px;letter-spacing:2px;color:#98ac9a}.dot{display:inline-block;width:4px;height:4px;background:var(--gold);border-radius:50%;margin-right:10px;vertical-align:middle}footer{position:relative;z-index:1;max-width:1160px;border-top:1px solid rgba(182,193,171,0.125);margin:12px auto 0;padding:22px 28px 25px;display:flex;justify-content:space-between;color:#7e9687;font-size:10px;letter-spacing:2px}.view{animation:fadein .7s both}@keyframes fadein{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.opening{text-align:center;min-height:650px;padding:65px 24px}.opening h2{font:25px var(--serif);letter-spacing:4px;margin:35px 0 10px}.opening>p:not(.eyebrow){color:var(--muted);font-size:12px;letter-spacing:2px}.envelope{width:290px;height:195px;position:relative;background:#c8bfa6;margin:85px auto 20px;perspective:800px;box-shadow:0 20px 60px rgba(0,0,0,0.333);border-radius:4px}.env-front{position:absolute;top:0;right:0;bottom:0;left:0;background:#ded3b8;clip-path:polygon(0 0,50% 55%,100% 0,100% 100%,0 100%);z-index:3}.env-flap{position:absolute;top:0;right:0;bottom:0;left:0;background:#ebdfc4;clip-path:polygon(0 0,100% 0,50% 55%);transform-origin:top;z-index:4;transition:transform 1s}.letter-peek{position:absolute;top:12px;right:12px;bottom:12px;left:12px;background:#f5ecda;color:#50604b;font:19px/1.9 var(--serif);padding:22px;letter-spacing:5px;transition:transform 1.2s .3s;z-index:2}.seal{border:1px solid #eadbbb;background:#9a563e;color:#f5e5c7;width:49px;height:49px;border-radius:50%;font:23px var(--serif);position:absolute;left:calc(50% - 24px);top:80px;z-index:5;box-shadow:0 2px 4px rgba(0,0,0,0.267);animation:sealGlow 3s infinite;transition:opacity .3s}.envelope.is-open .env-flap{transform:rotateX(180deg);z-index:1}.envelope.is-open .letter-peek{transform:translateY(-80px)}.envelope.is-open .seal{opacity:0;pointer-events:none}@keyframes sealGlow{50%{box-shadow:0 0 0 9px rgba(199,172,108,0.071)}}.text-button{background:none;border:none;padding:14px 0;font-size:12px;color:#bbc5b4;letter-spacing:1px}.opening .text-button{margin-top:25px}.result{max-width:630px;margin:auto;padding:12px 28px 40px}.result-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.result-top>span{font-size:10px;color:#9daea0;letter-spacing:1px}.poem-sheet{position:relative;background:#efe8d7;color:#354238;padding:38px 42px 28px;border-radius:3px;overflow:hidden;box-shadow:0 24px 55px rgba(6,22,19,0.533)}.sheet-illustration{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.05;pointer-events:none}.sheet-illustration svg{width:100%;height:100%}.sheet-head{position:relative;display:flex;justify-content:space-between;align-items:center}.chapter{font-size:10px;letter-spacing:3px;color:#8b7652}.tiny-seal{font:10px/1.25 var(--serif);letter-spacing:2px;border:1px solid #aa5c42;color:#a9573c;padding:4px 3px 4px 5px;transform:rotate(4deg)}.poem-sheet h2{position:relative;font:32px var(--serif);font-weight:400;text-align:center;letter-spacing:5px;margin:24px 0 12px}.author{text-align:center;font-size:11px;letter-spacing:3px;color:#7b8373}.poem-lines{position:relative;margin:29px 0 33px;font:22px/2.25 var(--serif);letter-spacing:3px;text-align:center}.poem-lines p{margin:0}.poem-rule{border-top:1px solid rgba(132,148,122,0.267);text-align:center;height:14px}.poem-rule span{position:relative;top:-9px;background:#efe8d7;padding:0 14px;font-size:10px;color:#8f927d;letter-spacing:2px}.reflection{position:relative;font:17px/1.9 var(--serif);text-align:center;color:#63715e;margin:13px 0 21px}.origin{position:relative;border-top:1px solid rgba(136,153,123,0.200);padding-top:15px;font-size:12px;color:#77816f}.origin summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;line-height:30px}.origin summary::-webkit-details-marker{display:none}.origin summary span{color:#a0906e}.origin p{line-height:1.9;margin:10px 0}.origin a{font-size:11px;text-underline-offset:4px}.question-card{padding:31px 5px 23px}.question-label{font-size:10px;color:#b1a176;letter-spacing:3px}.question-card h3{font:23px/1.6 var(--serif);font-weight:400;margin:12px 0 9px;letter-spacing:1px}.question-card>p{color:#9cad9e;font-size:11px;letter-spacing:1px}.quiet-button{background:none;border:0;border-bottom:1px solid rgba(163,172,143,0.333);padding:12px 0;color:#d3c5a5;font-size:11px;letter-spacing:1px}.quiet-button span{margin-left:19px}.breath{height:140px;display:grid;align-content:center;justify-content:center;text-align:center}.breath>span{display:block;border:1px solid #a8bb97;width:38px;height:38px;border-radius:50%;margin:10px auto 12px;box-shadow:0 0 20px rgba(197,191,118,0.133);animation:breathe 5s ease-in-out infinite}.breath p{font-size:11px;color:var(--muted);letter-spacing:2px}@keyframes breathe{50%{transform:scale(1.5);opacity:.4}}.result-actions{display:flex;grid-gap:12px}.primary-button,.secondary-button{display:flex;align-items:center;justify-content:space-between;grid-gap:15px;border:1px solid rgba(158,174,142,0.400);padding:16px 19px;border-radius:3px;font-size:12px;letter-spacing:1px;flex:1;text-decoration:none}.primary-button{background:#d0bd92;color:#273c30;border-color:#d0bd92}.secondary-button{background:none;color:#d6dbc9}.local-note{color:#8fa38f;font-size:10px;line-height:1.8;letter-spacing:1px;text-align:center;margin:16px 0}.another{display:block;margin:17px auto 0}.another span{margin-left:14px}.shelf{max-width:750px;margin:auto;min-height:650px;padding:20px 30px}.shelf-heading h1{font:38px var(--serif);font-weight:400;letter-spacing:5px}.shelf-heading p{color:var(--muted);font-size:12px;letter-spacing:1px}.shelf-list{margin:32px 0;display:grid;grid-gap:12px}.saved-item{border:1px solid rgba(162,176,141,0.267);padding:20px;background:rgba(255,255,255,0.016);display:flex;align-items:center;grid-gap:20px;border-radius:3px}.saved-open{text-align:left;background:none;border:0;flex:1;padding:5px}.saved-open h3{font:23px var(--serif);letter-spacing:2px;margin:0 0 10px}.saved-open p{font-size:12px;color:var(--muted);margin:0;line-height:1.7}.remove-save{color:#9eae9b;background:none;border:0;padding:13px;font-size:11px}.empty{text-align:center;border:1px dashed rgba(162,176,141,0.267);padding:65px 22px;font:21px/2 var(--serif);color:#a9b69e}.empty small{display:block;font:12px/2 var(--sans);margin-top:12px;color:#7f9686}.toast{position:fixed;z-index:50;left:50%;bottom:calc(30px + env(safe-area-inset-bottom));transform:translate(-50%,20px);background:#e9e0c8;color:#324430;padding:14px 24px;border-radius:25px;font-size:12px;box-shadow:0 6px 30px rgba(0,0,0,0.333);opacity:0;pointer-events:none;transition:all .3s;white-space:nowrap}.toast.visible{opacity:1;transform:translate(-50%,0)}dialog{position:fixed;max-width:420px;width:calc(100% - 38px);border:1px solid rgba(142,154,120,0.333);border-radius:6px;background:#182e29;color:var(--cream);padding:26px;max-height:90vh;overflow:auto}dialog::backdrop{background:rgba(3,21,16,0.729);backdrop-filter:blur(6px)}dialog h2{font:22px var(--serif);font-weight:400;letter-spacing:2px;margin:12px 0}dialog p{font-size:11px;color:var(--muted)}dialog img{width:100%;display:block;margin:22px 0 16px;border-radius:2px}.dialog-close{position:absolute;top:6px;right:9px;border:none;background:none;padding:10px;font-size:26px;color:var(--muted)}.window-rain{animation:rain 2s linear infinite}.floating-leaf{transform-origin:140px 100px;animation:sway 7s ease-in-out infinite}.moon-glow{animation:moonPulse 7s ease-in-out infinite}.walking-path{stroke-dasharray:8 18;animation:pathFlow 7s linear infinite}@keyframes rain{to{transform:translate(-8px,25px)}}@keyframes sway{50%{transform:rotate(7deg) translateY(5px)}}@keyframes moonPulse{50%{opacity:.5}}@keyframes pathFlow{to{stroke-dashoffset:-104}}@media(max-width:650px){.topbar{padding:22px 21px}.brand{font-size:16px;grid-gap:9px;letter-spacing:2px}.brand small{font-size:7px}.brand-mark{height:33px;width:29px;font-size:20px}.shelf-button{font-size:10px;padding:10px 12px}.shelf-button>span{display:none}.home{padding:24px 19px 27px}.intro h1{font-size:36px;line-height:1.55;letter-spacing:5px;margin:20px 0 15px}.intro p{font-size:11px;letter-spacing:1px;line-height:1.9}.eyebrow{font-size:9px;letter-spacing:2px}.mobile{display:block}.choices{grid-gap:10px;margin:32px 0 24px}.scene-card{height:247px;border-radius:75px 75px 3px 3px;padding:0}.card-num{bottom:83px;left:12px;font-size:6px;letter-spacing:1px}.card-name{font-size:21px;letter-spacing:2px;left:12px;bottom:49px}.card-desc{left:12px;right:6px;bottom:22px;font-size:9px;letter-spacing:0;line-height:1.4}.card-arrow{display:none}.scene-card:hover{transform:none}.scene-art svg{width:160%;margin-left:-30%}.footnote{font-size:8px;letter-spacing:1px}.home{min-height:calc(100vh - 154px)}footer{margin:0 20px;padding:20px 0;font-size:8px;letter-spacing:1px}.opening{padding-top:70px;min-height:calc(100vh - 145px)}.opening h2{font-size:23px}.result{padding:10px 18px 24px}.poem-sheet{padding:26px 23px 22px}.poem-sheet h2{font-size:28px;margin-top:23px;letter-spacing:3px}.poem-lines{font-size:20px;letter-spacing:2px;margin:26px 0}.reflection{font-size:15px;line-height:1.9}.question-card{padding:28px 3px 23px}.question-card h3{font-size:21px}.result-actions{grid-gap:9px}.primary-button,.secondary-button{font-size:11px;padding:15px 13px;grid-gap:7px}.local-note{font-size:9px;letter-spacing:0}.shelf{padding:14px 22px}.shelf-heading h1{font-size:32px}.shelf-button b{margin-left:4px}.sheet-head .chapter{font-size:9px;letter-spacing:2px}.result-top>span{font-size:9px}.saved-item{grid-gap:8px;padding:15px 12px}.saved-open p{font-size:11px}.saved-open h3{font-size:22px}}@media(max-width:359px){.home{padding-left:14px;padding-right:14px}.choices{grid-gap:7px}.card-name{font-size:19px}.card-desc{font-size:8px}.intro h1{font-size:31px}.poem-lines{font-size:18px;letter-spacing:1px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important;transition:none!important}}

/* Chrome 61 fallback and container safe areas. */
button:focus,a:focus,summary:focus{outline:2px solid #d8bd88;outline-offset:4px}.brand-mark{margin-right:12px}.result-actions>*+*{margin-left:12px}.saved-item .remove-save{margin-left:20px}.primary-button>span,.secondary-button>span{margin-left:10px}.toast{bottom:30px;max-width:90%;white-space:normal;text-align:center}.card-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:rgba(3,21,16,.73)}dialog:not([open]){display:none}dialog.dialog-fallback{display:block;z-index:61;top:5vh;left:50%;margin:0;transform:translateX(-50%)}.topbar{padding-top:65px;padding-top:calc(65px + env(safe-area-inset-top))}.source-note{font-size:11px;word-break:break-word}@media(max-width:650px){.topbar{padding-top:65px;padding-top:calc(65px + env(safe-area-inset-top))}.brand-mark{margin-right:9px}.result-actions>*+*{margin-left:9px}.saved-item .remove-save{margin-left:8px}}

/* Cat-letter brand update: local logo, long-name mobile layout. */
.brand{font-size:18px;letter-spacing:1px;min-width:0;flex-shrink:1;grid-gap:0;gap:0}.brand-logo{width:48px;height:48px;display:block;flex:0 0 48px;margin-right:12px;border-radius:14px;object-fit:contain;background:#fff4e7}.brand-name{white-space:nowrap;line-height:1.35}.brand small{letter-spacing:2px;font-size:9px}.shelf-button{flex-shrink:0;margin-left:12px}.intro-mascot{display:block;width:96px;height:96px;margin:0 auto 20px;border-radius:27px;background:#fff4e7;box-shadow:0 10px 28px rgba(0,0,0,.18)}.sheet-brand-logo{display:block;width:44px;height:44px;object-fit:contain;border-radius:11px}.intro h1{letter-spacing:5px}footer{flex-wrap:wrap;gap:10px}
@media(max-width:650px){.brand{font-size:15px;letter-spacing:.5px}.brand-logo{width:39px;height:39px;flex-basis:39px;margin-right:8px;border-radius:11px}.brand small{font-size:8px;letter-spacing:1.5px}.shelf-button{padding:10px;margin-left:9px}.intro-mascot{width:83px;height:83px;margin-bottom:18px;border-radius:24px}.intro h1{font-size:34px;letter-spacing:3px}}
@media(max-width:359px){.topbar{padding-left:15px;padding-right:15px}.brand{font-size:14px}.brand-logo{width:34px;height:34px;flex-basis:34px;margin-right:7px}.shelf-button{font-size:9px;padding:9px;margin-left:7px}.intro h1{font-size:30px;letter-spacing:2px}}

/* Recoverable local shelf states; diagnostics contain no saved poem data. */
.storage-alert p{margin:0 0 12px}.storage-alert small{display:block;margin:8px 0;line-height:1.7}.storage-alert button{margin-top:14px}.storage-diagnostic{font:11px/1.6 sans-serif;opacity:.65;word-break:break-word}button:disabled{cursor:default;opacity:.55}

/* 2026.11 · Penpen's illustrated poetry post */
:root{--bg:#173d35;--cream:#f8efde;--muted:#bec8b8;--gold:#dab482;--line:#6d86734d}
body{background:radial-gradient(ellipse at 15% 0,#285147 0,transparent 60%),var(--bg)}
.topbar{max-width:1280px;padding:25px 44px;border-bottom:1px solid var(--line)}
.cat-sprite{display:block;background-image:url('./assets/cats-sheet.png');background-size:300% 200%;background-repeat:no-repeat;aspect-ratio:1;background-color:#fff4e7}
.cat-sit{background-position:0% 0%}.cat-sleep{background-position:50% 0%}.cat-walk{background-position:100% 0%}.cat-groom{background-position:0% 100%}.cat-stretch{background-position:50% 100%}.cat-letter{background-position:100% 100%}
.brand-logo{width:49px;height:49px;border-radius:50%;background-size:300% 200%;object-fit:initial}.brand small{font-size:7px;letter-spacing:1.7px;color:#a9bdad}.shelf-button{display:flex;align-items:center;gap:8px;padding:7px 15px 7px 7px;border-color:#7b92754d}.shelf-button>.shelf-cat{display:block;width:31px;height:31px;border-radius:50%;margin:0;background-size:300% 200%}.shelf-button b{margin-left:2px}
.home{max-width:1180px;padding:48px 40px 35px}.hero-layout{display:grid;grid-template-columns:1.13fr 1fr;align-items:center;gap:35px}.intro{text-align:left}.eyebrow{font-size:9px;letter-spacing:3px}.intro h1{font-size:43px;line-height:1.6;letter-spacing:3px;margin:24px 0 18px}.intro h1 em{color:#e3c394}.intro p{font-size:12px;line-height:2.1;letter-spacing:1.5px}.hero-signature{font:12px var(--serif);letter-spacing:2px;color:#b4bd9e;margin-top:28px}.hero-signature span{width:25px;height:1px;background:#d9b27b;display:inline-block;vertical-align:middle;margin-right:12px}
.hero-portrait{margin:0;transform:rotate(2deg);background:#f9efdf;padding:14px 14px 20px;border-radius:160px 160px 7px 7px;box-shadow:0 24px 45px #0b29284d;overflow:hidden}.hero-portrait img{display:block;width:100%;height:270px;object-fit:cover;object-position:38% 50%;border-radius:145px 145px 3px 3px}.hero-portrait figcaption{font:13px var(--serif);color:#605340;text-align:center;padding-top:17px;letter-spacing:2px}.hero-portrait figcaption span{display:block;font:9px var(--sans);color:#9b8972;letter-spacing:1px;margin-top:7px}
.choices-heading{display:flex;align-items:baseline;justify-content:space-between;margin:55px 0 20px;border-bottom:1px solid var(--line);padding-bottom:14px}.choices-heading h2{font:20px var(--serif);letter-spacing:2px;margin:0}.choices-heading p{font-size:10px;letter-spacing:1px;color:#b1c0af;margin:0}.choices{gap:22px;margin:0 0 24px}.scene-card{height:318px;border-radius:7px;background:#fff4e7;padding:0;box-shadow:0 10px 25px #0b282529;border:1px solid #fbf0de;isolation:isolate;color:#3d4e3a}.scene-card:after{background:linear-gradient(transparent 46%,#fbf0e1 70%);z-index:-1}.scene-card .scene-art{bottom:70px;z-index:-2}.scene-art .cat-sprite{width:100%;height:100%;background-size:300% 200%}.card-num{left:24px;bottom:78px;color:#a08660;font-size:8px;letter-spacing:2px}.card-name{left:24px;bottom:42px;font-size:25px;letter-spacing:3px}.card-desc{left:24px;bottom:20px;color:#8b8773;font-size:10px}.card-arrow{right:24px;bottom:31px;color:#9b7c4e}.scene-card:hover{transform:translateY(-6px) rotate(-.7deg);box-shadow:0 20px 35px #0926204d}.path-card:hover{transform:translateY(-6px) rotate(.7deg)}.footnote{font-size:9px;color:#afbeab;letter-spacing:1px}.privacy-note{font-size:9px;text-align:center;line-height:1.9;color:#94ad9b;max-width:630px;margin:12px auto 0;letter-spacing:.5px}
.opening{padding-top:40px;min-height:650px}.opening-cat{width:150px;height:150px;margin:25px auto 0}.opening-cat .cat-sprite{width:150px;height:150px;border-radius:50%}.envelope{margin:38px auto 20px}.opening h2{font-size:23px}.opening #openingStatus{line-height:1.8;min-height:44px;max-width:410px;margin:10px auto}.sheet-brand-logo{width:54px;height:54px;border-radius:50%}.sheet-illustration{top:95px;left:45%;bottom:auto;width:250px;height:250px;opacity:.04}.sheet-illustration .cat-sprite{width:100%;height:100%;border-radius:50%}.poem-sheet{background:#fbf1e1;padding:32px 40px 28px}.poem-rule span{background:#fbf1e1}.poem-sheet h2{line-height:1.5}.match-note{position:relative;border-left:2px solid #c4a475;padding:2px 14px;margin:24px 0}.match-note>span{font-size:10px;letter-spacing:2px;color:#967a53}.match-note p{font:14px/1.9 var(--serif);color:#68765d;margin:8px 0}.origin{padding:14px 0 6px;color:#62705c}.origin summary{font-size:12px;color:#65714f;letter-spacing:1px}.origin p{font:14px/2 var(--serif);white-space:pre-line}.origin .source-note,.origin a{font:10px/1.9 var(--sans);color:#8c8068}.translation{color:#69705d}.ai-disclosure{border-top:1px solid #84947a33;padding-top:18px;margin-top:10px;color:#9b8f79;font:10px/1.8 var(--sans)}.ai-disclosure b{font-weight:500;letter-spacing:1px}.ai-disclosure p{margin:5px 0 0}.breath>.cat-sprite{width:90px;height:90px;border-radius:50%;border:0;animation:breathe 8s ease-in-out infinite}.breath{height:175px}.shelf-heading{position:relative}.shelf-mascot{width:100px;height:100px;border-radius:50%;position:absolute;right:0;top:30px}.empty-cat{width:120px;height:120px;border-radius:50%;margin:0 auto 20px}.saved-item{border-radius:6px}.footer-brand{display:flex;align-items:center;gap:10px}.footer-cat{width:30px;height:30px;border-radius:50%}footer{align-items:center;max-width:1100px;margin-top:0}.result-actions>*+*{margin-left:0}.source-note span{display:block}
@media(max-width:800px){.intro h1{font-size:34px}.hero-layout{gap:22px}.hero-portrait img{height:240px}.home{padding:35px 28px}.scene-card{height:280px}.scene-card .scene-art{bottom:80px}.card-name{font-size:23px}.topbar{padding:22px 28px}.choices{gap:14px}}
@media(max-width:650px){.topbar{padding:18px 20px;padding-top:calc(18px + env(safe-area-inset-top))}.brand{font-size:14px}.brand small{font-size:6px;letter-spacing:.8px}.brand-logo{width:37px;height:37px;flex-basis:37px}.shelf-button{font-size:10px;padding:8px 10px}.shelf-button>.shelf-cat{display:none}.home{padding:32px 20px 25px}.hero-layout{grid-template-columns:1fr;gap:26px}.intro{text-align:center}.intro h1{font-size:33px;line-height:1.55;letter-spacing:2px;margin:16px 0 15px}.intro p{font-size:11px}.hero-signature{font-size:10px;margin-top:18px}.hero-portrait{width:84%;max-width:340px;margin:auto;border-radius:140px 140px 6px 6px;padding:10px 10px 14px;transform:rotate(1.5deg)}.hero-portrait img{height:195px;border-radius:130px 130px 3px 3px}.hero-portrait figcaption{padding-top:12px;font-size:12px}.hero-portrait figcaption span{font-size:8px}.choices-heading{margin:34px 0 17px;display:block;text-align:center;border-bottom:0;padding:0}.choices-heading h2{font-size:19px}.choices-heading p{margin-top:8px;font-size:9px}.choices{gap:9px;margin-bottom:20px}.scene-card{height:214px}.scene-card .scene-art{top:4px;bottom:80px;left:-2px;right:-2px}.card-num{left:10px;bottom:71px;font-size:6px;letter-spacing:1px}.card-name{left:10px;bottom:41px;font-size:19px;letter-spacing:0}.card-desc{left:10px;right:7px;bottom:16px;font-size:8px;line-height:1.5}.card-arrow{display:none}.footnote{font-size:8px;line-height:1.9;letter-spacing:0}.privacy-note{font-size:8px;margin-top:8px}.opening{padding:35px 20px;min-height:calc(100vh - 150px)}.opening h2{font-size:20px;line-height:1.7;letter-spacing:2px}.opening-cat{width:120px;height:120px}.opening-cat .cat-sprite{width:120px;height:120px}.envelope{margin-top:32px;width:270px;height:180px}.seal{top:71px}.poem-sheet{padding:24px 22px}.poem-sheet h2{font-size:27px;letter-spacing:2px}.poem-lines{font-size:19px;letter-spacing:1px}.match-note p,.origin p{font-size:13px}.ai-disclosure{font-size:9px}.shelf-mascot{width:73px;height:73px;top:42px}.shelf-heading p{max-width:240px;line-height:1.8}.shelf-heading h1{font-size:30px}.scene-card:hover,.path-card:hover{transform:none}footer{padding:18px 0;margin:0 20px}.footer-cat{width:26px;height:26px}}
@media(max-width:359px){.topbar{padding-left:14px;padding-right:14px}.brand{font-size:12px}.brand small{font-size:5px}.home{padding-left:14px;padding-right:14px}.intro h1{font-size:29px}.scene-card{height:198px}.scene-card .scene-art{bottom:77px}.card-name{font-size:17px;bottom:40px}.card-desc{font-size:7px}.choices{gap:7px}.poem-lines{font-size:17px}.hero-portrait img{height:175px}}

/* Mood portraits: preserve the same cat across distinct illustrated scenes. */
.hero-portrait{border-radius:12px;transform:rotate(1deg);padding:12px 12px 17px}.hero-portrait img{height:auto;aspect-ratio:1752/921;object-fit:contain;border-radius:5px}.hero-portrait figcaption{font-size:12px;line-height:1.6;padding-top:13px}.hero-portrait figcaption span{font-size:9px}
.scene-card{height:430px}.scene-card .scene-art{top:0;left:0;right:0;bottom:98px}.mood-image{display:block;width:100%;height:100%;object-fit:cover;object-position:center 50%}.scene-card:after{background:linear-gradient(transparent 65%,#fbf0e1 79%)}.card-num{bottom:78px}.card-name{bottom:42px}.card-desc{bottom:20px}.opening-cat .mood-image{border-radius:50%;object-position:center 43%}.sheet-illustration .mood-image{border-radius:50%}
@media(max-width:800px){.scene-card{height:370px}.scene-card .scene-art{bottom:96px}.hero-portrait img{height:auto}.hero-portrait figcaption{font-size:11px;letter-spacing:1px}.card-num{font-size:7px}}
@media(max-width:650px){.hero-portrait{width:100%;max-width:390px;padding:8px 8px 12px;border-radius:9px}.hero-portrait img{height:auto;border-radius:4px}.hero-portrait figcaption{font-size:11px;padding-top:10px}.hero-portrait figcaption span{font-size:8px;letter-spacing:.5px}.scene-card{height:267px}.scene-card .scene-art{top:0;left:0;right:0;bottom:80px}.scene-card:after{background:linear-gradient(transparent 62%,#fbf0e1 74%)}.card-num{bottom:65px;left:9px;font-size:5px;letter-spacing:.8px}.card-name{bottom:37px;left:9px;font-size:18px}.card-desc{bottom:12px;left:9px;font-size:8px;line-height:1.45}.opening-cat .mood-image{width:120px;height:120px}}
@media(max-width:359px){.scene-card{height:244px}.scene-card .scene-art{bottom:80px}.card-name{font-size:16px}.card-desc{font-size:7px}.card-num{letter-spacing:.3px}}


/* 2026-11-07: remove top hero cat portrait; keep layout balanced */
.hero-layout.hero-text-only{display:block;max-width:720px;margin:0 auto 8px;text-align:center}
.hero-layout.hero-text-only .intro{text-align:center;max-width:640px;margin:0 auto}
.hero-layout.hero-text-only .intro h1{margin-top:18px}
.hero-layout.hero-text-only .hero-signature{display:inline-flex;align-items:center;justify-content:center}
.brand.brand-text-only{gap:0}
.brand.brand-text-only .brand-name{letter-spacing:2.5px}
.home{padding-top:36px}
.choices-heading{margin-top:40px}
@media(max-width:650px){
  .hero-layout.hero-text-only{margin-bottom:0}
  .home{padding-top:24px}
  .choices-heading{margin-top:28px}
  .brand.brand-text-only{font-size:15px}
}
