@import"https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;1,400&family=Manrope:wght@400;500;600&display=swap";:root{color-scheme:dark;--ink: #080b09;--ink-raised: #0d110e;--bone: #eee9dc;--bone-soft: rgba(238, 233, 220, .7);--muted: rgba(238, 233, 220, .48);--faint: rgba(238, 233, 220, .25);--line: rgba(238, 233, 220, .13);--line-strong: rgba(238, 233, 220, .22);--accent: #d46b64;--accent-bright: #f1a49d;--accent-rgb: 212, 107, 100;--serif: "Cormorant Garamond", "Bodoni 72", Didot, "Songti SC", "STSong", serif;--sans: "Manrope", "Avenir Next", "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0}body{overflow:hidden;overflow:clip;background:var(--ink);color:var(--bone);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,a{color:inherit;font:inherit}button{border:0}button:focus-visible,a:focus-visible{outline:1px solid var(--accent-bright);outline-offset:5px}.app{position:relative;width:100%;height:100dvh;min-height:620px;isolation:isolate;overflow:hidden;overflow:clip;background:radial-gradient(circle at 68% 41%,rgba(var(--accent-rgb),.09),transparent 27%),radial-gradient(circle at 18% 82%,rgba(91,121,73,.13),transparent 32%),linear-gradient(132deg,#090c0a,#0b100c 48%,#070a08);transition:background 1.2s ease}.app:before{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,transparent 0 49.94%,rgba(238,233,220,.035) 50%,transparent 50.06%),linear-gradient(0deg,transparent 0 49.94%,rgba(238,233,220,.03) 50%,transparent 50.06%);background-size:220px 220px;-webkit-mask-image:radial-gradient(circle at 64% 45%,black,transparent 70%);mask-image:radial-gradient(circle at 64% 45%,black,transparent 70%);opacity:.6}.ambient{position:absolute;z-index:-1;border-radius:50%;pointer-events:none;filter:blur(80px);opacity:.45;transition:background 1.2s ease}.ambient-one{top:7%;right:12%;width:37vw;height:37vw;min-width:380px;min-height:380px;background:rgba(var(--accent-rgb),.12)}.ambient-two{bottom:-16%;left:12%;width:44vw;height:32vw;background:#46663e21;filter:blur(110px)}.grain{position:absolute;inset:0;z-index:90;pointer-events:none;opacity:.045;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='.88' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E");mix-blend-mode:soft-light}.topbar{position:absolute;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:28px clamp(24px,4vw,64px);pointer-events:none}.topbar>*{pointer-events:auto}.brand{display:inline-flex;align-items:center;gap:13px;color:var(--bone);text-decoration:none}.brand-mark{width:38px;height:38px;color:var(--accent-bright);stroke:currentColor;stroke-width:1.15;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 15px rgba(var(--accent-rgb),.18))}.brand-copy{display:grid;gap:2px}.brand-name{font-size:12px;font-weight:600;line-height:1;letter-spacing:.32em}.brand-sub{color:var(--muted);font-size:10px;line-height:1.3;letter-spacing:.24em}.header-actions{display:flex;align-items:center;gap:12px}.status-pill{display:inline-flex;align-items:center;gap:9px;min-height:34px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:#080b096b;color:var(--bone-soft);font-size:10px;letter-spacing:.12em;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.status-dot{width:5px;height:5px;border-radius:50%;background:var(--faint);transition:background .3s ease,box-shadow .3s ease}.status-pill.is-loading .status-dot{background:#c7a96d;animation:status-pulse 1.2s ease-in-out infinite}.status-pill.is-live{border-color:#9bbb7b38;color:#e1ecd3c7}.status-pill.is-live .status-dot{background:#9dbf78;box-shadow:0 0 12px #9dbf78a6}@keyframes status-pulse{50%{box-shadow:0 0 0 5px #c7a96d14;opacity:.55}}.round-button{position:relative;display:grid;width:34px;height:34px;place-items:center;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--bone-soft);cursor:pointer;transition:border-color .25s ease,color .25s ease,background .25s ease}.round-button:hover{border-color:var(--line-strong);background:#eee9dc0f;color:var(--bone)}.round-button span{transform:translateY(-.5px);font-family:var(--serif);font-size:17px}.stage{position:relative;width:100%;height:100%;overflow:hidden}#flowerCanvas{position:absolute;inset:0;z-index:1;width:100%;height:100%;touch-action:none;cursor:ns-resize}.stage-index{position:absolute;top:50%;right:18px;z-index:3;color:#eee9dc2e;font-size:8px;letter-spacing:.28em;transform:translateY(-50%) rotate(90deg);transform-origin:center;pointer-events:none}.stage-rule{position:absolute;z-index:3;background:var(--line);pointer-events:none}.stage-rule-a{top:84px;left:clamp(24px,4vw,64px);width:1px;height:calc(100% - 168px);opacity:.6}.stage-rule-b{top:49.8%;left:0;width:40px;height:1px;opacity:.55}.specimen{position:absolute;top:47%;left:clamp(46px,6.2vw,104px);z-index:5;width:min(29vw,326px);transform:translateY(-50%);transition:opacity .5s ease,transform .5s ease}.eyebrow{color:#eee9dc6b;font-size:9px;font-weight:500;letter-spacing:.27em;text-transform:uppercase}.specimen-eyebrow{display:flex;align-items:center;gap:10px}.specimen-eyebrow #flowerIndex{color:var(--accent-bright);transition:color .6s ease}.eyebrow-line{width:25px;height:1px;background:var(--line-strong)}.specimen-copy{margin-top:24px}.specimen-copy.is-entering{animation:copy-enter .58s cubic-bezier(.22,.68,.2,1) both}@keyframes copy-enter{0%{opacity:0;transform:translateY(13px);filter:blur(4px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}.specimen h1{margin:0;font-family:var(--serif);font-size:clamp(55px,6.3vw,92px);font-weight:400;line-height:.88;letter-spacing:-.045em}.latin{margin:10px 0 0;color:var(--accent-bright);font-family:var(--serif);font-size:17px;font-style:italic;letter-spacing:.02em;transition:color .6s ease}.flower-note{max-width:275px;margin:24px 0 0;color:var(--muted);font-size:12px;font-weight:400;line-height:1.85;letter-spacing:.025em}.bloom-meter{width:240px;margin-top:34px}.meter-heading{display:flex;align-items:baseline;justify-content:space-between;padding-bottom:9px;color:var(--faint);font-size:9px;letter-spacing:.14em}.meter-heading span:last-child{color:var(--bone-soft);font-size:10px;font-variant-numeric:tabular-nums;letter-spacing:.06em}.meter-track{position:relative;width:100%;height:1px;overflow:hidden;background:var(--line)}.meter-track span{position:absolute;inset:0 auto 0 0;width:52%;background:linear-gradient(90deg,rgba(var(--accent-rgb),.25),var(--accent-bright));box-shadow:0 0 10px rgba(var(--accent-rgb),.6);transition:background .6s ease}.gesture-legend{display:grid;gap:10px;margin-top:31px;color:#eee9dc6b;font-size:9px;letter-spacing:.08em}.legend-row{display:flex;align-items:center;gap:11px}.key-pair{display:flex;gap:3px}kbd{display:grid;min-width:22px;height:20px;place-items:center;border:1px solid var(--line);border-radius:2px;background:#eee9dc08;color:var(--bone-soft);font-family:var(--sans);font-size:10px;font-weight:400;box-shadow:none}.hand-glyph{display:grid;width:22px;height:20px;place-items:center;color:var(--accent-bright);font-size:11px;transition:color .6s ease}.flower-nav{position:absolute;bottom:27px;left:50%;z-index:8;display:flex;align-items:center;gap:17px;transform:translate(-50%)}.nav-arrow{display:grid;width:38px;height:38px;place-items:center;border:1px solid var(--line);border-radius:50%;background:#080b092e;color:var(--bone-soft);cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:border-color .25s ease,background .25s ease,transform .25s ease}.nav-arrow:hover{border-color:var(--line-strong);background:#eee9dc0f}.nav-arrow:active{transform:scale(.93)}.nav-arrow svg{width:17px;height:17px;stroke:currentColor;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}.flower-dots{display:flex;align-items:center;gap:8px;height:38px}.flower-dot{width:5px;height:5px;padding:0;border-radius:99px;background:#eee9dc40;cursor:pointer;transition:width .45s cubic-bezier(.22,.68,.2,1),background .45s ease}.flower-dot:hover{background:#eee9dc8c}.flower-dot.is-active{width:27px;background:var(--accent-bright);box-shadow:0 0 14px rgba(var(--accent-rgb),.45)}.camera-card{position:absolute;right:clamp(32px,4.5vw,72px);bottom:31px;z-index:7;width:clamp(200px,16vw,258px);aspect-ratio:1.55;overflow:hidden;border:1px solid var(--line);border-radius:3px;background:#050806d1;box-shadow:0 18px 60px #00000047;opacity:0;transform:translateY(10px);pointer-events:none;transition:opacity .55s ease .15s,transform .55s ease .15s,border-color .4s ease}.app.is-active .camera-card{opacity:1;transform:translateY(0)}.camera-card.is-live{border-color:rgba(var(--accent-rgb),.24)}.camera-card video,.camera-card #handCanvas{position:absolute;inset:0;width:100%;height:100%}.camera-card video{object-fit:cover;transform:scaleX(-1);opacity:0;filter:saturate(.85) contrast(1.03) brightness(.92);transition:opacity .45s ease}.camera-card.is-live video{opacity:1}#handCanvas{z-index:2;pointer-events:none}.camera-placeholder{position:absolute;inset:0;z-index:1;display:grid;place-content:center;justify-items:center;gap:11px;background:radial-gradient(circle at 50% 44%,rgba(var(--accent-rgb),.09),transparent 50%),repeating-linear-gradient(90deg,transparent 0 19px,rgba(238,233,220,.025) 20px);color:var(--faint);transition:opacity .35s ease}.camera-card.is-live .camera-placeholder{opacity:0}.camera-placeholder svg{width:25px;height:25px;stroke:currentColor;stroke-width:1}.camera-placeholder span{font-size:8px;letter-spacing:.24em}.camera-gradient{position:absolute;inset:0;z-index:3;background:linear-gradient(180deg,rgba(5,8,6,.6),transparent 37%,transparent 62%,rgba(5,8,6,.8));pointer-events:none}.camera-topline,.camera-bottomline{position:absolute;z-index:4;left:12px;right:12px;display:flex;align-items:center;justify-content:space-between;color:#eee9dcad;font-size:7px;letter-spacing:.15em;pointer-events:none}.camera-topline{top:10px}.camera-bottomline{bottom:9px}.live-tag{display:flex;align-items:center;gap:6px}.live-tag i{width:4px;height:4px;border-radius:50%;background:#a4c77f;box-shadow:0 0 8px #a4c77fb3}.camera-bars{display:flex;align-items:flex-end;gap:2px;height:8px}.camera-bars i{display:block;width:2px;background:#eee9dc80}.camera-bars i:nth-child(1){height:3px;animation:bars 1.4s ease-in-out infinite}.camera-bars i:nth-child(2){height:7px;animation:bars 1.4s ease-in-out .15s infinite}.camera-bars i:nth-child(3){height:5px;animation:bars 1.4s ease-in-out .3s infinite}@keyframes bars{50%{height:2px;opacity:.35}}.corner{position:absolute;z-index:5;width:8px;height:8px;border-color:#eee9dc47;border-style:solid;pointer-events:none}.corner-tl{top:5px;left:5px;border-width:1px 0 0 1px}.corner-tr{top:5px;right:5px;border-width:1px 1px 0 0}.corner-bl{bottom:5px;left:5px;border-width:0 0 1px 1px}.corner-br{right:5px;bottom:5px;border-width:0 1px 1px 0}.stage-footnote{position:absolute;right:clamp(32px,4.5vw,72px);bottom:9px;z-index:4;display:flex;gap:16px;color:#eee9dc2e;font-size:7px;letter-spacing:.18em;pointer-events:none}.swipe-flash{position:absolute;top:50%;left:50%;z-index:9;display:flex;width:min(62vw,750px);justify-content:space-between;color:var(--accent-bright);opacity:0;transform:translate(-50%,-50%);pointer-events:none}.swipe-flash span{width:72px;height:1px;background:linear-gradient(90deg,transparent,var(--accent-bright))}.swipe-flash.is-left span:first-child,.swipe-flash.is-right span:last-child{animation:swipe-line .55s ease-out both}.swipe-flash.is-right span:last-child{background:linear-gradient(90deg,var(--accent-bright),transparent)}.swipe-flash.is-left span:first-child{background:linear-gradient(90deg,transparent,var(--accent-bright))}@keyframes swipe-line{0%{opacity:0;transform:scaleX(.2)}32%{opacity:.9}to{opacity:0;transform:scaleX(1.8)}}.toast{position:absolute;left:50%;bottom:92px;z-index:45;max-width:min(80vw,430px);padding:10px 16px;border:1px solid rgba(238,233,220,.13);border-radius:999px;background:#0e120feb;color:var(--bone-soft);font-size:10px;line-height:1.5;letter-spacing:.08em;text-align:center;opacity:0;transform:translate(-50%,8px);transition:opacity .25s ease,transform .25s ease;pointer-events:none;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.toast.is-visible{opacity:1;transform:translate(-50%)}.start-screen{position:absolute;inset:0;z-index:30;display:flex;align-items:center;padding:0 clamp(28px,8vw,130px);background:linear-gradient(90deg,rgba(6,9,7,.96) 0%,rgba(6,9,7,.82) 29%,rgba(6,9,7,.2) 58%,transparent 74%),linear-gradient(0deg,rgba(6,9,7,.38),transparent 35%);transition:opacity .8s cubic-bezier(.22,.68,.2,1),visibility .8s}.start-screen.is-gone{opacity:0;visibility:hidden;pointer-events:none}.start-card{position:relative;z-index:2;width:min(520px,46vw);padding:20px 0}.start-card .eyebrow{margin-bottom:30px;color:var(--accent-bright);transition:color .6s ease}.start-card h2{margin:0;font-family:var(--serif);font-size:clamp(48px,5.4vw,82px);font-weight:400;line-height:.94;letter-spacing:-.035em}.start-card h2 em{color:var(--accent-bright);font-weight:400;transition:color .6s ease}.start-copy{max-width:410px;margin:27px 0 0;color:#eee9dc87;font-size:12px;line-height:1.9;letter-spacing:.025em}.start-actions{display:flex;align-items:center;gap:24px;margin-top:36px}.primary-button{display:inline-flex;align-items:center;gap:20px;padding:7px 7px 7px 23px;border:1px solid rgba(var(--accent-rgb),.45);border-radius:999px;background:rgba(var(--accent-rgb),.09);color:var(--bone);cursor:pointer;font-size:11px;letter-spacing:.08em;transition:background .3s ease,border-color .3s ease,transform .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.primary-button:hover{border-color:rgba(var(--accent-rgb),.75);background:rgba(var(--accent-rgb),.16);transform:translateY(-1px)}.primary-button:active{transform:translateY(0) scale(.985)}.primary-button.is-loading{pointer-events:none;opacity:.7}.button-icon{display:grid;width:34px;height:34px;place-items:center;border-radius:50%;background:var(--bone);color:#10140f}.button-icon svg{width:17px;height:17px;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}.text-button{padding:8px 0;border-bottom:1px solid var(--line-strong);background:transparent;color:#eee9dc8c;cursor:pointer;font-size:10px;letter-spacing:.08em;transition:color .25s ease,border-color .25s ease}.text-button:hover{border-color:var(--accent-bright);color:var(--bone)}.privacy-line{display:flex;align-items:center;gap:8px;margin-top:23px;color:#eee9dc45;font-size:8px;letter-spacing:.08em}.privacy-line svg{width:12px;height:12px;stroke:currentColor;stroke-width:1}.start-error{max-width:390px;min-height:16px;margin-top:11px;color:#e8a598;font-size:9px;line-height:1.7;letter-spacing:.03em}.start-decoration{position:absolute;top:50%;left:67%;width:min(48vw,640px);aspect-ratio:1;transform:translate(-50%,-50%);pointer-events:none}.orbit{position:absolute;border:1px solid rgba(238,233,220,.09);border-radius:50%}.orbit-one{inset:0;animation:orbit-drift 18s linear infinite}.orbit-two{inset:13%;border-style:dashed;border-color:rgba(var(--accent-rgb),.15);animation:orbit-drift 25s linear infinite reverse}.orbit-dot{position:absolute;top:12.6%;left:21%;width:4px;height:4px;border-radius:50%;background:var(--accent-bright);box-shadow:0 0 16px rgba(var(--accent-rgb),.8)}@keyframes orbit-drift{to{transform:rotate(360deg)}}.start-footer{position:absolute;right:clamp(28px,8vw,130px);bottom:34px;display:flex;align-items:center;gap:14px;color:#eee9dc47;font-size:8px;letter-spacing:.14em}.start-footer-line{width:38px;height:1px;background:var(--line)}.drawer-backdrop{position:absolute;inset:0;z-index:50;background:#0305048c;opacity:0;visibility:hidden;transition:opacity .35s ease,visibility .35s;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.drawer-backdrop.is-open{opacity:1;visibility:visible}.help-drawer{position:absolute;top:0;right:0;bottom:0;z-index:51;width:min(400px,92vw);padding:32px 36px;overflow-y:auto;border-left:1px solid var(--line);background:#0c100d;transform:translate(101%);transition:transform .55s cubic-bezier(.22,.68,.2,1)}.help-drawer.is-open{transform:translate(0)}.drawer-header{display:flex;align-items:center;justify-content:space-between}.drawer-close{width:32px;height:32px;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--bone-soft);cursor:pointer;font-family:var(--serif);font-size:20px;line-height:1}.help-drawer h2{margin:42px 0 45px;font-family:var(--serif);font-size:43px;font-weight:400;line-height:1;letter-spacing:-.025em}.help-step{display:grid;grid-template-columns:35px 1fr;gap:13px;padding:21px 0;border-top:1px solid var(--line)}.step-number{padding-top:3px;color:var(--accent-bright);font-family:var(--serif);font-size:15px;font-style:italic}.help-step h3{margin:0 0 8px;font-size:12px;font-weight:500;letter-spacing:.08em}.help-step p,.help-note p{margin:0;color:var(--muted);font-size:10px;line-height:1.8;letter-spacing:.035em}.help-note{margin-top:24px;padding:18px 20px;border:1px solid var(--line);background:#eee9dc06}.help-note strong{display:block;margin-bottom:8px;color:var(--bone-soft);font-size:9px;font-weight:500;letter-spacing:.13em}.help-signature{margin-top:42px;color:var(--faint);font-size:7px;letter-spacing:.2em}.app.is-start .specimen,.app.is-start .flower-nav,.app.is-start .stage-footnote{opacity:0;pointer-events:none}.app.is-start .flower-nav{transform:translate(-50%,8px)}@media(max-width:980px){.start-decoration{left:73%;width:55vw}.start-card{width:min(500px,53vw)}.flower-note{max-width:235px}.specimen{left:44px;width:250px}}@media(max-width:760px){.app{min-height:560px}.topbar{padding:19px}.brand-mark{width:31px;height:31px}.brand-name{font-size:10px}.brand-sub{font-size:8px}.status-pill{min-height:30px;padding:0 11px;font-size:8px}.round-button{width:30px;height:30px}.stage-rule,.stage-index,.stage-footnote{display:none}.specimen{top:105px;left:21px;width:208px;transform:none}.specimen-copy{margin-top:16px}.specimen h1{font-size:44px}.latin{margin-top:7px;font-size:14px}.flower-note,.gesture-legend{display:none}.bloom-meter{width:175px;margin-top:22px}.camera-card{top:103px;right:17px;bottom:auto;width:132px;aspect-ratio:1.35}.camera-topline,.camera-bottomline{left:9px;right:9px;font-size:6px;letter-spacing:.1em}.camera-topline{top:8px}.camera-bottomline{bottom:7px}.flower-nav{bottom:max(19px,env(safe-area-inset-bottom));gap:12px}.nav-arrow{width:34px;height:34px}.flower-dots{height:34px}.start-screen{align-items:flex-end;padding:0 24px clamp(74px,13vh,118px);background:linear-gradient(0deg,rgba(6,9,7,.97) 0%,rgba(6,9,7,.72) 47%,rgba(6,9,7,.2) 75%,transparent 100%)}.start-card{width:100%;padding:0}.start-card .eyebrow{margin-bottom:19px}.start-card h2{font-size:clamp(43px,12vw,62px)}.start-copy{max-width:340px;margin-top:19px;font-size:11px;line-height:1.75}.start-actions{align-items:flex-start;flex-direction:column;gap:13px;margin-top:25px}.privacy-line{margin-top:17px}.start-decoration{top:32%;left:53%;width:72vw;opacity:.68}.start-footer{display:none}.toast{bottom:72px;font-size:9px}}@media(max-width:420px){.header-actions .status-pill span:last-child{max-width:94px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.specimen{left:17px;width:180px}.specimen h1{font-size:38px}.camera-card{right:13px;width:118px}.bloom-meter{width:155px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
