:root{--ink: #2f4134;--ink-strong: #1c2b23;--ink-muted: #667064;--lacquer: #17261f;--lacquer-soft: #25362d;--paper: #f3ead5;--paper-bright: #fbf7ed;--paper-dim: #d9ceb5;--cinnabar: #ad4632;--cinnabar-bright: #c55740;--gold: #a77c2d;--gold-soft: rgba(167, 124, 45, .28);--jade: #637761;--jade-dark: #415744;--sky: #8ac8e9;--line: rgba(65, 87, 68, .22);--ritual-card-ink: #f7eadb;--ritual-card-muted: #dec3aa;--ritual-card-surface: rgba(58, 29, 18, .9);--ritual-card-surface-soft: rgba(76, 39, 23, .86);--ritual-card-line: rgba(211, 145, 83, .38);--ritual-card-copper: #cc8850;--ritual-card-gold: #d6a653;--ritual-card-cinnabar: #ad5037;--ritual-card-cinnabar-bright: #c46143;--ritual-card-shadow: rgba(30, 12, 6, .42);--serif: "Noto Serif TC", "PingFang TC", "Songti TC", serif;--sans: "Noto Sans TC", "PingFang TC", -apple-system, BlinkMacSystemFont, sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{margin:0;width:100%;height:100%;overflow:hidden;background:var(--sky);color:var(--ink);font-family:var(--sans);touch-action:none;-webkit-user-select:none;user-select:none;overscroll-behavior:none}button,input,select,textarea{font:inherit}input,textarea,select{-webkit-user-select:text;user-select:text;touch-action:auto}button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.kiosk-viewport{position:fixed;top:0;right:0;left:0;display:grid;grid-template:minmax(0,1fr) / minmax(0,1fr);place-items:center;width:100vw;height:100dvh;overflow:hidden;overflow:clip;background:#577f83;isolation:isolate}.kiosk-viewport:before{position:absolute;top:-42px;right:-42px;bottom:-42px;left:-42px;z-index:-1;content:"";background:#729ca4 url(/scene/temple-courtyard.png) center / cover no-repeat;filter:blur(30px) saturate(.72) brightness(.7);transform:scale(1.08)}.kiosk-viewport--patterned{background:#4a2919}.kiosk-viewport--patterned:before{background-image:url(/scene/attract-mask-pattern-brown.jpg);filter:blur(30px) saturate(.88) brightness(.62)}.kiosk-stage{position:relative;grid-area:1 / 1;align-self:stretch;justify-self:stretch;width:100%;height:100%;min-height:0;overflow:hidden;overflow:clip;background:var(--sky);isolation:isolate}.session-badge{position:absolute;right:max(10px,env(safe-area-inset-right));bottom:max(8px,env(safe-area-inset-bottom));z-index:40;display:inline-flex;max-width:min(52vw,240px);align-items:center;gap:5px;padding:4px 7px;overflow:hidden;color:#fbf7edad;background:#18272057;border-radius:4px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9px;letter-spacing:.03em;line-height:1.2;pointer-events:none;text-overflow:ellipsis;white-space:nowrap}.session-badge>span{flex:0 0 auto;width:5px;height:5px;background:#b8a894;border-radius:50%}.session-badge--connected>span{background:#79c99a;box-shadow:0 0 7px #79c99ac2}.portrait-guard{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:none;flex-direction:column;align-items:center;justify-content:center;padding:max(32px,env(safe-area-inset-top)) 40px max(32px,env(safe-area-inset-bottom));color:var(--paper-bright);background:#182720f5;-webkit-backdrop-filter:blur(18px) saturate(.72);backdrop-filter:blur(18px) saturate(.72);text-align:center}.portrait-guard__icon{position:relative;display:grid;place-items:center;width:112px;height:112px;margin-bottom:24px;color:#ead4a0;border:1px solid rgba(234,212,160,.42);border-radius:50%;background:#ffffff0f}.portrait-guard__icon svg:last-child{position:absolute;right:-8px;bottom:2px;filter:drop-shadow(0 0 9px rgba(234,212,160,.42))}.portrait-guard h1{margin:0;font-family:var(--serif);font-size:clamp(24px,4.6vw,36px);letter-spacing:.06em}.portrait-guard p{max-width:34em;margin:14px 0 24px;color:#fbf7edc7;font-size:15px;line-height:1.7}.portrait-guard strong{color:#ead4a0;font-size:15px;letter-spacing:.12em;text-transform:uppercase}.portrait-guard small{margin-top:8px;color:#fbf7ed94;font-size:11px;letter-spacing:.05em}@media(min-width:1000px)and (min-aspect-ratio:6 / 5)and (hover:hover)and (pointer:fine){.kiosk-stage{align-self:center;justify-self:center;width:min(69.82012dvh,1048px);height:min(100dvh,1501px);border-right:1px solid rgba(249,244,231,.26);border-left:1px solid rgba(249,244,231,.26);box-shadow:0 0 76px #121e196b}}.kiosk-viewport--touch-device.kiosk-viewport--landscape .portrait-guard{display:flex}.screen{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:max(28px,env(safe-area-inset-top)) 32px max(28px,env(safe-area-inset-bottom))}.exhibition-shell{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;color:var(--ink);isolation:isolate}.scenic-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--sky);background-image:url(/scene/temple-courtyard.png);background-position:center center;background-size:cover}.scenic-backdrop__wash{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none}.scenic-backdrop--soft .scenic-backdrop__wash{background:#f4ecd933;-webkit-backdrop-filter:saturate(.82) brightness(1.03);backdrop-filter:saturate(.82) brightness(1.03)}.scenic-backdrop--focus .scenic-backdrop__wash{background:#13211b52;-webkit-backdrop-filter:saturate(.78) brightness(.82);backdrop-filter:saturate(.78) brightness(.82)}.exhibition-shell__content{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3}.brand-lockup{display:inline-flex;flex-direction:column;align-items:flex-start;gap:7px}.brand-lockup__logo{display:block;width:clamp(174px,26vw,232px);height:auto;object-fit:contain;filter:drop-shadow(0 1px 0 rgba(255,255,255,.3))}.brand-lockup__kicker{display:flex;align-items:center;gap:9px;color:var(--gold);font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase}.brand-lockup--compact{gap:5px}.brand-lockup--compact .brand-lockup__logo{width:clamp(136px,19vw,176px)}.brand-lockup--compact .brand-lockup__kicker{font-size:9px}.title-zh,.title-primary{margin:0;color:var(--ink);font-family:var(--serif);font-size:clamp(34px,5.7vw,54px);font-weight:900;letter-spacing:.1em;line-height:1.25}.title-zh--hero,.title-primary--hero{font-size:clamp(46px,7.2vw,68px);letter-spacing:.12em}.title-primary{font-size:clamp(28px,4.8vw,44px);letter-spacing:.075em}.title-primary--hero{font-size:clamp(38px,6.2vw,56px);letter-spacing:.09em}.title-en,.title-secondary{margin-top:8px;color:var(--gold);font-size:clamp(13px,1.8vw,17px);font-weight:700;letter-spacing:.24em;text-transform:uppercase}.subtitle{max-width:38em;color:var(--ink-muted);font-size:clamp(14px,1.8vw,17px);line-height:1.78}.subtitle--ink{color:var(--ink)}.section-eyebrow{margin:18px 0 10px;color:var(--cinnabar);font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}.section-icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;margin-top:26px;color:var(--jade-dark);border:1px solid rgba(65,87,68,.3);border-radius:50%;background:#fffcf28a}.section-icon--cinnabar{color:var(--cinnabar)}.btn{min-height:58px;padding:12px 32px;color:var(--paper-bright);background:var(--cinnabar);border:1px solid transparent;border-radius:10px;box-shadow:0 11px 28px #72332433;font-size:17px;font-weight:700;letter-spacing:.08em;cursor:pointer;transition:transform .15s ease,background .18s ease,box-shadow .18s ease}.btn:hover{background:var(--cinnabar-bright);box-shadow:0 14px 30px #72332440}.btn:active{transform:translateY(1px) scale(.985)}.btn:focus-visible,.text-action:focus-visible,.attract-cta:focus-visible,.flip-card:focus-visible{outline:3px solid var(--gold);outline-offset:4px}.btn.ghost{color:var(--ink);background:#fffcf259;border-color:#41574461;box-shadow:none}.btn.gold{color:var(--ink-strong);background:var(--gold)}.btn:disabled{opacity:.46;pointer-events:none}.btn-en,.btn-secondary{display:block;margin-top:3px;font-size:10px;font-weight:500;letter-spacing:.16em;opacity:.82}.button-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}.button-row .btn:first-child{flex:1 1 230px}.button-row .btn:last-child{flex:0 1 132px}.fade-in{animation:fadeIn .56s ease both}.pulse{animation:pulse 2.2s ease-in-out infinite}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.72}}.editorial-sheet{position:absolute;top:max(32px,env(safe-area-inset-top));bottom:max(32px,env(safe-area-inset-bottom));left:clamp(24px,5%,58px);width:min(650px,calc(100% - clamp(48px,10%,116px)));padding:clamp(30px,5vw,48px);overflow-y:auto;color:var(--ink);background:#f9f4e7f0;border-left:4px solid var(--jade);box-shadow:0 28px 80px #2131282e;touch-action:pan-y}.editorial-sheet--setup{top:50%;bottom:auto;max-width:560px;max-height:calc(100dvh - 64px);transform:translateY(-50%)}.editorial-sheet--consent{display:flex;flex-direction:column;justify-content:flex-start;background:#cdd4c7b8;border-left:0;backdrop-filter:blur(16px) saturate(.74) brightness(.92);-webkit-backdrop-filter:blur(16px) saturate(.74) brightness(.92)}.consent-screen,.reveal-screen,.send-screen,.done-screen{background:#4a2919 url(/scene/attract-mask-pattern-brown.jpg) center / cover no-repeat}.editorial-sheet--consent .brand-lockup__logo{filter:contrast(1.22) saturate(1.22) drop-shadow(0 2px 3px rgba(33,49,40,.72))}.editorial-sheet--consent .brand-lockup__kicker{color:#745523;text-shadow:0 1px 0 rgba(255,252,242,.72)}.editorial-sheet--consent .button-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(96px,.42fr);gap:12px}.editorial-sheet--consent .button-row .btn{min-width:0;width:100%;padding-right:clamp(14px,3vw,28px);padding-left:clamp(14px,3vw,28px)}.editorial-sheet--setup .btn,.admin-login-sheet .btn{margin-top:22px}.editorial-sheet .subtitle{margin:16px 0 18px}.field-label{display:block;margin-bottom:7px;color:var(--jade-dark);font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.email-input{width:100%;min-height:62px;padding:14px 18px;color:var(--ink-strong);background:#fffdf6c2;border:1px solid rgba(65,87,68,.42);border-radius:8px;outline:none;font-size:21px}.email-input:focus{border-color:var(--gold);box-shadow:0 0 0 3px #a77c2d29}.consent-box{margin-top:14px;padding:14px 0 0;color:#5f655c;border-top:1px solid var(--line);font-size:12px;line-height:1.7}.form-error{margin:8px 0 0;color:var(--cinnabar);font-size:13px;line-height:1.5}.attract-screen{cursor:pointer}.attract-screen .scenic-backdrop__wash{background:#4a2919 url(/scene/attract-mask-pattern-brown.jpg) center / cover no-repeat}.attract-screen .brand-lockup__logo{filter:drop-shadow(0 2px 3px rgba(8,22,17,.46))}.attract-copy{position:absolute;top:max(42px,env(safe-area-inset-top));left:clamp(28px,5.5vw,62px);width:min(440px,calc(100vw - 56px));padding:18px 18px 24px;isolation:isolate}.attract-copy:before{display:none}.attract-copy .title-zh,.attract-copy .title-primary{margin-top:48px;color:#f6efdf;text-shadow:0 2px 12px rgba(8,22,17,.26)}.attract-copy .subtitle{margin:18px 0 0;color:#faf5e9e6}.attract-cta{position:absolute;left:50%;right:auto;bottom:max(48px,calc(env(safe-area-inset-bottom) + 24px));transform:translate(-50%);display:flex;align-items:center;justify-content:center;gap:16px;min-width:280px;min-height:76px;padding:14px 20px;color:#f6efdf;background:transparent;border:0;border-radius:0;box-shadow:none;text-align:left;text-shadow:0 2px 8px rgba(8,22,17,.5)}.attract-cta.pulse{animation-name:attractCtaPulse}@keyframes attractCtaPulse{0%,to{opacity:1}50%{opacity:.9}}.attract-cta__icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;color:#ef9b84;border:1px solid rgba(239,155,132,.68);border-radius:50%}.attract-cta strong,.attract-cta small,.tap-hint strong,.tap-hint small,.return-hint strong,.return-hint small,.text-action strong,.text-action small,.send-option__heading strong,.send-option__heading small{display:block}.attract-cta strong{font-family:var(--serif);font-size:18px;letter-spacing:.1em}.attract-cta small,.tap-hint small,.return-hint small,.text-action small,.send-option__heading small{margin-top:3px;color:var(--gold);font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.institution-lockup{position:absolute;left:clamp(28px,5.5vw,62px);bottom:max(22px,env(safe-area-inset-bottom));color:#f9f4e7e6;font-size:10px;font-weight:700;letter-spacing:.18em;text-shadow:0 2px 8px rgba(21,35,29,.48)}.attract-screen .institution-lockup{color:#f5deaef0;text-shadow:0 2px 8px rgba(8,22,17,.5)}.canvas-wrap{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;background:var(--sky);background-image:url(/scene/temple-courtyard.png);background-position:center center;background-size:cover}@media(hover:hover)and (pointer:fine){.canvas-wrap--ritual[data-throw-phase=idle]{cursor:grab}.canvas-wrap--ritual.is-holding{cursor:grabbing}}.canvas-wrap>:first-child{position:relative;z-index:2}.canvas-wrap>:first-child canvas{display:block}.scene-header{position:absolute;top:max(34px,env(safe-area-inset-top));left:clamp(26px,5vw,58px);width:min(420px,calc(100vw - 52px));padding:18px 20px 22px;color:var(--ink);z-index:4;isolation:isolate;pointer-events:none}.scene-header:before{position:absolute;top:-54px;right:-210px;bottom:-150px;left:-84px;z-index:-1;content:"";background:#f9f4e7ad;-webkit-backdrop-filter:blur(2px) saturate(.9) brightness(1.04);backdrop-filter:blur(2px) saturate(.9) brightness(1.04);-webkit-mask-image:radial-gradient(ellipse 78% 74% at 28% 34%,#000 0%,rgba(0,0,0,.94) 46%,rgba(0,0,0,.42) 66%,transparent 84%);mask-image:radial-gradient(ellipse 78% 74% at 28% 34%,#000 0%,rgba(0,0,0,.94) 46%,rgba(0,0,0,.42) 66%,transparent 84%);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;pointer-events:none}.scene-copy{margin-top:22px}.scene-copy h1{margin:0;font-family:var(--serif);font-size:clamp(27px,4.5vw,42px);font-weight:900;letter-spacing:.08em;line-height:1.28;white-space:nowrap}.scene-copy p{margin:10px 0 14px;color:var(--gold);font-size:clamp(20px,3.2vw,27px);line-height:1.3;white-space:nowrap}.scene-copy span{display:block;max-width:42em;color:#4f5c52;font-size:12px;line-height:1.6}@media(min-width:1000px)and (min-aspect-ratio:6 / 5)and (hover:hover)and (pointer:fine){.scene-header{right:clamp(26px,5vw,58px);width:auto}.scene-copy h1{overflow-wrap:break-word;white-space:normal}}.gesture-runway{position:absolute;left:50%;bottom:max(24px,env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:center;color:var(--gold);transform:translate(-50%);pointer-events:none}.gesture-runway--vertical{top:clamp(674px,calc(63.5vh + 136px),914px);bottom:auto;width:min(940px,108vw);height:clamp(300px,36vh,430px);z-index:1;overflow:visible}.gesture-runway__mat{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:fill;filter:drop-shadow(0 -4px 12px rgba(76,67,45,.12))}.gesture-runway__content{position:absolute;top:8%;left:50%;display:flex;flex-direction:column;align-items:center;width:min(330px,52vw);color:#b48a35;text-align:center;filter:drop-shadow(0 0 7px rgba(255,250,218,.96));transform:translate(-50%)}.gesture-runway__chevrons{display:flex;flex-direction:column;align-items:center;height:64px;margin-bottom:2px;color:#fff7d8;filter:drop-shadow(0 0 8px rgba(255,252,228,.98))}.gesture-runway__chevrons svg+svg{margin-top:-19px}.gesture-runway__hands{filter:drop-shadow(0 0 10px rgba(255,252,228,.98))}.gesture-runway strong{margin-top:7px;color:var(--gold);font-family:var(--serif);font-size:25px;letter-spacing:.14em}.gesture-runway small{margin-top:4px;color:var(--gold);font-size:16px;letter-spacing:.08em}.gesture-runway--horizontal{flex-direction:column;gap:16px;width:min(570px,calc(100vw - 52px));min-height:126px;padding:18px 20px;background:#f4ebd5f0;border:2px solid rgba(99,119,97,.76);border-radius:14px;box-shadow:0 18px 58px #2131283d}.motion-control-slot{position:absolute;left:50%;z-index:7;transform:translate(-50%)}.motion-control-slot--throw{top:57vh}.motion-control-slot--shake{bottom:max(154px,calc(env(safe-area-inset-bottom) + 138px))}.motion-control{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-width:220px;min-height:58px;padding:10px 18px;color:var(--ink);border:1px solid rgba(167,124,45,.48);border-radius:999px;background:#f9f4e7e0;box-shadow:0 10px 30px #232d2633,0 0 22px #fff4cc47;-webkit-backdrop-filter:blur(12px) saturate(.9);backdrop-filter:blur(12px) saturate(.9);pointer-events:auto;touch-action:manipulation}[data-scene-quality=low] .scene-header:before,[data-scene-quality=low] .motion-control,[data-scene-quality=low] .session-badge{backdrop-filter:none;-webkit-backdrop-filter:none}[data-scene-quality=low] .gesture-runway__mat,[data-scene-quality=low] .gesture-runway__content{filter:none}.motion-control span,.motion-control strong,.motion-control small{display:block}.motion-control span{text-align:left}.motion-control strong{font-family:var(--serif);font-size:13px;letter-spacing:.06em}.motion-control small{margin-top:2px;color:var(--gold);font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.motion-control--button{cursor:pointer}.motion-control--button:focus-visible{outline:3px solid rgba(255,246,204,.96);outline-offset:3px}.motion-control--button:disabled{opacity:.72}.gesture-runway__copy{min-width:0;text-align:center}.gesture-runway__copy strong,.gesture-runway__copy small{display:block;margin:0}.gesture-runway--horizontal .gesture-runway__copy strong{font-size:clamp(18px,5vw,21px);letter-spacing:.06em;white-space:nowrap}.gesture-runway__copy small{margin-top:5px;font-size:12px}.gesture-runway--horizontal .gesture-runway__copy small{font-size:clamp(10px,3vw,12px);letter-spacing:.035em;white-space:nowrap}.ritual-progress{flex:none;width:100%;min-width:0;height:8px;overflow:hidden;background:#4157442e;border-radius:99px}.ritual-progress__bar{height:100%;background:var(--cinnabar);border-radius:inherit;transition:width .12s linear}.overlay-ui{position:absolute;left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:10px;z-index:5;pointer-events:none}.overlay-ui--result{bottom:31%}.result-badge{display:inline-block;min-width:190px;padding:14px 26px;color:var(--cinnabar);background:#f9f4e7f2;border:1px solid rgba(167,124,45,.5);border-radius:12px;box-shadow:0 14px 40px #2131283d;font-family:var(--serif);font-size:24px;font-weight:900;letter-spacing:.15em;text-align:center}.result-badge__en,.result-badge__secondary{display:block;margin-top:5px;color:var(--gold);font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase}.result-copy{padding:10px 18px;color:var(--ink);background:#f9f4e7f0;border-radius:8px;font-size:14px;line-height:1.55;text-align:center}.reveal-layout{position:absolute;inset:max(28px,env(safe-area-inset-top)) clamp(26px,5%,54px) max(28px,env(safe-area-inset-bottom));display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.66fr);align-items:center;gap:clamp(18px,4%,42px)}.reveal-copy{align-self:center;padding:32px 34px;color:var(--ink);background:#f9f4e7b8;border-left:0;box-shadow:0 24px 64px #0e1c1642;backdrop-filter:blur(14px) saturate(.82) brightness(.98);-webkit-backdrop-filter:blur(14px) saturate(.82) brightness(.98)}.reveal-copy .title-zh,.reveal-copy .title-primary{font-size:clamp(34px,5.4vw,50px)}.reveal-copy .title-primary{font-size:clamp(29px,4.6vw,42px)}.reveal-copy .subtitle{margin:18px 0 22px}.tap-hint,.return-hint,.text-action,.send-option__heading{display:flex;align-items:center;gap:12px}.tap-hint,.return-hint{color:var(--ink)}.tap-hint>svg,.return-hint>svg{color:var(--cinnabar)}.tap-hint strong,.return-hint strong{font-family:var(--serif);letter-spacing:.08em}.reveal-next{display:flex;align-items:center;justify-content:space-between;gap:20px;width:min(276px,86%);margin-top:clamp(18px,2.4vw,24px);margin-left:auto;box-shadow:0 14px 34px #7e382757,0 0 22px #dcab4d47;animation:blessingGlow 2.8s ease-in-out infinite}.reveal-next>svg{filter:drop-shadow(0 0 5px rgba(255,226,157,.72))}@keyframes blessingGlow{0%,to{box-shadow:0 14px 34px #7e382752,0 0 16px #dcab4d33}50%{box-shadow:0 16px 38px #7e382766,0 0 28px #ebbc5c61}}.card-stage{display:flex;min-width:0;align-items:center;justify-content:center;perspective:1600px}.flip-card{position:relative;width:min(100%,300px);aspect-ratio:945 / 2126;cursor:pointer;transform-style:preserve-3d;transition:width .85s cubic-bezier(.2,.72,.2,1),aspect-ratio .85s cubic-bezier(.2,.72,.2,1),transform .85s cubic-bezier(.2,.72,.2,1)}.flip-card.flipped{width:min(100%,360px);aspect-ratio:2 / 3;transform:rotateY(180deg)}.flip-face{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;background:var(--paper-bright);border:1px solid rgba(167,124,45,.45);border-radius:12px;box-shadow:0 22px 68px #0d1b1561;backface-visibility:hidden}.flip-face.back{transform:rotateY(180deg)}.flip-face img{display:block;width:100%;height:100%;object-fit:contain}.send-sheet{position:absolute;top:max(28px,env(safe-area-inset-top));bottom:auto;left:50%;width:min(760px,calc(100% - 44px));min-height:min(820px,calc(100vh - 56px));max-height:calc(100vh - 56px);padding:clamp(28px,4.5%,44px);overflow-y:auto;color:var(--ink);background:#cdd4c7a8;border-top:0;box-shadow:0 30px 84px #2131283d;backdrop-filter:blur(16px) saturate(.72) brightness(.92);-webkit-backdrop-filter:blur(16px) saturate(.72) brightness(.92);transform:translate(-50%);touch-action:pan-y}.send-sheet .brand-lockup__logo{filter:contrast(1.18) saturate(1.18) drop-shadow(0 2px 3px rgba(33,49,40,.68))}.send-sheet .brand-lockup__kicker{color:#745523;text-shadow:0 1px 0 rgba(255,252,242,.72)}.send-options{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:26px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.send-options--single{grid-template-columns:minmax(0,420px);justify-content:center}.send-option{display:flex;flex-direction:column;align-items:center;min-width:0;padding:26px 22px;text-align:center}.send-option+.send-option{border-left:1px solid var(--line)}.send-option__heading{align-self:stretch;justify-content:center;margin-bottom:18px;color:var(--jade-dark)}.send-option__heading strong{font-family:var(--serif);font-size:15px;letter-spacing:.08em;text-align:start}.send-option .subtitle{margin:12px 0}.qr-panel{padding:10px;background:#fff;border:1px solid rgba(65,87,68,.22);box-shadow:0 12px 34px #21312829}.qr-panel img{display:block;width:min(190px,28vw);height:auto}.masked-email{margin:6px 0 18px;color:var(--gold);font-size:17px;font-weight:700;word-break:break-all}.send-option .btn{display:inline-flex;align-items:center;gap:20px;margin-top:auto}.text-action{margin:24px auto 0;padding:8px;color:var(--ink);background:transparent;border:0;cursor:pointer}.text-action>svg{color:var(--jade-dark)}.completion-sheet{position:absolute;top:50%;left:50%;width:min(590px,calc(100% - 54px));padding:clamp(34px,6%,56px);color:var(--ink);background:#f9f4e7f2;border-top:4px solid var(--jade);box-shadow:0 30px 86px #0d1b1552;text-align:center;transform:translate(-50%,-50%)}.completion-sheet .brand-lockup{align-items:center}.completion-seal{margin:30px 0 14px;color:var(--cinnabar)}.completion-sheet .subtitle{margin:18px auto 28px}.completion-sheet .title-primary{font-size:clamp(22px,4vw,34px);letter-spacing:.04em;white-space:nowrap}.return-hint{justify-content:center;padding-top:20px;border-top:1px solid var(--line)}.editorial-sheet--consent,.reveal-copy,.send-sheet,.completion-sheet{color:var(--ritual-card-ink);background-color:var(--ritual-card-surface);background-image:url(/scene/attract-mask-pattern-brown.jpg);background-position:right bottom;background-size:auto 980px;background-blend-mode:soft-light;border:1px solid var(--ritual-card-line);box-shadow:0 28px 82px var(--ritual-card-shadow)}.editorial-sheet--consent,.send-sheet,.reveal-copy{backdrop-filter:blur(16px) saturate(.78) brightness(.72);-webkit-backdrop-filter:blur(16px) saturate(.78) brightness(.72)}.consent-screen .editorial-sheet--consent,.reveal-screen .reveal-copy,.send-screen .send-sheet,.done-screen .completion-sheet{background:transparent;background-image:none;border:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}.gesture-runway--horizontal,.motion-control,.result-badge,.result-copy{color:var(--ritual-card-ink);background:var(--ritual-card-surface-soft);border:1px solid var(--ritual-card-line);box-shadow:0 16px 44px var(--ritual-card-shadow)}.editorial-sheet--consent .brand-lockup__logo,.reveal-copy .brand-lockup__logo,.send-sheet .brand-lockup__logo,.completion-sheet .brand-lockup__logo{filter:drop-shadow(0 2px 4px rgba(22,8,3,.82))}.editorial-sheet--consent .brand-lockup__kicker,.reveal-copy .brand-lockup__kicker,.send-sheet .brand-lockup__kicker,.completion-sheet .brand-lockup__kicker,.editorial-sheet--consent .title-en,.reveal-copy .title-en,.send-sheet .title-en,.completion-sheet .title-en,.editorial-sheet--consent .title-secondary,.reveal-copy .title-secondary,.send-sheet .title-secondary,.completion-sheet .title-secondary{color:var(--ritual-card-gold);text-shadow:0 1px 3px rgba(22,8,3,.7)}.editorial-sheet--consent .title-zh,.reveal-copy .title-zh,.send-sheet .title-zh,.completion-sheet .title-zh,.editorial-sheet--consent .title-primary,.reveal-copy .title-primary,.send-sheet .title-primary,.completion-sheet .title-primary,.editorial-sheet--consent .subtitle--ink,.reveal-copy .subtitle--ink,.send-sheet .subtitle--ink,.completion-sheet .subtitle--ink{color:var(--ritual-card-ink)}.editorial-sheet--consent .section-eyebrow,.reveal-copy .section-eyebrow,.send-sheet .section-eyebrow{color:#e57b61}.editorial-sheet--consent .field-label,.send-option__heading,.masked-email,.motion-control small,.result-badge__en,.result-badge__secondary,.gesture-runway--horizontal,.gesture-runway--horizontal strong,.gesture-runway--horizontal small,.tap-hint small,.return-hint small,.text-action small{color:var(--ritual-card-gold)}.editorial-sheet--consent .consent-box{color:var(--ritual-card-muted);border-top-color:var(--ritual-card-line)}.editorial-sheet--consent .email-input{color:#3d2417;background:#faeed8f5;border-color:#d3915394;box-shadow:inset 0 1px #ffffff6b}.editorial-sheet--consent .email-input::placeholder{color:#8a7466}.editorial-sheet--consent .email-input:focus{border-color:var(--ritual-card-gold);box-shadow:0 0 0 3px #d6a65338}.consent-screen .btn,.reveal-screen .btn,.send-screen .btn{background:var(--ritual-card-cinnabar);box-shadow:0 12px 30px #37130a5c,0 0 18px #cc88501f}.consent-screen .btn:hover,.reveal-screen .btn:hover,.send-screen .btn:hover{background:var(--ritual-card-cinnabar-bright);box-shadow:0 15px 34px #37130a6b,0 0 22px #cc885029}.consent-screen .btn.ghost{color:var(--ritual-card-ink);background:#f7eadb14;border-color:var(--ritual-card-line);box-shadow:none}.form-error{color:#ff9b85}.gesture-runway--horizontal{border-width:1px}.gesture-runway--horizontal .ritual-progress{background:#f7eadb29}.gesture-runway--horizontal .ritual-progress__bar{background:var(--ritual-card-cinnabar-bright)}.motion-control>svg,.tap-hint>svg,.return-hint>svg,.completion-seal,.text-action>svg{color:#e57b61}.result-badge,.result-copy,.tap-hint,.return-hint,.text-action,.send-option__heading{color:var(--ritual-card-ink)}.reveal-next{box-shadow:0 14px 34px #37130a6b,0 0 22px #cc88503d}.send-options{border-color:var(--ritual-card-line)}.send-option+.send-option{border-color:var(--ritual-card-line)}.qr-panel{border-color:var(--ritual-card-line);box-shadow:0 12px 34px #1e0c0647}.return-hint{border-top-color:var(--ritual-card-line)}.admin{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;padding:34px 30px 90px;color:var(--ink);background:#ebe4d3;touch-action:pan-y}.admin:before{content:"";position:fixed;top:0;right:0;left:0;height:8px;background:var(--jade-dark)}.admin>.row:first-child{max-width:1180px;margin:0 auto 24px;padding:18px 0;border-bottom:1px solid rgba(65,87,68,.28)}.admin-header{min-height:82px}.admin-kicker{display:block;margin-top:5px;color:var(--gold);font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}.admin-message{max-width:460px;color:var(--jade-dark);font-size:12px;text-align:right}.admin-tabs{display:flex;max-width:1180px;margin:-8px auto 20px;gap:8px}.admin-tabs button{min-height:42px;padding:9px 18px;color:var(--ink-muted);background:#fffcf394;border:1px solid rgba(65,87,68,.2);border-radius:9px;font:inherit;font-size:13px;font-weight:700;cursor:pointer}.admin-tabs button.active{color:#fffdf7;background:var(--jade-dark);border-color:var(--jade-dark)}.admin-tabs button span{display:inline-grid;min-width:20px;min-height:20px;margin-left:5px;place-items:center;color:inherit;background:#ffffff24;border-radius:99px;font-size:10px}.admin h1{margin:0;color:var(--ink-strong);font-family:var(--serif);font-size:27px;letter-spacing:.08em}.admin .device-card{max-width:1180px;margin:0 auto 18px;padding:22px;background:#fffcf3e6;border:1px solid rgba(65,87,68,.18);border-radius:12px;box-shadow:0 10px 30px #21312814}.stats-summary{gap:18px!important}.stats-summary>div{display:flex;min-width:190px;align-items:baseline;justify-content:space-between;gap:18px;padding:14px 18px;background:#63776112;border-left:3px solid var(--jade)}.stats-summary span{color:var(--ink-muted);font-size:12px;font-weight:700}.stats-summary strong{color:var(--ink-strong);font-family:var(--serif);font-size:27px}.admin-empty{max-width:1180px;margin:40px auto;color:var(--ink-muted);text-align:center}.admin label{display:block;margin:13px 0 5px;color:var(--ink-muted);font-size:12px;font-weight:700;letter-spacing:.04em}.admin input[type=text],.admin input[type=password],.admin input[type=number],.admin input[type=search],.admin select{width:100%;padding:10px 12px;color:var(--ink-strong);background:var(--paper-bright);border:1px solid rgba(65,87,68,.26);border-radius:7px;font-size:14px}.admin input[type=range]{width:100%;accent-color:var(--cinnabar)}.admin .row{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.admin .chip{padding:4px 10px;color:var(--jade-dark);border:1px solid rgba(65,87,68,.35);border-radius:99px;background:#6377610f;font-size:11px}.admin .chip.online{color:#2d7651;border-color:#2d765170;background:#2d765114}.admin .chip.named{color:#7f5d21;border-color:#a77c2d66;background:#a77c2d17}.client-name-field{width:min(280px,100%)}.admin .client-name-field input[type=text]{font-weight:700}.client-name-field small{display:block;margin-top:4px;color:var(--ink-muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9px;letter-spacing:.04em}.admin .btn{min-height:42px;padding:8px 18px;border-radius:8px;font-size:13px}.admin .btn.ghost{background:transparent}.admin .btn.danger{color:#9e332b;border-color:#9e332b61}.admin details summary{color:var(--jade-dark)!important}.admin .vip{margin-top:16px;padding:16px;background:#a77c2d14;border:1px solid rgba(167,124,45,.34);border-radius:9px}.admin .vip strong{color:#7f5d21!important}.admin .weight-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:9px 14px}.admin .weight-grid .w-item{color:var(--ink-muted);font-size:12px}.admin table{width:100%;border-collapse:collapse;font-size:14px}.admin td,.admin th{padding:8px 10px;border-bottom:1px solid rgba(65,87,68,.12);text-align:left}.email-records-heading,.email-records-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px}.email-records-heading h2{margin:0;color:var(--ink-strong);font-family:var(--serif);font-size:22px}.email-records-heading p{margin:5px 0 0;color:var(--ink-muted);font-size:12px}.email-record-count{flex:none;color:var(--jade-dark);font-size:12px;font-weight:800}.delivery-warning{margin-top:18px;padding:12px 14px;color:#7e4d16;background:#fff4d5;border:1px solid rgba(167,124,45,.45);border-radius:8px;font-size:13px;font-weight:700}.email-records-toolbar{margin:16px 0;align-items:flex-end}.email-search-field{width:min(420px,100%);margin:0!important}.email-search-field span{display:block;margin-bottom:5px}.email-record-actions{display:flex;gap:8px}.email-records-table-wrap{overflow-x:auto;border:1px solid rgba(65,87,68,.14);border-radius:9px}.admin .email-records-table{min-width:1000px;background:#ffffff57}.email-records-table th{color:var(--ink-muted);background:#63776114;font-size:11px;letter-spacing:.04em;white-space:nowrap}.email-records-table td{color:var(--ink);vertical-align:top}.email-records-table tr.selected td{background:#63776114}.email-records-table td small{display:block;max-width:190px;margin-top:3px;overflow:hidden;color:var(--ink-muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.email-records-table .check-cell{width:34px;padding-right:4px;text-align:center}.email-records-table input[type=checkbox]{width:17px;height:17px;accent-color:var(--jade-dark)}.email-status{display:inline-block;padding:3px 8px;color:#7e4d16;background:#a77c2d1a;border:1px solid rgba(167,124,45,.28);border-radius:99px;font-size:10px;font-weight:800;white-space:nowrap}.email-status.sent{color:#2d7651;background:#2d765114;border-color:#2d765152}.email-status.failed{color:#9e332b;background:#9e332b14;border-color:#9e332b4d}.email-status.simulated{color:#765b92;background:#765b9214;border-color:#765b924d}.email-empty{margin:32px auto 18px}@media(max-width:720px){.admin{padding:24px 14px 70px}.admin-header,.email-records-heading,.email-records-toolbar{align-items:stretch!important;flex-direction:column}.admin-message{max-width:none;text-align:left}.admin-tabs button,.email-record-actions .btn{flex:1}}@media(max-width:720px){.attract-copy,.scene-header{right:22px;left:22px;width:auto;padding:22px 24px}.attract-copy .section-icon{margin-top:20px}.title-zh--hero,.title-primary--hero{font-size:clamp(38px,11vw,54px)}.title-primary--hero{font-size:clamp(32px,9vw,44px)}.scene-copy{margin-top:14px}.scene-copy h1{font-size:clamp(20px,5.5vw,24px);letter-spacing:.025em;line-height:1.2;white-space:normal}.scene-copy p{font-size:clamp(16px,4.4vw,18px);white-space:normal}.scene-copy span{display:none}.gesture-runway--vertical{width:112vw}.reveal-layout{grid-template-columns:1fr;gap:18px}.reveal-copy{padding:22px 24px}.reveal-copy .brand-lockup,.reveal-copy .section-icon,.reveal-copy .subtitle{display:none}.flip-card{width:min(38vw,248px)}.flip-card.flipped{width:min(62vw,300px)}.send-options{grid-template-columns:1fr}.send-option+.send-option{border-top:1px solid var(--line);border-left:0}.institution-lockup{display:none}}@media(max-height:920px){.editorial-sheet{top:18px;bottom:18px;padding:26px 30px}.editorial-sheet--setup{top:50%;bottom:auto;max-height:calc(100dvh - 36px)}.send-sheet{top:18px;bottom:auto;min-height:min(760px,calc(100vh - 36px));max-height:calc(100vh - 36px);padding:26px 30px}.editorial-sheet .section-icon{margin-top:14px}.editorial-sheet .subtitle{margin:10px 0 12px}.consent-box{font-size:11px}.gesture-runway--vertical{top:calc(63.5vh + 136px);height:max(280px,36vh)}.gesture-runway__content{top:-2%}.gesture-runway__chevrons{height:46px}.gesture-runway__chevrons svg:first-child{width:25px;height:25px}.gesture-runway__chevrons svg:last-child{width:34px;height:34px}.gesture-runway__chevrons svg+svg{margin-top:-13px}.gesture-runway__hands{width:78px;height:78px}.gesture-runway--vertical strong{font-size:21px}.gesture-runway--vertical small{font-size:13px}}@media(max-width:720px)and (max-height:760px){.gesture-runway--vertical{top:auto;bottom:-52px;width:116vw;height:250px}.gesture-runway__content{top:4%}.gesture-runway__chevrons{height:40px}.gesture-runway__hands{width:70px;height:70px}.gesture-runway--vertical strong{margin-top:3px;font-size:19px}.gesture-runway--vertical small{margin-top:2px;font-size:12px}}@media(min-width:800px)and (min-aspect-ratio:6 / 5)and (max-height:1142px)and (hover:hover)and (pointer:fine){.gesture-runway--vertical{top:min(clamp(674px,calc(63.5dvh + 136px),914px),calc(100dvh - 210px))}.gesture-runway--vertical .gesture-runway__content{top:12px;bottom:auto}.gesture-runway__chevrons{height:46px}.gesture-runway__chevrons svg:first-child{width:25px;height:25px}.gesture-runway__chevrons svg:last-child{width:34px;height:34px}.gesture-runway__chevrons svg+svg{margin-top:-13px}.gesture-runway__hands{width:78px;height:78px}.gesture-runway--vertical strong{font-size:21px}.gesture-runway--vertical small{font-size:13px}}@media(min-width:800px)and (min-aspect-ratio:6 / 5)and (min-height:1143px)and (max-height:1165px)and (hover:hover)and (pointer:fine){.gesture-runway--vertical{top:min(clamp(674px,calc(63.5dvh + 136px),914px),calc(97.12dvh - 256px))}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}
