:root{--ink:#1c102c;--deep:#150d22;--violet:#482451;--lavender:#b59ac4;--cream:#fff0cf;--orange:#ef9858;--line:#bd8e733d;--muted:#baa6c4}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--ink);color:var(--cream);font-family:Thonburi,Noto Sans Thai,Tahoma,system-ui,sans-serif;line-height:1.7;background-image:radial-gradient(ellipse at 80% 12%,#6d3f7333,transparent 45%),radial-gradient(ellipse at 12% 66%,#63314b20,transparent 42%)}button,select{font:inherit}a,button,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible,select:focus-visible{outline:3px solid #efbb88;outline-offset:5px}button{color:inherit}img{display:block;width:100%}main{overflow:clip}.site-header{max-width:1320px;margin:auto;padding:25px 48px;justify-content:space-between;border-bottom:1px solid var(--line)}.brand,.site-header{display:flex;align-items:center}.brand{gap:12px;font:23px Georgia,serif;letter-spacing:.5px}.brand small{font:11px Thonburi,Tahoma,sans-serif;display:block;color:var(--muted);letter-spacing:1px;margin-top:6px}.brand-mark{font:48px Georgia;color:#efc28c;line-height:1}.site-header nav{display:flex;gap:30px;font-size:13px;color:#d4bddb}.site-header nav a:hover,.text-link:hover{color:#f7bc89}.edition{font:10px Georgia,serif;letter-spacing:2px;color:#bc9c9f}.welcome{max-width:1240px;margin:auto;padding:72px 48px 90px;display:grid;grid-template-columns:1fr 470px;gap:65px;min-height:850px}.eyebrow,.welcome{align-items:center}.eyebrow{font:10px/1.6 Georgia,serif;letter-spacing:2.7px;color:#dbad8c;display:flex;gap:12px;margin:0 0 24px}.eyebrow span{width:26px;height:1px;background:#d7a884}.intro h1{font-size:48px;line-height:1.45;font-weight:400;letter-spacing:-1.4px;margin:0 0 23px}.intro h1 em{font-style:normal;color:#e7bb9c}.intro-copy{font-size:14px;line-height:2;color:#c3adcc;margin-bottom:28px}.reading-form{max-width:380px}.reading-form label{display:block;font-size:12px;color:#dfc8df;margin-bottom:10px}select{width:100%;border:1px solid #90708372;background:#2c1a39;color:var(--cream);border-radius:6px;padding:13px 17px;font-size:14px;appearance:auto}select:disabled{opacity:.7}.draw-button{margin-top:14px;width:100%;border:1px solid #f6c598;background:#efb07e;color:#321c31;border-radius:6px;font-size:15px;padding:16px 19px;font-weight:600;display:flex;justify-content:space-between;align-items:center;box-shadow:0 7px 34px #ed99571f;transition:background .2s,transform .2s}.draw-button:not(:disabled):hover{background:#ffd0a1;transform:translateY(-2px)}.draw-button:disabled{background:#b48a79;border-color:#b48a79}.draw-button span:first-child{font-size:19px}.quiet{font-size:10px;color:#aa92b7;text-align:center;letter-spacing:.15px;margin:10px 0}.status{color:#bea5c5;font-size:11px;margin-top:23px;min-height:20px}.error{color:#ffc39e;font-size:12px}.stage{position:relative;border:1px solid #c09b7e55;border-radius:220px 220px 12px 12px;padding:12px;background:#25152f;box-shadow:0 0 130px #a3639220,0 20px 90px #07030f50;isolation:isolate}.stage-top{display:flex;justify-content:space-between;position:absolute;top:-30px;left:40px;right:20px;color:#bc97ad;font:9px Georgia;letter-spacing:2px}.stage-top span:last-child{font-size:23px;line-height:.4}.room-window{width:100%;aspect-ratio:1080/1500;overflow:hidden;border-radius:210px 210px 5px 5px;position:relative;background:#211432}.room-window iframe{border:0;display:block;width:1080px;height:1920px;transform-origin:top left;pointer-events:none}.stage-bottom{text-align:center;padding:22px 6px 18px}.stage-bottom>span{font:17px Georgia;letter-spacing:4px;display:block}.stage-bottom>small{font-size:10px;color:#bca0c6;display:block;margin-top:6px}.orbit{position:absolute;color:#e4b588;font-size:28px}.orbit-one{top:14%;left:-23px}.orbit-two{bottom:24%;right:-24px;font-size:38px}.reading-result{max-width:1060px;margin:0 auto 105px;padding:42px 50px;display:grid;grid-template-columns:230px 1fr;gap:62px;align-items:center;background:linear-gradient(125deg,#4f2e4d70,#30203940);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.result-art img{border-radius:12px;box-shadow:0 20px 50px #09040f70;transform:rotate(-3deg)}.card-info h2,.result-copy h2{font:38px/1.15 Georgia,serif;margin:0 0 12px}.keyword{font-size:16px;color:#dcad92;margin:4px 0 20px}.fine-line{height:1px;width:80px;background:#b489754d;margin:24px 0}.meaning{font-size:22px;color:#f6e3ce;line-height:1.8;margin:0 0 20px}.gentle{font-size:12px;line-height:1.9;color:#bda4c7;max-width:470px}.text-link{font-size:11px;color:#e5b48b;border-bottom:1px solid #be927850;padding-bottom:4px;display:inline-block;margin-top:15px}.collection{max-width:1240px;margin:auto;padding:30px 48px 90px}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:40px;gap:35px}.section-heading .eyebrow{margin-bottom:12px}.section-heading h2{font-size:24px;line-height:1.55;font-weight:400;margin:0}.section-heading p:last-child{font-size:11px;color:#bba2c5;line-height:1.9;margin:0;flex-shrink:0}.card-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:25px}.gallery-card{padding:0;background:none;border:0;text-align:left;transition:transform .3s}.gallery-card:nth-child(2n){padding-top:25px}.gallery-card:hover{transform:translateY(-8px)}.card-number{color:#9d7c9d;font:11px Georgia;letter-spacing:2px;display:block;margin-bottom:13px}.gallery-card img{border-radius:11px;box-shadow:0 15px 28px #09040e66}.card-caption{font:16px/1.4 Georgia;display:block;margin:20px 0 0}.card-caption small{display:block;font:10px/1.7 Thonburi,Tahoma,sans-serif;color:#b99ac1;margin-top:7px}.about{max-width:1000px;margin:20px auto 100px;padding:65px 80px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-columns:150px 1fr;gap:60px;align-items:center}.big-moon{font:150px Georgia;color:#c49b7c;opacity:.8;text-shadow:0 0 80px #b67c5e45;transform:rotate(-15deg)}.about h2{font-size:27px;line-height:1.6;font-weight:400;margin:0 0 20px}.about p{font-size:12px;color:#c0a7c8;line-height:2}.about .eyebrow{font-size:10px;color:#d2a484}.about .subtle{font-size:10px;color:#a78caf}footer{max-width:1320px;margin:auto;padding:30px 48px 40px;display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid var(--line);color:#a88dae;font-size:10px}footer>span:first-child{font:18px Georgia;color:#e4caaf}footer small{font:10px Thonburi,sans-serif;display:block;margin-top:8px;color:#ae93b5}.modal-backdrop{position:fixed;inset:0;z-index:10;background:#0c0714d9;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);display:flex;align-items:center;justify-content:center;padding:28px;overflow-y:auto}.card-modal{position:relative;width:900px;max-width:100%;max-height:90vh;overflow:auto;padding:38px;background:#2b1b38;border:1px solid #b38d7055;border-radius:16px;display:grid;grid-template-columns:300px 1fr;gap:42px;box-shadow:0 30px 100px #0008}.close{position:absolute;right:12px;top:8px;border:0;background:none;color:#dfc7d6;font-size:32px;line-height:1;padding:5px 10px;z-index:2}.animated-card{position:relative;width:100%;aspect-ratio:600/960;border-radius:14px;overflow:hidden;background:#21142d}.animated-card iframe{border:0;width:600px;height:960px;display:block;transform-origin:top left;pointer-events:none}.motion-toggle{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);border:1px solid #ae8a7355;border-radius:20px;color:#fff0cf;background:#24132ee8;padding:7px 15px;font-size:9px;white-space:nowrap}.card-info .eyebrow{margin-top:10px;font-size:9px}.card-info h2{font-size:30px}.card-info .keyword{font-size:13px}.card-info dl{margin:24px 0 0}.card-info dl div{display:grid;grid-template-columns:65px 1fr;gap:12px;margin-bottom:12px;font-size:11px;line-height:1.8}.card-info dt{color:#e5b69c}.card-info dd{margin:0;color:#c5accf}@media(max-width:1050px){.welcome{grid-template-columns:1fr 400px;gap:35px;padding:65px 36px}.intro h1{font-size:40px}.site-header{padding:22px 30px}.edition{display:none}.card-grid{gap:18px}.about{margin:0 40px 75px}}@media(max-width:760px){.site-header{padding:20px 22px}.brand{font-size:21px}.brand-mark{font-size:38px}.site-header nav{gap:15px;font-size:10px}.site-header nav a:last-child{display:none}.welcome{display:flex;flex-direction:column;align-items:stretch;padding:38px 26px 65px;gap:0;min-height:0}.intro{display:contents}.intro>.eyebrow{order:0;font-size:8px;margin-bottom:18px}.intro h1{order:1;font-size:37px;line-height:1.5;letter-spacing:-.8px;margin-bottom:16px}.intro-copy{order:2;font-size:12px;margin:0 0 48px}.stage{order:3;width:100%;max-width:430px;margin:0 auto 28px;padding:9px}.stage-top{font-size:8px;top:-23px}.stage-bottom{padding:15px 0 12px}.stage-bottom>span{font-size:14px}.reading-form{order:4;max-width:430px;width:100%;margin:auto}.status{order:5;text-align:center;font-size:10px;margin-top:14px}.draw-button{font-size:14px}.reading-result{margin:0 22px 65px;padding:28px;display:block}.result-art{width:150px;margin:0 auto 32px}.result-copy h2{font-size:31px}.result-copy .eyebrow{font-size:9px}.meaning{font-size:19px}.keyword{font-size:14px}.collection{padding:0 25px 55px}.section-heading{display:block;margin-bottom:26px}.section-heading h2{font-size:21px}.section-heading p:last-child{font-size:10px;margin-top:14px}.card-grid{display:flex;overflow-x:auto;gap:20px;padding:0 2px 25px;scroll-snap-type:x mandatory}.gallery-card{flex:0 0 180px;scroll-snap-align:start}.gallery-card:nth-child(2n){padding-top:0}.card-caption{font-size:15px}.about{display:block;margin:0 25px 40px;padding:35px 8px}.big-moon{font-size:70px;float:right;margin:0 20px 10px}.about h2{font-size:23px}.about .eyebrow{font-size:9px}footer{margin:0 24px;padding:28px 0;flex-wrap:wrap}footer>span:nth-child(2){display:none}.modal-backdrop{padding:14px}.card-modal{grid-template-columns:1fr;padding:40px 24px 28px;gap:25px;max-height:94vh}.animated-card{max-width:260px;margin:auto}.card-info h2{font-size:29px}.card-info dl div{font-size:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{transition:none!important;animation:none!important}}.gallery-card img,.generated-card{aspect-ratio:1632/2624;object-fit:contain}.generated-card{overflow:visible;background:none}.generated-card>img{height:100%;object-fit:contain;border-radius:15px;box-shadow:0 16px 50px #10041c55}.card-breathing>img{animation:card-breathe 4s ease-in-out infinite}@keyframes card-breathe{50%{transform:translateY(-5px) rotate(.5deg)}}.stage-reopen{border:1px solid #ae91b960;border-radius:22px;background:#4b2b60;color:#f9e6d4;padding:10px 17px;font-size:12px;margin:15px auto 0;min-height:44px;display:block}.stage-reopen span{display:inline;font-size:14px;letter-spacing:0;margin-right:7px;color:#e5bb93}.stage-reopen:hover{background:#624076}.reading-result{scroll-margin-top:25px;align-items:start}.result-card-toggle{width:100%;padding:0;border:0;background:none;position:relative;aspect-ratio:1632/2624;transform:rotate(-3deg);transition:transform .3s}.result-card-toggle:hover{transform:rotate(0) translateY(-5px)}.result-card-face{display:block;width:100%;height:100%;object-fit:contain;border-radius:15px;box-shadow:0 0 0 1px #f8d9ca90,0 18px 45px #11091c40}.saved-card-note{text-align:center;color:#bfa7cc;font-size:11px;margin:20px 0 0}.rabbit-card-back{width:100%;height:100%;border:2px solid #e9c5b3;border-radius:15px;padding:10px;background:radial-gradient(circle at 50% 35%,#683a88,#48205e 78%);box-shadow:0 18px 45px #11091c40}.back-border{height:100%;border:1px solid #cbb3cc;border-radius:9px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}.back-border svg{width:60%;margin-top:0}.back-wordmark{font:10px Georgia,serif;letter-spacing:1.6px;color:#f5e2ce;margin-top:20px}.back-sparkle{color:#d9b8d7;font-size:26px;margin-top:12px}.back-star{position:absolute;color:#eed2b1;font-size:23px}.s-one{top:10%;left:17%}.s-two{top:22%;right:11%;color:#a4c3aa}.reading-full{margin:30px 0 22px;border-top:1px solid #d1acc12b;padding-top:20px}.reading-full h3{font-size:14px;font-weight:400;color:#e8c8d8;margin:0 0 18px}.reading-full dl{margin:0}.reading-full dl div{padding:10px 13px;border-radius:9px;margin:4px -13px;display:grid;grid-template-columns:108px 1fr;gap:15px;font-size:12px;line-height:1.8}.reading-full dt{color:#e4bbaa}.reading-full dd{margin:0;color:#cbb3d0}.reading-full dt span{display:block;font-size:9px;color:#aad0b2}.reading-full .current-context{background:#b390be18;border:1px solid #bb97c52b}.reveal-layer{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:12px;isolation:isolate}.reveal-veil{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 40%,#512d648c,#170e28e8 78%);-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px)}.reveal-panel{position:relative;z-index:1;width:min(540px,100%);max-height:96svh;padding:24px 20px 16px;display:flex;flex-direction:column;align-items:center;text-align:center;outline:none}.reveal-close{position:absolute;right:0;top:0;background:#684475b8;border:1px solid #e8c9df45;color:#fff5ed;border-radius:50%;width:44px;height:44px;font-size:30px;line-height:1;z-index:5}.reveal-close:hover{background:#8a5e94}.reveal-art-stage{position:relative;width:100%;display:flex;align-items:center;justify-content:center;perspective:1200px}.reveal-card-shell{width:min(270px,32svh);aspect-ratio:1632/2624;z-index:2}.reveal-card-shell,.reveal-flipper{position:relative;will-change:transform}.reveal-flipper{width:100%;height:100%;transform-style:preserve-3d}.reveal-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:16px}.reveal-front img{height:100%;width:100%;object-fit:contain;border-radius:16px;box-shadow:0 0 0 1px #f8d9ca90,0 0 35px #edc5a93a,0 24px 70px #10041f77}.reveal-back{transform:rotateY(180deg)}.reveal-halo{width:120%;height:125%;background:radial-gradient(ellipse,#ffe6c956 0,#f4c5da29 32%,#b98eda12 56%,transparent 71%);border-radius:50%;filter:blur(12px)}.reveal-halo,.reveal-stars{position:absolute;pointer-events:none}.reveal-stars{inset:-7% 0}.reveal-star{position:absolute;display:block;line-height:1;color:#f5dec6;text-shadow:0 0 15px #f8debd60;transform-origin:center}.star-color-1{color:#b0d4bc}.star-color-2{color:#e5c2df}.reveal-copy{margin:22px 0 0;position:relative;z-index:3;max-width:420px;color:#fff0e5}.reveal-kicker{font-size:11px;color:#dbc0de;margin:0 0 8px}.reveal-copy h2{font:29px/1.15 Georgia,serif;letter-spacing:.2px;margin:0 0 12px}.reveal-meaning{font-size:18px;line-height:1.8;margin:0 auto 13px;max-width:380px;text-wrap:balance}.reveal-details{font-size:11px;background:#f1c5ab;color:#3d234c;border:1px solid #f8dac4;border-radius:25px;padding:10px 18px;min-height:42px}.reveal-details:hover{background:#ffe2c7}.reveal-details span{margin-left:10px}.reveal-hint{font-size:10px;color:#bda2cb;margin:12px 0 0}@media(max-width:760px){.reveal-panel{padding:28px 4px 14px}.reveal-card-shell{width:min(250px,32svh)}.reveal-close{right:4px;top:0}.reveal-copy{margin-top:18px}.reveal-copy h2{font-size:25px}.reveal-meaning{font-size:16px;max-width:310px}.reveal-hint{font-size:9px}.reveal-stars{inset:-7% -3%}.reading-full dl div{grid-template-columns:78px 1fr;gap:12px}.result-art{width:180px}.reading-result{padding:30px 24px}.stage-reopen{font-size:11px}}@media(max-height:650px){.reveal-panel{padding-top:12px}.reveal-card-shell{width:28svh}.reveal-copy{margin-top:12px}.reveal-copy h2{font-size:23px}.reveal-meaning{font-size:14px;margin-bottom:8px}.reveal-kicker{margin-bottom:5px}.reveal-hint{margin-top:6px}}.reveal-layer[data-state=opening] .reveal-card-shell{visibility:hidden}.reveal-layer[data-state=opening] .reveal-copy{opacity:0}.hand-card-toggle{position:absolute;padding:0;min-width:36px;min-height:44px;background:transparent;border:1px solid transparent;border-radius:5px;z-index:3;cursor:pointer}.hand-card-toggle:hover{border-color:#f6d8b9;box-shadow:0 0 18px #efd2b070}.hand-card-toggle:focus-visible{outline:2px solid #f3d7b8;outline-offset:4px}.shared-card-back{display:block;width:100%;height:100%;object-fit:fill;border-radius:15px;box-shadow:0 18px 45px #11091c40}.three-card-entry{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #c6a3bf55;border-radius:8px;padding:15px 17px;margin:15px 0;background:#66416a20}.three-card-entry>span{font-size:11px;color:#c6adce}.three-card-entry strong{font-size:13px;font-weight:400;color:#f3c89f}.three-card-entry strong span{margin-left:10px}.three-card-entry:hover{background:#79517a38}@media(max-width:760px){.site-header nav{gap:12px;font-size:10px}}@media(max-width:480px){.site-header nav a{white-space:nowrap}.site-header nav a[href^="#"]{display:none}}.room-window .draw-video,.room-window .idle-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top;opacity:0;pointer-events:none;z-index:1}.room-window .draw-video{z-index:2}.room-window .draw-video.is-playing,.room-window .idle-video.is-playing{opacity:1}.card-name-fallback{display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:1632/2624;padding:18px;background:linear-gradient(155deg,#382346,#21142d);border:1px solid #e9c7a7aa;border-radius:15px;color:#f5dec5;text-align:center;font:clamp(15px,2vw,24px)/1.5 Georgia,serif;box-shadow:inset 0 0 0 7px #b595c318}.card-name-fallback span{overflow-wrap:anywhere}.generated-card>.card-name-fallback,.reveal-front>.card-name-fallback{height:100%}.gallery-card>.card-name-fallback{font-size:18px}.coming-soon{min-height:100svh;max-width:720px;margin:auto;padding:70px 25px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center}.coming-soon h1{font-size:clamp(34px,7vw,62px);margin:16px 0}.coming-moon{font:100px Georgia;color:#e2c0a0}.coming-copy{line-height:2.1;color:#ccb5d2;margin:14px 0 30px}.coming-soon .draw-button{display:flex;gap:18px;align-items:center;justify-content:center;text-decoration:none;max-width:420px}.site-header nav{flex-wrap:wrap}.card-grid{row-gap:30px}.gallery-card>img{height:auto}.result-art .result-card-face{transform:none}.meaning-detail{font-size:15px;line-height:2;color:#e6d2e4;margin:-6px 0 22px;max-width:560px}.card-info dd .headline,.reading-full dd .headline{display:block;color:#f0dcd0}.card-info dd .detail,.reading-full dd .detail{display:block;margin-top:4px;color:#bfa6c8;line-height:1.85}.reveal-detail{font-size:13.5px;line-height:1.9;color:#ead8e8;margin:0 auto 14px;max-width:400px}@media(max-width:760px){.meaning-detail{font-size:14px}.reveal-detail{font-size:12.5px;max-width:320px}}@media(max-height:650px){.reveal-detail{font-size:11.5px;line-height:1.7;margin-bottom:8px}}.daily-reading{display:grid;gap:18px}.daily-reading>section{border-top:1px solid #d1acc12b;padding-top:15px}.daily-reading h3{margin:0 0 6px;font-size:14px;font-weight:500;color:#eac4ab}.daily-reading p{margin:0;color:#e6d2e4;font-size:14px;line-height:1.95;white-space:pre-line}.daily-reading p strong{color:#fff0cf;font-weight:600}.daily-extras{display:grid;gap:8px;border-top:1px solid #d1acc12b;padding-top:15px}.daily-extras strong{display:block;color:#eac4ab;font-weight:500}.daily-reading .reading-full{margin-top:0}.daily-reading .reading-full dd{white-space:pre-line}.card-modal .daily-reading p{font-size:12px}.card-modal .daily-reading{gap:14px}.stage-bottom .reading-form{margin:20px auto 0;text-align:left;width:100%}.stage-bottom .status{margin:12px 0 0;text-align:center}.stage-bottom .stage-reopen{display:block;margin:10px auto 0;background:transparent;border:0;padding:8px 12px;color:#ddc2e4;text-decoration:underline;text-underline-offset:4px;font-size:12px}.stage-bottom .stage-reopen span{display:inline;font:inherit;letter-spacing:normal}.stage-bottom .three-card-entry{margin-bottom:12px}.reveal-front img{height:auto;border-radius:6.5%/4%;box-shadow:none}.result-art .result-card-face{height:auto;box-shadow:0 18px 45px #11091c40}.reveal-art-stage{flex-shrink:0}.reveal-panel{overflow-y:auto;overscroll-behavior:contain}.stage-bottom .reading-form>.draw-button{width:fit-content;max-width:100%;min-height:44px;margin:0 auto;justify-content:center;gap:8px;border:1px solid #f6c598;border-radius:999px;background:#efb07e;color:#321c31;padding:10px 17px;font-size:12px;font-weight:400;line-height:1.7;box-shadow:none}.stage-bottom .reading-form>.draw-button>span{font-size:14px}.stage-bottom .reading-form>.draw-button:not(:disabled):hover{background:#ffd0a1;transform:none}.stage-bottom .reading-form>.draw-button:disabled{opacity:.65}.stage-preferences{margin-top:18px}.reveal-layer:not([data-state=opening]) .reveal-back{display:none}