@font-face{font-family:'Swei Spring';font-weight:400;font-display:swap;src:url('./fonts/swei/swei-sugar-tc-400.woff2') format('woff2')}@font-face{font-family:'Swei Spring';font-weight:500;font-display:swap;src:url('./fonts/swei/swei-sugar-tc-500.woff2') format('woff2')}@font-face{font-family:'Swei Spring';font-weight:600;font-display:swap;src:url('./fonts/swei/swei-sugar-tc-600.woff2') format('woff2')}@font-face{font-family:'Roundo';font-weight:500;font-display:swap;src:url('./fonts/roundo/roundo-500.woff2') format('woff2')}:root{--bg:#e6e4dd;--card:#f3f1eb;--card2:#faf9f4;--gold:#c8a86a;--gold-deep:#b8924c;--gold-dark:#8c6b33;--charcoal:#6f6457;--ink:#403d3c;--ink-strong:#26221d;--taupe:#9a8b78;--cry:#9c4f42;--serif:'Cormorant Garamond','Swei Spring','Noto Serif TC','Songti TC',serif;--sans:'Roundo','Noto Sans TC','PingFang TC',system-ui,sans-serif;--ease:cubic-bezier(.44,.45,.32,1);--ease-expo:cubic-bezier(.22,1,.36,1);--bw:max(1.1px,.24cqh)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}html,body{margin:0;height:100%}body{font-family:var(--sans);color:var(--ink);background:radial-gradient(130% 90% at 50% 0%,#f0eee8,var(--bg) 70%);display:flex;align-items:center;justify-content:center;min-height:100svh;overflow:hidden}.card{position:relative;aspect-ratio:.4978;width:min(97vw,calc(97svh * .4978));container-type:size;background:var(--card);border:1.5px solid var(--gold-deep);border-radius:2px;box-shadow:0 24px 60px -28px rgba(38,34,29,.55);overflow:hidden}.card::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='58' height='58'%3E%3Cpath d='M0 0L58 58M0 58L58 0' fill='none' stroke='%235a5249' stroke-opacity='.14' stroke-width='1' stroke-dasharray='3 5'/%3E%3C/svg%3E");background-size:58px 58px}.card::after{content:"";position:absolute;inset:2.4cqw;border:1px solid var(--gold);border-radius:1px;pointer-events:none;z-index:30}.logo{position:absolute;left:6cqw;top:3.6cqh;z-index:25;display:flex;align-items:center;gap:2.6cqw;cursor:pointer}.logo .mark{width:7.4cqw;height:7.4cqw;flex-shrink:0;background-color:var(--ink-strong);-webkit-mask:url(./img/logo-hand.svg) center/contain no-repeat;mask:url(./img/logo-hand.svg) center/contain no-repeat}.logo .txt{display:flex;flex-direction:column;line-height:1.05}.logo .name{font-family:var(--serif);font-weight:600;font-size:5.4cqw;letter-spacing:.05em;color:var(--ink-strong)}.logo .sub{font-family:var(--sans);font-size:2.2cqw;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-dark);margin-top:.5cqh;padding-left:.1em}.flower{position:absolute;inset:0;z-index:5}.flower.tremble{animation:tremble .5s ease}@keyframes tremble{0%,100%{transform:translate(0,0) rotate(0)}15%{transform:translate(-.8cqw,.2cqh) rotate(-1.1deg)}38%{transform:translate(.8cqw,-.2cqh) rotate(1deg)}62%{transform:translate(-.6cqw,.1cqh) rotate(-.7deg)}84%{transform:translate(.3cqw,0) rotate(.35deg)}}.base{position:absolute;z-index:12;pointer-events:none}.petal{position:absolute;cursor:pointer;transition:transform 1s var(--ease),opacity 1s ease,filter .15s;will-change:transform}.petal:hover{filter:brightness(1.05) drop-shadow(0 1px 1px rgba(60,40,20,.25))}.petal.falling{pointer-events:none;z-index:2!important}.petal.glow{z-index:9!important;filter:drop-shadow(0 0 2cqw rgba(200,168,106,.95)) drop-shadow(0 0 .7cqw rgba(184,146,76,.85))}.bubble,.userline,.popbubble{background:var(--card2);border:var(--bw) solid var(--ink-strong);border-radius:3cqw 3cqw 3cqw .8cqw;box-shadow:.5cqw .9cqh 0 rgba(38,34,29,.13);font-family:var(--serif);color:var(--ink-strong)}.bubble::after,.userline::after,.popbubble::after{content:"";position:absolute;left:16%;bottom:0;width:2.3cqh;height:2.3cqh;margin-left:-1.15cqh;box-sizing:border-box;background:var(--card2);border-right:var(--bw) solid var(--ink-strong);border-bottom:var(--bw) solid var(--ink-strong);transform:translateY(50%) rotate(45deg)}.bubble{position:absolute;z-index:22;display:flex;align-items:center;justify-content:center;text-align:center;padding:1.5cqh 3.6cqw;max-width:82cqw;font-family:var(--sans);font-weight:500;font-size:5cqw;line-height:1.35;white-space:nowrap;opacity:0;transform:translateY(1.2cqh) scale(.92);transform-origin:16% 100%;transition:opacity .22s ease,transform .22s var(--ease)}.bubble.show{opacity:1;transform:translateY(0) scale(1)}.bubble.cry{color:var(--cry)}.bubble.pop{animation:pop .34s var(--ease)}@keyframes pop{0%{transform:translateY(0) scale(.72)}100%{transform:translateY(0) scale(1)}}.result{position:absolute;z-index:26;left:50%;top:47%;transform:translate(-50%,-50%) scale(.84);width:90%;background:rgba(249,247,240,.88);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border:1.4px solid var(--gold);border-radius:2px;box-shadow:0 20cqh 42cqh -18cqh rgba(38,34,29,.4);display:flex;flex-direction:column;align-items:center;text-align:center;padding:6cqh 4cqw 5cqh;opacity:0;pointer-events:none;transition:opacity .5s ease,transform .55s var(--ease)}.result::before{content:"";position:absolute;inset:1.4cqw;border:1px solid rgba(200,168,106,.55);pointer-events:none}.result.show{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}.result .rtitle{font-family:var(--serif);font-weight:600;font-size:6.8cqw;letter-spacing:.12em;color:var(--gold-dark);line-height:1.1}.result .rsub{font-family:var(--serif);font-style:italic;font-weight:500;font-size:3.6cqw;letter-spacing:.03em;color:var(--taupe);margin-top:.8cqh}.result .vbox{width:100%;margin:3cqh 0 0;background:#fff;border:1px solid var(--gold);border-radius:2px;padding:3.6cqh 3cqw;box-shadow:0 4cqh 14cqh -8cqh rgba(38,34,29,.3)}.result .verdict{font-family:var(--serif);font-weight:600;font-size:5.6cqw;line-height:1.5;color:var(--gold-deep);text-wrap:balance}.result .verdict b{color:var(--gold-deep);font-weight:600}.actions{display:flex;flex-direction:column;align-items:center;gap:2.4cqh;margin-top:4cqh;width:100%;opacity:0;pointer-events:none;transition:opacity .45s ease .15s}.actions.show{opacity:1;pointer-events:auto}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:1.4cqh 9cqw;border:1px solid color-mix(in srgb,var(--gold-dark) 55%,transparent);background:transparent;color:var(--ink-strong);border-radius:1px;font-family:var(--serif);font-weight:600;font-size:3.6cqw;letter-spacing:.22em;text-transform:uppercase;cursor:pointer;overflow:hidden;isolation:isolate;transition:color .5s var(--ease-expo),border-color .5s var(--ease-expo)}.btn::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--charcoal);transform:scaleY(0);transform-origin:bottom;transition:transform .5s var(--ease-expo)}.btn:hover{color:var(--card2);border-color:var(--charcoal)}.btn:hover::before{transform:scaleY(1)}.btn:active{transform:translateY(1px)}.btn.solid{background:var(--charcoal);color:var(--card2);border-color:var(--charcoal)}.btn.solid::before{background:var(--ink-strong)}.btn.solid:hover{color:var(--card2);border-color:var(--ink-strong)}.btn.sm{letter-spacing:.16em;font-weight:500}.actions>.btn{width:100%}.actrow{display:flex;align-items:stretch;gap:4cqw;width:100%}.actrow>.btn{flex:1;padding-left:0;padding-right:0}.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(10px);background:var(--ink-strong);color:var(--card2);padding:10px 20px;border-radius:2px;font-size:14px;letter-spacing:.03em;opacity:0;pointer-events:none;transition:all .3s var(--ease);z-index:90}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.smodal{position:fixed;inset:0;z-index:80;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:24px;background:rgba(26,24,20,.66);opacity:0;pointer-events:none;transition:opacity .3s var(--ease)}.smodal.show{opacity:1;pointer-events:auto}.smodal img{max-width:min(88vw,400px);max-height:70svh;height:auto;border-radius:3px;box-shadow:0 24px 60px -20px rgba(0,0,0,.65)}.sbox{display:flex;flex-direction:column;align-items:center;gap:18px;max-width:100%}.sbtns{display:flex;gap:14px;align-items:center;justify-content:center}.smodal .btn{font-family:var(--serif);font-weight:600;font-size:14px;letter-spacing:.16em;text-transform:uppercase;padding:13px 30px;color:#faf9f4;border-color:rgba(200,168,106,.7)}.smodal .btn.sm{font-size:13px;font-weight:500;letter-spacing:.12em;padding:11px 20px;color:#e6ddca}.smodal .btn.solid{background:var(--charcoal);border-color:var(--charcoal)}.smodal .btn::before{background:var(--gold-deep)}.userline{position:absolute;z-index:21;right:7cqw;top:74cqh;padding:1.3cqh 4.2cqw;font-weight:600;font-size:4.4cqw;letter-spacing:.04em;white-space:nowrap;opacity:0;transform:translateY(-1cqh) scale(.9);transform-origin:16% 100%;transition:opacity .22s ease,transform .22s var(--ease);pointer-events:none}.userline.show{opacity:1;transform:translateY(0) scale(1)}.userline.pop{animation:pop .3s var(--ease)}.home{position:absolute;inset:0;z-index:15;opacity:0;pointer-events:none;transition:opacity .45s ease}.home.show{opacity:1;pointer-events:auto}.home .coverwrap{position:absolute;left:37%;bottom:-11cqh;transform:translate(-50%,0) rotate(25deg);transform-origin:50% 60%;width:81%;aspect-ratio:587/1100;z-index:1}.home .cover{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:pointer;transform-origin:50% 94%;will-change:transform}.home .cover.wobble{animation:wobble .85s var(--ease)}@keyframes wobble{0%,100%{transform:rotate(0)}16%{transform:rotate(2.2deg)}34%{transform:rotate(-1.6deg)}52%{transform:rotate(1deg)}70%{transform:rotate(-.5deg)}85%{transform:rotate(.2deg)}}.startwrap{position:absolute;z-index:6;left:0;right:0;bottom:9cqh;display:flex;justify-content:center}.plate{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;padding:3.4cqh 14cqw;border:1px solid var(--gold);border-radius:2px;cursor:pointer;background:color-mix(in srgb,var(--card2) 80%,transparent);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);box-shadow:0 0 0 1.5cqw var(--card),0 0 0 calc(1.5cqw + 1px) color-mix(in srgb,var(--gold) 42%,transparent);text-align:center;white-space:nowrap;-webkit-appearance:none;appearance:none;font-family:inherit;transition:box-shadow .5s var(--ease-expo);outline:none;animation:plateBreathe 3.8s ease-in-out infinite}.plate:hover,.plate:focus-visible{box-shadow:0 0 0 1.5cqw var(--card),0 0 0 calc(1.5cqw + 1px) var(--gold-deep)}@keyframes plateBreathe{0%,100%{transform:scale(1)}50%{transform:scale(1.035)}}.plate-enter{font-family:var(--sans);font-weight:500;font-size:3.6cqw;letter-spacing:.5em;text-transform:uppercase;color:var(--gold-deep);padding-left:.5em}@media(prefers-reduced-motion:reduce){.plate{animation:none}}.popbubble{position:absolute;z-index:4;padding:.9cqh 2.8cqw;font-weight:500;font-size:3.6cqw;white-space:nowrap;opacity:0;transform:translateY(1cqh) scale(.8);transform-origin:16% 100%;transition:opacity .3s ease,transform .3s var(--ease);pointer-events:none}.popbubble.show{opacity:1;transform:translateY(0) scale(1)}.think{position:absolute;inset:0;z-index:16;display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .5s ease}.think.show{opacity:1;pointer-events:auto}.think .halo{width:50cqw;height:50cqw;border-radius:50%;border:1.5px solid var(--gold-deep);display:flex;align-items:center;justify-content:center;position:relative;animation:breathe 3.8s ease-in-out infinite}.think .halo::before{content:"";position:absolute;inset:-3.4cqw;border-radius:50%;border:1px solid var(--gold);animation:breathe2 3.8s ease-in-out infinite}.think .halo{overflow:visible}.think .halo img{width:auto;height:130%}@keyframes breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes breathe2{0%,100%{transform:scale(1);opacity:.55}50%{transform:scale(1.1);opacity:.12}}.think-txt{font-family:var(--serif);font-weight:500;font-size:6.4cqw;letter-spacing:.34em;color:var(--ink-strong);margin:6.5cqh 0 5cqh;padding-left:.34em}.burst{position:absolute;z-index:24;pointer-events:none}