@font-face{font-family:Celestial;src:url('./assets/fonts/cormorant.ttf') format('truetype');font-weight:400 600;font-display:swap}
@font-face{font-family:Celestial;src:url('./assets/fonts/cormorant-italic.ttf') format('truetype');font-style:italic;font-weight:400 600;font-display:swap}
@font-face{font-family:Vietnam;src:url('./assets/fonts/be-vietnam.ttf') format('truetype');font-weight:400 500;font-display:swap}
@font-face{font-family:Vietnam;src:url('./assets/fonts/be-vietnam-semibold.ttf') format('truetype');font-weight:600 700;font-display:swap}
:root{--night:#0b1818;--paper:#eee2c9;--gold:#d8b779;--muted:#a5b0a8;--line:#c3a66b40;--serif:Celestial,Georgia,'Times New Roman',serif;--sans:Vietnam,'Segoe UI',Arial,sans-serif}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{font-family:var(--sans);color:var(--paper);background:var(--night)}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}button,a,select,[tabindex]{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--gold);outline-offset:5px}[hidden]{display:none!important}.app-shell{width:100%;height:100vh;height:100dvh;position:relative;overflow:hidden;isolation:isolate}.atmosphere{position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 15% 20%,#2d4c4140,transparent 50%),radial-gradient(ellipse at 90% 80%,#402b3d50,transparent 55%),linear-gradient(115deg,#091816,#102121 52%,#111b20)}.atmosphere:after{content:'';position:absolute;inset:0;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.6' filter='url(%23n)'/%3E%3C/svg%3E")}.aurora{position:absolute;inset:0;background:radial-gradient(ellipse at 65% 30%,#d5b47712,transparent 45%)}.starfield{position:absolute;inset:-20px;background-image:radial-gradient(#e8d1a0 1px,transparent 1.5px),radial-gradient(#c2c7b4 1px,transparent 1.5px);background-size:137px 151px,219px 233px;background-position:21px 33px,110px 81px;opacity:.4}.architecture{position:absolute;inset:0;display:flex;justify-content:space-around;opacity:.12;mask-image:linear-gradient(transparent,black 25%,transparent 95%)}.architecture i{display:block;width:15%;height:110%;border:1px solid #ddc68b;border-radius:50% 50% 0 0;box-shadow:0 0 0 14px #ddc68b09,0 0 0 15px #ddc68b44;transform:translateY(20%)}.floating-candles{position:absolute;inset:0}.floating-candles i{position:absolute;width:4px;height:28px;background:linear-gradient(90deg,#9c8265,#f0dfb4,#9c8265);opacity:.5;animation:float 6s ease-in-out infinite}.floating-candles i:before{content:'';position:absolute;top:-12px;left:-1px;width:6px;height:10px;border-radius:70% 30% 60% 30%;background:#ffe3a0;box-shadow:0 0 14px 4px #e6b56770;animation:flicker 2s ease-in-out infinite}.floating-candles i:nth-child(1){left:5%;top:30%}.floating-candles i:nth-child(2){left:32%;top:14%;animation-delay:-2s}.floating-candles i:nth-child(3){right:6%;top:35%;animation-delay:-4s}.floating-candles i:nth-child(4){right:35%;top:12%;animation-delay:-1s}.floating-candles i:nth-child(5){left:8%;bottom:12%;animation-delay:-3s}.floating-candles i:nth-child(6){right:11%;bottom:15%;animation-delay:-5s}
.topbar{position:absolute;top:0;left:0;right:0;height:90px;padding:0 clamp(22px,4.5vw,80px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #d1ba8720;z-index:5}.wordmark{display:flex;gap:12px;align-items:center;text-decoration:none;color:var(--paper);font:15px var(--serif);letter-spacing:.2em}.wordmark>span:first-child{font-size:36px;color:var(--gold)}.wordmark small{display:block;font:7px var(--sans);letter-spacing:.22em;margin-top:6px;color:var(--muted)}.chapter-nav{display:flex;align-items:center;gap:19px;color:#81918a;font-size:11px}.chapter-nav span{transition:color .5s}.chapter-nav b{font-size:9px;color:#9a8b6c;margin-right:7px;font-weight:400}.chapter-nav .current{color:var(--gold)}.chapter-nav i{width:28px;height:1px;background:#d1ba8730}.sound-button{display:flex;align-items:center;gap:8px;background:none;border:1px solid #c3a66b40;border-radius:30px;padding:10px 13px;color:#c3c7b8;font-size:10px;min-height:40px}.sound-button span:first-child{font-size:17px}.sound-button[aria-pressed=true]{border-color:var(--gold);color:var(--gold)}main{position:absolute;inset:90px 0 49px;overflow:hidden}.view{position:absolute;inset:0;padding:clamp(20px,4vh,50px) clamp(25px,7.5vw,120px);overflow:hidden;display:grid;align-items:center;animation:enter .8s both}.view.active{visibility:visible}.birth-layout,.zodiac-layout,.tarot-layout{height:100%;min-height:0;display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:clamp(30px,7vw,100px);max-width:1250px;width:100%;margin:auto}.eyebrow{font-size:9px;font-weight:500;letter-spacing:.22em;line-height:1.6;color:var(--gold);margin:0 0 20px}h1,h2,p{margin-top:0}h1,h2{font-family:var(--serif);font-weight:400;letter-spacing:-.045em}h1{font-size:clamp(42px,5.4vw,83px);line-height:1.12;margin-bottom:24px}h1 em,h2 em{font-weight:400;color:#e7c890}h2{font-size:clamp(30px,3.7vw,54px);line-height:1.17;margin-bottom:20px}.intro-text{font-size:14px;line-height:1.9;color:#afbbb1;margin-bottom:28px}.edition{display:flex;align-items:center;gap:15px;font-size:8px;letter-spacing:.15em;color:#9ba99b;margin-top:35px}.edition>span{font-size:21px;color:var(--gold)}.edition b{font:20px var(--serif);letter-spacing:.05em;color:#dfcba3;border-left:1px solid var(--line);padding-left:15px}.birth-panel{position:relative;max-width:450px;width:100%;padding:32px clamp(22px,3vw,48px) 28px;text-align:center;border:1px solid #dcc4904d;background:linear-gradient(145deg,#142c2880,#14232799);box-shadow:0 25px 80px #0003}.birth-panel:before{content:'';position:absolute;inset:7px;border:1px solid #d1ba871c;pointer-events:none}.birth-panel h2{font-size:34px}.mini-astrolabe{height:95px;width:130px;position:relative;margin:0 auto 18px;display:grid;place-items:center;font:48px var(--serif);color:var(--gold)}.mini-astrolabe i{position:absolute;width:92px;height:92px;border:1px solid #d7b77955;border-radius:50%}.mini-astrolabe i:nth-of-type(2){width:120px;height:55px;transform:rotate(-35deg)}.mini-astrolabe b{position:absolute;font-size:17px;right:10px;top:6px;font-weight:400}.date-fields{display:grid;grid-template-columns:.8fr .8fr 1fr;gap:10px;text-align:left}.date-fields label{font-size:10px;display:block;color:#bfbcaa}.date-fields select{width:100%;padding:12px 6px;margin-top:7px;background:#101e1c;color:var(--paper);border:1px solid var(--line);border-radius:2px;cursor:pointer;font-size:13px;min-height:44px}.form-error{min-height:20px;line-height:1.4;font-size:11px;color:#edaf9c;margin:10px 0}.gold-button{position:relative;display:inline-flex;justify-content:center;align-items:center;gap:20px;min-height:45px;padding:13px 22px;border:1px solid #e5c58d;background:#d9bd85;color:#1b2923;font-size:11px;font-weight:600;letter-spacing:.02em;transition:background .25s,transform .25s}.gold-button:hover{background:#f0d6a4;transform:translateY(-2px)}.gold-button span{font-size:16px}.wide{width:100%}.privacy-note{font-size:9px;margin:14px 0 0;line-height:1.6;color:#91a094}.link-button{border:0;background:transparent;color:#bcb99f;font-size:10px;min-height:40px;padding:8px 0;text-underline-offset:5px}.link-button:hover{color:var(--gold);text-decoration:underline}.zodiac-layout{grid-template-columns:1fr 1fr;gap:clamp(20px,4vw,70px)}.star-map{position:relative;width:min(100%,460px);aspect-ratio:1;display:grid;place-items:center;justify-self:center}.star-map:before,.star-map:after{content:'';position:absolute;inset:6%;border-radius:50%;border:1px solid #dabd7e4f}.star-map:after{inset:10%;border-style:dashed;border-color:#dabd7e2c;animation:rotate 100s linear infinite}.star-map svg{width:100%;height:100%;filter:drop-shadow(0 0 9px #e4c28244)}.star-map line{stroke:#d9bf84;stroke-width:1;stroke-dasharray:250;stroke-dashoffset:250;animation:draw 2.5s .3s forwards}.star-map circle{fill:#ffebb9;animation:star 2s ease-in-out infinite alternate}.map-label,.map-caption{position:absolute;font-size:8px;letter-spacing:.25em;color:#b9ab86;text-transform:uppercase}.map-label{top:0}.map-caption{bottom:0;font-size:12px;letter-spacing:.3em}.zodiac-emblem{position:absolute;left:8%;bottom:9%;font:44px var(--serif);color:#e0bc72;background:#0d201b;width:67px;height:67px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center}.blessing-sheet{position:relative;padding:30px 38px;background:linear-gradient(135deg,#e9ddc2,#d9c8a8);color:#353d32;border:1px solid #e6ce9c;box-shadow:0 20px 80px #0004;text-align:center}.blessing-sheet:before{content:'';position:absolute;inset:8px;border:1px solid #9d875e55;pointer-events:none}.blessing-sheet .eyebrow{color:#806c45;font-size:8px;margin-bottom:10px}.zodiac-dates{font-size:10px;letter-spacing:.15em;color:#8b7959;margin-bottom:10px}.blessing-sheet h2{font-size:clamp(32px,4vw,58px);margin-bottom:15px}.ornament{font:16px var(--serif);color:#b09256;margin:10px 0 18px;letter-spacing:.15em}.zodiac-blessing{font:18px/1.85 var(--serif);margin-bottom:18px}.gentle-note{font-size:9px;line-height:1.7;color:#889589;margin-bottom:20px}.blessing-sheet .gentle-note{color:#8c7e62}.blessing-sheet .gold-button{background:#243c32;border-color:#243c32;color:#e7d4a9}.blessing-sheet .link-button{display:block;margin:5px auto -8px;color:#7d715b}.tarot-layout{grid-template-columns:1.1fr .9fr;gap:clamp(25px,5vw,80px)}.tarot-visual{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-height:0;position:relative;text-align:center}.stage-caption span{font:22px var(--serif);color:#c2a46c}.stage-caption p{font-size:7px;letter-spacing:.25em;color:#829386;margin:8px 0 0}.three-stage{width:100%;height:100%;min-height:0;position:relative;outline-offset:-4px;touch-action:none;user-select:none;-webkit-user-select:none;overscroll-behavior:none}.three-stage canvas{width:100%;height:100%;display:block;touch-action:none;cursor:grab}.three-stage.dragging canvas{cursor:grabbing}.three-stage:after{content:'';position:absolute;bottom:1%;left:5%;right:5%;height:8%;border-radius:50%;background:#0003;filter:blur(20px);z-index:-1}.gesture-hint{font-size:10px;color:#9caa9b}.gesture-hint p{margin:6px auto 10px;max-width:280px;line-height:1.5}.gesture-arrow{display:inline-block;color:var(--gold);font-size:22px;animation:arrow 2s infinite}.drag-meter{display:block;width:100px;height:2px;background:#d9bd8522;margin:auto;overflow:hidden}.drag-meter i{display:block;height:100%;width:0;background:#e2c489;transition:width .08s}.reading-placeholder{border:1px solid var(--line);padding:20px;margin:25px 0;display:flex;align-items:center;gap:16px}.reading-placeholder span{font-size:30px;color:var(--gold)}.reading-placeholder p{font:italic 17px/1.5 var(--serif);margin:0;color:#b6bfaa}.tarot-copy h2{font-size:clamp(36px,4.7vw,68px)}.reading-card{position:relative;text-align:center;padding:30px 28px;border:1px solid #d9bd8560;background:linear-gradient(135deg,#244236a6,#152c27cc);animation:enter 1s both;box-shadow:0 20px 70px #0003}.reading-card:before{content:'';position:absolute;inset:7px;border:1px solid #d9bd8520;pointer-events:none}.reading-number{display:block;color:var(--gold);font:18px var(--serif);margin-bottom:15px}.reading-card .eyebrow{font-size:10px;margin-bottom:14px}.reading-card h2{font-size:clamp(27px,3vw,42px);color:#e8d5ad}.card-blessing{font:18px/1.8 var(--serif);color:#d6d6bd;margin:18px 0}.reading-card .gentle-note{margin:0 0 22px}.tarot-visual.revealed .stage-caption{opacity:.5}.tarot-visual.revealed .gesture-hint{opacity:.8}.gift-layout{height:100%;position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto;text-align:center;width:min(100%,900px);margin:auto;min-height:0}.gift-heading h2{font-size:clamp(30px,4vw,56px);margin-bottom:10px}.gift-heading p:not(.eyebrow){font-size:12px;color:var(--muted);line-height:1.7}.gift-controls p{font-size:10px;color:var(--muted);margin:12px 0}.hold-ring{display:block;margin:auto;width:130px;height:3px;background:#d9bd8522;overflow:hidden}.hold-ring i{display:block;width:0;height:100%;background:var(--gold)}.gift-layout.opening .gift-heading,.gift-layout.opening .gift-controls{opacity:0;transition:opacity .6s;pointer-events:none}.gift-layout.opening .gift-stage{opacity:.55;transition:opacity 1s}.greeting-card{position:absolute;z-index:3;left:50%;top:50%;width:min(480px,95%);transform:translate(-50%,-50%);padding:10px;background:#eee2c9;color:#374235;box-shadow:0 30px 100px #0007;animation:popCard 1.5s cubic-bezier(.2,.7,.2,1) both}.greeting-frame{border:1px solid #9b865b88;padding:25px 30px 15px;position:relative}.greeting-frame:before,.greeting-frame:after{content:'✦';position:absolute;top:9px;left:10px;color:#b3965e;font-size:9px}.greeting-frame:after{left:auto;right:10px}.greeting-flower{display:block;font:38px var(--serif);color:#9b6c60;margin-bottom:10px}.greeting-card .eyebrow{font-size:8px;color:#8b7751;margin-bottom:13px}.greeting-card h2{font-size:clamp(33px,4.7vw,63px);margin:0;line-height:1.1}.greeting-card h2 em{color:#996b65}.greeting-card #finalWish{font:17px/1.8 var(--serif);margin-bottom:13px}.greeting-signature{font:italic 13px/1.6 var(--serif);color:#8d7659}.greeting-actions{display:flex;justify-content:space-between;gap:15px;border-top:1px solid #9b865b44;margin-top:19px;padding-top:7px}.greeting-actions .link-button{color:#6c755f;font-size:9px}.confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden}.confetti i{position:absolute;left:var(--x);top:75%;width:6px;height:12px;background:var(--c);opacity:0;animation:confetti 3.5s var(--delay) ease-out both;transform:rotate(var(--r))}.footer{position:absolute;bottom:0;height:49px;left:0;right:0;padding:0 clamp(22px,4.5vw,80px);display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid #d1ba8718;font-size:8px;letter-spacing:.07em;color:#7a8c7e}.credits-button{font-size:8px;color:#8d9a87;min-height:35px}.toast{position:fixed;z-index:50;bottom:65px;left:50%;max-width:90%;transform:translate(-50%,15px);padding:12px 20px;background:#1d372d;border:1px solid var(--line);color:var(--paper);font-size:11px;opacity:0;pointer-events:none;transition:.3s}.toast.show{opacity:1;transform:translate(-50%,0)}dialog{max-width:min(460px,90vw);color:var(--paper);background:#142c25;padding:30px;border:1px solid var(--line)}dialog::backdrop{background:#07130ed9}dialog h2{font-size:28px}dialog p{font-size:13px;line-height:1.8}dialog a{color:var(--gold)}.noscript{position:fixed;inset:30%;background:#142c25;padding:20px;z-index:99}.fallback-deck{position:absolute;left:50%;top:50%;width:160px;height:265px;transform:translate(-50%,-50%);perspective:1200px}.fallback-deck>div{position:absolute;inset:0;border-radius:8px;border:1px solid #d9bd85;background:repeating-radial-gradient(ellipse,#16352e 0 12px,#d9bd8530 13px 14px);box-shadow:0 18px 35px #0005,inset 0 0 0 8px #132c25}.fallback-deck>div:nth-child(1){transform:translate(-7px,9px) rotate(-4deg)}.fallback-deck>div:nth-child(2){transform:translate(6px,4px) rotate(4deg)}.fallback-top{display:flex;flex-direction:column;justify-content:center;align-items:center;color:var(--gold);transition:transform .3s;touch-action:none}.fallback-top span{font:65px var(--serif)}.fallback-top small{font-size:10px;letter-spacing:.2em;margin:25px 0}.fallback-top img{width:100%;height:100%;object-fit:fill;border-radius:8px}.fallback-gift{position:absolute;left:50%;top:50%;width:210px;height:170px;transform:translate(-50%,-50%)}.fallback-box,.fallback-lid{position:absolute;width:200px;background:linear-gradient(90deg,#632c42 40%,#d3b373 40% 55%,#793c50 55%);border:1px solid #d3b373}.fallback-box{height:110px;bottom:0}.fallback-lid{height:35px;top:30px;left:-5px;width:210px;transition:transform 1s}.fallback-gift>span{position:absolute;left:88px;top:85px;color:#e0bb75}.fallback-gift.opened .fallback-lid{transform:translateY(-65px) rotate(-20deg)}
@keyframes enter{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}@keyframes float{50%{transform:translateY(-15px)}}@keyframes flicker{50%{transform:scale(.8) rotate(12deg)}}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes draw{to{stroke-dashoffset:0}}@keyframes star{to{opacity:.55}}@keyframes arrow{50%{transform:translateY(-7px);opacity:.5}}@keyframes popCard{0%{opacity:0;transform:translate(-50%,60%) scale(.2) rotate(-15deg)}55%{opacity:1;transform:translate(-50%,-56%) scale(1.02) rotate(3deg)}100%{transform:translate(-50%,-50%) scale(1) rotate(0)}}@keyframes confetti{0%{opacity:0;transform:translate(0,0) rotate(0)}15%{opacity:1}45%{transform:translate(var(--dx),-50vh) rotate(160deg)}100%{opacity:0;transform:translate(var(--dx),25vh) rotate(360deg)}}
@media(min-width:801px) and (max-height:740px){.topbar{height:72px}main{inset:72px 0 40px}.footer{height:40px}.view{padding-top:20px;padding-bottom:20px}h1{font-size:57px}.birth-panel{padding:20px 30px}.mini-astrolabe{height:65px;margin-bottom:10px;transform:scale(.8)}.birth-panel h2{font-size:28px}.blessing-sheet{padding:22px 30px}.zodiac-blessing,.card-blessing{font-size:16px;line-height:1.7}.reading-card{padding:20px 25px}.greeting-frame{padding:16px 25px 10px}.greeting-flower{margin-bottom:3px;font-size:26px}.greeting-card h2{font-size:45px}.greeting-card #finalWish{font-size:16px;line-height:1.6}}
@media(max-width:800px){.topbar{height:68px;padding:0 20px}.wordmark{font-size:12px;gap:8px}.wordmark small{font-size:6px}.wordmark>span:first-child{font-size:28px}.chapter-nav{display:none}.sound-button{padding:8px 10px;min-height:36px}.sound-button #soundLabel{font-size:8px}main{inset:68px 0 32px}.footer{height:32px;padding:0 18px;font-size:7px}.footer #footerNote{display:none}.view{padding:18px 22px}.birth-layout{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);gap:20px;max-width:430px}.editorial{text-align:center}.editorial .eyebrow{font-size:7px;margin-bottom:10px}h1{font-size:clamp(30px,7vw,47px);line-height:1.1;margin-bottom:12px}h1 br:nth-of-type(1){display:none}.intro-text{font-size:11px;line-height:1.7;margin-bottom:0}.edition{display:none}.birth-panel{max-width:none;padding:18px 24px;align-self:center}.mini-astrolabe{display:none}.birth-panel .eyebrow{font-size:7px;margin-bottom:10px}.birth-panel h2{font-size:26px;line-height:1.15;margin-bottom:17px}.birth-panel h2 br{display:none}.date-fields{gap:8px}.privacy-note{font-size:8px}.gold-button{font-size:10px;min-height:44px;padding:11px 17px}.form-error{min-height:18px;margin:7px 0}.zodiac-layout{grid-template-columns:1fr;grid-template-rows:minmax(80px,.7fr) auto;gap:18px;width:min(100%,440px)}.star-map{height:100%;max-height:240px;width:auto;max-width:100%;aspect-ratio:1}.map-label{font-size:6px;top:-5px}.map-caption{font-size:8px;bottom:-3px}.zodiac-emblem{font-size:26px;width:44px;height:44px}.blessing-sheet{padding:20px 24px 15px}.blessing-sheet .eyebrow{font-size:7px}.blessing-sheet h2{font-size:32px;margin-bottom:10px}.zodiac-dates{font-size:8px;margin-bottom:7px}.ornament{font-size:12px;margin:8px 0 11px}.zodiac-blessing{font-size:15px;line-height:1.7;margin-bottom:10px}.blessing-sheet .gentle-note{font-size:8px;margin-bottom:12px}.blessing-sheet .link-button{font-size:9px;margin-bottom:-6px;min-height:30px}.tarot-layout{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;gap:12px;width:min(100%,450px)}.tarot-visual{grid-template-rows:auto minmax(0,1fr) auto}.stage-caption span{font-size:14px}.stage-caption p{font-size:6px;margin-top:4px}.gesture-hint{font-size:9px}.gesture-arrow{font-size:16px}.gesture-hint p{margin:3px auto 5px}.tarot-copy h2{font-size:31px;line-height:1.1;margin-bottom:10px}.tarot-copy .eyebrow{font-size:7px;margin-bottom:8px}.tarot-copy{text-align:center}.tarot-copy h2 br{display:none}.tarot-copy .intro-text{font-size:11px;max-width:310px;margin:auto}.reading-placeholder{display:none}.tarot-copy .gentle-note{font-size:8px;line-height:1.5;margin:12px 0 0}.reading-card{padding:18px 21px}.reading-number{position:absolute;top:15px;left:18px;font-size:11px;margin:0}.reading-card .eyebrow{font-size:8px}.reading-card h2{font-size:26px}.card-blessing{font-size:15px;line-height:1.65;margin:12px 0}.reading-card .gentle-note{font-size:8px;margin:0 0 15px}.reading-card .gentle-note br{display:none}.tarot-visual.revealed .stage-caption{display:none}.tarot-visual.revealed .gesture-arrow,.tarot-visual.revealed .drag-meter{display:none}.gift-layout{grid-template-rows:auto minmax(0,1fr) auto}.gift-heading .eyebrow{font-size:8px;margin-bottom:12px}.gift-heading h2{font-size:34px}.gift-heading p:not(.eyebrow){font-size:11px;max-width:280px;margin:0 auto}.greeting-card{width:min(420px,100%)}.greeting-frame{padding:20px 20px 12px}.greeting-card h2{font-size:43px}.greeting-card #finalWish{font-size:16px;line-height:1.75}.greeting-signature{font-size:12px}.greeting-flower{font-size:30px}.greeting-card .eyebrow{font-size:7px}.greeting-actions{margin-top:15px}.fallback-deck{width:120px;height:200px}}
@media(max-width:800px) and (max-height:700px){.view{padding:12px 18px}.birth-layout{gap:12px}h1{font-size:29px}.intro-text br{display:none}.birth-panel{padding:16px 20px}.birth-panel h2{font-size:23px}.editorial .eyebrow{margin-bottom:7px}.privacy-note{margin-top:8px}.zodiac-layout{gap:12px;grid-template-rows:minmax(60px,.6fr) auto}.blessing-sheet{padding:16px 20px 10px}.zodiac-blessing{font-size:14px;line-height:1.6}.blessing-sheet h2{font-size:27px}.blessing-sheet .gentle-note{display:none}.reading-card{padding:14px 17px}.reading-card h2{font-size:23px}.card-blessing{font-size:14px;line-height:1.55;margin:10px 0}.reading-card .gentle-note{display:none}.greeting-frame{padding:13px 19px 8px}.greeting-card h2{font-size:36px}.greeting-card #finalWish{font-size:14px;line-height:1.6}.greeting-flower{font-size:24px;margin-bottom:6px}.greeting-actions{margin-top:10px}}
@media(max-height:500px) and (orientation:landscape){.topbar{height:52px}main{inset:52px 0 26px}.footer{height:26px}.view{padding:12px 28px}.birth-layout,.zodiac-layout,.tarot-layout{grid-template-columns:1fr 1fr;grid-template-rows:1fr;max-width:100%;gap:25px}.birth-layout .editorial{text-align:left}.editorial .eyebrow{font-size:6px}h1{font-size:30px}.intro-text{font-size:10px}.birth-panel{padding:12px 18px}.birth-panel h2{font-size:22px;margin-bottom:12px}.birth-panel .eyebrow{display:none}.form-error{min-height:14px;margin:3px 0}.privacy-note{margin-top:6px}.date-fields select{padding:5px;min-height:34px;font-size:11px}.gold-button{min-height:35px;padding:8px 12px}.star-map{height:min(100%,250px);max-height:250px}.blessing-sheet{padding:13px 20px 6px}.blessing-sheet h2{font-size:26px}.zodiac-blessing{font-size:13px;line-height:1.55}.zodiac-dates{margin-bottom:5px}.blessing-sheet .gentle-note{display:none}.blessing-sheet .eyebrow{font-size:6px}.ornament{margin:5px 0}.tarot-visual{height:100%}.tarot-copy .intro-text{font-size:10px}.tarot-copy h2{font-size:30px}.reading-card{padding:15px 18px}.reading-card h2{font-size:23px}.reading-card .gentle-note{display:none}.card-blessing{font-size:13px;line-height:1.55}.gift-heading{position:absolute;left:0;top:20%;width:40%;text-align:left}.gift-heading h2{font-size:29px}.gift-stage{position:absolute;right:0;width:55%;height:90%;top:0}.gift-controls{position:absolute;right:10%;bottom:0}.greeting-card{width:480px}.greeting-frame{padding:11px 25px 6px}.greeting-flower{display:none}.greeting-card h2{font-size:30px}.greeting-card h2 br{display:none}.greeting-card #finalWish{font-size:14px;line-height:1.55;margin:8px 0}.greeting-signature{font-size:11px;margin:8px 0}.greeting-card .eyebrow{margin:0 0 8px}.greeting-actions{margin-top:8px;padding-top:0}.greeting-actions .link-button{min-height:30px}}
@media(max-height:500px) and (orientation:landscape){.star-map{width:auto}.blessing-sheet{padding:10px 22px 5px}.blessing-sheet .eyebrow{font-size:6px;margin-bottom:5px}.blessing-sheet h2{margin-bottom:6px}.zodiac-blessing{font-size:13px;line-height:1.4;margin-bottom:8px}.blessing-sheet .link-button{min-height:25px;margin:0 auto -3px}.blessing-sheet .gold-button{min-height:33px;padding:7px 12px}.reading-card .eyebrow{font-size:8px;margin-bottom:7px}.reading-card h2{margin-bottom:8px}.reading-number{margin-bottom:6px}.reading-card .ornament{margin:5px 0}.card-blessing{margin:7px 0 12px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media(max-height:500px) and (orientation:landscape){.reading-placeholder{display:none}.tarot-copy .intro-text{font-size:11px;line-height:1.6;margin-bottom:15px}.tarot-copy .gentle-note{font-size:8px;line-height:1.5;margin-bottom:0}.tarot-copy .eyebrow{font-size:7px;margin-bottom:10px}.tarot-copy h2{font-size:34px;line-height:1.15;margin-bottom:15px}}
button,a{touch-action:manipulation}
@media(pointer:coarse){.date-fields select{font-size:16px}}

/* The receiver introduces themselves before opening their star map. */
.recipient-field{display:block;text-align:left;color:#bfbcaa;font-size:10px;margin:0 0 15px}
.recipient-field input{display:block;width:100%;min-height:44px;padding:12px;margin-top:7px;background:#101e1c;color:var(--paper);border:1px solid var(--line);border-radius:2px;font:14px var(--sans);outline-offset:3px}
.recipient-field input::placeholder{color:#8d9b91}
.recipient-field input[aria-invalid=true]{border-color:#edaf9c}
.zodiac-blessing,.card-blessing,#finalWish,#greetingRecipient{overflow-wrap:anywhere}
#greetingRecipient{letter-spacing:.12em;line-height:1.6;text-transform:none}
@media(max-width:800px){.recipient-field{font-size:9px;margin-bottom:12px}.recipient-field input{font-size:16px;padding:10px 12px}.birth-panel{padding-top:16px;padding-bottom:16px}}
@media(max-width:800px) and (max-height:620px) and (orientation:portrait){.editorial .intro-text{display:none}.birth-panel{padding:12px 18px}.birth-panel .eyebrow{margin-bottom:6px}.birth-panel h2{font-size:22px;margin-bottom:10px}.recipient-field{margin-bottom:9px}.privacy-note{font-size:7px;margin-top:8px}.greeting-card #finalWish{font-size:14px;line-height:1.5}.greeting-frame{padding-top:11px;padding-bottom:6px}.greeting-card .eyebrow{margin-bottom:8px}.greeting-flower{margin-bottom:3px}}
@media(max-height:500px) and (orientation:landscape){.birth-panel .mini-astrolabe{display:none}.recipient-field{font-size:8px;margin-bottom:8px}.recipient-field input{min-height:34px;padding:7px 10px;margin-top:4px}.birth-panel{padding:10px 18px}.birth-panel h2{font-size:21px;margin-bottom:8px}}
@media(pointer:coarse){.recipient-field input{font-size:16px}}
/* Focus on a form field must not scroll the fixed scene containers on mobile. */
.app-shell,main,.view{overflow:clip}
