/* V2: original Vietnamese character, graphic manhwa art, press-and-release ritual. */
:root{--bg:#141216;--deep:#0c0a0e;--jade:#423038;--gold:#f29c83;--pale:#f7f0ec;--muted:#a8a1ac;--paper:#211e25;--ink:#e9e3e8;--serif:'PingFang SC','Microsoft YaHei',-apple-system,sans-serif}
body{background:#141216;color:#f7f0ec}.header{background:#141216;border-bottom-color:#ffffff12;height:82px}.brand>span{font-weight:600;letter-spacing:2px}.brand>svg{stroke:#fa806b}.brand small{color:#a7a0ad;letter-spacing:2px}.header nav a{color:#a7a0ac}.header nav a.active,.header nav a:hover{color:#fff}.header nav a.active:after{height:3px;width:18px;background:#f47463;border-radius:2px;bottom:17px}.edition{color:#9e96a6}.edition i,.result-kicker i{background:#f47463}.btn{border-radius:9px;font-weight:600;letter-spacing:0;min-height:54px}.btn.gold{background:#ed7967;color:#1f1115;box-shadow:0 5px 28px #ca3d331c}.btn.gold:hover{background:#ff9681}.btn.dark{background:#ed7967;color:#1f1115}.btn.outline{border-color:#ffffff30;color:#e8dbe7}.text-link{color:#e2d9df}.micro-note{color:#aca0ac}.hero-scene{background-image:url('assets/minh-an-vietnam.png');background-position:center 20%;animation:character-enter 2.2s ease-out both}.home-hero{height:720px;min-height:640px;max-height:none;background:#0f0d12}.scene-shade{background:linear-gradient(90deg,#100d13eb,#110e1480 38%,#100d1300 66%),linear-gradient(0deg,#141216,transparent 20%)}.hero-copy{padding-bottom:20px;width:55%}.hero-copy h1{font-family:var(--sans);font-size:clamp(49px,5.2vw,74px);font-weight:700;letter-spacing:-2px;line-height:1.25;margin:25px 0 25px;text-shadow:0 6px 35px #0007}.hero-description{color:#d4c5cf;font-size:15px;letter-spacing:0;line-height:2}.intro-line{color:#f2a58d;letter-spacing:2px;font-size:11px}.intro-line>span{width:20px;background:#fa7a62}.hero-actions{margin-top:34px;gap:25px}.hero-actions .btn{padding-inline:26px}.hero-actions .text-link{font-size:12px}.scene-caption{right:35px;bottom:56px;background:#1e131b8c;border:1px solid #fff2;border-radius:10px;padding:13px 17px;backdrop-filter:blur(12px)}.scene-caption .caption-line{background:#e47b65}.scene-caption p{font-size:16px;letter-spacing:0;font-weight:600}.scene-caption small{color:#c5b1bc;font-size:10px;letter-spacing:.4px}.replay{border-color:#ffffff30;color:#e4c1b9}.hero-bottom-caption{position:absolute;bottom:25px;left:max(52px,calc((100% - 1192px)/2));font-size:9px;letter-spacing:2px;color:#b498a3}.fireflies i{background:#ffae87;box-shadow:0 0 10px 2px #ff624b70}.home-paths{padding-top:28px;gap:20px}.path-card{border:1px solid #ffffff17;background:linear-gradient(120deg,#292027,#1a181e);border-radius:14px;padding:26px 27px;gap:19px}.path-card:nth-child(2){background:linear-gradient(120deg,#23202e,#1b181f)}.path-card h2{font-size:22px;font-weight:600;letter-spacing:-.5px;margin:4px 0 7px}.path-card p{color:#a9a0ad;font-size:11px}.path-icon{border-color:#f3927340;color:#f5967c;background:#ec6c4a0b;border-radius:14px}.path-icon.moon-icon{transform:none}.path-arrow{color:#eb9a85}.tag{border-color:#fa937640;color:#eab7a3;font-size:9px}.small-label{color:#cda193;letter-spacing:1px}.quiet-note p{font-family:var(--sans);font-size:14px}.quiet-note p span{color:#a299a8}.quiet-note a{color:#d9b5ab}.mini-lotus{color:#e99a87}.footer{border-color:#fff1;color:#8a8390}.footer-brand{color:#e5c9c0;font-weight:600}.footer-brand span{color:#96838d}.back-link{color:#9c929f}.section-heading h1{font-size:34px;letter-spacing:-1px;font-weight:650}.quiet-badge{color:#c0a3ae}.result-layout{gap:52px;align-items:center}.ritual-scene{border-radius:20px;min-height:630px;border:1px solid #ffffff1c;background:radial-gradient(ellipse at 50% 55%,#57303c44,#1c1721 70%);isolation:isolate;overflow:hidden}.ritual-character{position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#19141c 15%,#1c15205c 75%),url('assets/minh-an-vietnam.png') 70% top/auto 75% no-repeat;opacity:.34}.ritual-halo{border-color:#ef8f6f20;box-shadow:0 0 90px #d655390d;top:16%;width:78%}.ritual-label{font-family:var(--sans);font-size:11px;color:#c7aeb9;letter-spacing:0;margin-top:25px}.cups-art{width:80%;max-width:350px;margin:16px auto 0;overflow:visible}.cup-caption{margin-top:-6px}.cup-caption>span{color:#b69ba8;letter-spacing:1px;font-size:10px}.cup-caption p{font-family:var(--sans);font-weight:600;font-size:26px;letter-spacing:1px;margin:5px 0 0;color:#f4d0c1}.charge-control{width:calc(100% - 64px);margin:25px 0 24px;position:relative}.charge-meta{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#ba9fad;margin-bottom:9px}.charge-meta>span:last-child{font-variant-numeric:tabular-nums;color:#edb397}.charge-track{height:5px;background:#ffffff13;border-radius:20px;overflow:hidden;margin-bottom:14px}.charge-track>span{display:block;height:100%;width:0;background:linear-gradient(90deg,#ce4c50,#ffb67f);border-radius:20px;box-shadow:0 0 12px #ff8d68}.hold-button{width:100%;min-height:64px;padding:12px 21px;display:flex;align-items:center;justify-content:center;gap:14px;border-radius:12px;background:linear-gradient(110deg,#ce5154,#f69b78);color:#231116;border:1px solid #ffb49750;box-shadow:0 7px 35px #e46d5220;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;transition:box-shadow .15s,filter .15s}.hold-button:hover{filter:brightness(1.08)}.hold-button:active{filter:brightness(1.16);box-shadow:0 0 35px #ff795746}.hold-button strong{font-size:14px;font-weight:650;flex:1;text-align:center;pointer-events:none}.hold-ring{font-size:26px;line-height:1;pointer-events:none}.hold-arrow{font-size:23px;pointer-events:none}.hold-button:disabled{opacity:.5;filter:grayscale(.3)}.hold-hint{display:block;text-align:center;font-size:9px;color:#977c8d;margin-top:10px}.holding .cups-art{filter:drop-shadow(0 0 15px #ed6e4540)}.holding .ritual-halo{border-color:#f2907360;box-shadow:0 0 70px #d6553925;transition:all .3s}.holding .block-a{animation:charge-hover-a .65s ease-in-out infinite alternate}.holding .block-b{animation:charge-hover-b .7s ease-in-out infinite alternate}.flying .block-a{animation:throw-a 1.6s cubic-bezier(.2,.5,.5,1) both;transform-box:fill-box;transform-origin:center}.flying .block-b{animation:throw-b 1.6s cubic-bezier(.2,.5,.5,1) both;transform-box:fill-box;transform-origin:center}.ritual-scene.result .cups-art{animation:land-glow .6s ease-out}.character-speaker{display:flex;align-items:center;gap:12px;padding-bottom:20px;border-bottom:1px solid #ffffff15}.character-avatar{height:52px;width:52px;border-radius:50%;border:1px solid #c7736480;background:url('assets/minh-an-vietnam.png') 78% 9%/300% auto;box-shadow:0 0 0 4px #e87d5d08;flex:none}.character-speaker strong{font-size:15px;font-weight:650;display:block}.character-speaker strong small{font-size:10px;font-weight:400;color:#a590a1;margin-left:8px}.character-speaker div>span{font-size:9px;color:#a18c9e;letter-spacing:1px}.speaker-star{margin-left:auto;color:#cf8069;font-size:25px}.question-line{color:#a995a4;font-size:11px;line-height:2}.edit-question{color:#e3a28f;text-decoration:underline;text-underline-offset:3px;font-size:10px;padding:4px 0 4px 6px;min-height:30px}.result-copy h2{font-family:var(--sans);font-size:31px;line-height:1.5;font-weight:650;white-space:pre-line;letter-spacing:-.8px}.result-sub{font-family:var(--sans);color:#bba6b5;font-size:14px;margin-top:14px}.fine-rule{background:#e3857250;width:36px}.body-copy{color:#b0a1b1;font-size:13px;line-height:2}.reflection{background:#f1a08b08;border-left-color:#d57a67}.reflection>span{color:#c09181}.reflection p{font-family:var(--sans);font-size:15px;color:#dec5cd}.privacy-note{color:#8e7f92}.meaning{color:#9e8a9b}.meaning summary{color:#c3aab9}.demo-results button{border-color:#cf8c7840;color:#c6a9b5}.demo-results button[aria-pressed=true]{background:#e28b74;color:#25151b}.hold-instructions{display:flex;gap:17px;margin:30px 0 15px}.hold-instructions span{font-size:10px;color:#a994a3}.hold-instructions b{display:block;font:20px Georgia,serif;color:#d79480;margin-bottom:6px}.result-actions .btn{font-size:12px}.gentle-cta{background:linear-gradient(100deg,#29202a,#211b25);border-color:#ffffff17;border-radius:12px}.gentle-cta h3{font-size:19px;font-weight:550}.gentle-cta p{color:#a898aa}.gentle-cta>span{color:#e5aa98}.cta-star{color:#dc8a77}.preview-hero{grid-template-columns:1.1fr 1fr;gap:30px;min-height:340px;margin-bottom:22px}.preview-hero h1{font-size:39px;line-height:1.4;font-weight:650;letter-spacing:-1px;margin:16px 0 19px}.lead{color:#ada0b2}.profile-chip strong{color:#e6dce4}.profile-chip small{color:#9e8c9e}.profile-chip button{color:#e6a18c;border-color:#e6a18c60}.avatar{background:#f0937710;color:#f0ae91;border-color:#e5966f50;font-family:var(--sans)}.preview-character{height:355px;position:relative;overflow:hidden;border-radius:16px;background:#1b161f;isolation:isolate}.preview-character img{width:100%;height:100%;object-fit:cover;object-position:74% 14%;transform:scale(1.15);display:block}.preview-character:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#18121ce8,transparent 45%)}.preview-character>div{position:absolute;left:25px;bottom:22px;z-index:1}.preview-character strong{display:block;font-size:18px;font-weight:600}.preview-character span{font-size:11px;color:#e5b4a6}.theme-tabs{border-color:#fff2;gap:32px}.theme-tabs button{color:#9b8b9e;font-size:13px}.theme-tabs button.selected{color:#f7e7e6}.theme-tabs button.selected:after{background:#ee836c}.theme-tabs small{border-color:#e8907340;color:#eaa58d}.paper{background:#211e25;color:#ede4eb;border:1px solid #ffffff12;border-radius:13px;box-shadow:none}.paper-heading{color:#ae94a4;border-color:#ffffff14}.paper-heading>span:first-child{background:#dc796215;color:#e8ab98;border:1px solid #d47a5b25}.preview-excerpt h2{font-family:var(--sans);font-size:26px;font-weight:600;line-height:1.6;color:#f0e1e8}.preview-excerpt>p{color:#bcaeba;font-size:14px;line-height:2}.insight-row span{border-color:#ffffff1c;background:#ffffff03;color:#b8a5b7;border-radius:6px}.preview-excerpt blockquote{font-family:var(--sans);font-size:22px;color:#e7b7a9;border-color:#ffffff13;font-weight:500}.preview-excerpt .sample-disclosure{color:#8e7e92}.next-chapter{border-color:#fff1}.lock-icon{color:#bd8977}.next-chapter h3{color:#c6aeba;font-size:16px;font-weight:500}.next-chapter p{color:#908093}.purchase-panel{border-color:#d08e7130;background:linear-gradient(150deg,#31212a,#211a23);border-radius:13px}.purchase-panel h2{font-size:27px;font-weight:600;color:#f0e0e7;letter-spacing:-.7px}.chapter-list li{border-color:#fff1;color:#c1aebf}.chapter-list li>span{color:#c18976}.chapter-list li small{color:#967e93}.price-line strong{font-family:var(--sans);font-weight:600;color:#f4cfbe;font-size:34px;letter-spacing:-1px}.price-line>span{color:#a48b9f}.sample-link{color:#d2a59a}.purchase-notes{color:#ae94a3}.demo-note{color:#967e90}.report-sidebar h2{font-size:26px;font-weight:600}.report-sidebar>p{color:#a08b9f}.report-sidebar nav a{color:#ac96a9}.report-sidebar nav a span{color:#af8778}.report-sidebar nav a.active{background:#e27e660c;border-left-color:#e6957b;color:#efc4b5}.sidebar-note{font-family:var(--sans);color:#9d879b;border-color:#ffffff15;font-size:12px}.small-button{border-color:#ffffff25;color:#d3b6c7}.report-cover{background:#251b25;min-height:340px;padding:42px 45px;border-color:#ffffff14;isolation:isolate}.report-character-art{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#241c27 8%,#241c27cc 36%,#241c2720 75%),url('assets/minh-an-vietnam.png') 70% 10%/cover}.report-cover h1{font-family:var(--sans);font-size:43px;line-height:1.3;font-weight:650;color:#fff0e9;letter-spacing:-1px;margin:30px 0}.report-kicker{color:#d9ab9a;letter-spacing:1px;font-size:10px}.report-cover>p:last-of-type{color:#d1abbc;font-size:11px}.cover-orbit{display:none}.report-disclosure{color:#9d889d;border-color:#fff1}.report-disclosure>span{color:#d0a391}.report-section{border-color:#ffffff13}.chapter-kicker{color:#d2937c;letter-spacing:1px}.chapter-kicker span{color:#bda1b5}.report-section h2{font-size:26px;font-weight:600;color:#ebdde7;letter-spacing:-.4px}.report-section>p{color:#baa7b9;font-size:14px;line-height:2.15}.report-quote{background:linear-gradient(110deg,#39222b70,#2c202d80);border:1px solid #d795771a;border-radius:10px}.report-quote>span{color:#ce8a70}.report-quote p{font-family:var(--sans);font-size:21px;color:#e8b7a3}.evidence{border-color:#ffffff20;border-radius:8px}.evidence summary{color:#d0a6b5}.evidence small{color:#927a91}.evidence b{color:#cd947d}.evidence>div{color:#ac91a9}.two-notes>div{background:#3a263450;border-top-color:#ce8870;border-radius:0 0 8px 8px}.two-notes>div:nth-child(2){background:#28232e;border-top-color:#7b6b91}.two-notes span{color:#dcb3a3}.two-notes p{color:#b397af}.reflection.light{background:#e7997809}.reflection.light>span{color:#c29682}.reflection.light p{color:#d5acbd}.action-list li>span{background:#463039;color:#d6a18b}.action-list strong{color:#e4c3d2}.action-list p{color:#ad92a8}.report-ending>span{color:#d58e76}.report-ending h3{font-size:23px;font-weight:500}.report-ending>a{color:#b08fa5}.modal{background:#211a25;border-color:#dc8b6b55;border-radius:16px}.modal h2{font-family:var(--sans);font-weight:600;font-size:25px;letter-spacing:-.6px}.modal-close{color:#bda2b7}.modal-intro{color:#b294ac}.modal label{color:#d3b4c6}.modal label small{color:#957c92}.modal input,.modal textarea,.modal select{background:#17121c;color:#e9d5e1;border-color:#c79a932f;border-radius:8px}.modal input::placeholder,.modal textarea::placeholder{color:#886a83}.question-chips button{border-color:#b387922f;color:#bf9db5}.field-help{color:#a4819b}.order-row{border-color:#fff1}.order-row strong{color:#edb89c}.order-row small{color:#b28ba5}.demo-payment>span{color:#d59a7c}.demo-payment p{color:#c39bb6}.share-card{border-radius:12px;border-color:#e18b6b4a;background:linear-gradient(0deg,#21131fe6,#21131f75),url('assets/minh-an-vietnam.png') 70% 20%/cover}.share-card>span{color:#ebbbac}.share-card h3{color:#f2d1c0;font-weight:650}.share-card p{font-family:var(--sans);color:#ebc6d5}.share-card p small{color:#c99eb6}.share-card .share-foot{color:#b28ca7}.toast{background:#f1d3c7;color:#391e2a;border-color:#f3b493}.replaying .hero-scene{animation:character-replay 1.8s ease-out both}.footer a:hover{color:#f4ac8c}.meaning button{min-height:32px}
@keyframes character-enter{from{transform:scale(1.05);filter:brightness(.5)}to{transform:scale(1);filter:brightness(1)}}@keyframes character-replay{from{transform:scale(1.07);filter:brightness(.4)}to{transform:scale(1);filter:brightness(1)}}@keyframes charge-hover-a{from{translate:-2px 2px}to{translate:1px -5px}}@keyframes charge-hover-b{from{translate:2px 3px}to{translate:-1px -4px}}@keyframes throw-a{0%{translate:0 0;rotate:0deg;scale:1}35%{translate:-26px calc(-1 * var(--cup-lift, var(--throw-height)));rotate:210deg;scale:1.15}68%{translate:13px -12px;rotate:355deg;scale:1}79%{translate:3px 8px;rotate:370deg;scale:1.02 .92}88%{translate:0 -7px;rotate:356deg;scale:1}100%{translate:0 0;rotate:360deg;scale:1}}@keyframes throw-b{0%{translate:0 0;rotate:0deg;scale:1}40%{translate:31px calc(-1 * var(--cup-lift, var(--throw-height)) - 30px);rotate:-240deg;scale:1.1}70%{translate:-12px -8px;rotate:-355deg;scale:1}80%{translate:-3px 9px;rotate:-367deg;scale:1.03 .92}90%{translate:0 -6px;rotate:-358deg;scale:1}100%{translate:0 0;rotate:-360deg;scale:1}}@keyframes land-glow{from{filter:drop-shadow(0 0 22px #ee935b80)}to{filter:drop-shadow(0 0 0 transparent)}}
@media(min-width:1550px){.home-hero{height:790px}.hero-copy h1{font-size:80px}}
@media(max-width:1100px){.hero-copy h1{font-size:57px}.hero-copy{width:60%}.hero-actions{gap:18px;flex-wrap:wrap}.home-hero{height:660px;min-height:620px}.path-card{padding:23px 21px;gap:16px}.path-card h2{font-size:20px}.path-card p{font-size:10px}.preview-hero h1{font-size:33px}.preview-character{height:320px}.result-layout{gap:32px}.result-copy h2{font-size:27px}.charge-control{width:calc(100% - 44px)}.hold-button{padding-inline:15px}.hold-button strong{font-size:12px}.hero-bottom-caption{left:32px}}
@media(max-width:760px){.header{height:70px;padding:0 20px}.header nav{gap:19px}.header nav a{font-size:11px}.header nav a.active:after{bottom:12px;width:12px;height:2px}.brand>span{font-size:19px}.brand>svg{width:30px;height:30px}.brand small{font-size:8px}.home-hero{height:800px;min-height:800px}.hero-scene{background-size:auto 79%;background-position:67% top}.scene-shade{background:linear-gradient(0deg,#141216 1%,#141216f5 15%,#141216b5 37%,#14121600 65%),linear-gradient(90deg,#14121620,#14121600 90%)}.hero-inner{width:calc(100% - 40px);align-items:flex-end}.hero-copy{width:100%;padding:0 0 53px;position:relative;z-index:2}.hero-copy h1{font-size:43px;line-height:1.22;font-weight:700;letter-spacing:-1.5px;margin:14px 0 18px}.intro-line{font-size:10px;letter-spacing:1px}.hero-description{font-size:12px;line-height:1.9;color:#d2bacb}.hero-actions{margin-top:23px;display:flex;flex-direction:column;gap:16px;align-items:stretch}.hero-actions .btn{width:100%;min-height:56px;font-size:14px;justify-content:space-between;padding-inline:24px}.hero-actions .text-link{font-size:11px;justify-content:center;gap:10px}.micro-note{text-align:center;font-size:9px;margin-top:12px;color:#9b8598}.scene-caption{right:18px;top:26px;bottom:auto;padding:9px 11px;gap:9px;border-radius:8px}.scene-caption .caption-line{height:25px}.scene-caption p{font-size:12px}.scene-caption small{font-size:8px;margin-top:2px}.replay{width:25px;height:25px;font-size:16px;margin-left:0}.hero-bottom-caption{bottom:15px;left:20px;font-size:8px;letter-spacing:1px;color:#826878}.home-paths{gap:12px;padding-top:10px;padding-bottom:25px}.path-card{padding:22px 19px;border:1px solid #ffffff17!important;gap:16px}.path-card h2{font-size:19px;letter-spacing:-.4px}.path-card p{font-size:10px}.path-icon{width:42px;height:42px;border-radius:10px}.moon-icon{font-size:27px}.path-icon svg{width:25px;height:25px}.path-arrow{font-size:20px}.small-label{font-size:9px}.quiet-note p{font-size:12px}.quiet-note p span{font-size:10px}.footer>span{font-size:9px}.result-page,.preview-page,.report-page{padding-top:21px}.section-heading h1{font-size:26px;letter-spacing:-.8px}.section-heading{margin-bottom:21px}.quiet-badge{font-size:9px;margin-top:7px}.result-layout{display:flex;flex-direction:column;gap:26px}.ritual-scene{width:100%;min-height:0;border-radius:17px;max-width:440px}.ritual-label{font-size:9px;margin-top:22px}.ritual-character{background-size:auto 80%;background-position:69% top;opacity:.26}.cups-art{width:74%;max-width:290px;margin-top:8px}.ritual-halo{top:13%;width:78%}.cup-caption{margin-top:-9px}.cup-caption>span{font-size:9px}.cup-caption p{font-size:22px;letter-spacing:0;margin-top:4px}.charge-control{width:calc(100% - 38px);margin:19px 0 20px}.charge-meta{font-size:9px;margin-bottom:7px}.charge-track{height:4px;margin-bottom:12px}.hold-button{min-height:58px;border-radius:10px;padding:11px 18px;gap:12px}.hold-button strong{font-size:13px}.hold-ring{font-size:23px}.hold-hint{font-size:8px;margin-top:9px}.result-copy{width:100%;padding:0 2px}.character-speaker{gap:10px;padding-bottom:17px}.character-avatar{height:44px;width:44px}.character-speaker strong{font-size:14px}.character-speaker div>span{font-size:8px}.speaker-star{font-size:21px}.question-line{font-size:10px;margin:15px 0}.result-copy h2{font-size:27px;letter-spacing:-.7px}.result-sub{font-size:12px;line-height:1.9;margin:13px 0 22px}.body-copy{font-size:13px;line-height:2}.hold-instructions{justify-content:space-between;gap:8px;margin:25px 0 15px}.hold-instructions span{font-size:10px}.hold-instructions b{font-size:19px}.privacy-note{font-size:9px;line-height:1.9}.meaning{font-size:10px}.gentle-cta{padding:21px 18px;gap:12px}.gentle-cta h3{font-size:16px}.gentle-cta p{font-size:9px;max-width:230px}.gentle-cta>span{margin-left:41px;font-size:10px}.preview-hero{display:flex;flex-direction:column-reverse;gap:24px;margin-bottom:18px;overflow:visible;min-height:0;align-items:stretch}.preview-hero>div:first-child{width:100%}.preview-character{width:100%;height:240px;border-radius:12px}.preview-character img{object-position:73% 26%;transform:scale(1.12)}.preview-character>div{left:20px;bottom:17px}.preview-character strong{font-size:16px}.preview-character span{font-size:10px}.preview-hero h1{font-size:29px;letter-spacing:-1px;line-height:1.4;margin:13px 0}.lead{font-size:12px;max-width:none}.profile-chip{margin-top:22px}.theme-tabs{gap:0;margin-bottom:19px}.theme-tabs button{font-size:11px;padding:14px 3px}.preview-excerpt{padding:23px 21px}.paper-heading{font-size:8px;gap:6px}.preview-excerpt h2{font-size:23px;line-height:1.55}.preview-excerpt>p{font-size:13px;line-height:2.1}.preview-excerpt blockquote{font-size:20px}.preview-excerpt .sample-disclosure{font-size:9px}.purchase-panel{padding:25px}.purchase-panel h2{font-size:25px}.price-line strong{font-size:32px}.sample-link{font-size:11px}.report-cover{padding:30px 24px;min-height:290px}.report-character-art{background:linear-gradient(90deg,#241c27db,#241c2780 55%,#241c2740),url('assets/minh-an-vietnam.png') 73% 7%/auto 140%;opacity:.8}.report-cover h1{font-size:34px;line-height:1.3;margin:27px 0}.report-cover>p:last-of-type{font-size:10px;max-width:220px}.report-kicker{font-size:9px;max-width:200px}.report-sidebar nav a{border-color:#ffffff20}.report-sidebar nav a.active{border-color:#cb8b70;background:#c1796310}.report-body{padding:24px 21px 32px}.report-disclosure{font-size:9px}.report-section h2{font-size:23px;line-height:1.5}.report-section>p{font-size:14px;line-height:2.1}.report-quote p{font-size:19px}.two-notes p{font-size:11px}.reflection.light p{font-size:14px}.action-list p{font-size:11px}.report-ending h3{font-size:20px}.report-ending .btn{min-height:49px}.report-topline .small-button{font-size:9px;min-height:34px}.modal{padding:31px 24px;border-radius:14px}.modal h2{font-size:23px}.modal input,.modal textarea,.modal select{font-size:14px}.question-chips button{font-size:10px}.share-card h3{font-size:30px}.share-card p{font-size:16px}.modal-intro{font-size:11px}}
@media(max-width:370px){.header{padding-inline:14px}.header nav{gap:14px}.header nav a{font-size:10px}.brand>span{font-size:17px}.brand>svg{width:27px;height:27px}.hero-copy h1{font-size:40px}.hero-copy{padding-bottom:50px}.hero-inner{width:calc(100% - 32px)}.path-card{padding:20px 15px;gap:13px}.path-card h2{font-size:17px}.path-card p{font-size:9px}.hold-button strong{font-size:12px}.preview-hero h1{font-size:26px}.section-heading h1{font-size:24px}.gentle-cta h3{font-size:14px}}
/* The button itself is the charge meter. Release is the only throw trigger. */
.hold-button{position:relative;overflow:hidden;isolation:isolate;background:#35212e;border:1px solid #e4866c60;color:#ffeae3;box-shadow:0 4px 20px #08020e40}
.hold-fill{position:absolute;inset:0 auto 0 0;width:0;z-index:-1;background:linear-gradient(90deg,#733347,#ad514c);pointer-events:none;overflow:hidden;will-change:width}
.hold-fill:before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(110deg,transparent 0 22px,#ffe0b912 24px 39px,transparent 41px 64px);background-size:140px 100%;animation:charge-stream 1.2s linear infinite}
.hold-fill:after{content:'';position:absolute;right:0;top:0;bottom:0;width:2px;background:#ffd0a8;box-shadow:-3px 0 20px 5px #ffb08880}
.hold-button strong,.hold-ring,.hold-arrow{position:relative;z-index:1}.hold-button:disabled{opacity:.75}.charge-track{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);margin:0}
.holding .hold-ring{animation:heart-pulse .85s ease-in-out infinite}.holding .hold-button{box-shadow:0 0 35px #ef805633;border-color:#f6af8b}
.ritual-scene{min-height:760px;justify-content:flex-start;background:#1d1018}.ritual-character{background:linear-gradient(0deg,#170f19e8 0%,#170f1930 38%,#170f1910 80%),url('assets/temple-interior.png') center center/cover;opacity:1;animation:temple-enter 2s ease-out both}
.ritual-label{position:absolute;top:23px;left:20px;right:20px;margin:0;text-align:center;background:#190f1a80;padding:8px;border-radius:6px;font-size:10px;backdrop-filter:blur(5px);z-index:2}
.ritual-halo{display:none}.ritual-scene .cups-art{margin:245px auto 0;max-width:350px;width:78%;filter:drop-shadow(0 5px 5px #0004)}.cup-caption{margin-top:-47px;z-index:1}.cup-caption p{font-size:23px}.cup-caption>span{color:#ddaca4}.charge-control{margin-top:auto;padding-top:20px;margin-bottom:25px;z-index:2}.charge-meta{color:#d4aebf}.charge-meta>span:last-child{color:#f9c09e}.hold-hint{color:#b28b9e}.temple-effects{position:absolute;inset:0;pointer-events:none;z-index:0;overflow:hidden}.temple-light{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 29%,#f6974128,transparent 50%);mix-blend-mode:screen;animation:temple-breath 5s ease-in-out infinite alternate}.incense-smoke{position:absolute;width:16%;height:25%;left:42%;top:16%;overflow:visible;opacity:.75}.incense-smoke path{fill:none;stroke:url(#smoke-fade);stroke-width:5;stroke-linecap:round;filter:blur(3px);transform-origin:50% 100%;animation:smoke-drift 7s ease-in-out infinite}.incense-smoke path+path{stroke-width:3;animation-delay:-3s;animation-direction:reverse;opacity:.6}.candle-glow{position:absolute;top:31%;width:11%;height:11%;border-radius:50%;background:radial-gradient(ellipse,#ffc76c54,#f58b2720 28%,transparent 68%);mix-blend-mode:screen;animation:candle-flicker 2.7s ease-in-out infinite alternate}.glow-a{left:29%}.glow-b{right:27%;animation-delay:-1s}.temple-ember{position:absolute;left:48%;top:40%;width:2px;height:2px;background:#ffc89b;border-radius:50%;box-shadow:0 0 7px #ff944a;animation:temple-ember 5s ease-out infinite}.ember-b{left:52%;animation-delay:2s}.flying .cup-ground-shadow{animation:ground-shadow 1.6s ease-in-out}.ritual-scene.result .cups-art{animation:land-glow .6s ease-out}
@keyframes charge-stream{to{background-position:140px 0}}@keyframes heart-pulse{50%{scale:1.15;opacity:.7}}@keyframes temple-enter{from{scale:1.055;filter:brightness(.6)}to{scale:1;filter:brightness(1)}}@keyframes temple-breath{from{opacity:.55}to{opacity:.95}}@keyframes smoke-drift{0%,100%{transform:translateX(-5px) skewX(-7deg);opacity:.4}50%{transform:translateX(8px) skewX(8deg);opacity:.85}}@keyframes candle-flicker{0%,100%{opacity:.5;scale:.9}30%{opacity:.9;scale:1.1}35%{opacity:.6;scale:.95}70%{opacity:1;scale:1.15}}@keyframes temple-ember{0%{opacity:0;translate:0 0}20%{opacity:.7}100%{opacity:0;translate:-18px -90px}}@keyframes ground-shadow{40%{opacity:.1;scale:.7}80%{opacity:.4;scale:1.1}100%{opacity:.32;scale:1}}
@media(max-width:1100px) and (min-width:761px){.ritual-scene{min-height:690px}.ritual-scene .cups-art{margin-top:235px}.cup-caption{margin-top:-25px}.charge-control{width:calc(100% - 38px)}}
@media(max-width:760px){.ritual-scene{min-height:610px;max-width:440px}.ritual-character{background-size:cover;background-position:center}.ritual-label{top:17px;left:17px;right:17px;font-size:9px;padding:7px}.ritual-scene .cups-art{width:85%;max-width:310px;margin-top:195px}.cup-caption{margin-top:-39px}.cup-caption p{font-size:21px}.cup-caption>span{font-size:9px}.charge-control{width:calc(100% - 34px);margin-bottom:19px;padding-top:17px}.charge-meta{font-size:9px}.hold-button{min-height:60px}.hold-hint{font-size:8px;margin-top:8px}.incense-smoke{top:16%;height:24%}}
@media(prefers-reduced-motion:reduce){.holding .block,.flying .block,.hero-scene,.replaying .hero-scene,.ritual-character,.temple-effects *,.hold-fill:before,.hold-ring{animation:none!important}.charge-track>span{transition:none}.ritual-scene.result .cups-art{animation:none}}
.incense-smoke{top:9%;height:22%}.candle-glow{top:19%}.glow-b{right:21%}
@media print{.report-character-art{display:none}.paper{background:#fff;color:#222;border:0}.report-cover{background:#eee}.report-cover h1,.report-section h2,.report-ending h3{color:#222}.report-section>p,.report-disclosure,.report-quote p,.two-notes p,.action-list p{color:#444}.report-kicker,.report-cover>p:last-of-type,.chapter-kicker,.chapter-kicker span,.action-list strong{color:#555}.report-quote,.two-notes>div{background:#eee}.report-body{padding:25px}.report-ending button{display:none}}

/* Cup: one nearby group for choosing, writing, and throwing. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.cup-page{max-width:1000px;padding-top:28px}.cup-page .back-link{margin-bottom:24px}.cup-page .section-heading{margin-bottom:28px}.cup-page .section-heading h1{font-size:30px;letter-spacing:0}.cup-intro{font-size:13px;color:#c1b1bf;margin-top:10px;line-height:1.8}.cup-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;gap:0;border:1px solid #ffffff18;border-radius:16px;overflow:hidden;background:#1b171e}.cup-workspace .ritual-scene{height:100%;min-height:600px;max-width:none;width:100%;border:0;border-radius:0;position:relative}.cup-workspace .ritual-scene .cups-art{position:absolute;left:10%;top:46%;width:80%;max-width:none;margin:0}.cup-workspace .ritual-character{background-position:center;background-size:cover}.cup-workspace .cup-caption{position:absolute;bottom:28px;margin:0;width:100%;text-align:center}.cup-workspace .cup-caption p{font-size:21px}.cup-workspace .ritual-label{font-size:11px;top:24px;background:none;backdrop-filter:none;color:#ecd4ce}.cup-composer{padding:32px;align-self:center;min-width:0}.cup-guide{display:flex;align-items:center;gap:12px;margin-bottom:28px}.cup-guide .character-avatar{height:40px;width:40px}.cup-guide p{margin:0;line-height:1.6}.cup-guide strong{font-size:14px}.cup-guide p>span{display:block;font-size:12px;color:#cdb9c8;margin-top:3px}.cup-fields{border:0;padding:0;margin:0;min-width:0}.cup-topic-options{display:flex;gap:8px;margin-bottom:16px}.cup-topic-options button{flex:1;min-height:44px;border:1px solid #6a525f;border-radius:8px;font-size:13px;color:#d6bdcb;background:transparent;transition:background .15s,border-color .15s}.cup-topic-options button[aria-pressed=true]{border-color:#eea18c;background:#ed79671c;color:#ffd6c7}.cup-prompt-options{display:grid;gap:8px;margin-bottom:20px}.cup-prompt-options button{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:10px 12px;text-align:left;font-size:13px;line-height:1.6;border:1px solid #ffffff20;border-radius:8px;color:#d3c1cf;background:#ffffff02}.cup-prompt-options button[aria-pressed=true]{background:#ed796710;border-color:#d88a76;color:#ffe2d8}.choice-mark{width:14px;height:14px;flex:none;border:1px solid #9b7d8e;border-radius:50%;display:grid;place-items:center}.cup-prompt-options [aria-pressed=true] .choice-mark{border-color:#f4a68d}.cup-prompt-options [aria-pressed=true] .choice-mark:after{content:'';width:6px;height:6px;background:#f4a68d;border-radius:50%}.cup-fields label{display:flex;align-items:center;gap:8px;font-size:12px;color:#d8c4d3;margin-bottom:8px}.cup-fields label small{font-size:10px;color:#b49fac}.cup-fields textarea{display:block;width:100%;min-height:76px;resize:vertical;max-height:180px;padding:12px;font:13px/1.7 var(--sans);border:1px solid #715361;border-radius:8px;background:#131015;color:#f5e7ed;caret-color:#f4a68d;color-scheme:dark}.cup-fields textarea::placeholder{color:#b5a0af}.cup-field-help{display:block;color:#b9a4b4;font-size:10px;line-height:1.6;margin-top:8px}.cup-composer .charge-control{width:100%;margin:20px 0 0;padding:0}.cup-composer .charge-meta{font-size:11px;line-height:1.6;margin-bottom:8px;gap:8px}.cup-composer .hold-button{min-height:58px;border-radius:8px;box-shadow:none}.cup-composer .hold-button:disabled{opacity:.45;cursor:not-allowed}.cup-composer .hold-button strong{font-size:14px}.cup-composer .hold-hint{font-size:10px;color:#baa0b2;margin-top:8px}.cup-fields:disabled{opacity:.65}.cup-topic-options button:hover:not(:disabled),.cup-prompt-options button:hover:not(:disabled){border-color:#f4a68d;background:#ed796718}.cup-workspace :focus-visible{outline:2px solid #ffb49b;outline-offset:3px}.cup-reading{max-width:680px;margin:40px auto 0;padding:32px 0 0;border-top:1px solid #ffffff20}.cup-reading .question-line{margin:0 0 16px;font-size:12px;color:#cfb4c6;overflow-wrap:anywhere}.cup-reading h2{font-size:28px;margin:0}.cup-reading .body-copy{max-width:none;margin-top:20px}.cup-reading .result-actions{margin-top:24px}.cup-report-link{display:flex;align-items:center;gap:8px;color:#e8ad9d;font-size:12px;margin-top:24px}.cup-report-link svg{width:18px;height:18px}.cup-meaning{max-width:680px;margin:24px auto 0;font-size:11px;color:#b9a3b4}.cup-meaning p{max-width:none;line-height:1.9}.cup-meaning summary{color:#c9b4c4}
@media(max-width:760px){.cup-page{width:calc(100% - 32px);padding-top:20px}.cup-page .back-link{margin-bottom:20px}.cup-page .section-heading{margin-bottom:20px}.cup-page .section-heading h1{font-size:26px}.cup-intro{font-size:12px;max-width:290px}.cup-page .quiet-badge{margin-top:8px}.cup-workspace{grid-template-columns:1fr}.cup-workspace .ritual-scene{height:300px;min-height:300px}.cup-workspace .ritual-character{background-size:100% auto;background-position:center 37%}.cup-workspace .ritual-scene .cups-art{width:200px;left:calc(50% - 100px);top:110px}.cup-workspace .cup-caption{bottom:12px}.cup-workspace .cup-caption p{font-size:18px}.cup-workspace .cup-caption>span{font-size:10px}.cup-workspace .ritual-label{top:8px;font-size:10px}.cup-workspace .incense-smoke{top:0;height:32%}.cup-workspace .candle-glow{top:18%}.cup-composer{padding:24px 20px}.cup-guide{margin-bottom:20px}.cup-topic-options{margin-bottom:12px}.cup-prompt-options{margin-bottom:16px}.cup-composer .charge-control{margin-top:16px}.cup-reading{margin-top:32px;padding-top:24px}.cup-reading h2{font-size:25px}.cup-reading .result-actions{flex-wrap:wrap}.cup-reading .result-actions .btn{flex:auto}.cup-workspace .ritual-character{animation:none}}

.cup-workspace:has(.holding) .hold-ring{animation:heart-pulse .85s ease-in-out infinite}.cup-workspace:has(.holding) .hold-button{border-color:#f6af8b}
@media(prefers-reduced-motion:reduce){.cup-workspace:has(.holding) .hold-ring{animation:none}}

/* Different silhouettes and materials make the two cup faces readable. */
.cup-workspace .ritual-scene .cups-art{top:39%;left:5%;width:90%}
.cup-face-label{pointer-events:none}.holding .cup-face-label,.flying .cup-face-label{opacity:0}
@media(max-width:760px){.cup-workspace .ritual-scene .cups-art{width:280px;left:calc(50% - 140px);top:64px}}

/* Select first; keep the cup animation and hold control in one viewport. */
.cup-workspace{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.cup-workspace .cup-composer{padding:28px}
.cup-workspace .cup-guide{margin-bottom:20px}
.cup-workspace .cup-guide .character-avatar{width:34px;height:34px}
.cup-workspace .cup-topic-options{gap:6px;margin-bottom:12px}
.cup-workspace .cup-prompt-options{gap:6px;margin-bottom:12px}
.cup-workspace .cup-fields textarea{min-height:48px;height:48px;max-height:100px;padding:10px 12px}
.cup-workspace .cup-field-help{font-size:10px;margin-top:6px}
.cup-workspace .ritual-scene{height:480px;min-height:480px;align-self:center}
.cup-workspace .ritual-scene .cups-art{width:360px;max-width:95%;left:50%;transform:translateX(-50%);top:70px}
.cup-workspace .cup-caption{bottom:132px;height:28px}
.cup-workspace .cup-caption>span{display:none}
.cup-workspace .cup-caption p{margin:0;font-size:18px;line-height:28px}
.cup-workspace .ritual-label{top:16px;font-size:10px}
.cup-workspace .ritual-scene .charge-control{position:absolute;left:24px;bottom:16px;width:calc(100% - 48px);margin:0;padding:0;z-index:3}
.cup-workspace .charge-meta{font-size:11px;line-height:18px;margin:0 0 8px;color:#edd0db}
.cup-workspace .hold-button{min-height:56px;border-radius:8px;background:#35202c;box-shadow:none}
.cup-workspace .hold-button:disabled{opacity:.5;cursor:not-allowed}
.cup-workspace .hold-hint{margin-top:8px;font-size:10px;line-height:16px;color:#d4b4c6}
@media(max-width:760px){
 .cup-page{padding-top:16px}.cup-page .back-link{margin-bottom:12px}
 .cup-page .section-heading{margin-bottom:16px}.cup-page .section-heading h1{font-size:24px}
 .cup-page .cup-intro{margin-top:6px;max-width:none}.cup-page .quiet-badge{display:none}
 .cup-workspace{grid-template-columns:1fr}
 .cup-workspace .cup-composer{padding:20px 16px 16px}
 .cup-workspace .cup-guide{margin-bottom:14px;gap:10px}
 .cup-workspace .cup-guide p{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
 .cup-workspace .cup-guide p>span{margin:0;font-size:11px}
 .cup-workspace .cup-guide strong{font-size:13px}
 .cup-workspace .cup-fields label{margin-bottom:6px}
 .cup-workspace .cup-topic-options button{min-height:40px}
 .cup-workspace .cup-prompt-options button{min-height:42px;padding:8px 10px;font-size:12px}
 .cup-workspace .ritual-scene{height:360px;min-height:360px;--cup-lift:min(var(--throw-height),90px)}
 .cup-workspace .ritual-character{background-position:center 48%}
 .cup-workspace .ritual-scene .cups-art{width:260px;left:50%;top:20px}
 .cup-workspace .cup-caption{bottom:124px}
 .cup-workspace .cup-caption p{font-size:17px}
 .cup-workspace .ritual-label{top:8px;font-size:10px}
 .cup-workspace .ritual-scene .charge-control{left:16px;width:calc(100% - 32px);bottom:16px}
 .cup-workspace .charge-meta{font-size:10px}
 .cup-workspace .hold-button{min-height:54px}
 .cup-workspace .hold-hint{font-size:9px}
}

/* Reveal the meaning beside the landed cups, within the same ritual scene. */
.cup-workspace .ritual-scene.result .cups-art{top:42px;width:300px}
.cup-workspace .ritual-scene.result .cup-caption{height:auto;bottom:126px;padding:0 20px}
.cup-workspace .ritual-scene.result .cup-caption>p{font-size:23px;line-height:30px;color:#ffe0aa;margin-bottom:6px}
.cup-response{padding:10px 12px;background:#1c101beb;border:1px solid #efbc794a;border-radius:10px;animation:cup-answer-in .4s ease-out both}
.cup-response strong{display:block;font-size:14px;line-height:1.7;font-weight:600;color:#ffe0aa}
.cup-response small{display:block;font-size:12px;line-height:1.7;color:#e3cbd7;margin-top:2px}
.ritual-scene[data-outcome="1"] .cup-response{border-color:#eab4c750}
.cup-workspace .ritual-scene[data-outcome="1"] .cup-caption>p,.ritual-scene[data-outcome="1"] .cup-response strong{color:#f5c9da}
.ritual-scene[data-outcome="2"] .cup-response{border-color:#bdb8e150}
.cup-workspace .ritual-scene[data-outcome="2"] .cup-caption>p,.ritual-scene[data-outcome="2"] .cup-response strong{color:#d8d3f6}
.holding .cup-response{visibility:hidden}
@keyframes cup-answer-in{from{opacity:0;translate:0 6px}to{opacity:1;translate:0 0}}
@media(max-width:760px){
 .cup-workspace .ritual-scene.result .cups-art{top:0;width:220px}
 .cup-workspace .ritual-scene.result .cup-caption{bottom:118px;padding:0 16px}
 .cup-workspace .ritual-scene.result .cup-caption>p{font-size:19px;line-height:24px;margin-bottom:4px}
 .cup-response{padding:7px 8px;border-radius:8px}
 .cup-response strong{font-size:13px}.cup-response small{font-size:11px}
}
@media(prefers-reduced-motion:reduce){.cup-response{animation:none}}
/* After landing, the answer replaces the redundant charging instruction. */
.cup-workspace .ritual-scene.result:not(.holding) .charge-meta{display:none}

/* Flight stays undecided; three diminishing bounces precede the reveal. */
.flying .block-a{animation:cup-flight-a 2.2s linear both}.flying .block-b{animation:cup-flight-b 2.2s linear both}.flying .cup-ground-shadow{animation-duration:2.2s}
.cup-spin-front,.cup-spin-back{transform-box:fill-box;transform-origin:center}
.flying .cup-spin-front{animation:cup-face-turn .24s linear infinite}.flying .cup-spin-back{animation:cup-face-turn .24s linear -.12s infinite}
.flying .block-b .cup-spin-front{animation-delay:-.06s}.flying .block-b .cup-spin-back{animation-delay:-.18s}
@keyframes cup-face-turn{0%,49%{opacity:1;transform:scaleY(.8)}50%,100%{opacity:0;transform:scaleY(.15)}}
@keyframes cup-flight-a{0%{translate:0 0;rotate:0deg}28%{translate:-24px calc(-1 * var(--cup-lift,var(--throw-height)));rotate:200deg}50%{translate:6px 0;rotate:355deg}62%{translate:2px -35px;rotate:390deg}72%{translate:0 0;rotate:365deg}80%{translate:-2px -15px;rotate:350deg}87%{translate:0 0;rotate:363deg}93%{translate:0 -5px;rotate:358deg}100%{translate:0 0;rotate:360deg}}
@keyframes cup-flight-b{0%{translate:0 0;rotate:0deg}30%{translate:27px calc(-1 * var(--cup-lift,var(--throw-height)));rotate:-225deg}54%{translate:-5px 0;rotate:-350deg}65%{translate:-2px -29px;rotate:-385deg}75%{translate:0 0;rotate:-362deg}83%{translate:2px -12px;rotate:-350deg}90%{translate:0 0;rotate:-362deg}95%{translate:0 -4px;rotate:-358deg}100%{translate:0 0;rotate:-360deg}}
@media(prefers-reduced-motion:reduce){.flying .block,.flying .cup-spin-front,.flying .cup-spin-back{animation:none!important}.flying .cup-spin-front{opacity:0}.flying .cup-spin-back{opacity:1}}

/* Continuous solid silhouettes: no alternating faces or opacity flicker. */
.flying .cup-tumble-solid{transform-box:fill-box;transform-origin:center;animation:cup-solid-turn 2.2s linear both}
.flying .block-b .cup-tumble-solid{animation-name:cup-solid-turn-b}
.flying .block-a{animation:cup-weight-a 2.2s linear both}.flying .block-b{animation:cup-weight-b 2.2s linear both}
@keyframes cup-solid-turn{0%{transform:scaleY(.75)}25%{transform:scaleY(.35)}42%{transform:scaleY(.85)}50%{transform:scaleY(.9)}60%{transform:scaleY(.65)}72%{transform:scaleY(.9)}100%{transform:scaleY(1)}}
@keyframes cup-solid-turn-b{0%{transform:scaleY(.8)}30%{transform:scaleY(.4)}54%{transform:scaleY(.92)}66%{transform:scaleY(.7)}76%{transform:scaleY(.95)}100%{transform:scaleY(1)}}
@keyframes cup-weight-a{0%{translate:0 0;rotate:0deg;animation-timing-function:cubic-bezier(.16,.65,.4,1)}27%{translate:-20px calc(-1 * var(--cup-lift,var(--throw-height)));rotate:145deg;animation-timing-function:cubic-bezier(.6,0,.9,.55)}50%{translate:6px 0;rotate:350deg;animation-timing-function:cubic-bezier(.16,.65,.4,1)}60%{translate:9px -18px;rotate:368deg;animation-timing-function:cubic-bezier(.6,0,.9,.55)}70%{translate:12px 0;rotate:358deg;animation-timing-function:ease-out}78%{translate:13px -7px;rotate:365deg;animation-timing-function:ease-in}85%{translate:14px 0;rotate:358deg}91%{translate:14px -2px;rotate:362deg}96%{translate:14px 0;rotate:359deg}100%{translate:14px 0;rotate:360deg}}
@keyframes cup-weight-b{0%{translate:0 0;rotate:0deg;animation-timing-function:cubic-bezier(.16,.65,.4,1)}30%{translate:22px calc(-1 * var(--cup-lift,var(--throw-height)));rotate:-170deg;animation-timing-function:cubic-bezier(.6,0,.9,.55)}54%{translate:-6px 0;rotate:-350deg;animation-timing-function:cubic-bezier(.16,.65,.4,1)}64%{translate:-9px -15px;rotate:-367deg;animation-timing-function:cubic-bezier(.6,0,.9,.55)}74%{translate:-12px 0;rotate:-358deg}82%{translate:-13px -6px;rotate:-364deg}89%{translate:-14px 0;rotate:-358deg}94%{translate:-14px -2px;rotate:-361deg}100%{translate:-14px 0;rotate:-360deg}}
.ritual-scene.result .block-a{translate:14px 0}.ritual-scene.result .block-b{translate:-14px 0}
.ritual-scene.result .cups-art{animation:none}
@media(prefers-reduced-motion:reduce){.flying .cup-tumble-solid,.flying .block{animation:none!important}}
.flying .cup-ground-shadow{transform-box:fill-box;transform-origin:center;animation:cup-contact-shadow 2.2s linear both}
@keyframes cup-contact-shadow{0%{opacity:.45;scale:1}28%{opacity:.13;scale:.75}50%{opacity:.5;scale:1}60%{opacity:.34;scale:.93}72%{opacity:.48;scale:1}82%{opacity:.4;scale:.97}90%,100%{opacity:.45;scale:1}}

.flying .cup-tumble-solid,.flying .block-b .cup-tumble-solid{animation:none;transform-box:fill-box;transform-origin:center}.cup-face-flat,.cup-face-convex{opacity:1}

/* One RAF clock owns trajectory, face orientation, contact shadows and sound. */
.ritual-scene.flying .block,.ritual-scene.result .block{animation:none!important;translate:none;rotate:none;transform-box:fill-box;transform-origin:center}
.ritual-scene.flying .cup-ground-shadow{animation:none}
.cup-workspace .ritual-scene .cups-art,.cup-workspace .ritual-scene.result .cups-art{top:42px;width:300px}
@media(max-width:760px){.cup-workspace .ritual-scene .cups-art,.cup-workspace .ritual-scene.result .cups-art{top:0;width:220px}}
/* Rotate the solid around its fixed local pivot, not its changing silhouette. */
.ritual-scene.flying .block,.ritual-scene.result .block{transform-box:view-box;transform-origin:0 0}

@media(max-width:600px){.header nav{gap:16px}.header nav a{white-space:nowrap}}

/* Share immediately after the answer; no second copy of the result below. */
.cup-workspace .ritual-scene.result:not(.holding) .charge-control{display:none}
.cup-share-actions{position:absolute;bottom:18px;left:20px;right:20px;z-index:6;display:flex;flex-direction:column;align-items:center;gap:7px}
.cup-share-actions .btn{min-height:46px;padding:11px 20px;font-size:14px;line-height:1.5;max-width:100%;justify-content:center;gap:14px}
.cup-primary-actions{display:flex;align-items:stretch;justify-content:center;gap:10px;max-width:100%}.cup-primary-actions .btn{min-width:0;text-align:center}.cup-primary-actions [data-action="cup-retry"]{white-space:nowrap}.cup-primary-actions .btn svg{flex-shrink:0}
.cup-ask-again{font-size:12px;line-height:1.5;color:#d5bfce;padding:6px 12px;min-height:44px;text-decoration:underline;text-underline-offset:4px}
.cup-reading{margin-top:18px;padding-top:18px}.cup-reading .body-copy{margin-top:0}.cup-reading .cup-report-link{margin-top:16px}
.cup-share-actions button:focus-visible{outline:2px solid #ffcfab;outline-offset:3px}
@media(max-width:760px){.cup-share-actions{left:16px;right:16px;bottom:12px;gap:5px}.cup-share-actions .btn{font-size:13px;min-height:44px;padding:10px 16px}}

.cup-share-options{display:grid;grid-template-columns:1fr auto;gap:10px;margin-top:18px}.cup-share-options>.full{grid-column:1/-1}.cup-share-options .btn{font-size:14px;min-height:46px;padding:12px 16px;justify-content:center}.share-download{font-size:13px;color:#c9b5c2;padding:10px;text-decoration:underline}.share-status{font-size:13px;line-height:1.7;color:#efc7b0;margin:12px 0 0}.share-status:empty{display:none}.share-link-fallback{margin-top:12px}.share-link-fallback input{width:100%;font-size:13px}.cup-share-options button:disabled{opacity:.55}@media(max-width:420px){.cup-share-options{grid-template-columns:1fr}.cup-share-options .btn{font-size:13px}.share-download{min-height:40px}}

.share-poster{margin:16px 0;background:#1a1118;border-radius:14px;overflow:hidden}.share-poster img{display:block;width:100%;height:auto}.share-poster img[hidden]{display:none}.share-poster-status{padding:24px;text-align:center;font-size:14px;color:#d7bfab}

/* The mobile character note sits beside the invitation, over his robe. */
.home-hero .scene-caption{top:auto;right:0;bottom:24px}
@media(max-width:760px){
 .home-hero .hero-inner{display:flex;align-items:flex-end;padding-bottom:0}
 body[data-page=home] .home-hero .hero-copy{padding-bottom:28px}
 .home-hero .hero-message{display:block}
 .home-hero .hero-message .scene-caption{display:block;position:absolute;inset:10px 0 auto auto;width:96px;max-width:none;margin:0;padding:8px;background:#1e131b66;border-color:#ffffff1c;box-shadow:none}
 .home-hero .scene-caption .caption-line{display:none}
 .home-hero .scene-caption p{min-width:0;line-height:1.35;font-size:11px}
 .home-hero .scene-caption small{line-height:1.4;overflow-wrap:anywhere;font-size:8px;margin-top:16px}
 .home-hero .scene-caption .replay{position:absolute;right:4px;top:4px;min-width:36px;min-height:36px}
 html[lang=vi] .home-hero .hero-message .scene-caption{top:-12px}
}
@media(max-width:360px){
 .home-hero .hero-message{display:grid;grid-template-columns:minmax(0,1fr) 112px;gap:10px}
 .home-hero .hero-message .scene-caption{position:relative;inset:auto;width:112px}
 html[lang=vi] .home-hero .hero-message .scene-caption{top:auto}
}
