:root{--paper:#f4f0e5;--paper-deep:#e6dece;--ink:#292a25;--ink-soft:#65665d;--jade:#60736c;--jade-pale:#b8c1af;--vermilion:#a54532;--gold:#c5a267;--line:rgba(41,42,37,.22);--serif:Georgia,'Times New Roman',serif;--brush:'STKaiti','KaiTi','Kaiti SC','Songti SC',Georgia,serif;--sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;margin:0;color:var(--ink);background:radial-gradient(ellipse at 18% 7%,rgba(255,255,255,.88),transparent 34%),radial-gradient(ellipse at 89% 43%,rgba(96,115,108,.09),transparent 25%),var(--paper);font-family:var(--sans);overflow-x:hidden}body:before{position:fixed;z-index:-1;inset:-8%;opacity:.4;background-image:radial-gradient(circle,rgba(41,42,37,.12) 0 .6px,transparent .8px),repeating-linear-gradient(84deg,transparent 0 5px,rgba(41,42,37,.025) 6px 7px);background-size:15px 15px,100% 100%;animation:paper-drift 44s ease-in-out infinite alternate;content:''}.page-noise{position:fixed;z-index:20;inset:0;opacity:.045;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 120 120' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.75'/%3E%3C/svg%3E")}::selection{color:var(--paper);background:var(--vermilion)}a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--vermilion);outline-offset:4px}[hidden]{display:none!important}.frame{width:min(1120px,calc(100% - 64px));margin:0 auto}.site-header{display:flex;min-height:104px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.wordmark{display:inline-flex;gap:11px;align-items:center}.seal{display:grid;width:38px;height:38px;place-items:center;color:var(--paper);background:var(--vermilion);font:700 24px/.9 var(--brush);transform:rotate(-4deg)}.wordmark strong{display:block;font:650 17px/1 var(--serif);letter-spacing:-.03em}.wordmark small{display:block;margin-top:4px;color:var(--ink-soft);font-size:9px;letter-spacing:.075em}.site-header nav{display:flex;align-items:center;gap:22px;color:var(--ink-soft);font-size:11px;font-weight:700;letter-spacing:.04em}.site-header nav a{position:relative;padding:7px 0}.site-header nav a:after{position:absolute;right:0;bottom:1px;left:0;height:1px;background:var(--ink);content:'';transform:scaleX(0);transform-origin:right;transition:transform .25s ease}.site-header nav a:hover:after{transform:scaleX(1);transform-origin:left}.language-toggle{padding:7px 0 7px 18px;border:0;border-left:1px solid var(--line);color:var(--vermilion);background:none;font-weight:800}.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:62px;min-height:650px;align-items:center;padding:70px 0}.hero-copy{position:relative;padding:20px 0 18px 36px}.hero-copy:before{position:absolute;top:20px;bottom:17px;left:0;width:9px;background:var(--ink);clip-path:polygon(36% 0,100% 2%,72% 19%,94% 34%,52% 51%,86% 68%,51% 86%,100% 100%,0 97%,24% 81%,0 61%,30% 43%,0 23%);content:''}.kicker{display:flex;gap:8px;align-items:center;margin:0 0 17px;color:var(--ink-soft);font-size:10px;font-weight:760;letter-spacing:.075em}.kicker>span:first-child{color:var(--vermilion);font:21px/.8 var(--brush)}h1,h2,h3,p{margin-top:0}h1{max-width:660px;margin-bottom:22px;font:600 clamp(49px,6vw,75px)/.97 var(--serif);letter-spacing:-.075em}h1 em,h2 em{color:var(--jade);font-family:var(--brush);font-style:normal;font-weight:700;letter-spacing:-.12em}.hero-intro{max-width:474px;margin-bottom:30px;color:var(--ink-soft);font-size:14px;line-height:1.8}.hero-actions{display:flex;gap:19px;align-items:center}.hero-actions>p{max-width:175px;margin:0;color:var(--ink-soft);font-size:10px;line-height:1.5}.button{display:inline-flex;gap:13px;min-height:45px;align-items:center;justify-content:center;padding:12px 17px;border:1px solid transparent;font-size:11px;font-weight:800;letter-spacing:.035em;transition:transform .2s ease,box-shadow .2s ease}.button:hover{transform:translate(-2px,-2px)}.button-sun{color:var(--ink);background:#e6c36f;box-shadow:4px 4px 0 var(--ink)}.button-sun:hover{box-shadow:6px 6px 0 var(--ink)}.button-ink{color:var(--paper);background:var(--ink);box-shadow:4px 4px 0 var(--vermilion)}.hero-orbit{position:relative;min-height:430px}.orbit-ring{position:absolute;border:1px solid var(--line);border-radius:50%}.ring-one{top:24px;right:6px;width:365px;height:365px;border-color:rgba(165,69,50,.35);animation:orbit-drift 16s ease-in-out infinite alternate}.ring-two{top:68px;right:55px;width:270px;height:270px;border-style:dashed;border-color:rgba(96,115,108,.5);animation:orbit-drift 18s ease-in-out infinite alternate-reverse}.orbit-star{position:absolute;color:var(--vermilion);font:27px/1 var(--brush)}.star-one{top:41px;left:18%}.star-two{right:3%;bottom:28px;color:var(--gold);font-size:21px}.hero-animal-card{position:absolute;top:49px;right:38px;display:grid;width:282px;min-height:326px;padding:22px;border:1px solid var(--ink);background:rgba(248,245,236,.84);box-shadow:11px 12px 0 rgba(41,42,37,.12);transform:rotate(3.4deg)}.hero-animal-card:after{position:absolute;right:20px;bottom:82px;left:20px;height:1px;background:var(--line);content:''}.card-label{margin:0;color:var(--ink-soft);font-size:8px;font-weight:800;letter-spacing:.11em}.hero-glyph{position:absolute;top:51px;left:21px;color:rgba(165,69,50,.2);font:150px/.8 var(--brush)}.hero-emoji{position:absolute;top:90px;right:35px;font-size:76px;filter:drop-shadow(2px 5px 0 rgba(41,42,37,.12));animation:float-soft 4.6s ease-in-out infinite alternate}.hero-animal-card>div{align-self:end}.hero-animal-card>div span{display:block;margin-bottom:7px;color:var(--vermilion);font-size:10px;font-weight:850;letter-spacing:.09em}.hero-animal-card strong{display:block;max-width:190px;font:600 24px/1.02 var(--serif);letter-spacing:-.045em}.zodiac-ribbon{overflow:hidden;padding:13px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(230,222,206,.48)}.zodiac-ribbon>div{display:flex;width:max-content;animation:ribbon 42s linear infinite}.zodiac-ribbon span{display:inline-flex;gap:8px;min-width:142px;align-items:center;justify-content:center;padding:0 16px;border-right:1px solid var(--line);color:var(--ink-soft);font-size:9px;font-weight:800;letter-spacing:.09em}.zodiac-ribbon b{color:var(--vermilion);font:22px/.8 var(--brush)}.zodiac-ribbon i{font-style:normal;font-size:15px}.discover{display:grid;grid-template-columns:.78fr 1.22fr;gap:70px;padding:105px 0}.section-intro{position:sticky;top:28px;align-self:start}.section-intro h2,.companion-heading h2{margin-bottom:21px;font:600 clamp(39px,4.6vw,58px)/.98 var(--serif);letter-spacing:-.07em}.section-intro>p:last-child,.companion-heading>p{max-width:330px;margin-bottom:0;color:var(--ink-soft);font-size:13px;line-height:1.8}.discovery-board{display:grid;grid-template-columns:.85fr 1.15fr;min-height:505px;border-top:2px solid var(--ink);border-bottom:1px solid var(--ink);background:rgba(255,255,255,.16)}.birthday-panel{display:flex;flex-direction:column;padding:34px 29px;border-right:1px solid var(--line)}.step-title,.creation-step{display:grid;grid-template-columns:37px 1fr;gap:11px;align-items:start;margin-bottom:40px}.step-title>span,.creation-step>span{display:grid;width:28px;height:28px;place-items:center;color:var(--paper);background:var(--vermilion);font:700 13px/1 var(--serif)}.step-title h3,.creation-step h3{margin:0 0 5px;font:600 22px/1 var(--serif);letter-spacing:-.04em}.step-title p,.creation-step p{margin:0;color:var(--ink-soft);font-size:10px;line-height:1.5}label{display:block;margin-bottom:8px;color:var(--ink-soft);font-size:10px;font-weight:800;letter-spacing:.04em}input[type='date']{width:100%;margin-bottom:18px;padding:12px 0;border:0;border-bottom:1px solid var(--ink);border-radius:0;color:var(--ink);background:transparent;font:600 18px/1 var(--serif)}input[type='date']::-webkit-calendar-picker-indicator{opacity:.7;cursor:pointer}.birthday-panel .button{width:100%;margin-top:8px}.privacy-note{margin:14px 0 0;color:var(--ink-soft);font-size:9px;line-height:1.45}.revelation-panel{padding:26px}.empty-result{display:grid;min-height:450px;place-items:center;align-content:center;text-align:center}.empty-result p{max-width:180px;margin:18px 0 0;color:var(--ink-soft);font:500 15px/1.55 var(--serif)}.empty-wheel{position:relative;width:191px;height:191px;border:1px dashed var(--line);border-radius:50%;animation:spin-slow 26s linear infinite}.empty-wheel:before{position:absolute;inset:34px;border:1px solid rgba(165,69,50,.5);border-radius:50%;content:''}.empty-wheel span{position:absolute;color:var(--vermilion);font:32px/1 var(--brush)}.empty-wheel span:nth-child(1){top:-13px;left:78px}.empty-wheel span:nth-child(2){top:34px;right:-16px}.empty-wheel span:nth-child(3){right:15px;bottom:14px}.empty-wheel span:nth-child(4){bottom:-13px;left:78px}.empty-wheel span:nth-child(5){bottom:33px;left:-15px}.empty-wheel span:nth-child(6){top:34px;left:-16px}.filled-result{transform-origin:left center}.filled-result.is-revealed{animation:ink-reveal 650ms cubic-bezier(.2,.76,.22,1) both}.result-meta{display:flex;justify-content:space-between;margin-bottom:19px;color:var(--ink-soft);font-size:9px;font-weight:800;letter-spacing:.08em}.result-layout{display:grid;grid-template-columns:180px 1fr;gap:24px;align-items:center}.public-portrait{position:relative;display:grid;min-height:220px;place-items:center;overflow:hidden;border:1px solid var(--ink);background:linear-gradient(145deg,rgba(96,115,108,.18),rgba(255,255,255,.54))}.public-portrait:before{position:absolute;width:165px;height:165px;border:1px solid rgba(165,69,50,.34);border-radius:50%;content:''}.portrait-orbit{position:absolute;width:220px;height:58px;border-top:1px solid var(--line);border-radius:50%;transform:rotate(-33deg)}.portrait-glyph{position:absolute;bottom:2px;left:4px;color:rgba(165,69,50,.17);font:148px/.8 var(--brush)}.portrait-emoji{position:relative;z-index:1;font-size:86px;filter:drop-shadow(3px 5px 0 rgba(41,42,37,.12))}.portrait-caption{position:absolute;right:10px;bottom:11px;z-index:2;color:var(--ink-soft);font-size:7px;font-weight:850;letter-spacing:.09em}.result-eyebrow{margin:0 0 8px;color:var(--vermilion);font-size:10px;font-weight:850;letter-spacing:.1em}.result-copy h3{margin-bottom:10px;font:600 31px/.95 var(--serif);letter-spacing:-.055em}.result-description{margin-bottom:15px;color:var(--ink-soft);font-size:12px;line-height:1.65}.trait-list{display:flex;flex-wrap:wrap;gap:6px}.trait-list span{padding:5px 7px;border:1px solid var(--line);color:var(--jade);font-size:8px;font-weight:850;letter-spacing:.04em}.cultural-note{margin-top:24px;padding:15px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.cultural-note span{color:var(--vermilion);font-size:8px;font-weight:850;letter-spacing:.1em}.cultural-note p{margin:7px 0 0;color:var(--ink-soft);font:500 13px/1.65 var(--serif)}.result-next{display:inline-flex;gap:10px;align-items:center;margin-top:20px;padding:0;border:0;color:var(--ink);background:none;font:700 12px/1.1 var(--serif)}.result-next:after{width:44px;height:1px;background:var(--vermilion);content:'';transition:width .2s ease}.result-next:hover:after{width:65px}.legend-strip{position:relative;overflow:hidden;color:var(--paper);background:var(--ink)}.legend-strip:after{position:absolute;right:-3%;bottom:-43px;width:60%;height:180px;opacity:.3;background:linear-gradient(145deg,transparent 0 39%,rgba(244,240,229,.22) 39.5% 57%,transparent 57.5%);clip-path:polygon(0 100%,0 75%,19% 37%,39% 78%,61% 14%,79% 65%,100% 38%,100% 100%);content:''}.legend-content{position:relative;z-index:1;display:grid;grid-template-columns:68px 1fr .75fr;gap:52px;align-items:center;padding:63px 0}.vertical-word{margin:0;color:var(--gold);font:42px/1.02 var(--brush);writing-mode:vertical-rl;letter-spacing:.2em}.inverted{color:rgba(244,240,229,.61)}.legend-content h2{margin:0;font:600 clamp(35px,4.5vw,55px)/.98 var(--serif);letter-spacing:-.07em}.legend-content h2 em{color:#dfc78f}.legend-content>p:last-child{margin:0;color:rgba(244,240,229,.7);font-size:12px;line-height:1.75}.companion{padding:105px 0}.companion-heading{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:42px}.companion-heading h2{margin-bottom:0}.companion-gate{display:grid;grid-template-columns:50px 1fr auto;gap:17px;align-items:center;padding:29px;border-top:2px solid var(--ink);border-bottom:1px solid var(--ink);background:rgba(255,255,255,.19)}.companion-gate>span{display:grid;width:31px;height:31px;place-items:center;color:var(--paper);background:var(--jade);font:700 14px var(--serif)}.companion-gate strong{display:block;margin-bottom:4px;font:600 22px/1 var(--serif);letter-spacing:-.04em}.companion-gate p{margin:0;color:var(--ink-soft);font-size:11px;line-height:1.5}.text-link{border-bottom:1px solid var(--vermilion);color:var(--vermilion);font-size:10px;font-weight:850;letter-spacing:.04em}.creation-workspace{display:grid;grid-template-columns:.93fr 1.07fr;min-height:560px;border-top:2px solid var(--ink);border-bottom:1px solid var(--ink);background:rgba(255,255,255,.19)}.creation-controls{padding:33px 29px;border-right:1px solid var(--line)}.creation-step{margin-bottom:29px}.companion-picker{display:grid;gap:9px}.companion-option{display:grid;grid-template-columns:39px 1fr;gap:11px;min-height:82px;align-items:center;padding:11px;border:1px solid var(--line);color:var(--ink);background:rgba(255,255,255,.14);text-align:left;transition:transform .2s ease,border-color .2s ease,background-color .2s ease}.companion-option:hover{transform:translateY(-2px);border-color:var(--ink)}.companion-option.selected{border-color:var(--ink);background:rgba(255,255,255,.61);box-shadow:3px 3px 0 var(--ink)}.option-mark{display:grid;width:36px;height:45px;place-items:center;border:1px solid currentColor;color:var(--vermilion);font:700 25px/.9 var(--brush)}.companion-option b,.companion-option small{display:block}.companion-option b{font:600 16px/1.05 var(--serif);letter-spacing:-.03em}.companion-option small{margin-top:5px;color:var(--ink-soft);font-size:9px;line-height:1.4}.upload-block{display:grid;grid-template-columns:1fr auto;gap:13px;align-items:center;margin:22px 0 9px;padding-top:20px;border-top:1px solid var(--line)}.upload-block strong{display:block;margin-bottom:5px;font:600 17px/1 var(--serif);letter-spacing:-.03em}.upload-block p{margin:0;color:var(--ink-soft);font-size:9px;line-height:1.5}.photo-button{display:inline-flex;gap:5px;align-items:center;margin:0;padding:9px 11px;border:1px solid var(--ink);color:var(--ink);background:transparent;font-size:9px;font-weight:850;letter-spacing:.04em}.photo-button:hover{color:var(--paper);background:var(--ink)}.photo-button span:first-child{font-size:16px;line-height:.6}.upload-status{min-height:15px;margin:0 0 17px;color:var(--jade);font-size:9px;font-weight:750}.creation-controls .button{width:100%}.prototype-note{margin:14px 0 0;color:var(--ink-soft);font-size:9px;line-height:1.5}.companion-preview-wrap{display:grid;place-items:center;align-content:center;padding:35px}.companion-preview{position:relative;width:min(100%,390px);aspect-ratio:.79;overflow:hidden;border:1px solid var(--ink);background:linear-gradient(160deg,#e9e3d3,#c3cec0);box-shadow:11px 12px 0 rgba(41,42,37,.16)}.companion-preview:after{position:absolute;right:-15%;bottom:-9%;left:-12%;height:37%;opacity:.7;background:linear-gradient(145deg,transparent 0 38%,rgba(96,115,108,.35) 38.5% 55%,transparent 55.5%),linear-gradient(35deg,transparent 0 53%,rgba(41,42,37,.26) 53.5% 68%,transparent 68.5%);clip-path:polygon(0 100%,0 73%,19% 40%,33% 72%,55% 18%,71% 63%,88% 34%,100% 75%,100% 100%);content:''}.preview-sun{position:absolute;top:55px;right:33px;width:66px;height:66px;border:1px solid rgba(165,69,50,.55);border-radius:50%;background:rgba(250,245,224,.65)}.preview-branch{position:absolute;z-index:2;width:140px;height:1px;background:rgba(41,42,37,.56);transform-origin:left}.branch-one{top:149px;left:-19px;transform:rotate(26deg)}.branch-two{top:197px;right:-53px;transform:rotate(146deg)}.preview-top{position:absolute;z-index:3;top:16px;right:17px;left:17px;display:flex;justify-content:space-between;margin:0;color:var(--ink-soft);font-size:7px;font-weight:850;letter-spacing:.09em}.preview-glyph{position:absolute;z-index:1;bottom:20px;left:10px;color:rgba(165,69,50,.2);font:195px/.75 var(--brush)}.user-photo{position:absolute;z-index:3;top:138px;left:47px;display:grid;width:133px;height:158px;place-items:center;overflow:hidden;border:6px solid rgba(244,240,229,.72);border-radius:52% 48% 51% 49%;color:var(--paper);background:var(--jade);box-shadow:5px 7px 0 rgba(41,42,37,.2);transform:rotate(-5deg)}.user-photo img{width:100%;height:100%;object-fit:cover}.user-photo span{font:600 42px/.8 var(--serif)}.preview-companion{position:absolute;z-index:4;right:36px;bottom:106px;font-size:80px;filter:drop-shadow(3px 5px 0 rgba(41,42,37,.14));animation:float-soft 4.3s ease-in-out infinite alternate-reverse}.form-character .preview-companion{right:31px;bottom:93px;font-size:62px;transform:scaleX(-1)}.form-character .user-photo{width:150px;height:150px;top:143px;left:39px;border-radius:50%;transform:rotate(3deg)}.form-character .preview-glyph{color:rgba(96,115,108,.2)}.preview-copy{position:absolute;right:20px;bottom:20px;left:20px;z-index:5}.preview-copy span{display:block;margin-bottom:5px;color:var(--vermilion);font-size:8px;font-weight:850;letter-spacing:.09em}.preview-copy strong{display:block;max-width:250px;font:600 23px/1 var(--serif);letter-spacing:-.045em}.preview-caption{margin:21px 0 0;color:var(--ink-soft);font-size:9px;font-weight:750;letter-spacing:.05em;text-align:center}.preview-result{display:grid;grid-template-columns:66px 1fr;gap:19px;align-items:start;margin-top:42px;padding:26px;border-top:2px solid var(--ink);border-bottom:1px solid var(--ink);background:rgba(255,255,255,.25)}.preview-result-mark{display:grid;width:48px;height:48px;place-items:center;color:var(--paper);background:var(--vermilion);font:31px/.8 var(--brush);transform:rotate(-5deg)}.preview-result h3{max-width:510px;margin:0 0 10px;font:600 33px/1 var(--serif);letter-spacing:-.055em}.preview-result p:not(.kicker){max-width:565px;margin-bottom:0;color:var(--ink-soft);font-size:12px;line-height:1.7}.site-footer{display:flex;min-height:117px;align-items:center;justify-content:space-between;border-top:1px solid var(--line);color:var(--ink-soft);font-size:10px;font-weight:720}.site-footer p{margin:0}@keyframes paper-drift{from{transform:translate3d(-.7%,-.5%,0)}to{transform:translate3d(.9%,.7%,0)}}@keyframes orbit-drift{from{transform:rotate(-8deg) scale(.97)}to{transform:rotate(9deg) scale(1.035)}}@keyframes float-soft{from{transform:translateY(-4px) rotate(-3deg)}to{transform:translateY(4px) rotate(3deg)}}@keyframes spin-slow{to{transform:rotate(360deg)}}@keyframes ribbon{to{transform:translateX(-50%)}}@keyframes ink-reveal{from{clip-path:inset(0 100% 0 0);filter:blur(3px) contrast(.85);opacity:.25}70%{clip-path:inset(0);filter:blur(0) contrast(1.05);opacity:1}to{clip-path:inset(0);filter:none;opacity:1}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(max-width:820px){.frame{width:min(100% - 40px,1120px)}.hero{display:block;min-height:auto;padding:58px 0 67px}.hero-copy{max-width:630px}.hero-orbit{max-width:440px;margin:43px auto 0}.discover{grid-template-columns:1fr;gap:45px;padding:80px 0}.section-intro{position:static}.discovery-board{max-width:650px}.legend-content{grid-template-columns:57px 1fr;gap:28px}.legend-content>p:last-child{grid-column:2}.companion{padding:80px 0}.companion-heading{display:block}.companion-heading>p{margin-top:18px}.creation-workspace{grid-template-columns:1fr;max-width:650px}.creation-controls{border-right:0;border-bottom:1px solid var(--line)}.companion-preview-wrap{padding:52px 35px}}@media(max-width:560px){.frame{width:min(100% - 30px,1120px)}.site-header{min-height:76px}.site-header nav{gap:0}.site-header nav a{display:none}.language-toggle{padding-right:0}.wordmark small{display:none}.hero{padding-top:43px}.hero-copy{padding-left:25px}.hero-copy:before{width:7px}.hero-actions{flex-direction:column;align-items:flex-start}.hero-actions>p{max-width:265px}.hero-orbit{min-height:360px;margin:22px -22px 0;transform:scale(.88)}.discover{padding:67px 0}.discovery-board{grid-template-columns:1fr}.birthday-panel{border-right:0;border-bottom:1px solid var(--line)}.revelation-panel{padding:25px}.empty-result{min-height:304px}.result-layout{grid-template-columns:1fr}.public-portrait{min-height:190px}.result-copy h3{font-size:31px}.legend-content{padding:54px 0}.companion-gate{grid-template-columns:38px 1fr;padding:24px}.companion-gate .text-link{grid-column:2;justify-self:start}.creation-controls{padding:29px 23px}.companion-preview-wrap{padding:38px 20px}.companion-preview{width:min(100%,350px)}.preview-result{grid-template-columns:1fr}.site-footer{display:block;padding:23px 0}.site-footer>*{display:block;margin:0 0 12px}}
.portrait-subcaption{display:block;position:absolute;right:14px;bottom:13px;left:14px;color:var(--ink-soft);font-size:8px;font-weight:700;letter-spacing:.04em;text-align:center}.public-portrait:after{content:'PUBLIC / NOT PERSONAL';position:absolute;top:14px;right:14px;padding:4px 6px;border:1px solid rgba(165,69,50,.35);color:var(--vermilion);font-size:7px;font-weight:850;letter-spacing:.08em}.upload-status{min-height:15px;color:var(--jade);font-size:10px;font-weight:750}.preview-caption{max-width:360px;margin-right:auto;margin-left:auto;line-height:1.5}


/* Rat hero artwork supplied by the product owner. */
.hero{
  position:relative;
  display:block;
  min-height:630px;
  margin-top:28px;
  padding:0;
  overflow:hidden;
  isolation:isolate;
  border-top:1px solid rgba(197,162,103,.45);
  border-bottom:1px solid rgba(41,42,37,.18);
  background:#f7efdf;
}
.hero::before{
  position:absolute;
  z-index:-2;
  inset:0;
  background:url('assets/rat-hero.jpg') center center / cover no-repeat;
  content:'';
  animation:hero-art-breathe 18s ease-in-out infinite alternate;
}
.hero::after{
  position:absolute;
  z-index:-1;
  inset:0;
  background:linear-gradient(90deg,rgba(255,250,236,.94) 0%,rgba(255,250,236,.88) 37%,rgba(255,250,236,.56) 50%,rgba(255,250,236,.12) 65%,rgba(15,31,43,.02) 100%);
  content:'';
}
.hero-copy{
  z-index:1;
  display:flex;
  width:47%;
  min-height:630px;
  flex-direction:column;
  justify-content:center;
  padding:82px 0 74px 54px;
}
.hero-copy:before{
  top:calc(50% - 124px);
  bottom:auto;
  width:5px;
  height:230px;
  background:var(--vermilion);
  clip-path:none;
  opacity:.84;
}
.hero h1{max-width:510px;text-shadow:0 1px 18px rgba(255,250,236,.28)}
.hero-intro{max-width:430px;color:#4b4c45}
.hero-actions>p{color:#57584f}
.hero-orbit,.orbit-ring,.orbit-star{display:none}
@keyframes hero-art-breathe{from{transform:scale(1.002) translate3d(0,0,0)}to{transform:scale(1.025) translate3d(-.35%,-.2%,0)}}
@media(max-width:820px){
  .hero{min-height:580px;margin-top:16px;background-position:67% center}
  .hero::before{background-position:67% center}
  .hero-copy{width:min(100%,580px);min-height:580px;padding:66px 24px 60px 43px}
}
@media(max-width:560px){
  .hero{min-height:660px;margin-top:12px}
  .hero::before{background-position:70% center}
  .hero::after{background:linear-gradient(180deg,rgba(255,250,236,.78) 0%,rgba(255,250,236,.58) 46%,rgba(255,250,236,.1) 100%)}
  .hero-copy{width:100%;min-height:660px;padding:61px 25px 270px 31px}
  .hero-copy:before{top:65px;height:204px;width:4px}
  .hero h1{max-width:380px;font-size:clamp(43px,12vw,57px)}
}

/* Date-query artwork supplied by the product owner. The image is a scenic paper backdrop; form controls remain live HTML. */
.discovery-board{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  min-height:540px;
  border:1px solid rgba(197,162,103,.78);
  border-top-width:2px;
  background:#faf6e9 url('assets/date-query-bg.jpg') center center / cover no-repeat;
  box-shadow:0 15px 30px rgba(74,59,34,.08);
}
.discovery-board::before{
  position:absolute;
  z-index:-1;
  inset:0;
  background:linear-gradient(90deg,rgba(255,252,242,.20) 0%,rgba(255,252,242,.05) 44%,rgba(255,252,242,.18) 100%);
  content:'';
}
.birthday-panel,
.revelation-panel{
  position:relative;
  background:linear-gradient(180deg,rgba(255,253,246,.76),rgba(255,251,240,.60));
}
.birthday-panel{
  padding:41px 34px 35px;
  border-right:1px solid rgba(197,162,103,.52);
}
.revelation-panel{padding:33px}
.birthday-panel::after{
  position:absolute;
  right:18px;
  bottom:17px;
  left:18px;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(197,162,103,.7),transparent);
  content:'';
}
.discovery-board .step-title{margin-bottom:46px}
.discovery-board input[type='date']{
  border-bottom-color:rgba(41,42,37,.62);
  background:rgba(255,253,246,.28);
}
.discovery-board .button-ink{
  color:#fff9eb;
  background:#3b3d37;
  box-shadow:4px 4px 0 rgba(165,69,50,.78);
}
.discovery-board .empty-result{min-height:472px}
@media(max-width:820px){
  .discovery-board{min-height:0;background-position:center center}
  .birthday-panel{padding:36px 31px 33px;border-right:0;border-bottom:1px solid rgba(197,162,103,.52)}
  .revelation-panel{padding:30px}
  .birthday-panel::after{display:none}
}
@media(max-width:560px){
  .discovery-board{background-size:auto 100%;background-position:center top}
  .birthday-panel{padding:31px 24px 29px}
  .revelation-panel{padding:25px}
  .discovery-board .empty-result{min-height:304px}
}


/* Zodiac result landscape supplied by the product owner. Keep live result text above the scenic layer. */
.revelation-panel{
  background:
    linear-gradient(90deg,rgba(255,252,242,.80) 0%,rgba(255,252,242,.58) 47%,rgba(255,252,242,.70) 100%),
    url('assets/zodiac-result-bg.jpg') center / cover no-repeat;
}
.revelation-panel .filled-result,
.revelation-panel .empty-result{position:relative;z-index:1}
.revelation-panel .public-portrait{
  background:rgba(255,251,240,.34);
  box-shadow:0 8px 22px rgba(67,75,66,.08);
}
@media(max-width:560px){
  .revelation-panel{background-position:center top}
}


/* Full discover-page landscape backdrop: existing query/result artwork stays above it unchanged. */
.discover{position:relative;isolation:isolate}
.discover::before{
  position:absolute;
  z-index:-2;
  top:0;
  bottom:0;
  left:50%;
  width:100vw;
  transform:translateX(-50%);
  background:
    linear-gradient(90deg,rgba(250,247,238,.72) 0%,rgba(250,247,238,.26) 42%,rgba(250,247,238,.50) 100%),
    url('assets/zodiac-result-bg.jpg') center / cover no-repeat;
  content:'';
}
.discover::after{
  position:absolute;
  z-index:-1;
  top:0;
  right:50%;
  bottom:0;
  left:50%;
  width:100vw;
  transform:translateX(-50%);
  pointer-events:none;
  box-shadow:inset 0 1px rgba(197,162,103,.14),inset 0 -1px rgba(41,42,37,.08);
  content:'';
}
/* Keep the already-designed query board and result panel backgrounds intact. */
.revelation-panel{
  background:linear-gradient(180deg,rgba(255,253,246,.76),rgba(255,251,240,.60));
}
@media(max-width:560px){
  .discover::before{background-position:center top}
}


/* Step 2: polish the visible zodiac result card without changing the page backdrop or query board. */
.public-portrait{
  min-height:250px;
  border-color:rgba(197,162,103,.82);
  background:
    linear-gradient(180deg,rgba(255,252,242,.52),rgba(244,240,229,.24)),
    url('assets/zodiac-result-bg.jpg') 26% 56% / cover no-repeat;
  box-shadow:inset 0 0 0 8px rgba(255,252,242,.15),0 10px 22px rgba(67,75,66,.08);
}
.public-portrait:before{
  width:178px;
  height:178px;
  border-color:rgba(165,69,50,.32);
}
.public-portrait:after{
  top:12px;
  right:12px;
  bottom:auto;
  left:auto;
  padding:4px 6px;
  border:1px solid rgba(165,69,50,.30);
  color:var(--vermilion);
  background:rgba(255,252,242,.55);
  content:'PUBLIC / NOT PERSONAL';
  font-size:7px;
  font-weight:850;
  letter-spacing:.08em;
}
.portrait-emoji{font-size:96px;filter:drop-shadow(3px 6px 0 rgba(41,42,37,.16))}
.portrait-caption{display:none}
.portrait-subcaption{bottom:12px;padding:4px 7px;background:rgba(255,252,242,.62)}
@media(max-width:560px){
  .public-portrait{min-height:210px;background-position:32% center}
}


/* Creation studio: complete the visible MVP flow before background art is finalized. */
.creation-workbench{margin-top:38px;border-top:1px solid var(--line);background:rgba(255,252,242,.58)}
.workbench-tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line)}
.workbench-tab{display:grid;grid-template-columns:58px 1fr;gap:16px;align-items:start;padding:23px 24px;border:0;border-right:1px solid var(--line);color:var(--ink-soft);background:transparent;text-align:left;transition:background .2s ease,color .2s ease}
.workbench-tab:last-child{border-right:0}.workbench-tab:hover,.workbench-tab.active{color:var(--ink);background:rgba(255,255,255,.42)}
.workbench-tab.active{box-shadow:inset 0 -3px var(--vermilion)}.workbench-tab strong,.workbench-tab small{display:block}.workbench-tab strong{margin-bottom:6px;font:600 18px/1.1 var(--serif);letter-spacing:-.035em}.workbench-tab small{max-width:300px;color:var(--ink-soft);font-size:10px;line-height:1.45}.tab-number{color:var(--vermilion);font:700 11px/1 var(--brush);letter-spacing:.04em}
.workbench-main{display:grid;grid-template-columns:minmax(300px,.86fr) minmax(360px,1.14fr);min-height:650px}.creation-controls{padding:34px 34px 36px;border-right:1px solid var(--line)}.creation-step{display:grid;grid-template-columns:44px 1fr;gap:15px;align-items:start;margin-bottom:30px}.creation-step>span{display:grid;width:35px;height:35px;place-items:center;color:var(--paper);background:var(--ink);font:700 11px/1 var(--sans)}.creation-step h3{margin:0 0 7px;font:600 24px/1.05 var(--serif);letter-spacing:-.045em}.creation-step p{margin:0;color:var(--ink-soft);font-size:11px;line-height:1.5}.studio-gate{padding:21px;border:1px dashed rgba(41,42,37,.32);background:rgba(255,255,255,.26)}.studio-gate strong{display:block;margin-bottom:7px;font:600 22px/1 var(--serif);letter-spacing:-.04em}.studio-gate p{max-width:280px;margin:0 0 18px;color:var(--ink-soft);font-size:11px;line-height:1.6}.text-link,.text-button{border:0;border-bottom:1px solid currentColor;color:var(--vermilion);background:transparent;font-size:11px;font-weight:800}.studio-form{display:grid;gap:23px}.field-block>label{display:block;margin-bottom:10px;color:var(--ink-soft);font-size:10px;font-weight:800;letter-spacing:.055em}.field-hint{margin:8px 0 0;color:var(--ink-soft);font-size:9px;line-height:1.5}.zodiac-current{display:flex;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);background:rgba(255,255,255,.38)}.zodiac-current>span:first-child{font-size:30px;line-height:1}.zodiac-current-art{display:grid;width:44px;height:44px;place-items:center;overflow:hidden;border:1px solid rgba(41,42,37,.16);background:rgba(255,252,242,.56)}.zodiac-current-art img{width:100%;height:100%;object-fit:cover}.zodiac-current-art span{grid-area:1/1}.zodiac-current strong,.zodiac-current small{display:block}.zodiac-current strong{font:600 18px/1 var(--serif)}.zodiac-current small{margin-top:4px;color:var(--ink-soft);font-size:9px}.segmented-control{display:grid;grid-template-columns:1fr 1fr;gap:7px}.segmented-option{display:grid;grid-template-columns:30px 1fr;gap:8px;align-items:center;padding:11px 10px;border:1px solid var(--line);color:var(--ink-soft);background:rgba(255,255,255,.22);text-align:left}.segmented-option>span{display:grid;width:27px;height:27px;place-items:center;color:var(--paper);background:var(--jade);font:700 15px/1 var(--brush)}.segmented-option b{font-size:10px}.segmented-option.active{border-color:var(--vermilion);color:var(--ink);background:rgba(255,255,255,.54);box-shadow:2px 2px 0 rgba(165,69,50,.22)}.segmented-option.active>span{background:var(--vermilion)}select{width:100%;min-height:42px;padding:10px 12px;border:1px solid var(--line);border-radius:0;color:var(--ink);background:rgba(255,255,255,.38)}.ratio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.ratio-option{display:grid;justify-items:center;gap:6px;padding:10px 6px;border:1px solid var(--line);color:var(--ink-soft);background:rgba(255,255,255,.23)}.ratio-option b{font-size:9px}.ratio-option small{font-size:8px}.ratio-option.active{border-color:var(--vermilion);color:var(--ink);background:rgba(255,255,255,.54)}.ratio-shape{display:block;border:1px solid currentColor}.ratio-portrait{width:19px;height:25px}.ratio-square{width:24px;height:24px}.ratio-landscape{width:29px;height:19px}.upload-drop{display:flex!important;gap:11px;align-items:center;min-height:60px;margin:0!important;padding:12px;border:1px dashed rgba(41,42,37,.4);color:var(--ink);background:rgba(255,255,255,.25);cursor:pointer}.upload-drop:hover{border-color:var(--vermilion);background:rgba(255,255,255,.45)}.upload-icon{display:grid;width:28px;height:28px;place-items:center;color:var(--paper);background:var(--vermilion);font-size:20px;line-height:1}.upload-drop strong,.upload-drop small{display:block}.upload-drop strong{font-size:10px}.upload-drop small{margin-top:3px;color:var(--ink-soft);font-size:9px}.upload-status{min-height:15px;margin:7px 0 0;color:var(--jade);font-size:10px;font-weight:750}.generate-button{width:100%;margin-top:2px}.prototype-note{margin:0;color:var(--ink-soft);font-size:9px;line-height:1.55}.creation-canvas-wrap{display:grid;align-content:center;justify-items:center;padding:42px 38px 37px;background:rgba(230,222,206,.24)}.creation-canvas{position:relative;width:min(100%,390px);aspect-ratio:4/5;overflow:hidden;border:1px solid rgba(41,42,37,.42);background:linear-gradient(145deg,#e9ddc3,#d2c8ad 54%,#6d8077);box-shadow:10px 10px 0 rgba(41,42,37,.11);transition:aspect-ratio .25s ease,filter .3s ease}.creation-canvas[data-ratio=square]{aspect-ratio:1/1}.creation-canvas[data-ratio=landscape]{aspect-ratio:16/9;width:min(100%,470px)}.creation-canvas:before{position:absolute;inset:0;background:radial-gradient(circle at 74% 19%,rgba(255,237,157,.72) 0 11%,transparent 12%),linear-gradient(170deg,transparent 0 48%,rgba(50,72,65,.22) 49% 56%,rgba(40,59,54,.65) 57% 100%);content:''}.creation-canvas:after{position:absolute;inset:12px;border:1px solid rgba(255,252,242,.55);pointer-events:none;content:''}.canvas-mist{position:absolute;z-index:1;width:75%;height:24%;border-radius:50%;background:rgba(255,252,242,.35);filter:blur(14px);transform:rotate(-11deg)}.mist-one{top:39%;left:-12%}.mist-two{top:52%;right:-15%;transform:rotate(15deg)}.canvas-heading,.canvas-sigil,.canvas-animal,.canvas-user,.canvas-caption,.canvas-stamp{position:absolute;z-index:2}.canvas-heading{top:27px;right:28px;left:28px;display:flex;justify-content:space-between;color:rgba(41,42,37,.74);font-size:9px;font-weight:850;letter-spacing:.1em}.canvas-heading small{font-size:8px;font-weight:700}.canvas-sigil{top:28%;left:13%;color:rgba(165,69,50,.86);font:700 clamp(55px,9vw,88px)/1 var(--brush);text-shadow:1px 1px 0 rgba(255,252,242,.4)}.canvas-animal{top:29%;right:8%;display:grid;width:62%;height:42%;place-items:center;filter:drop-shadow(5px 7px 0 rgba(41,42,37,.14));animation:float-soft 5s ease-in-out infinite alternate}.canvas-animal img{width:100%;height:100%;object-fit:contain}.canvas-animal span{grid-area:1/1;font-size:clamp(80px,13vw,135px)}.canvas-user{right:15%;bottom:26%;display:grid;width:82px;height:82px;place-items:center;overflow:hidden;border:3px solid rgba(255,252,242,.8);border-radius:50%;background:rgba(255,252,242,.58);box-shadow:4px 5px 0 rgba(41,42,37,.16)}.canvas-user img{width:100%;height:100%;object-fit:cover}.canvas-user span{color:var(--vermilion);font:700 17px/1 var(--serif)}.canvas-caption{right:25px;bottom:29px;left:25px;display:grid;gap:5px}.canvas-caption span{color:var(--vermilion);font-size:8px;font-weight:850;letter-spacing:.11em}.canvas-caption strong{font:600 clamp(22px,3vw,32px)/1 var(--serif);letter-spacing:-.05em}.canvas-caption small{color:rgba(41,42,37,.74);font-size:9px}.canvas-stamp{right:27px;bottom:12px;color:rgba(41,42,37,.62);font-size:7px;font-weight:850;letter-spacing:.08em}.mode-portrait .canvas-user{display:grid}.creation-canvas:not(.mode-portrait) .canvas-user{display:none}.form-character .canvas-animal{filter:hue-rotate(15deg) saturate(.8) drop-shadow(5px 7px 0 rgba(41,42,37,.14))}.form-character .canvas-animal img{mix-blend-mode:multiply}.preview-caption{max-width:390px;margin:21px 0 0;color:var(--ink-soft);font-size:9px;line-height:1.5;text-align:center}.generation-result{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:22px 26px;border-top:2px solid var(--ink);background:rgba(255,255,255,.42)}.generation-status{display:grid;grid-template-columns:12px 1fr;column-gap:10px;align-items:center}.status-dot{grid-row:span 2;width:9px;height:9px;border-radius:50%;background:var(--jade)}.generation-status strong,.generation-status small{display:block}.generation-status strong{font:600 21px/1 var(--serif);letter-spacing:-.04em}.generation-status small{margin-top:5px;color:var(--ink-soft);font-size:9px}.result-actions{display:flex;gap:14px;align-items:center}.result-actions .button{white-space:nowrap}.generation-result.is-working .status-dot{background:var(--vermilion);animation:pulse-dot 1s ease-in-out infinite}.generation-result.is-working .button-ink{pointer-events:none;opacity:.6}@keyframes pulse-dot{50%{transform:scale(.55);opacity:.42}}
@media(max-width:820px){.workbench-tabs{grid-template-columns:1fr}.workbench-tab{border-right:0;border-bottom:1px solid var(--line)}.workbench-tab:last-child{border-bottom:0}.workbench-main{grid-template-columns:1fr}.creation-controls{border-right:0;border-bottom:1px solid var(--line)}.creation-canvas-wrap{min-height:520px}.generation-result{align-items:flex-start;flex-direction:column}.result-actions{flex-wrap:wrap}}
@media(max-width:560px){.workbench-tab{grid-template-columns:45px 1fr;padding:18px 15px}.workbench-tab strong{font-size:16px}.creation-controls{padding:28px 22px}.creation-canvas-wrap{padding:33px 20px 28px;min-height:410px}.creation-canvas{width:min(100%,350px)}.creation-canvas[data-ratio=landscape]{width:100%}.creation-step h3{font-size:21px}.generation-result{padding:20px}.generation-status strong{font-size:18px}.result-actions{gap:11px}.result-actions .button{width:100%}}


/* Live visual variation for the selected art direction / companion scene. */
.creation-canvas[data-style=dunhuang]{background:linear-gradient(145deg,#c98a55,#8d4a37 48%,#3f3848)}
.creation-canvas[data-style=dunhuang]:before{background:radial-gradient(circle at 74% 19%,rgba(255,225,133,.78) 0 11%,transparent 12%),linear-gradient(170deg,transparent 0 48%,rgba(113,45,34,.22) 49% 56%,rgba(42,38,59,.72) 57% 100%)}
.creation-canvas[data-style=paper]{background:linear-gradient(145deg,#f6d879,#e3a146 52%,#a54532)}
.creation-canvas[data-style=paper]:before{background:radial-gradient(circle at 74% 19%,rgba(255,246,191,.75) 0 11%,transparent 12%),linear-gradient(170deg,transparent 0 48%,rgba(165,69,50,.2) 49% 56%,rgba(116,47,39,.67) 57% 100%)}
.creation-canvas[data-style=celestial]{background:linear-gradient(145deg,#25344f,#4b4267 52%,#1e293e)}
.creation-canvas[data-style=celestial]:before{background:radial-gradient(circle at 74% 19%,rgba(248,222,133,.82) 0 11%,transparent 12%),radial-gradient(circle at 17% 20%,rgba(255,255,255,.8) 0 1px,transparent 2px),linear-gradient(170deg,transparent 0 48%,rgba(104,123,153,.25) 49% 56%,rgba(20,29,51,.75) 57% 100%)}
.creation-canvas[data-style=garden]{background:linear-gradient(145deg,#a9b9a3,#728b78 52%,#314841)}
.creation-canvas[data-style=festival]{background:linear-gradient(145deg,#d89b57,#a84c38 52%,#522f3b)}
.creation-canvas[data-style=river]{background:linear-gradient(145deg,#c5d1c5,#78989a 52%,#375c65)}
.creation-canvas[data-style=mountain]{background:linear-gradient(145deg,#e9ddc3,#b7c4b4 52%,#526a63)}
.creation-canvas[data-style=garden]:before,.creation-canvas[data-style=festival]:before,.creation-canvas[data-style=river]:before,.creation-canvas[data-style=mountain]:before{background:radial-gradient(circle at 74% 19%,rgba(255,237,157,.72) 0 11%,transparent 12%),linear-gradient(170deg,transparent 0 48%,rgba(50,72,65,.22) 49% 56%,rgba(40,59,54,.65) 57% 100%)}
.creation-canvas[data-style=festival] .canvas-sigil{color:#f4d47b}.creation-canvas[data-style=celestial] .canvas-heading,.creation-canvas[data-style=celestial] .canvas-caption small{color:rgba(255,247,218,.78)}.creation-canvas[data-style=celestial] .canvas-caption strong{color:#fff7da}.creation-canvas[data-style=celestial] .canvas-stamp{color:rgba(255,247,218,.65)}


/* Product-owner artwork: background for the complete creation workspace.
   Keep all controls and the live preview above this scenic layer. */
.companion{position:relative;isolation:isolate}
.companion::before{position:absolute;z-index:-2;top:0;bottom:0;left:50%;width:100vw;transform:translateX(-50%);background:linear-gradient(90deg,rgba(248,244,230,.86) 0%,rgba(248,244,230,.58) 48%,rgba(248,244,230,.80) 100%),url('assets/creation-workspace-bg.jpg') center / cover no-repeat;content:''}
.companion::after{position:absolute;z-index:-1;top:0;bottom:0;left:50%;width:100vw;transform:translateX(-50%);pointer-events:none;background:linear-gradient(180deg,rgba(255,252,242,.08),rgba(255,252,242,.22));content:''}
.creation-workbench,.companion-heading{position:relative}
.creation-workbench{background:rgba(255,252,242,.26)}
.creation-controls,.creation-canvas-wrap{background:rgba(255,252,242,.58)}
.companion-choice{display:flex;align-items:center;gap:10px;margin-top:10px;padding:9px 10px;border:1px solid var(--line);background:rgba(255,255,255,.34)}
.companion-choice-art{position:relative;display:grid;width:42px;height:42px;flex:0 0 42px;place-items:center;overflow:hidden;border:1px solid rgba(41,42,37,.18);background:rgba(255,252,242,.58)}
.companion-choice-art img,.companion-choice-art span{grid-area:1/1}.companion-choice-art img{width:100%;height:100%;object-fit:contain}.companion-choice-art span{font-size:22px}
.companion-choice strong,.companion-choice small{display:block}.companion-choice strong{font:600 16px/1 var(--serif)}.companion-choice small{margin-top:4px;color:var(--ink-soft);font-size:9px}

@media(max-width:560px){.companion::before{background-position:left center}}


/* Home gallery: the supplied twelve animal artworks rotate here without changing the lookup flow below. */
.hero-gallery{min-height:465px;isolation:isolate}.hero-gallery .hero-scene{position:relative;min-height:455px;overflow:hidden;border:1px solid rgba(41,42,37,.72);background:#d8ddcf;box-shadow:12px 14px 0 rgba(41,42,37,.12)}.hero-gallery .hero-artwork{position:absolute;width:100%;height:100%;inset:0;object-fit:cover;object-position:center;transition:opacity .44s ease,transform .6s ease}.hero-gallery .hero-image-wash{position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,31,29,.13),transparent 45%,rgba(255,249,231,.13)),linear-gradient(0deg,rgba(26,35,30,.16),transparent 44%);pointer-events:none}.hero-gallery .hero-animal-card{position:absolute;top:auto;right:auto;bottom:25px;left:25px;width:min(270px,calc(100% - 50px));min-height:204px;padding:18px 19px;border:1px solid rgba(255,250,235,.84);color:#fffdf2;background:rgba(24,38,35,.73);box-shadow:none;backdrop-filter:blur(8px);transform:none}.hero-gallery .hero-animal-card:after{position:absolute;right:18px;bottom:72px;left:18px;background:rgba(255,250,235,.34)}.hero-gallery .card-label{color:rgba(255,250,235,.76);font-size:8px}.hero-gallery .hero-glyph{top:35px;left:auto;right:18px;color:rgba(255,250,235,.16);font-size:126px}.hero-gallery .hero-emoji{display:none}.hero-gallery .hero-animal-card>div{position:relative;z-index:1}.hero-gallery .hero-animal-card>div span{color:#f0cc7b;font-size:10px}.hero-gallery .hero-animal-card strong{max-width:205px;color:#fffdf2;font-size:24px}.hero-count{position:absolute;top:20px;right:22px;z-index:1;margin:0;color:#fffdf2;font:600 12px/1 var(--serif);letter-spacing:.1em;text-shadow:0 1px 10px rgba(0,0,0,.4)}.hero-controls{position:absolute;right:18px;bottom:18px;z-index:2;display:flex;gap:8px;align-items:center;padding:7px 9px;border:1px solid rgba(255,250,235,.55);background:rgba(24,38,35,.5);backdrop-filter:blur(6px)}.hero-arrow{display:grid;width:29px;height:29px;place-items:center;padding:0;border:0;color:#fffdf2;background:transparent;font-size:17px;transition:background .2s ease}.hero-arrow:hover{background:rgba(255,250,235,.2)}.hero-dots{display:flex;gap:3px;align-items:center}.hero-dot{width:17px;height:24px;padding:0;border:0;color:rgba(255,250,235,.7);background:transparent;font:600 12px/1 var(--brush);transition:color .2s ease,transform .2s ease}.hero-dot:hover,.hero-dot[aria-current=true]{color:#f0cc7b;transform:translateY(-2px)}.hero-scene.is-changing .hero-artwork{animation:hero-artwork-in .52s ease both}@keyframes hero-artwork-in{from{opacity:.2;transform:scale(1.025)}to{opacity:1;transform:scale(1)}}
@media(max-width:820px){.hero{grid-template-columns:1fr;gap:24px;min-height:auto;padding:46px 0}.hero-gallery{min-height:420px;order:-1}.hero-gallery .hero-scene{min-height:420px}.hero-copy{padding-top:8px}.hero-gallery .hero-animal-card{bottom:20px;left:20px}.hero-count{top:17px;right:18px}}
@media(max-width:560px){.hero-gallery{min-height:350px}.hero-gallery .hero-scene{min-height:350px}.hero-gallery .hero-animal-card{bottom:14px;left:14px;width:min(232px,calc(100% - 28px));min-height:164px;padding:14px}.hero-gallery .hero-animal-card:after{bottom:60px}.hero-gallery .hero-glyph{top:28px;font-size:102px}.hero-gallery .hero-animal-card strong{font-size:20px}.hero-controls{right:11px;bottom:11px;gap:4px;padding:5px}.hero-dots{gap:1px}.hero-dot{width:14px;font-size:11px}.hero-arrow{width:25px;height:25px}.hero-count{top:13px;right:14px}}
@media(prefers-reduced-motion:reduce){.hero-gallery .hero-artwork{transition:none}.hero-scene.is-changing .hero-artwork{animation:none}}

/* The home gallery intentionally replaces the earlier single-rat hero treatment. */
.hero{position:relative;display:grid;grid-template-columns:1.05fr .95fr;gap:62px;min-height:650px;margin-top:0;padding:70px 0;overflow:visible;isolation:auto;border:0;background:transparent}.hero::before,.hero::after{display:none}.hero-copy{z-index:auto;display:block;width:auto;min-height:0;padding:20px 0 18px 36px}.hero-copy:before{top:20px;bottom:17px;width:9px;height:auto;background:var(--ink);clip-path:polygon(36% 0,100% 2%,72% 19%,94% 34%,52% 51%,86% 68%,51% 86%,100% 100%,0 97%,24% 81%,0 61%,30% 43%,0 23%);opacity:1}.hero h1{max-width:660px;text-shadow:none}.hero-orbit.hero-gallery{display:block;max-width:none;margin:0;transform:none}@media(max-width:820px){.hero{grid-template-columns:1fr;gap:24px;min-height:auto;margin-top:0;padding:46px 0}.hero-copy{width:auto;min-height:0;padding:8px 0 18px 36px}.hero-copy:before{top:8px;bottom:17px;height:auto;width:9px}}@media(max-width:560px){.hero{min-height:auto;margin-top:0}.hero-copy{width:auto;min-height:0;padding:8px 0 18px 30px}.hero-copy:before{top:8px;bottom:17px;width:7px;height:auto}.hero h1{max-width:660px;font-size:clamp(43px,12vw,57px)}}

/* Standalone zodiac cover: one full-width portrait panel instead of a split hero. */
.hero{
  display:block;
  min-height:0;
  margin-top:0;
  padding:54px 0 72px;
  overflow:visible;
}
.hero-copy{
  width:min(760px,100%);
  min-height:0;
  margin:0 auto 28px;
  padding:0 22px;
  text-align:center;
}
.hero-copy:before{display:none}
.hero-copy .kicker{justify-content:center}
.hero h1{max-width:none;margin-inline:auto}
.hero-intro{max-width:560px;margin-inline:auto}
.hero-actions{justify-content:center}
.hero-orbit.hero-gallery{width:100%;max-width:none;margin:0}
.hero-gallery .hero-scene{
  min-height:clamp(520px,63vw,720px);
  border-color:rgba(41,42,37,.78);
  box-shadow:16px 18px 0 rgba(41,42,37,.12);
}
.hero-gallery .hero-artwork{object-position:center center}
.hero-gallery .hero-animal-card{
  bottom:30px;
  left:30px;
  width:min(330px,calc(100% - 60px));
  min-height:222px;
  padding:22px 23px;
}
.hero-gallery .hero-animal-card strong{max-width:260px;font-size:28px}
.hero-count{top:24px;right:28px}
.hero-controls{right:28px;bottom:28px}
@media(max-width:820px){
  .hero{padding:42px 0 56px}
  .hero-copy{margin-bottom:24px}
  .hero-gallery .hero-scene{min-height:clamp(440px,72vw,570px)}
}
@media(max-width:560px){
  .hero{padding:30px 0 42px}
  .hero-copy{padding:0 15px;margin-bottom:18px}
  .hero-gallery .hero-scene{min-height:430px;box-shadow:9px 11px 0 rgba(41,42,37,.11)}
  .hero-gallery .hero-animal-card{bottom:14px;left:14px;width:min(245px,calc(100% - 28px));min-height:174px;padding:15px}
  .hero-gallery .hero-animal-card strong{max-width:205px;font-size:21px}
  .hero-count{top:14px;right:15px}
  .hero-controls{right:11px;bottom:11px}
}

/* Integrated cover treatment: the headline now belongs to the rotating zodiac card. */
.hero-copy{margin:0 auto 18px}
.hero-copy .kicker{margin:0;color:rgba(41,42,37,.64);font-size:10px}
.hero-gallery .hero-scene{min-height:clamp(590px,68vw,780px)}
.hero-gallery .hero-animal-card{
  display:flex;
  flex-direction:column;
  gap:14px;
  width:min(530px,calc(100% - 60px));
  min-height:0;
  padding:24px 27px 22px;
  background:rgba(24,38,35,.78);
}
.hero-gallery .hero-animal-card:after{bottom:18px}
.hero-card-title{position:relative;z-index:1;max-width:440px;margin:0;color:#fffdf2;font-size:clamp(35px,4.2vw,58px);line-height:.92;letter-spacing:-.055em;text-shadow:0 1px 15px rgba(0,0,0,.16)}
.hero-card-title em{color:#bfd0bd;font-style:normal}
.hero-card-intro{position:relative;z-index:1;max-width:365px;margin:0;color:rgba(255,250,235,.84);font-size:13px;line-height:1.55}
.hero-card-animal{position:relative;z-index:1;display:flex;align-items:end;gap:12px;margin-top:1px}
.hero-card-animal .hero-glyph{position:static;color:rgba(255,250,235,.18);font-size:74px;line-height:.72}
.hero-card-animal .hero-emoji{display:none}
.hero-card-animal>div{display:flex;flex-direction:column;gap:5px;padding-bottom:2px}
.hero-card-animal>div span{color:#f0cc7b;font-size:10px}
.hero-card-animal strong{max-width:275px;color:#fffdf2;font-size:21px;line-height:1.08}
.hero-card-actions{position:relative;z-index:1;display:flex;align-items:center;gap:14px;margin-top:1px}
.hero-card-actions .button{padding:11px 14px;font-size:11px}
.hero-card-actions>p{max-width:175px;margin:0;color:rgba(255,250,235,.7);font-size:10px;line-height:1.35}
@media(max-width:820px){
  .hero-copy{margin-bottom:16px}
  .hero-gallery .hero-scene{min-height:clamp(500px,78vw,640px)}
}
@media(max-width:560px){
  .hero-copy{margin-bottom:13px}
  .hero-copy .kicker{font-size:9px}
  .hero-gallery .hero-scene{min-height:510px}
  .hero-gallery .hero-animal-card{bottom:14px;left:14px;width:calc(100% - 28px);padding:17px 17px 15px;gap:10px}
  .hero-card-title{font-size:clamp(31px,9.5vw,46px)}
  .hero-card-intro{font-size:12px}
  .hero-card-animal .hero-glyph{font-size:61px}
  .hero-card-animal strong{font-size:18px}
  .hero-card-actions{gap:9px;align-items:flex-start}
  .hero-card-actions .button{padding:9px 10px;font-size:10px}
  .hero-card-actions>p{font-size:9px}
}

/* Keep the artwork readable: turn the large overlay into a low, transparent caption band. */
.hero-gallery .hero-animal-card{
  right:0;
  bottom:0;
  left:0;
  width:100%;
  min-height:270px;
  padding:118px 235px 22px 30px;
  border:0;
  background:linear-gradient(180deg,rgba(24,38,35,0) 0%,rgba(24,38,35,.08) 20%,rgba(24,38,35,.72) 69%,rgba(24,38,35,.91) 100%);
  box-shadow:none;
  backdrop-filter:none;
}
.hero-gallery .hero-animal-card:after{display:none}
.hero-card-title{max-width:620px;font-size:clamp(33px,4vw,52px)}
.hero-card-intro{max-width:510px}
.hero-card-animal{margin-top:0}
.hero-card-actions{margin-top:0}
@media(max-width:820px){
  .hero-gallery .hero-animal-card{min-height:245px;padding:104px 205px 20px 24px}
}
@media(max-width:560px){
  .hero-gallery .hero-animal-card{
    min-height:250px;
    padding:105px 16px 58px;
    background:linear-gradient(180deg,rgba(24,38,35,0) 0%,rgba(24,38,35,.12) 22%,rgba(24,38,35,.78) 67%,rgba(24,38,35,.94) 100%);
  }
  .hero-card-title{font-size:clamp(29px,8.8vw,43px)}
  .hero-card-intro{max-width:330px}
}

/* Refined integrated hero: keep the previous cinematic layout, with lighter typography and more visible artwork. */
.hero-gallery .hero-scene{min-height:clamp(590px,64vw,720px)}
.hero-gallery .hero-animal-card{
  min-height:255px;
  padding:112px 235px 20px 30px;
  background:linear-gradient(180deg,rgba(24,38,35,0) 0%,rgba(24,38,35,.06) 18%,rgba(24,38,35,.68) 66%,rgba(24,38,35,.90) 100%);
}
.hero-gallery .hero-animal-card > *{align-self:flex-start;margin-left:0;margin-right:0}
.hero-gallery .hero-card-title{max-width:640px;font-size:clamp(32px,3.8vw,50px)}
.hero-gallery .hero-card-title em{font-family:var(--serif);letter-spacing:-.055em}
.hero-gallery .hero-card-intro{max-width:540px}
.hero-gallery .hero-card-animal,
.hero-gallery .hero-card-actions{margin-top:0}
@media(max-width:820px){
  .hero-gallery .hero-scene{min-height:clamp(510px,78vw,620px)}
  .hero-gallery .hero-animal-card{min-height:240px;padding:100px 200px 18px 24px}
}
@media(max-width:560px){
  .hero-gallery .hero-scene{min-height:510px}
  .hero-gallery .hero-animal-card{
    min-height:248px;
    padding:100px 15px 58px;
    background:linear-gradient(180deg,rgba(24,38,35,0) 0%,rgba(24,38,35,.10) 20%,rgba(24,38,35,.76) 65%,rgba(24,38,35,.94) 100%);
  }
  .hero-gallery .hero-card-title{font-size:clamp(29px,8.5vw,42px)}
}


/* Query step 1: make the birth-date action feel clear, calm, and intentional. */
.discover .section-intro h2{
  max-width:470px;
  font-size:clamp(46px,5.4vw,70px);
  line-height:.96;
}

.discover .section-intro h2 em{
  font-family:var(--serif);
  font-weight:600;
  letter-spacing:-.065em;
}

.discover .section-intro>p:last-child{
  max-width:430px;
  font-size:13px;
  line-height:1.75;
}

.discovery-board .birthday-panel{
  padding:38px 32px 32px;
  background:linear-gradient(180deg,rgba(255,253,246,.90),rgba(255,251,240,.72));
}

.discovery-board .step-title{margin-bottom:34px}
.discovery-board .step-title h3{font-size:29px;line-height:1}
.discovery-board .step-title p{max-width:245px;line-height:1.55}
.discovery-board .birthday-panel>label{margin-bottom:9px;font-size:10px;letter-spacing:.055em}
.discovery-board input[type='date']{
  min-height:52px;
  padding:12px 4px;
  color:var(--ink);
  background:rgba(255,253,246,.52);
  font-family:var(--serif);
  font-size:18px;
}

.lunar-boundary-note{
  margin:12px 0 22px;
  padding-left:11px;
  border-left:2px solid rgba(165,69,50,.7);
  color:var(--ink-soft);
  font-size:9px;
  line-height:1.55;
}

.discovery-board .birthday-panel .button{width:100%;min-height:49px}
.discovery-board .privacy-note{margin-top:13px;color:rgba(41,42,37,.62);font-size:9px;line-height:1.5}

@media(max-width:820px){
  .discover .section-intro h2{max-width:620px}
}

@media(max-width:560px){
  .discover .section-intro h2{font-size:clamp(40px,12vw,58px)}
  .discovery-board .birthday-panel{padding:29px 23px 27px}
  .discovery-board .step-title{margin-bottom:27px}
  .discovery-board .step-title h3{font-size:26px}
}


/* Query step 2: turn the revealed zodiac into a clear cultural profile and creation gateway. */
.revelation-panel .filled-result{padding:2px 1px 3px}
.revelation-panel .result-layout{grid-template-columns:minmax(180px,.92fr) minmax(170px,1.08fr);gap:22px;align-items:stretch}
.revelation-panel .public-portrait{min-height:270px}
.revelation-panel .portrait-caption{
  display:block;
  top:12px;
  right:auto;
  bottom:auto;
  left:12px;
  padding:4px 7px;
  color:var(--vermilion);
  background:rgba(255,252,242,.66);
}
.revelation-panel .public-portrait:after{display:none}
.revelation-panel .portrait-subcaption{right:12px;bottom:12px;left:12px}
.revelation-panel .result-copy{display:flex;flex-direction:column;justify-content:center;padding:13px 0}
.revelation-panel .result-copy h3{font-size:clamp(30px,3.2vw,42px)}
.result-boundary{
  display:grid;
  grid-template-columns:118px 1fr;
  gap:15px;
  align-items:start;
  margin-top:20px;
  padding:13px 14px;
  border-left:3px solid var(--jade);
  background:rgba(96,115,108,.09);
}
.result-boundary span{color:var(--jade);font-size:8px;font-weight:850;letter-spacing:.08em}
.result-boundary p{margin:0;color:var(--ink-soft);font-size:10px;line-height:1.55}
.revelation-panel .cultural-note{margin-top:14px;padding:14px 0}
.revelation-panel .result-next{
  min-height:45px;
  margin-top:17px;
  padding:11px 15px;
  color:var(--paper);
  background:var(--ink);
  box-shadow:4px 4px 0 var(--vermilion);
  font-family:var(--sans);
  font-size:10px;
  letter-spacing:.035em;
  transition:transform .2s ease,box-shadow .2s ease;
}
.revelation-panel .result-next:after{display:none}
.revelation-panel .result-next:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--vermilion)}
@media(max-width:560px){
  .revelation-panel .result-layout{grid-template-columns:1fr}
  .revelation-panel .public-portrait{min-height:240px}
  .result-boundary{grid-template-columns:1fr;gap:6px}
}

/* Query step 3: show the owner's animal artwork in the zodiac result. */
.result-animal-art{
  position:absolute;
  z-index:1;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  opacity:0;
  transition:opacity .18s ease;
}
.result-animal-art.is-ready{opacity:1}
.revelation-panel .portrait-orbit,
.revelation-panel .portrait-glyph{z-index:2;pointer-events:none}
.revelation-panel .portrait-glyph{color:rgba(165,69,50,.10)}
.revelation-panel .portrait-caption,
.revelation-panel .portrait-subcaption{z-index:3;backdrop-filter:blur(4px)}
.revelation-panel .portrait-emoji{display:none}

/* Query step 5: explicit international birth-date fields avoid numeric date ambiguity. */
.birth-date-fields{margin:0 0 20px;padding:0;border:0}
.birth-date-fields legend{margin:0 0 11px;padding:0;color:var(--ink);font-size:10px;font-weight:750;letter-spacing:.055em}
.birthday-panel{container: birthday-panel / inline-size}
.birth-date-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(72px,.72fr) minmax(88px,.9fr);gap:10px}
.birth-date-grid label{display:grid;gap:7px;color:var(--ink-soft);font-size:9px;font-weight:760;letter-spacing:.055em}
.birth-date-grid select{width:100%;min-width:0;min-height:52px;padding:0 34px 0 12px;border:1px solid rgba(41,42,37,.3);border-radius:0;color:var(--ink);background:rgba(255,253,246,.72);font:600 15px/1 var(--serif);cursor:pointer}
.birth-date-grid select:hover{border-color:var(--ink)}
.birth-date-grid select:focus-visible{outline:2px solid var(--vermilion);outline-offset:2px}
@media(max-width:560px){.birth-date-grid{grid-template-columns:1.35fr .72fr .9fr;gap:7px}.birth-date-grid select{min-height:49px;padding-left:9px;padding-right:22px;font-size:13px}}
@media(max-width:420px){.birth-date-grid{grid-template-columns:1fr 1fr}.birth-date-grid label:first-child{grid-column:1/-1}.birth-date-grid select{font-size:14px}}

/* Keep all English date labels and placeholders fully visible inside the narrow query card. */
@media(max-width:720px){.birth-date-grid{grid-template-columns:1fr 1fr;gap:10px}.birth-date-grid label:first-child{grid-column:1/-1}.birth-date-grid select{padding-right:32px;font-size:14px}}
.birth-date-status{min-height:18px;margin:0 0 12px;color:var(--vermilion);font-size:12px;line-height:1.45}
.birth-date-status:empty{min-height:0;margin-bottom:0}
.birth-date-grid select[aria-invalid=true]{border-color:var(--vermilion);box-shadow:0 0 0 2px rgba(165,69,50,.12)}

/* Keep native date controls legible in translated pages and dark browser themes. */
.birth-date-grid label{position:relative}
.birth-date-grid label:after{position:absolute;right:15px;bottom:21px;width:7px;height:7px;border-right:1px solid var(--ink-soft);border-bottom:1px solid var(--ink-soft);content:'';pointer-events:none;transform:rotate(45deg)}
.birth-date-grid select{appearance:none;color:var(--ink)!important;background-color:#fffdf6!important;color-scheme:light;-webkit-text-fill-color:var(--ink)}
.birth-date-grid select option{color:var(--ink);background:#fffdf6}

/* Mobile pass: preserve the cover image while making the first actions easier to use. */
@media (max-width:560px){
  .hero-gallery .hero-scene{min-height:clamp(470px,132vw,540px)}
  .hero-gallery .hero-artwork{object-position:center center}
  .hero-gallery .hero-animal-card{min-height:234px;padding:88px 16px 58px}
  .hero-gallery .hero-card-title{max-width:calc(100% - 4px);font-size:clamp(29px,8.8vw,42px);line-height:.96}
  .hero-gallery .hero-card-intro{max-width:100%;font-size:12px;line-height:1.5}
  .hero-gallery .hero-card-animal{gap:9px}
  .hero-gallery .hero-card-animal strong{max-width:calc(100vw - 140px);font-size:18px}
  .hero-gallery .hero-card-actions{flex-wrap:wrap;gap:9px 12px;align-items:center}
  .hero-gallery .hero-card-actions .button{min-height:48px;padding:11px 13px}
  .hero-gallery .hero-card-actions>p{flex:1 1 125px;max-width:210px}
  .hero-gallery .hero-controls{right:9px;bottom:9px;padding:4px 5px}
  .hero-gallery .hero-arrow{width:42px;height:42px;font-size:19px}
  .hero-gallery .hero-dot{width:23px;height:34px;font-size:12px}

  .discover{padding-top:58px}
  .discover .section-intro h2{max-width:100%;font-size:clamp(39px,11.5vw,54px);line-height:1}
  .discover .section-intro>p:last-child{font-size:12px;line-height:1.7}
  .discovery-board{width:100%;overflow:hidden}
  .discovery-board .birthday-panel{padding:25px 18px 24px}
  .discovery-board .step-title{grid-template-columns:32px 1fr;gap:9px;margin-bottom:25px}
  .discovery-board .step-title>span{width:27px;height:27px}
  .discovery-board .step-title h3{font-size:24px;line-height:1.05}
  .discovery-board .step-title p{font-size:10px;line-height:1.55}
  .birth-date-grid{grid-template-columns:1fr 1fr;gap:8px}
  .birth-date-grid label:first-child{grid-column:1/-1}
  .birth-date-grid label{font-size:9px}
  .birth-date-grid select{min-height:52px;padding:0 26px 0 9px;font-size:14px}
  .birth-date-status{font-size:11px}
  .discovery-board .birthday-panel .button{min-height:52px}
}

@media (max-width:370px){
  .hero-gallery .hero-scene{min-height:500px}
  .hero-gallery .hero-animal-card{padding-inline:13px}
  .hero-gallery .hero-card-title{font-size:29px}
  .hero-gallery .hero-card-actions>p{flex-basis:110px;font-size:8px}
  .birth-date-grid{grid-template-columns:1fr 1fr;gap:8px}
  .birth-date-grid label:first-child{grid-column:1/-1}
}

/* Medium screens can still leave the date panel too narrow for three controls. */
html{overflow-x:hidden}
@media (max-width:1100px){
  html{overflow-x:hidden}
  .birth-date-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
  .birth-date-grid label:first-child{grid-column:1/-1}
  .birth-date-grid select{min-width:0;padding-right:32px;font-size:14px}
}

/* Use the panel's real width so embedded or zoomed layouts stay readable too. */
@container birthday-panel (max-width:390px){
  .birth-date-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
  .birth-date-grid label:first-child{grid-column:1/-1}
  .birth-date-grid select{min-width:0;padding-right:32px;font-size:14px}
}

/* If an embedded layout becomes exceptionally narrow, stack every control. */
@container birthday-panel (max-width:180px){
  .birth-date-grid{grid-template-columns:1fr;gap:10px}
  .birth-date-grid label:first-child{grid-column:auto}
}


/* Query step 6: make the revealed zodiac a social-ready result without changing the confirmed page artwork. */
.result-share{
  margin-top:18px;
  padding:18px 0 2px;
  border-top:1px solid rgba(41,42,37,.24);
}
.share-heading{display:grid;grid-template-columns:42px 1fr;gap:12px;align-items:center}
.share-seal{display:grid;width:38px;height:38px;place-items:center;color:#fff8e8;background:var(--vermilion);font:700 24px/1 var(--brush);transform:rotate(-4deg)}
.share-heading h4{margin:0 0 5px;font:600 20px/1 var(--serif);letter-spacing:-.035em}
.share-heading p{max-width:410px;margin:0;color:var(--ink-soft);font-size:9px;line-height:1.5}
.share-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:15px}
.share-main{min-height:40px;padding:10px 14px;color:#fff8e8;background:var(--vermilion);box-shadow:3px 3px 0 var(--ink)}
.share-main:hover{box-shadow:5px 5px 0 var(--ink)}
.share-secondary{min-height:40px;padding:9px 12px;border:1px solid rgba(41,42,37,.38);color:var(--ink);background:rgba(255,252,242,.55);font-size:9px;font-weight:800;letter-spacing:.035em}
.share-secondary:hover{border-color:var(--vermilion);color:var(--vermilion);background:rgba(255,252,242,.82)}
.share-status{min-height:15px;margin:10px 0 0;color:var(--jade);font-size:9px;font-weight:750;line-height:1.4}
.filled-result[data-shared='true'] .result-meta span:first-child{color:var(--vermilion)}
@media(max-width:560px){
  .share-actions{display:grid;grid-template-columns:1fr 1fr}
  .share-main{grid-column:1/-1;width:100%}
  .share-secondary{width:100%}
}
/* Flow completion */
.journey-rail{display:flex;align-items:center;gap:15px;padding:0 0 15px;border-bottom:1px solid rgba(41,42,37,.18)}
.journey-step{display:flex;min-width:198px;gap:12px;align-items:center;padding:10px 12px;color:var(--ink-soft);border:1px solid transparent;transition:color .2s ease,background .2s ease,border-color .2s ease}
.journey-step>span{display:grid;width:28px;height:28px;place-items:center;color:var(--paper);background:var(--ink);font:700 10px/1 var(--sans)}
.journey-step strong,.journey-step small{display:block}.journey-step strong{margin-bottom:3px;font:600 16px/1 var(--serif);letter-spacing:-.025em}.journey-step small{font-size:9px;line-height:1.35}
.journey-step:hover{color:var(--ink);background:rgba(255,252,242,.7);border-color:var(--line)}
.journey-step.is-complete{color:var(--ink)}.journey-step.is-complete>span{background:var(--vermilion)}.journey-step.is-unlocked{color:var(--ink)}
.journey-line{width:min(90px,10vw);height:1px;background:var(--line)}
.result-next-actions{display:flex;flex-wrap:wrap;gap:13px;align-items:center;margin-top:17px}.result-next-actions .result-next{margin-top:0}
.result-revise{padding:9px 0;border:0;border-bottom:1px solid var(--ink);color:var(--ink-soft);background:transparent;font-size:10px;font-weight:800;letter-spacing:.035em}.result-revise:hover{color:var(--vermilion);border-color:var(--vermilion)}
.creation-summary{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}.creation-summary span{padding:7px 9px;border:1px solid rgba(41,42,37,.18);color:var(--ink-soft);background:rgba(255,252,242,.58);font-size:9px;font-weight:800;letter-spacing:.025em}.generation-result.is-working .creation-summary span:last-child{color:var(--vermilion);border-color:rgba(165,69,50,.34)}
@media(max-width:720px){.journey-rail{gap:8px;overflow-x:auto;padding-bottom:11px}.journey-step{min-width:164px;padding:9px}.journey-step strong{font-size:14px}.journey-step small{font-size:8px}.journey-line{flex:0 0 24px}.creation-controls{padding:27px 22px 30px}.creation-summary{gap:6px}.creation-summary span{font-size:8px}}
@media(max-width:420px){.journey-step{min-width:145px}.journey-step>span{width:25px;height:25px}.result-next-actions{align-items:flex-start;flex-direction:column}.result-next-actions .result-next,.result-revise{width:100%}.result-revise{padding:10px 0}}

/* Companion preview: make an uploaded portrait read as part of the scene. */
.mode-portrait.has-photo .canvas-user{left:8%;right:auto;bottom:34%;width:34%;height:30%;border-radius:38% 38% 12% 12%;transform:rotate(-3deg);box-shadow:6px 7px 0 rgba(41,42,37,.16)}
.mode-portrait.has-photo .canvas-user img{object-position:center top}
.mode-portrait.has-photo .canvas-animal{top:22%;right:4%;width:60%;height:43%;transform:translateY(-2px)}
.mode-portrait.has-photo .canvas-caption{right:8%;bottom:8%;left:8%}
.mode-portrait.has-photo .canvas-stamp{display:none}
@media(max-width:560px){.mode-portrait.has-photo .canvas-user{left:7%;width:35%;height:29%}.mode-portrait.has-photo .canvas-animal{right:2%;width:61%}}

/* Finished creation: a separate, shareable paper composition (never the homepage carousel art). */
.generation-result{display:grid;grid-template-columns:minmax(0,1fr) minmax(275px,390px);align-items:start;gap:24px;padding:28px 30px;border-bottom:1px solid var(--line)}
.generation-status{grid-column:1/-1}.creation-result-art{position:relative;grid-row:2/span 2;min-height:468px;overflow:hidden;isolation:isolate;border:1px solid rgba(41,42,37,.34);background:linear-gradient(145deg,#eee2c7 0%,#f9f3e6 46%,#d9ceb6 100%);box-shadow:9px 10px 0 rgba(41,42,37,.12)}.creation-result-art:before{position:absolute;z-index:-1;inset:10px;border:1px solid rgba(255,252,242,.8);content:''}.creation-result-art:after{position:absolute;z-index:-2;inset:0;background:repeating-linear-gradient(87deg,rgba(99,76,45,.035) 0 1px,transparent 1px 7px);mix-blend-mode:multiply;content:''}
.result-art-heading{position:absolute;z-index:3;top:24px;right:25px;left:25px;display:flex;justify-content:space-between;color:rgba(41,42,37,.72);font-size:8px;font-weight:850;letter-spacing:.12em}.result-art-heading small{font-size:7px;font-weight:800}.result-art-sun{position:absolute;z-index:0;top:13%;right:15%;width:31%;aspect-ratio:1;border-radius:50%;background:rgba(206,156,56,.72);filter:blur(.2px)}.result-art-mountains{position:absolute;z-index:0;right:-12%;bottom:-4%;left:-14%;height:39%;background:linear-gradient(165deg,transparent 0 29%,rgba(79,103,94,.35) 30% 42%,rgba(45,75,66,.82) 43% 100%);clip-path:polygon(0 55%,14% 34%,26% 62%,42% 16%,56% 59%,73% 26%,100% 62%,100% 100%,0 100%)}
.result-creation-animal{position:absolute;z-index:2;top:17%;right:8%;width:75%;height:48%;display:grid;place-items:center;filter:drop-shadow(7px 9px 0 rgba(41,42,37,.14))}.result-creation-animal img{width:100%;height:100%;object-fit:contain}.result-creation-animal span{grid-area:1/1;font-size:120px}.result-art-copy{position:absolute;z-index:4;right:26px;bottom:27px;left:26px;display:grid;gap:6px}.result-art-copy span{color:var(--vermilion);font-size:8px;font-weight:850;letter-spacing:.12em}.result-art-copy strong{max-width:270px;font:600 clamp(29px,4vw,43px)/.94 var(--serif);letter-spacing:-.06em}.result-art-copy small{color:rgba(41,42,37,.72);font-size:9px;font-weight:760;letter-spacing:.03em}
.result-creation-photo{position:absolute;z-index:3;bottom:23%;left:8%;width:34%;height:31%;overflow:hidden;border:3px solid rgba(255,252,242,.85);border-radius:37% 37% 10% 10%;background:#eee4cf;box-shadow:6px 7px 0 rgba(41,42,37,.16);transform:rotate(-3deg)}.result-creation-photo img{width:100%;height:100%;object-fit:cover;object-position:center top}.creation-result-art[data-mode="portrait"].has-photo .result-creation-animal{top:20%;right:4%;width:63%;height:44%}.creation-result-art[data-mode="portrait"].has-photo .result-art-copy{bottom:25px}.creation-result-art[data-ratio="square"]{min-height:390px;aspect-ratio:1}.creation-result-art[data-ratio="landscape"]{min-height:310px;aspect-ratio:16/9}.creation-result-art[data-ratio="landscape"] .result-creation-animal{top:14%;right:12%;width:55%;height:50%}.creation-result-art[data-ratio="landscape"].has-photo .result-creation-photo{bottom:22%;left:12%;width:25%;height:39%}.creation-result-art[data-ratio="landscape"] .result-art-copy{right:29px;bottom:22px;left:29px}.creation-result-art[data-ratio="landscape"] .result-art-copy strong{font-size:31px}
.generation-result .creation-summary{align-self:end;margin:0}.generation-result .result-actions{align-self:start;justify-content:flex-end;flex-wrap:wrap}.generation-result.is-working .creation-result-art{filter:saturate(.72);opacity:.72}.generation-result.is-working .creation-result-art:before{animation:result-paper-pulse .85s ease-in-out infinite alternate}@keyframes result-paper-pulse{to{inset:18px;opacity:.35}}
@media(max-width:820px){.generation-result{grid-template-columns:1fr}.generation-status{grid-column:auto}.creation-result-art{grid-row:auto;max-width:500px;width:100%;margin:0 auto}.generation-result .result-actions{justify-content:flex-start}}
@media(max-width:560px){.generation-result{padding:23px 20px}.creation-result-art{min-height:420px}.result-art-copy strong{font-size:34px}.generation-result .result-actions{gap:12px}.generation-result .result-actions .button{width:auto}.result-creation-photo{bottom:26%;width:36%;height:28%}.creation-result-art[data-ratio="landscape"]{min-height:225px}.creation-result-art[data-ratio="landscape"] .result-art-copy strong{font-size:25px}}

/* Mobile pass 2: make the zodiac result read as one calm vertical story. */
@media (max-width:560px){
  .revelation-panel{padding:20px 16px}
  .revelation-panel .result-meta{margin-bottom:14px}
  .revelation-panel .public-portrait{width:100%;min-height:0;aspect-ratio:1/1}
  .revelation-panel .result-copy{padding:0}
  .revelation-panel .result-copy h3{font-size:clamp(30px,9vw,40px);line-height:1}
  .revelation-panel .result-description{font-size:13px;line-height:1.7}
  .revelation-panel .trait-list span{min-height:28px;padding:7px 9px;font-size:9px}
  .revelation-panel .result-boundary{margin-top:18px;padding:14px}
  .revelation-panel .cultural-note{margin-top:18px;padding:16px 0}
  .revelation-panel .cultural-note p{font-size:13px;line-height:1.7}
  .result-share{margin-top:20px;padding-top:20px}
  .share-heading{grid-template-columns:36px 1fr;gap:10px}
  .share-seal{width:34px;height:34px;font-size:21px}
  .share-heading h4{font-size:19px;line-height:1.08}
  .share-heading p{font-size:10px;line-height:1.55}
  .share-actions{grid-template-columns:1fr 1fr;gap:10px;margin-top:17px}
  .share-main{min-height:52px}
  .share-secondary{min-height:48px;padding:10px 8px;white-space:nowrap}
  .result-next-actions{align-items:stretch;flex-direction:column;gap:10px}
  .result-next-actions .result-next,.result-next-actions .result-revise{width:100%;justify-content:center;text-align:center}
  .result-next-actions .result-next{min-height:50px}
  .result-next-actions .result-revise{padding:12px 0}
}

@media (max-width:370px){
  .revelation-panel{padding-inline:13px}
  .share-actions{grid-template-columns:1fr}
  .share-secondary{white-space:normal}
}

/* Mobile pass 3: keep creation choices and photo upload comfortable to use. */
@media (max-width:560px){
  html{overflow-x:hidden}
  .companion{padding-top:58px}
  .companion-heading h2{font-size:clamp(39px,11.5vw,54px);line-height:1}
  .companion-heading>p{font-size:12px;line-height:1.7}
  .creation-workbench{margin-top:27px}
  .workbench-tab{grid-template-columns:36px minmax(0,1fr);gap:10px;min-height:92px;padding:17px 14px}
  .workbench-tab strong{font-size:15px;line-height:1.16;overflow-wrap:anywhere}
  .workbench-tab small{font-size:9px;line-height:1.4}
  .creation-controls{padding:24px 16px 27px}
  .creation-step{grid-template-columns:32px minmax(0,1fr);gap:10px;margin-bottom:24px}
  .creation-step>span{width:29px;height:29px}
  .creation-step h3{font-size:22px;line-height:1.08}
  .creation-step p{font-size:10px;line-height:1.55}
  .studio-form{gap:20px}
  .field-block>label{margin-bottom:8px}
  .zodiac-current{min-height:66px;padding:10px}
  .zodiac-current strong{font-size:17px}
  .segmented-option{min-height:58px;padding:12px 9px}
  .segmented-option b{font-size:11px;line-height:1.15;overflow-wrap:anywhere}
  .creation-controls select{min-height:50px;font-size:15px}
  .ratio-grid{gap:6px}
  .ratio-option{min-height:74px;padding:11px 4px}
  .ratio-option b{font-size:10px}
  .upload-drop{min-height:76px;padding:14px 12px}
  .upload-drop strong{font-size:11px;line-height:1.2}
  .upload-drop small{font-size:9px;line-height:1.4}
  .generate-button{min-height:54px;margin-top:0}
  .prototype-note{font-size:9px;line-height:1.6}
  .creation-canvas-wrap{min-height:0;padding:28px 14px 25px}
  .creation-canvas{width:100%;max-width:350px}
  .canvas-heading{top:21px;right:19px;left:19px;font-size:8px}
  .canvas-sigil{font-size:clamp(52px,16vw,76px)}
  .canvas-caption{right:18px;bottom:24px;left:18px}
  .canvas-caption strong{font-size:clamp(21px,7vw,28px);overflow-wrap:anywhere}
  .canvas-caption small{font-size:8px;line-height:1.4}
  .canvas-stamp{right:19px;bottom:10px;font-size:6px}
  .preview-caption{margin-top:16px;font-size:9px;line-height:1.55}
}

@media (max-width:370px){
  .workbench-tab{min-height:98px;padding-inline:12px}
  .workbench-tab strong{font-size:14px}
  .creation-controls{padding-inline:13px}
  .segmented-control{grid-template-columns:1fr}
  .ratio-option{padding-inline:2px}
  .ratio-option b{font-size:9px}
}

/* Final mobile QA: keep all twelve zodiac controls inside the hero card. */
@media (max-width:560px){
  .hero-gallery .hero-controls{left:9px;right:9px;width:auto;justify-content:space-between;gap:2px}
  .hero-gallery .hero-dots{flex:1;min-width:0;justify-content:space-around;gap:0}
  .hero-gallery .hero-dot{width:18px;min-width:0}
  .hero-gallery .hero-arrow{width:38px;height:42px;flex:0 0 38px}
}
@media (max-width:370px){
  .hero-gallery .hero-dot{width:16px;font-size:11px}
  .hero-gallery .hero-arrow{width:34px;flex-basis:34px}
}

.creation-workbench.has-final-result .workbench-main{display:block;min-height:0}
.creation-workbench.has-final-result .creation-canvas-wrap{display:none}
.creation-workbench.has-final-result .creation-controls{border-right:0}
.creation-workbench.has-final-result .generation-result{border-top:0}
.creation-result-art.has-generated{display:block;aspect-ratio:4 / 5;min-height:0;width:100%;background:#ebe2cf}
.creation-result-art.has-generated[data-ratio="square"]{aspect-ratio:1 / 1}
.creation-result-art.has-generated[data-ratio="landscape"]{aspect-ratio:16 / 9}
.result-generated-image{position:relative;z-index:5;display:grid;min-height:0;place-items:center;background:#ebe2cf}
.creation-result-art.has-generated .result-generated-image{position:absolute;inset:0;width:100%;height:100%}
.creation-result-art.has-generated .result-generated-image img{display:block;width:100%;height:100%;max-width:none;max-height:none;object-fit:contain}
.creation-workbench.has-final-result .creation-result-art{max-width:680px;margin:0 auto;box-shadow:9px 10px 0 rgba(41,42,37,.12)}
.creation-result-art.has-generated .result-art-heading,.creation-result-art.has-generated .result-art-sun,.creation-result-art.has-generated .result-art-mountains,.creation-result-art.has-generated .result-creation-photo,.creation-result-art.has-generated .result-creation-animal,.creation-result-art.has-generated .result-art-copy{display:none}
.generation-result.is-failed .status-dot{background:var(--vermilion)}
.generation-result.is-failed .generation-status small{color:var(--vermilion)}
@media(max-width:820px){.creation-workbench.has-final-result .generation-result{padding-top:24px}.creation-workbench.has-final-result .creation-result-art{max-width:620px}}
@media(max-width:560px){.result-generated-image img{max-height:72vh}.creation-workbench.has-final-result .generation-result{padding-inline:20px}}

@media(max-width:980px){.generation-result{grid-template-columns:minmax(0,1fr);}.generation-result .creation-result-art{grid-row:auto;max-width:680px;width:100%;}.generation-result .creation-summary,.generation-result .result-actions,.generation-result .share-menu,.generation-result .share-note{grid-column:1;justify-self:start;}.generation-result .result-actions{justify-content:flex-start}}

/* Artwork mode shows one complete character image inside the framed result card. */
.creation-workbench.artwork-result .creation-result-art{display:block;grid-row:auto}
.creation-workbench.artwork-result .generation-result{grid-template-columns:1fr;gap:16px}
.creation-workbench.artwork-result .generation-status,.creation-workbench.artwork-result .creation-summary,.creation-workbench.artwork-result .result-actions,.creation-workbench.artwork-result .share-menu,.creation-workbench.artwork-result .share-note{grid-column:1;justify-self:start}
.creation-workbench.artwork-result .creation-result-art{min-height:0;aspect-ratio:4 / 5}
.creation-workbench.artwork-result .creation-result-art[data-ratio="square"]{aspect-ratio:1 / 1}
.creation-workbench.artwork-result .creation-result-art[data-ratio="landscape"]{aspect-ratio:16 / 9}

/* Artwork mode: the selected zodiac image is the complete piece, not a cutout over a second scene. */
.creation-workbench.artwork-result .creation-result-art:not(.has-generated){background:#2d3f3a;box-shadow:9px 10px 0 rgba(41,42,37,.14)}
.creation-workbench.artwork-result .creation-result-art:not(.has-generated):before{z-index:4;inset:14px;border-color:rgba(255,252,242,.78);pointer-events:none}
.creation-workbench.artwork-result .creation-result-art:not(.has-generated):after{z-index:3;background:linear-gradient(180deg,rgba(20,30,27,.38),transparent 22%,transparent 58%,rgba(20,30,27,.82) 100%);mix-blend-mode:normal;pointer-events:none}
.creation-workbench.artwork-result .creation-result-art:not(.has-generated) .result-art-sun,
.creation-workbench.artwork-result .creation-result-art:not(.has-generated) .result-art-mountains,
.creation-workbench.artwork-result .creation-result-art:not(.has-generated) .result-art-scene,
.creation-workbench.artwork-result .creation-result-art:not(.has-generated) .result-art-foreground,
.creation-workbench.artwork-result .creation-result-art:not(.has-generated) .result-art-orbit,
.creation-workbench.artwork-result .creation-result-art:not(.has-generated) .result-art-motif{display:none}
.creation-workbench.artwork-result .creation-result-art:not(.has-generated) .result-art-heading{z-index:5;top:27px;color:rgba(255,252,242,.9);text-shadow:0 1px 10px rgba(20,30,27,.32)}
.creation-workbench.artwork-result .creation-result-art:not(.has-generated) .result-art-data{position:absolute;z-index:5;top:68px;left:34px;display:grid;gap:5px;padding:6px 9px 7px 8px;border-left:2px solid #f2cc72;color:rgba(255,249,233,.94);background:rgba(20,30,27,.24);text-shadow:0 1px 9px rgba(20,30,27,.45)}
.creation-workbench.artwork-result .creation-result-art:not(.has-generated) .result-art-data span{color:#f2cc72;font-size:9px;font-weight:850;letter-spacing:.1em}
.creation-workbench.artwork-result .creation-result-art:not(.has-generated) .result-art-data strong{max-width:260px;font-size:9px;font-weight:650;letter-spacing:.03em}
.creation-workbench.artwork-result .creation-result-art:not(.has-generated) .result-art-seal{position:absolute;z-index:5;top:67px;right:34px;display:grid;width:52px;height:52px;place-items:center;border:2px solid rgba(242,204,114,.88);border-radius:50%;color:#fff9e9;background:rgba(165,69,50,.86);font:700 27px/1 var(--brush);box-shadow:0 2px 8px rgba(20,30,27,.2)}
.creation-workbench.artwork-result .creation-result-art:not(.has-generated) .result-creation-animal{z-index:1;inset:0;top:0;right:0;width:100%;height:100%;filter:none}
.creation-workbench.artwork-result .creation-result-art:not(.has-generated) .result-creation-animal img{object-fit:cover;object-position:center}
.creation-workbench.artwork-result .creation-result-art:not(.has-generated) .result-art-copy{z-index:5;right:34px;bottom:34px;left:34px;color:#fff9e9;text-shadow:0 1px 12px rgba(20,30,27,.4)}
.creation-workbench.artwork-result .creation-result-art:not(.has-generated) .result-art-copy span{color:#f2cc72}
.creation-workbench.artwork-result .creation-result-art:not(.has-generated) .result-art-copy small,
.creation-workbench.artwork-result .creation-result-art:not(.has-generated) .result-art-copy em{color:rgba(255,249,233,.82)}
.creation-workbench.artwork-result .creation-result-art:not(.has-generated) .result-art-copy em{font-style:italic}
.creation-workbench.artwork-result .creation-result-art:not(.has-generated) #resultArtSceneLine{font-size:8px;opacity:.78}
.creation-workbench.artwork-result .creation-result-art:not(.has-generated) .result-art-copy strong{max-width:75%;color:#fff9e9}
.creation-workbench.artwork-result .creation-result-art[data-ratio="landscape"]:not(.has-generated) .result-art-copy{right:38px;bottom:32px;left:38px}
.creation-workbench.artwork-result .creation-result-art[data-ratio="landscape"]:not(.has-generated) .result-art-copy strong{max-width:52%}
@media(max-width:560px){
  .creation-workbench.artwork-result .creation-result-art:not(.has-generated) .result-art-heading{top:22px;right:22px;left:22px}
  .creation-workbench.artwork-result .creation-result-art:not(.has-generated) .result-art-data{top:57px;left:24px}
  .creation-workbench.artwork-result .creation-result-art:not(.has-generated) .result-art-data strong{max-width:200px;font-size:8px}
  .creation-workbench.artwork-result .creation-result-art:not(.has-generated) .result-art-seal{top:57px;right:24px;width:43px;height:43px;font-size:22px}
  .creation-workbench.artwork-result .creation-result-art:not(.has-generated) .result-art-copy{right:24px;bottom:26px;left:24px}
  .creation-workbench.artwork-result .creation-result-art[data-ratio="landscape"]:not(.has-generated) .result-art-copy{right:25px;bottom:23px;left:25px}
}

/* The particles and transitions stay inside existing visual frames. */
.hero-particles{position:absolute;z-index:2;inset:0;overflow:hidden;pointer-events:none}
.hero-particles i{position:absolute;display:block;width:6px;height:6px;border-radius:50%;opacity:.7;background:#f8df9f;box-shadow:0 0 9px 3px rgba(248,223,159,.58);animation:hero-particle-float 9s ease-in-out infinite both}
.hero-particles i:nth-child(1){top:18%;left:16%;width:4px;height:4px;animation-delay:-2s;animation-duration:13s}
.hero-particles i:nth-child(2){top:34%;left:31%;width:6px;height:6px;opacity:.5;animation-delay:-8s;animation-duration:15s}
.hero-particles i:nth-child(3){top:13%;left:58%;width:5px;height:5px;animation-delay:-5s;animation-duration:12s}
.hero-particles i:nth-child(4){top:46%;left:73%;opacity:.5;animation-delay:-10s;animation-duration:16s}
.hero-particles i:nth-child(5){top:69%;left:14%;width:5px;height:5px;animation-delay:-4s;animation-duration:14s}
.hero-particles i:nth-child(6){top:77%;left:48%;opacity:.48;animation-delay:-7s;animation-duration:17s}
.hero-particles i:nth-child(7){top:24%;left:86%;width:4px;height:4px;animation-delay:-1s;animation-duration:14s}
.hero-particles i:nth-child(8){top:61%;left:91%;opacity:.48;animation-delay:-11s;animation-duration:18s}
.hero-particles i:nth-child(9){top:53%;left:24%;width:4px;height:4px;animation-delay:-6s;animation-duration:12s}
.hero-particles i:nth-child(10){top:82%;left:67%;width:5px;height:5px;animation-delay:-3s;animation-duration:16s}
.hero-particles i:nth-child(11){top:39%;left:53%;width:4px;height:4px;animation-delay:-9s;animation-duration:14s}
.hero-particles i:nth-child(12){top:9%;left:78%;width:5px;height:5px;animation-delay:-12s;animation-duration:17s}
.hero-gallery .hero-animal-card{z-index:3}
@keyframes hero-particle-float{0%,100%{transform:translate3d(0,16px,0) scale(.78);opacity:.24}35%{opacity:.82}50%{transform:translate3d(12px,-20px,0) scale(1.08)}75%{opacity:.42}}
.hero-animal-card.is-card-changing{animation:hero-card-in .42s cubic-bezier(.2,.75,.25,1) both}
@keyframes hero-card-in{from{opacity:.68;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
#creationModePanel.is-mode-switching{animation:studio-switch-in .36s ease both}
.creation-canvas.is-form-switching,.creation-canvas.is-ratio-switching{animation:canvas-switch-in .38s ease both}
.companion-choice.is-choice-changing{animation:choice-switch-in .32s ease both}
.result-generated-image img{animation:generated-image-in .55s ease both}
@keyframes studio-switch-in{from{opacity:.72;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@keyframes canvas-switch-in{from{opacity:.72;transform:scale(.985)}to{opacity:1;transform:scale(1)}}
@keyframes choice-switch-in{from{opacity:.5;transform:translateX(5px)}to{opacity:1;transform:translateX(0)}}
@keyframes generated-image-in{from{opacity:0;transform:scale(1.012)}to{opacity:1;transform:scale(1)}}
@media(max-width:560px){.hero-particles i{animation-duration:15s}.hero-particles i:nth-child(2n){display:block;opacity:.4}}
@media(prefers-reduced-motion:reduce){.hero-particles i{animation:none;opacity:.62;transform:none}.hero-animal-card.is-card-changing,#creationModePanel.is-mode-switching,.creation-canvas.is-form-switching,.creation-canvas.is-ratio-switching,.companion-choice.is-choice-changing,.result-generated-image img{animation:none}}

/* Artwork study layer: the selected zodiac remains the only main subject. */
.canvas-orbit{position:absolute;z-index:1;top:23%;left:17%;width:68%;height:43%;border:1px solid rgba(165,69,50,.48);border-radius:50%;transform:rotate(-12deg);pointer-events:none;animation:art-orbit-drift 8s ease-in-out infinite alternate}
.canvas-orbit:after{position:absolute;top:-5px;right:17%;width:8px;height:8px;border:1px solid currentColor;border-radius:50%;background:var(--paper);content:''}
.canvas-motif{position:absolute;z-index:2;top:21%;left:28px;color:rgba(41,42,37,.58);font-size:7px;font-weight:850;letter-spacing:.14em;writing-mode:vertical-rl;transform:rotate(180deg)}
.canvas-story{display:block;color:rgba(41,42,37,.68);font-size:8px;line-height:1.45;letter-spacing:.02em}
.canvas-cycle,.result-art-cycle{position:absolute;z-index:5;top:49%;left:34px;display:grid;gap:6px;width:112px;padding:6px 8px 7px;color:rgba(41,42,37,.7);background:rgba(255,250,235,.58);pointer-events:none}
.cycle-label{font-size:7px;font-weight:850;letter-spacing:.13em}
.cycle-track{position:relative;display:block;width:96px;height:9px;border-top:1px solid currentColor;background:repeating-linear-gradient(90deg,currentColor 0 1px,transparent 1px 8px);opacity:.8}
.cycle-track i{position:absolute;top:-4px;left:var(--cycle-progress,0%);display:block;width:8px;height:8px;border:1px solid var(--vermilion);background:var(--gold);transform:translateX(-50%) rotate(45deg)}
.canvas-cycle small,.result-art-cycle small{font-size:7px;font-weight:750;letter-spacing:.08em}
.canvas-note,.result-art-note{position:absolute;z-index:5;top:60%;left:34px;display:grid;gap:5px;max-width:142px;padding:6px 8px 7px 9px;border-left:2px solid var(--zodiac-accent,var(--gold));color:rgba(41,42,37,.72);background:rgba(255,250,235,.58);pointer-events:none}
.canvas-note>span,.result-art-note>span{font-size:7px;font-weight:850;letter-spacing:.13em}
.canvas-note small,.result-art-note small{font-size:8px;line-height:1.45}
.form-animal .canvas-orbit{border-color:rgba(64,95,88,.64);border-style:dashed;transform:rotate(12deg)}
.form-animal .canvas-orbit:after{top:auto;right:auto;bottom:-5px;left:19%;color:var(--jade)}
.form-animal .canvas-motif{color:rgba(64,95,88,.78)}
.form-animal .canvas-animal{top:27%;right:10%;width:65%;height:45%;filter:drop-shadow(7px 9px 0 rgba(41,42,37,.16))}
.form-character .canvas-orbit{top:21%;left:15%;width:70%;height:48%;border:2px solid rgba(206,156,56,.62);border-radius:45% 55% 48% 52%;box-shadow:0 0 0 10px rgba(255,252,242,.12);transform:rotate(-8deg)}
.form-character .canvas-orbit:after{top:12%;right:-5px;color:var(--vermilion)}
.form-character .canvas-motif{color:rgba(165,69,50,.8)}
.form-character .canvas-animal{top:25%;right:7%;width:66%;height:46%;filter:drop-shadow(8px 10px 0 rgba(41,42,37,.16))}
.mode-portrait .canvas-motif,.mode-portrait .canvas-story{display:none}
.canvas-caption strong{max-width:88%}
.canvas-caption em{max-width:260px;color:rgba(41,42,37,.62);font-size:8px;font-style:normal;line-height:1.45}

.result-art-orbit{position:absolute;z-index:1;top:18%;left:17%;width:66%;height:42%;border:1px solid rgba(165,69,50,.48);border-radius:50%;transform:rotate(-12deg);pointer-events:none}
.result-art-orbit:after{position:absolute;top:-5px;right:17%;width:8px;height:8px;border:1px solid currentColor;border-radius:50%;background:#f3ead8;content:''}
.result-art-motif{position:absolute;z-index:1;top:22%;left:25px;color:rgba(41,42,37,.58);font-size:7px;font-weight:850;letter-spacing:.14em;writing-mode:vertical-rl;transform:rotate(180deg)}
.creation-result-art.form-animal .result-art-orbit{border-color:rgba(64,95,88,.64);border-style:dashed;transform:rotate(12deg)}
.creation-result-art.form-animal .result-art-motif{color:rgba(64,95,88,.78)}
.creation-result-art.form-animal .result-creation-animal{top:23%;right:10%;width:68%;height:44%}
.creation-result-art.form-character .result-art-orbit{top:16%;left:14%;width:72%;height:48%;border:2px solid rgba(206,156,56,.62);border-radius:45% 55% 48% 52%;box-shadow:0 0 0 10px rgba(255,252,242,.12);transform:rotate(-8deg)}
.creation-result-art.form-character .result-art-motif{color:rgba(165,69,50,.8)}
.creation-result-art.form-character .result-creation-animal{top:20%;right:7%;width:69%;height:47%}
.result-art-copy em{max-width:330px;color:rgba(41,42,37,.66);font-size:9px;font-style:normal;line-height:1.45}
.creation-result-art.has-generated .result-art-orbit,.creation-result-art.has-generated .result-art-motif,.creation-result-art.has-generated .result-art-cycle,.creation-result-art.has-generated .result-art-note{display:none}
.mode-portrait .canvas-cycle,.mode-portrait .canvas-note,.creation-result-art[data-mode="portrait"] .result-art-cycle,.creation-result-art[data-mode="portrait"] .result-art-note{display:none}
.creation-workbench.artwork-result .creation-result-art:not(.has-generated) .result-art-cycle{color:rgba(255,249,233,.84);background:rgba(20,30,27,.28);text-shadow:0 1px 9px rgba(20,30,27,.42)}
.creation-workbench.artwork-result .creation-result-art:not(.has-generated) .result-art-note{color:rgba(255,249,233,.84);background:rgba(20,30,27,.28);text-shadow:0 1px 9px rgba(20,30,27,.42)}
.creation-workbench.artwork-result .creation-result-art:not(.has-generated) .result-art-cycle .cycle-track{color:rgba(255,249,233,.75)}
.creation-workbench.artwork-result .creation-result-art:not(.has-generated) .result-art-cycle .cycle-track i{border-color:#fff9e9;background:#f2cc72}
@keyframes art-orbit-drift{from{transform:rotate(-12deg) scale(.98)}to{transform:rotate(-7deg) scale(1.02)}}
@media(max-width:560px){.canvas-motif{left:19px;font-size:6px}.canvas-cycle,.result-art-cycle{top:48%;left:24px;width:96px}.canvas-note,.result-art-note{top:59%;left:24px;max-width:118px;padding-left:7px}.cycle-track{width:84px}.canvas-note small,.result-art-note small{font-size:7px}.canvas-caption em{max-width:82%;font-size:7px}.result-art-motif{left:18px;font-size:6px}.result-art-copy em{font-size:8px}.creation-result-art.form-animal .result-creation-animal{right:7%;width:70%}.creation-result-art.form-character .result-creation-animal{right:4%;width:72%}}
@media(prefers-reduced-motion:reduce){.canvas-orbit{animation:none}}

/* Zodiac-specific scene depth for artwork mode. These layers are scenery only, never a second subject. */
.creation-canvas,.creation-result-art{--zodiac-palette:#8b6d52;--zodiac-horizon:#4f685e;--zodiac-accent:#d6aa55}
.canvas-scene,.result-art-scene{position:absolute;z-index:0;inset:11% 8% 18%;overflow:hidden;opacity:.62;background:linear-gradient(160deg,color-mix(in srgb,var(--zodiac-palette) 50%,transparent),transparent 56%),linear-gradient(30deg,transparent 0 53%,color-mix(in srgb,var(--zodiac-horizon) 54%,transparent) 54% 100%);clip-path:polygon(0 32%,14% 8%,31% 20%,48% 0,66% 18%,82% 5%,100% 30%,100% 100%,0 100%)}
.canvas-scene i,.result-art-scene i{position:absolute;display:block;border:1px solid color-mix(in srgb,var(--zodiac-accent) 65%,transparent);border-radius:50%;opacity:.65}
.canvas-scene i:nth-child(1),.result-art-scene i:nth-child(1){top:7%;right:10%;width:34%;height:34%}
.canvas-scene i:nth-child(2),.result-art-scene i:nth-child(2){bottom:-26%;left:-12%;width:76%;height:56%;border-radius:50% 48% 0 0;transform:rotate(-11deg)}
.canvas-scene i:nth-child(3),.result-art-scene i:nth-child(3){right:-12%;bottom:4%;width:60%;height:31%;border-width:2px 0 0;border-radius:50%;transform:rotate(9deg)}
.canvas-foreground,.result-art-foreground{position:absolute;z-index:3;right:-10%;bottom:-2%;left:-10%;height:23%;opacity:.38;background:color-mix(in srgb,var(--zodiac-horizon) 78%,transparent);clip-path:polygon(0 72%,13% 42%,25% 76%,42% 28%,55% 70%,73% 38%,89% 76%,100% 45%,100% 100%,0 100%);pointer-events:none}
.form-character .canvas-scene,.creation-result-art.form-character .result-art-scene{inset:10% 7% 16%;opacity:.68;background:radial-gradient(ellipse at 72% 21%,color-mix(in srgb,var(--zodiac-accent) 42%,transparent) 0 17%,transparent 18%),linear-gradient(145deg,color-mix(in srgb,var(--zodiac-palette) 58%,transparent),transparent 54%),linear-gradient(32deg,transparent 0 53%,color-mix(in srgb,var(--zodiac-horizon) 48%,transparent) 54% 100%);clip-path:polygon(0 26%,16% 4%,35% 16%,54% 0,73% 17%,89% 8%,100% 24%,100% 100%,0 100%)}
.form-character .canvas-foreground,.creation-result-art.form-character .result-art-foreground{height:20%;opacity:.3;clip-path:polygon(0 74%,17% 48%,30% 74%,46% 30%,59% 72%,76% 43%,100% 67%,100% 100%,0 100%)}
[data-zodiac=rat] .canvas-scene i:nth-child(2),[data-zodiac=rat] .result-art-scene i:nth-child(2){border-radius:2px;transform:rotate(45deg)}
[data-zodiac=ox] .canvas-scene i:nth-child(3),[data-zodiac=ox] .result-art-scene i:nth-child(3){width:98%;right:-38%;border-radius:0;transform:skewY(-12deg)}
[data-zodiac=tiger] .canvas-scene i:nth-child(2),[data-zodiac=tiger] .result-art-scene i:nth-child(2){border-width:2px 0 0;transform:rotate(-22deg)}
[data-zodiac=rabbit] .canvas-scene i:nth-child(1),[data-zodiac=rabbit] .result-art-scene i:nth-child(1){width:39%;height:39%;border-color:rgba(255,249,208,.78)}
[data-zodiac=dragon] .canvas-scene i:nth-child(2),[data-zodiac=dragon] .result-art-scene i:nth-child(2){width:104%;height:43%;border-width:2px 0 0;border-radius:50%;transform:rotate(12deg)}
[data-zodiac=snake] .canvas-scene i:nth-child(3),[data-zodiac=snake] .result-art-scene i:nth-child(3){width:22%;height:86%;right:12%;bottom:-22%;border-radius:50%;transform:rotate(23deg)}
[data-zodiac=horse] .canvas-scene i:nth-child(3),[data-zodiac=horse] .result-art-scene i:nth-child(3){width:95%;right:-42%;bottom:19%;border-radius:0;transform:skewY(-13deg)}
[data-zodiac=goat] .canvas-scene i:nth-child(1),[data-zodiac=goat] .result-art-scene i:nth-child(1){border-radius:45% 55% 28% 72%;transform:rotate(19deg)}
[data-zodiac=monkey] .canvas-scene i:nth-child(2),[data-zodiac=monkey] .result-art-scene i:nth-child(2){width:21%;height:112%;left:9%;bottom:-18%;border-radius:45%;transform:rotate(-28deg)}
[data-zodiac=rooster] .canvas-scene i:nth-child(1),[data-zodiac=rooster] .result-art-scene i:nth-child(1){width:52%;height:24%;border-radius:50% 50% 0 0;transform:rotate(-12deg)}
[data-zodiac=dog] .canvas-scene i:nth-child(2),[data-zodiac=dog] .result-art-scene i:nth-child(2){border-radius:8px;transform:rotate(0)}
[data-zodiac=pig] .canvas-scene i:nth-child(3),[data-zodiac=pig] .result-art-scene i:nth-child(3){height:55%;bottom:-17%;border-radius:50%;transform:rotate(0)}
.creation-result-art.has-generated .result-art-scene,.creation-result-art.has-generated .result-art-foreground{display:none}
.mode-portrait .canvas-scene,.mode-portrait .canvas-foreground,.creation-result-art[data-mode="portrait"] .result-art-scene,.creation-result-art[data-mode="portrait"] .result-art-foreground{display:none}
@media(max-width:560px){.canvas-scene{inset:12% 7% 20%}.canvas-foreground{height:20%}.result-art-scene{inset:11% 6% 19%}.result-art-foreground{height:20%}}

/* Keep the original gallery controls above the information card on small screens. */
.hero-gallery .hero-count{z-index:4}
.hero-gallery .hero-controls{z-index:4;border-color:rgba(255,250,235,.82);background:rgba(18,31,29,.84)}

/* Place the particles over the darker moonlit area so their movement reads clearly. */
.hero-particles i{background:#f7cf62;box-shadow:0 0 10px 3px rgba(247,207,98,.68)}
.hero-particles i:nth-child(1){top:12%;left:62%}
.hero-particles i:nth-child(2){top:24%;left:70%;background:#b7d8c8;box-shadow:0 0 10px 3px rgba(183,216,200,.62)}
.hero-particles i:nth-child(3){top:37%;left:78%}
.hero-particles i:nth-child(4){top:17%;left:84%;background:#b7d8c8;box-shadow:0 0 10px 3px rgba(183,216,200,.62)}
.hero-particles i:nth-child(5){top:44%;left:89%}
.hero-particles i:nth-child(6){top:9%;left:93%;background:#b7d8c8;box-shadow:0 0 10px 3px rgba(183,216,200,.62)}
.hero-particles i:nth-child(7){top:31%;left:64%}
.hero-particles i:nth-child(8){top:51%;left:74%;background:#b7d8c8;box-shadow:0 0 10px 3px rgba(183,216,200,.62)}
.hero-particles i:nth-child(9){top:28%;left:91%}
.hero-particles i:nth-child(10){top:16%;left:75%;background:#b7d8c8;box-shadow:0 0 10px 3px rgba(183,216,200,.62)}
.hero-particles i:nth-child(11){top:42%;left:67%}
.hero-particles i:nth-child(12){top:35%;left:86%;background:#b7d8c8;box-shadow:0 0 10px 3px rgba(183,216,200,.62)}

/* Keep the main zodiac artwork clear; the atmospheric motion belongs to the dark cultural band. */
.hero-particles{display:none}
.legend-strip{isolation:isolate}
.legend-particles{position:absolute;z-index:0;inset:0;overflow:hidden;pointer-events:none}
.legend-particles i{position:absolute;display:block;width:7px;height:7px;border-radius:50%;background:#f3cc70;box-shadow:0 0 13px 4px rgba(243,204,112,.62);animation:legend-particle-float 10s ease-in-out infinite both}
.legend-particles i:nth-child(1){top:74%;left:7%;width:5px;height:5px;animation-delay:-2s;animation-duration:12s}
.legend-particles i:nth-child(2){top:26%;left:16%;background:#a9d1c0;box-shadow:0 0 13px 4px rgba(169,209,192,.5);animation-delay:-8s;animation-duration:15s}
.legend-particles i:nth-child(3){top:67%;left:29%;width:5px;height:5px;animation-delay:-5s;animation-duration:14s}
.legend-particles i:nth-child(4){top:19%;left:42%;background:#a9d1c0;box-shadow:0 0 13px 4px rgba(169,209,192,.5);animation-delay:-10s;animation-duration:16s}
.legend-particles i:nth-child(5){top:79%;left:51%;animation-delay:-4s;animation-duration:13s}
.legend-particles i:nth-child(6){top:35%;left:61%;width:5px;height:5px;background:#a9d1c0;box-shadow:0 0 13px 4px rgba(169,209,192,.5);animation-delay:-7s;animation-duration:17s}
.legend-particles i:nth-child(7){top:68%;left:72%;animation-delay:-1s;animation-duration:14s}
.legend-particles i:nth-child(8){top:23%;left:82%;width:5px;height:5px;background:#a9d1c0;box-shadow:0 0 13px 4px rgba(169,209,192,.5);animation-delay:-11s;animation-duration:18s}
.legend-particles i:nth-child(9){top:84%;left:91%;width:5px;height:5px;animation-delay:-6s;animation-duration:13s}
.legend-particles i:nth-child(10){top:52%;left:12%;background:#a9d1c0;box-shadow:0 0 13px 4px rgba(169,209,192,.5);animation-delay:-3s;animation-duration:16s}
.legend-particles i:nth-child(11){top:11%;left:70%;width:5px;height:5px;animation-delay:-9s;animation-duration:15s}
.legend-particles i:nth-child(12){top:88%;left:38%;background:#a9d1c0;box-shadow:0 0 13px 4px rgba(169,209,192,.5);animation-delay:-12s;animation-duration:17s}
.legend-content{z-index:1}
@keyframes legend-particle-float{0%,100%{transform:translate3d(0,18px,0) scale(.72);opacity:.24}35%{opacity:.82}50%{transform:translate3d(14px,-23px,0) scale(1.12)}75%{opacity:.42}}
@media(max-width:560px){.legend-particles i{animation-duration:15s}.legend-particles i:nth-child(2n){opacity:.62}}
@media(prefers-reduced-motion:reduce){.legend-particles i{animation:none;opacity:.62;transform:none}}

/* Let the long-form story arrive in measured beats as the visitor moves through it. */
.motion-reveal{opacity:0;transform:translateY(18px);transition:opacity .68s ease,transform .68s cubic-bezier(.2,.75,.25,1)}
.motion-reveal.is-visible{opacity:1;transform:none}
.motion-reveal:nth-of-type(2){transition-delay:.08s}
.motion-reveal:nth-of-type(3){transition-delay:.14s}
.journey-step.is-complete + .journey-line{background:var(--vermilion);animation:journey-line-draw .58s ease both}
.journey-step.is-complete>span{animation:journey-seal-settle .48s ease both}
button:active,.button:active{transform:translate(1px,1px)}
@keyframes journey-line-draw{from{opacity:.25;transform:scaleX(.2);transform-origin:left}to{opacity:1;transform:scaleX(1);transform-origin:left}}
@keyframes journey-seal-settle{0%{transform:scale(.78);opacity:.55}70%{transform:scale(1.08)}100%{transform:scale(1);opacity:1}}
@media(prefers-reduced-motion:reduce){.motion-reveal{opacity:1;transform:none;transition:none}.journey-step.is-complete + .journey-line,.journey-step.is-complete>span{animation:none}button:active,.button:active{transform:none}}

/* Share surfaces stay compact, explicit, and usable without a platform SDK. */
.share-more{color:var(--vermilion);border-color:rgba(165,69,50,.42)}
.share-more[aria-expanded="true"]{color:var(--paper);background:var(--vermilion);border-color:var(--vermilion)}
.share-menu{display:grid;gap:9px;margin-top:13px;padding:12px 0 2px;border-top:1px solid rgba(41,42,37,.18)}
.share-menu>span{color:var(--ink-soft);font-size:8px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.share-menu>div{display:flex;flex-wrap:wrap;gap:7px}
.share-menu a{display:inline-flex;min-height:32px;align-items:center;padding:7px 10px;border:1px solid rgba(41,42,37,.3);color:var(--ink);background:rgba(255,252,242,.62);font-size:9px;font-weight:800;transition:color .2s ease,background .2s ease,border-color .2s ease,transform .2s ease}
.share-menu a:hover{border-color:var(--vermilion);color:var(--paper);background:var(--vermilion);transform:translateY(-1px)}
.share-note{margin:8px 0 0;color:var(--ink-soft);font-size:8px;line-height:1.5}
.creation-share-menu{grid-column:1/-1;width:100%;margin-top:-3px;padding-top:12px}
.creation-share-note{flex-basis:100%;margin-top:-4px}
@media(max-width:820px){.creation-share-menu{margin-top:0}.result-actions{row-gap:13px}}
@media(max-width:560px){.share-menu>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.share-menu a{justify-content:center;min-height:42px}.share-note{font-size:9px}.creation-share-note{margin-top:0}.result-actions .text-button{min-height:32px}}

/* Desktop-only pointer parallax: the artwork stays still while the frame responds. */
@media (pointer:fine) and (min-width:821px){
  .hero-gallery .hero-animal-card{transform:translate3d(calc(var(--pointer-x,0px) * .45),calc(var(--pointer-y,0px) * .45),0);transition:transform .42s cubic-bezier(.2,.75,.25,1)}
  .hero-gallery .hero-image-wash{transform:translate3d(calc(var(--pointer-x,0px) * -.12),calc(var(--pointer-y,0px) * -.12),0);transition:transform .72s cubic-bezier(.2,.75,.25,1)}
}

/* Generated work is the focal point: keep the complete image centered and stack its actions below. */
.creation-workbench.has-final-result .generation-result{
  display:grid;
  grid-template-columns:minmax(0,760px);
  justify-content:center;
  gap:18px;
  padding:32px clamp(20px,5vw,60px) 36px;
}
.creation-workbench.has-final-result .generation-status,
.creation-workbench.has-final-result .creation-result-art,
.creation-workbench.has-final-result .creation-summary,
.creation-workbench.has-final-result .result-actions,
.creation-workbench.has-final-result .creation-share-menu,
.creation-workbench.has-final-result .creation-share-note{grid-column:1}
.creation-workbench.has-final-result .generation-status{justify-self:center;text-align:center}
.creation-workbench.has-final-result .creation-result-art{
  grid-row:auto;
  justify-self:center;
  width:min(100%,540px);
  max-width:none;
  margin:0;
}
.creation-workbench.has-final-result .creation-result-art[data-ratio="square"]{width:min(100%,620px)}
.creation-workbench.has-final-result .creation-result-art[data-ratio="landscape"]{width:min(100%,760px)}
.creation-workbench.has-final-result .creation-summary{justify-content:center;margin-top:0}
.creation-workbench.has-final-result .result-actions{justify-content:center;flex-wrap:wrap}
.creation-workbench.has-final-result .creation-share-menu,
.creation-workbench.has-final-result .creation-share-note{width:100%;justify-self:center}
@media(max-width:560px){
  .creation-workbench.has-final-result .generation-result{gap:15px;padding:24px 20px 28px}
  .creation-workbench.has-final-result .creation-result-art{width:100%}
}

/* Revealed zodiac result: give the portrait its own centered vertical stage. */
#filledResult:not([hidden]) .result-layout{grid-template-columns:1fr;gap:24px}
#filledResult:not([hidden]) .public-portrait{
  width:min(100%,390px);
  min-height:0;
  aspect-ratio:4 / 5;
  margin:0 auto;
}
#filledResult:not([hidden]) .result-copy{width:min(100%,600px);margin:0 auto;padding:0}
#filledResult:not([hidden]) .result-copy h3{font-size:clamp(32px,3.8vw,46px)}
#filledResult:not([hidden]) .result-boundary,
#filledResult:not([hidden]) .cultural-note,
#filledResult:not([hidden]) .result-share,
#filledResult:not([hidden]) .result-next-actions{width:min(100%,600px);margin-right:auto;margin-left:auto}
@media(max-width:560px){
  #filledResult:not([hidden]) .public-portrait{width:100%;aspect-ratio:4 / 5}
}

/* Once a result exists, let the discovery board use the full page width. */
@media(min-width:821px){
  .discover:has(#filledResult:not([hidden])){grid-template-columns:1fr;gap:38px}
  .discover:has(#filledResult:not([hidden])) .section-intro{position:static;max-width:760px}
  .discover:has(#filledResult:not([hidden])) .section-intro>p:last-child{max-width:560px}
  .discover:has(#filledResult:not([hidden])) .discovery-board{max-width:none;grid-template-columns:minmax(260px,.38fr) minmax(0,1.62fr)}
}

/* A save-worthy work needs one personal line, without competing with the artwork. */
.canvas-story-block,.result-art-story-block{display:grid;gap:3px;min-width:0}
.story-line-label{display:block;font-size:7px;font-weight:850;letter-spacing:.13em;text-transform:uppercase}
.canvas-story-block .story-line-label{color:var(--vermilion)}
.result-art-story-block .story-line-label{color:#f2cc72}
.canvas-story-block em,.result-art-story-block em{display:block}
.mode-portrait .canvas-story-block{display:none}
.creation-save-note{grid-column:1/-1;width:100%;margin:0;color:var(--ink-soft);font-size:9px;line-height:1.55;text-align:center}
.creation-workbench.has-final-result .creation-save-note{grid-column:1;justify-self:center}
@media(max-width:560px){
  .story-line-label{font-size:6px}
  .creation-save-note{font-size:9px;line-height:1.5}
}

.creation-workbench.artwork-result .creation-result-art[data-ratio="landscape"]:not(.has-generated){container-type:inline-size;background:#f3ead8}
.creation-workbench.artwork-result .creation-result-art[data-ratio="landscape"]:not(.has-generated):before{inset:3.5% 2%;border-color:rgba(197,162,103,.8)}
.creation-workbench.artwork-result .creation-result-art[data-ratio="landscape"]:not(.has-generated):after{display:none}
.creation-workbench.artwork-result .creation-result-art[data-ratio="landscape"]:not(.has-generated) .result-creation-animal{display:block;inset:auto;top:7%;left:38%;width:56%;height:86%}
.creation-workbench.artwork-result .creation-result-art[data-ratio="landscape"]:not(.has-generated) .result-creation-animal img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.creation-workbench.artwork-result .creation-result-art[data-ratio="landscape"]:not(.has-generated) .result-art-heading{top:7%;right:auto;left:6%;color:var(--jade);font-size:1.5cqw;line-height:1.3;letter-spacing:0;text-shadow:none}
.creation-workbench.artwork-result .creation-result-art[data-ratio="landscape"]:not(.has-generated) .result-art-seal{top:18%;right:auto;left:6%;width:6%;height:auto;aspect-ratio:1;border:0;box-shadow:none;background:var(--vermilion);font-size:3cqw}
.creation-workbench.artwork-result .creation-result-art[data-ratio="landscape"]:not(.has-generated) .result-art-data{top:33%;left:6%;width:28%;gap:.8cqw;padding:0;border:0;background:none;color:var(--ink-soft);text-shadow:none}
.creation-workbench.artwork-result .creation-result-art[data-ratio="landscape"]:not(.has-generated) .result-art-data span{color:var(--vermilion);font:700 1.7cqw/1.5 Arial,sans-serif;letter-spacing:0}
.creation-workbench.artwork-result .creation-result-art[data-ratio="landscape"]:not(.has-generated) .result-art-data strong{max-width:none;font:600 1.35cqw/1.5 Arial,sans-serif;letter-spacing:0}
.creation-workbench.artwork-result .creation-result-art[data-ratio="landscape"]:not(.has-generated) .result-art-copy{top:48%;right:auto;bottom:auto;left:6%;width:28%;gap:1cqw;color:var(--ink);text-shadow:none}
.creation-workbench.artwork-result .creation-result-art[data-ratio="landscape"]:not(.has-generated) .result-art-copy strong{max-width:100%;color:var(--ink);font:600 3.2cqw/1.1 var(--serif);letter-spacing:0}
.creation-workbench.artwork-result .creation-result-art[data-ratio="landscape"]:not(.has-generated) #resultCreationMeta{color:var(--ink-soft);font:600 1.5cqw/1.4 Arial,sans-serif;letter-spacing:0}
.creation-workbench.artwork-result .creation-result-art[data-ratio="landscape"]:not(.has-generated) .result-art-copy em{max-width:none;color:var(--jade);font:italic 600 1.65cqw/1.5 var(--serif)}
.creation-workbench.artwork-result .creation-result-art[data-ratio="landscape"]:not(.has-generated) .result-art-heading small,
.creation-workbench.artwork-result .creation-result-art[data-ratio="landscape"]:not(.has-generated) .result-art-cycle,
.creation-workbench.artwork-result .creation-result-art[data-ratio="landscape"]:not(.has-generated) .result-art-note,
.creation-workbench.artwork-result .creation-result-art[data-ratio="landscape"]:not(.has-generated) #resultCreationEyebrow,
.creation-workbench.artwork-result .creation-result-art[data-ratio="landscape"]:not(.has-generated) .story-line-label,
.creation-workbench.artwork-result .creation-result-art[data-ratio="landscape"]:not(.has-generated) #resultArtSceneLine{display:none}
