:root{color:#2c2924;background:#f6f0df;font-family:ui-rounded,SF Pro Rounded,Avenir Next,system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--ivory: #f6f0df;--ivory-deep: #eee4cd;--charcoal: #2e2a24;--charcoal-soft: #6c665b;--amber: #e49a2a;--amber-soft: rgba(228, 154, 42, .24);--line: rgba(54, 48, 38, .14)}*{box-sizing:border-box}html,body,#root{width:100%;min-width:100%;height:100%;min-height:100%;margin:0}body{overflow:hidden;background:var(--ivory);-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{border:0;font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible{outline:3px solid rgba(228,154,42,.65);outline-offset:5px}.app-shell{position:relative;width:100%;height:100%;min-height:100svh;isolation:isolate;overflow:hidden;background-color:var(--ivory);background-image:radial-gradient(ellipse at 20% 15%,rgba(255,255,255,.66),transparent 48%),radial-gradient(ellipse at 85% 75%,rgba(232,216,182,.28),transparent 56%),repeating-linear-gradient(115deg,rgba(104,82,47,.024) 0 1px,transparent 1px 5px),repeating-linear-gradient(20deg,rgba(255,255,255,.12) 0 1px,transparent 1px 7px)}.app-shell:before{position:absolute;z-index:-1;inset:0;pointer-events:none;content:"";opacity:.3;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 120 120' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.06'/%3E%3C/svg%3E");mix-blend-mode:multiply}.camera-surface{position:fixed;z-index:-2;width:1px;height:1px;opacity:0;pointer-events:none}.topbar{position:absolute;z-index:5;top:max(20px,env(safe-area-inset-top));right:max(24px,env(safe-area-inset-right));left:max(28px,env(safe-area-inset-left));display:flex;align-items:center;justify-content:space-between;height:44px}.wordmark{display:flex;gap:9px;align-items:center;color:#2e2a249c;font-size:12px;font-weight:650;letter-spacing:.13em;text-transform:uppercase}.wordmark-dot,.privacy-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--amber);box-shadow:0 0 0 4px #e49a2a1f}.topbar-actions{display:flex;gap:8px}.icon-button{display:grid;width:42px;height:42px;place-items:center;border:1px solid rgba(69,59,45,.12);border-radius:50%;background:#fffcf275;color:#2e2a2494;transition:background .18s ease,color .18s ease,transform .18s ease;backdrop-filter:blur(7px)}.icon-button:hover,.icon-button:active{background:#fffcf2d6;color:var(--charcoal);transform:translateY(-1px)}.icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.65}.welcome-screen{position:relative;display:grid;grid-template-columns:minmax(270px,.8fr) minmax(320px,1.2fr);align-items:center;width:min(1240px,100%);height:100%;margin:0 auto;padding:clamp(100px,13vh,150px) clamp(34px,7vw,120px) clamp(52px,8vh,90px)}.welcome-copy{position:relative;z-index:2;grid-column:1;grid-row:1;max-width:430px;padding-bottom:3vh}.eyebrow{margin:0 0 22px;color:#3d352a87;font-size:11px;font-weight:700;letter-spacing:.18em;line-height:1.3;text-transform:uppercase}.welcome-copy h1,.locked-card h1{max-width:420px;margin:0;color:var(--charcoal);font-family:Georgia,Times New Roman,serif;font-size:clamp(44px,5.8vw,76px);font-weight:400;letter-spacing:-.052em;line-height:.98}.welcome-subtitle{max-width:300px;margin:25px 0 34px;color:#3d352a9e;font-size:clamp(15px,1.45vw,18px);line-height:1.52}.begin-button{display:inline-flex;gap:22px;align-items:center;min-height:55px;padding:0 20px 0 25px;border-radius:999px;background:var(--charcoal);color:#fff9eb;font-size:15px;font-weight:650;letter-spacing:.02em;box-shadow:0 9px 25px #362b1c21;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.begin-button:hover,.begin-button:active{background:#1f1d1a;box-shadow:0 12px 29px #362b1c2e;transform:translateY(-2px)}.begin-arrow{display:grid;width:31px;height:31px;border-radius:50%;background:var(--amber);color:#3f2a0f;font-size:18px;place-items:center}.privacy-note{display:flex;gap:10px;align-items:center;margin:22px 0 0;color:#3d352a6b;font-size:11px;letter-spacing:.05em}.privacy-note .privacy-dot{width:5px;height:5px;box-shadow:none}.welcome-orbit{position:relative;grid-column:2;grid-row:1;width:min(45vw,620px);aspect-ratio:1.16;margin-left:auto;transform:translate(3%,1%)}.welcome-ring{position:absolute;top:19%;left:7%;width:47%;aspect-ratio:1;border:1px solid rgba(228,154,42,.5);border-radius:50%;box-shadow:inset 0 0 0 14px #e49a2a09,0 0 0 13px #e49a2a09}.welcome-ring:after{position:absolute;top:-1px;left:60%;width:22%;height:2px;content:"";background:var(--amber);box-shadow:0 0 11px #e49a2a99}.welcome-shadow{position:absolute;border-radius:48% 52% 44% 56%;background:#3c362ed4;filter:blur(.6px) drop-shadow(0 12px 11px rgba(52,40,22,.2))}.welcome-shadow:after,.welcome-shadow:before{position:absolute;content:"";background:inherit}.welcome-shadow-left{top:30%;left:21%;width:22%;height:46%;transform:rotate(26deg)}.welcome-shadow-left:before{top:-29%;left:25%;width:20%;height:59%;border-radius:50%;transform:rotate(-20deg)}.welcome-shadow-left:after{top:-13%;left:48%;width:19%;height:48%;border-radius:50%;transform:rotate(-3deg)}.welcome-shadow-right{top:42%;left:54%;width:35%;height:16%;border-radius:58% 42% 56% 44%;transform:rotate(-8deg)}.welcome-shadow-right:before{top:-100%;right:4%;width:18%;height:180%;border-radius:70% 30% 45% 55%;transform:rotate(28deg)}.welcome-shadow-right:after{right:20%;bottom:-50%;width:15%;height:100%;border-radius:50%;transform:rotate(-25deg)}.play-scene{position:relative;width:100%;height:100%;min-height:100%}.camera-edge-mark{position:absolute;top:0;left:18%;width:64%;height:2px;background:linear-gradient(90deg,transparent,rgba(71,63,49,.08),transparent)}.gesture-target{position:absolute;top:50%;left:clamp(12%,20vw,27%);width:clamp(170px,27vw,355px);aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%)}.gesture-target:before{position:absolute;inset:8%;border:1px solid rgba(80,69,50,.1);border-radius:50%;content:""}.gesture-target.is-seen:before{border-color:#e49a2a45}.target-glow{position:absolute;inset:12%;border-radius:50%;background:radial-gradient(circle,rgba(255,252,240,.72) 0%,rgba(228,154,42,.06) 52%,transparent 72%);opacity:.48;transition:opacity .24s ease,transform .24s ease}.gesture-target.is-seen .target-glow{opacity:.86;transform:scale(1.06)}.progress-ring{position:absolute;inset:0;border:7px solid rgba(228,154,42,.17);border-radius:50%;transform:rotate(-90deg)}.progress-ring:before{position:absolute;inset:-7px;border:7px solid transparent;border-top-color:var(--amber);border-right-color:var(--amber);border-radius:50%;content:"";mask:conic-gradient(from 0deg,#000 var(--progress),transparent var(--progress));-webkit-mask:conic-gradient(from 0deg,#000 var(--progress),transparent var(--progress))}.progress-ring-inner{position:absolute;inset:14px;border:1px solid rgba(228,154,42,.08);border-radius:50%}.hand-guide{position:absolute;z-index:2;top:50%;left:50%;width:48%;height:48%;fill:#36302842;stroke:#3630281f;stroke-linejoin:round;stroke-width:1.2;transform:translate(-50%,-47%) rotate(-8deg);transition:fill .25s ease,transform .25s ease}.gesture-target.is-seen .hand-guide{fill:#3630286e;transform:translate(-50%,-50%) rotate(-4deg) scale(1.05)}.hand-guide-fist{transform:translate(-50%,-47%) rotate(-11deg)}.hand-guide-palm{transform:translate(-50%,-47%) rotate(3deg)}.animal-lane{position:absolute;inset:11% 1% 6% 31%;overflow:hidden;pointer-events:none}.animal-flight{position:absolute;top:50%;left:34%;display:flex;width:min(47vw,690px);align-items:center;justify-content:center;transform:translate(-50%,-50%);animation-fill-mode:both}.animal-image{display:block;width:100%;height:auto;user-select:none;filter:drop-shadow(0 12px 13px rgba(49,40,27,.18));mix-blend-mode:multiply}.animal-motion-hop{animation:animal-hop var(--animal-duration, 5.4s) cubic-bezier(.2,.68,.3,1) both}.animal-motion-glide{animation:animal-glide var(--animal-duration, 6s) cubic-bezier(.18,.7,.2,1) both}.animal-motion-crawl{animation:animal-crawl var(--animal-duration, 7.2s) cubic-bezier(.2,.68,.3,1) both}.animal-motion-swim{animation:animal-swim var(--animal-duration, 5.6s) ease-in-out both}.animal-motion-stomp{animation:animal-stomp var(--animal-duration, 6.6s) cubic-bezier(.2,.68,.3,1) both}.animal-motion-gallop{animation:animal-gallop var(--animal-duration, 6.2s) cubic-bezier(.2,.68,.3,1) both}.animal-motion-waddle{animation:animal-waddle var(--animal-duration, 6.2s) cubic-bezier(.22,.7,.28,1) both}@keyframes animal-hop{0%{opacity:0;transform:translate(-90%,-50%) scale(.6)}12%{opacity:1;transform:translate(-56%,-50%) scale(.88)}30%{transform:translate(-33%,-59%) scale(.92)}44%{transform:translate(-13%,-44%) scale(.96)}63%{transform:translate(10%,-56%) scale(1)}82%{opacity:1;transform:translate(35%,-48%) scale(1.02)}to{opacity:0;transform:translate(80%,-42%) scale(.9)}}@keyframes animal-glide{0%{opacity:0;transform:translate(-83%,-48%) scale(.65) rotate(-8deg)}15%{opacity:1;transform:translate(-53%,-52%) scale(.86) rotate(-3deg)}48%{transform:translate(-8%,-44%) scale(.98) rotate(4deg)}75%{opacity:1;transform:translate(31%,-55%) scale(1.03) rotate(-2deg)}to{opacity:0;transform:translate(78%,-62%) scale(.92) rotate(-5deg)}}@keyframes animal-crawl{0%{opacity:0;transform:translate(-86%,-45%) scale(.64)}15%{opacity:1;transform:translate(-57%,-46%) scale(.83)}55%{transform:translate(-7%,-42%) scale(.94)}82%{opacity:1;transform:translate(28%,-43%) scale(1)}to{opacity:0;transform:translate(72%,-39%) scale(.92)}}@keyframes animal-swim{0%{opacity:0;transform:translate(-78%,-47%) scale(.65) rotate(4deg)}13%{opacity:1;transform:translate(-50%,-47%) scale(.83) rotate(1deg)}36%{transform:translate(-20%,-51%) scale(.92) rotate(-2deg)}62%{transform:translate(13%,-44%) scale(1) rotate(2deg)}84%{opacity:1;transform:translate(40%,-50%) scale(1.04) rotate(-1deg)}to{opacity:0;transform:translate(82%,-45%) scale(.92) rotate(-4deg)}}@keyframes animal-stomp{0%{opacity:0;transform:translate(-62%,-57%) scale(.58)}13%{opacity:1;transform:translate(-43%,-49%) scale(.85)}23%{transform:translate(-32%,-53%) scale(.88)}31%{transform:translate(-20%,-47%) scale(.9)}65%{transform:translate(15%,-48%) scale(1)}85%{opacity:1;transform:translate(36%,-45%) scale(1.03)}to{opacity:0;transform:translate(77%,-41%) scale(.94)}}@keyframes animal-gallop{0%{opacity:0;transform:translate(-78%,-46%) scale(.62) rotate(-2deg)}13%{opacity:1;transform:translate(-52%,-53%) scale(.84) rotate(1deg)}38%{transform:translate(-17%,-45%) scale(.94) rotate(-1deg)}65%{transform:translate(18%,-54%) scale(1) rotate(1deg)}84%{opacity:1;transform:translate(43%,-46%) scale(1.03) rotate(-1deg)}to{opacity:0;transform:translate(82%,-52%) scale(.93) rotate(1deg)}}@keyframes animal-waddle{0%{opacity:0;transform:translate(-78%,-42%) scale(.64) rotate(-4deg)}14%{opacity:1;transform:translate(-53%,-47%) scale(.84) rotate(3deg)}38%{transform:translate(-19%,-43%) scale(.93) rotate(-2deg)}63%{transform:translate(17%,-47%) scale(1) rotate(3deg)}84%{opacity:1;transform:translate(43%,-43%) scale(1.03) rotate(-2deg)}to{opacity:0;transform:translate(79%,-45%) scale(.94) rotate(2deg)}}.stage-message{position:absolute;right:10%;bottom:max(32px,env(safe-area-inset-bottom));left:10%;text-align:center;pointer-events:none}.stage-message-visible{color:#3d352a5e;font-size:clamp(11px,1.2vw,14px);letter-spacing:.12em;text-transform:lowercase}.vision-status{position:absolute;right:max(30px,env(safe-area-inset-right));bottom:max(30px,env(safe-area-inset-bottom));display:flex;gap:8px;align-items:center;color:#3d352a57;font-size:10px;letter-spacing:.1em;text-transform:uppercase}.vision-status-dot{display:block;width:6px;height:6px;border:1px solid rgba(61,53,42,.31);border-radius:50%;box-shadow:0 0 0 4px #3d352a0d}.vision-status.ready .vision-status-dot{border-color:var(--amber);background:var(--amber)}.vision-status.hand-seen .vision-status-dot{box-shadow:0 0 0 5px #e49a2a29}.camera-notice{position:absolute;z-index:8;bottom:32px;left:50%;display:flex;gap:11px;align-items:center;max-width:min(600px,calc(100% - 40px));padding:12px 15px;border:1px solid rgba(98,64,32,.17);border-radius:14px;background:#fff9ebe8;box-shadow:0 8px 30px #362b1c1a;color:#3d352ab8;font-size:12px;transform:translate(-50%);backdrop-filter:blur(10px)}.diagnostic-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;letter-spacing:.09em;opacity:.7;white-space:nowrap}.camera-notice-icon{display:grid;color:var(--amber);place-items:center}.camera-notice-icon .icon{width:17px;height:17px}.camera-notice button{padding:5px 2px;background:transparent;color:var(--charcoal);font-weight:700;text-decoration:underline;text-underline-offset:3px}.locked-screen{display:grid;width:100%;height:100%;padding:100px 24px 40px;place-items:center}.locked-card{width:min(460px,100%);padding:clamp(30px,5vw,52px);border:1px solid rgba(69,59,45,.12);border-radius:28px;background:#fffbf08a;box-shadow:0 22px 70px #48361c14;backdrop-filter:blur(10px)}.locked-icon{display:grid;width:47px;height:47px;margin-bottom:29px;border-radius:50%;background:#e49a2a21;color:#3d352aa6;place-items:center}.locked-icon .icon{width:22px;height:22px}.locked-card h1{max-width:330px;font-size:clamp(32px,4vw,49px)}.settings-row{display:flex;align-items:center;justify-content:space-between;min-height:62px;margin-top:25px;padding-top:19px;border-top:1px solid var(--line)}.settings-camera-row{margin-top:0}.settings-label{display:inline-flex;gap:10px;align-items:center;color:#3d352aad;font-size:13px;font-weight:600;letter-spacing:.04em}.settings-label .icon{width:18px;height:18px;color:#3d352a82}.camera-glyph{display:inline-block;width:18px;height:13px;border:1.6px solid rgba(61,53,42,.51);border-radius:3px;position:relative}.camera-glyph:before{position:absolute;top:3px;left:5px;width:5px;height:5px;border:1.4px solid rgba(61,53,42,.51);border-radius:50%;content:""}.toggle{position:relative;width:46px;height:27px;padding:3px;border-radius:999px;background:#3d352a2b;transition:background .18s ease}.toggle span{display:block;width:21px;height:21px;border-radius:50%;background:#fffaf0;box-shadow:0 2px 5px #3727121f;transition:transform .18s ease}.toggle.is-on{background:var(--amber)}.toggle.is-on span{transform:translate(19px)}.segmented-control{display:flex;padding:3px;border-radius:999px;background:#3d352a14}.segmented-control button{min-width:57px;padding:7px 11px;border-radius:999px;background:transparent;color:#3d352a7a;font-size:11px;text-transform:lowercase}.segmented-control button.selected{background:#fffaf0;color:var(--charcoal);box-shadow:0 1px 4px #37271214}.unlock-button{display:flex;gap:11px;align-items:center;justify-content:center;width:100%;min-height:49px;margin-top:30px;border:1px solid rgba(69,59,45,.13);border-radius:999px;background:#fffbf09e;color:#3d352aa8;font-size:12px;font-weight:650;letter-spacing:.04em;transition:background .18s ease,transform .18s ease}.unlock-button:active{background:#fffaf0;transform:scale(.98)}.unlock-button .icon{width:17px;height:17px}.locked-card>.privacy-note{justify-content:center;margin-bottom:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (max-width: 760px),(orientation: portrait){.topbar{right:18px;left:20px}.welcome-screen{display:flex;flex-direction:column-reverse;align-items:stretch;justify-content:center;padding:95px 28px 48px}.welcome-orbit{width:min(84vw,440px);margin:0 auto 2vh;transform:translate(3%)}.welcome-copy{max-width:430px;margin:0 auto}.welcome-copy h1{font-size:clamp(42px,11vw,62px)}.gesture-target{top:55%;left:22%;width:clamp(155px,39vw,260px)}.animal-lane{top:18%;right:-12%;left:31%}.animal-flight{width:min(65vw,480px)}.camera-edge-mark{left:5%;width:90%}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.screen-welcome .welcome-screen{grid-template-columns:minmax(280px,.72fr) minmax(520px,1.28fr);gap:clamp(26px,4vw,68px);width:min(1320px,100%);padding-right:clamp(28px,5vw,84px);padding-left:clamp(28px,5vw,84px)}.screen-welcome .welcome-copy{max-width:390px}.screen-welcome .welcome-orbit{display:none}.spellbook{position:relative;z-index:2;display:grid;grid-column:2;grid-row:1;grid-template-columns:repeat(8,1fr);gap:12px;align-items:stretch;width:100%}.spell-card{position:relative;display:grid;grid-column:span 2;grid-template-rows:auto 1fr auto auto;min-height:205px;padding:17px 16px 16px;overflow:hidden;border:1px solid rgba(72,61,45,.11);border-radius:28px;background:#fffcef70}.spell-card:nth-child(5){grid-column:2 / span 2}.spell-number{color:#443a2b59;font-size:10px;font-weight:700;letter-spacing:.16em}.spell-hand{place-self:center;color:#302b24bf;font-family:Georgia,serif;font-size:clamp(35px,4.4vw,62px);filter:grayscale(1) saturate(0) brightness(.58) blur(.15px) drop-shadow(0 8px 8px rgba(44,36,25,.15))}.spell-hand-shark{animation:spell-swish 2.2s ease-in-out infinite}.spell-hand-dinosaur{font-size:clamp(25px,3vw,42px)}.spell-hand-horse,.spell-hand-duck{font-family:system-ui,sans-serif}.spell-link{position:absolute;top:48%;right:12px;left:12px;height:1px;background:linear-gradient(90deg,transparent,rgba(228,154,42,.35),transparent)}.spell-animal{color:var(--charcoal);font-family:Georgia,serif;font-size:20px}.spell-instruction{margin-top:3px;color:#3d352a85;font-size:10px;letter-spacing:.09em;text-transform:uppercase}@keyframes spell-swish{0%,to{transform:translate(-12px)}50%{transform:translate(12px)}}.shadow-stage{position:absolute;inset:0;overflow:hidden}.hand-portal{position:absolute;z-index:3;bottom:max(22px,env(safe-area-inset-bottom));left:max(22px,env(safe-area-inset-left));width:clamp(156px,18vw,220px);aspect-ratio:1;overflow:hidden;border:1px solid rgba(219,145,35,.28);border-radius:50%;box-shadow:inset 0 0 38px #fff7d3e0,0 0 0 8px #e1972a06,0 10px 28px #3d2e1812;transition:box-shadow .26s ease,transform .26s ease}.hand-portal.has-pose{box-shadow:inset 0 0 36px #fff6cfd6,0 0 0 8px #e1972a0b,0 0 22px #e1972a26}.portal-video,.portal-contour,.portal-vignette,.portal-progress{position:absolute;inset:0;width:100%;height:100%;border-radius:50%}.portal-video{object-fit:cover;filter:grayscale(1) sepia(.12) contrast(1.65) brightness(1.22) blur(.35px);opacity:.5;transform:scaleX(-1) scale(1.06);mix-blend-mode:multiply}.portal-contour{z-index:2}.portal-vignette{z-index:3;box-shadow:inset 0 0 40px 13px #faf2d5ad;pointer-events:none}.portal-progress{z-index:4;padding:7px;background:conic-gradient(var(--amber) var(--portal-progress, 0deg),rgba(228,154,42,.1) 0deg);mask:radial-gradient(circle,transparent calc(50% - 7px),#000 calc(50% - 6px));opacity:.45;transition:opacity .18s ease}.has-pose .portal-progress{opacity:1}.portal-label{position:absolute;z-index:5;right:11%;bottom:9%;left:11%;display:flex;flex-direction:column;align-items:center;color:#2f282094;font-size:clamp(8px,.75vw,10px);font-weight:650;letter-spacing:.08em;text-align:center;text-transform:uppercase}.portal-label small{margin-top:3px;color:#dd8e1bd1;font-size:7px;letter-spacing:.15em}.animal-world{position:absolute;z-index:2;inset:10% 2% 4% 7%;overflow:hidden;pointer-events:none}.world-instruction{position:absolute;z-index:5;right:8%;bottom:max(24px,env(safe-area-inset-bottom));left:24%;margin:0;color:#3d352a61;font-size:clamp(10px,1.1vw,13px);letter-spacing:.12em;text-align:center;text-transform:lowercase;pointer-events:none}.world-animal{position:absolute;width:var(--animal-size, 240px);color:#2e2923c7;filter:drop-shadow(0 13px 10px rgba(52,40,24,.14));transform-origin:center;will-change:transform,opacity;animation:world-roam var(--roam-duration, 18s) ease-in-out infinite alternate;animation-delay:var(--roam-delay, 0s)}.world-animal.is-emerging{animation:world-emerge .9s cubic-bezier(.2,.8,.2,1) both,world-roam var(--roam-duration, 18s) .9s ease-in-out infinite alternate}.world-animal.is-reacting .animal-figure{animation:animal-delight .65s ease-out}.world-animal.is-exiting{animation:world-exit .9s ease-in forwards}.animal-figure,.animal-figure svg{width:100%;overflow:visible}.animal-figure svg{fill:currentColor}.rig-eye{fill:#141210e6}.rig-shell-mark{fill:#fff8e11f}.rig-spines{fill:none;stroke:currentColor;stroke-width:13;stroke-linecap:round;stroke-linejoin:round}.animal-figure-rabbit{animation:rabbit-body 1.5s ease-in-out infinite}.animal-figure-rabbit .rig-ears{transform-origin:170px 54px;animation:rabbit-ears 1.5s ease-in-out infinite}.animal-figure-rabbit .rig-leg-a{transform-origin:130px 90px;animation:rabbit-leg .75s ease-in-out infinite alternate}.animal-figure-rabbit .rig-leg-b{transform-origin:95px 91px;animation:rabbit-leg .75s .25s ease-in-out infinite alternate-reverse}.animal-figure-bird .rig-wing-a{transform-origin:132px 74px;animation:wing-up .7s ease-in-out infinite alternate}.animal-figure-bird .rig-wing-b{transform-origin:137px 77px;animation:wing-down .7s ease-in-out infinite alternate}.animal-figure-turtle .rig-head{transform-origin:175px 72px;animation:turtle-head 3.8s ease-in-out infinite}.animal-figure-turtle .rig-leg-a{animation:turtle-step 1.4s ease-in-out infinite alternate}.animal-figure-turtle .rig-leg-b{animation:turtle-step 1.4s ease-in-out infinite alternate-reverse}.animal-figure-shark{animation:shark-body 1.4s ease-in-out infinite alternate;transform-origin:center}.animal-figure-shark .rig-fin{animation:shark-fin .8s ease-in-out infinite alternate;transform-origin:145px 60px}.animal-figure-dinosaur{animation:dino-weight 1.2s ease-in-out infinite}.animal-figure-dinosaur .rig-head{transform-origin:188px 91px;animation:dino-head 2.5s ease-in-out infinite}.animal-figure-dinosaur .rig-leg-a{animation:dino-step 1.2s ease-in-out infinite alternate}.animal-figure-dinosaur .rig-leg-b{animation:dino-step 1.2s ease-in-out infinite alternate-reverse}.animal-figure-horse{animation:horse-body .8s ease-in-out infinite}.animal-figure-horse .rig-leg-a{transform-origin:140px 105px;animation:horse-leg .8s ease-in-out infinite alternate}.animal-figure-horse .rig-leg-b{transform-origin:140px 105px;animation:horse-leg .8s .4s ease-in-out infinite alternate-reverse}.animal-figure-horse .rig-tail{transform-origin:77px 88px;animation:horse-tail 1.2s ease-in-out infinite alternate}.animal-figure-horse .rig-mane{opacity:.82}.animal-figure-duck{animation:duck-body .9s ease-in-out infinite}.animal-figure-duck .rig-head{transform-origin:158px 75px;animation:duck-head 1.8s ease-in-out infinite}.animal-figure-duck .rig-wing{transform-origin:117px 92px;animation:duck-wing 1.2s ease-in-out infinite alternate}.animal-figure-duck .rig-leg{fill:none;stroke:currentColor;stroke-width:9;stroke-linecap:round;stroke-linejoin:round}.animal-figure-duck .rig-leg-a{transform-origin:94px 124px;animation:duck-step .9s ease-in-out infinite alternate}.animal-figure-duck .rig-leg-b{transform-origin:134px 126px;animation:duck-step .9s .45s ease-in-out infinite alternate-reverse}@keyframes world-emerge{0%{opacity:0;transform:translate(-45vw,15vh) scale(.28)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes world-exit{to{opacity:0;transform:translate(34vw,-10vh) scale(.72)}}@keyframes world-roam{0%{transform:translate3d(var(--x0, 2vw),var(--y0, 4vh),0) scale(var(--scale, 1))}34%{transform:translate3d(var(--x1, 16vw),var(--y1, 19vh),0) scale(var(--scale, 1))}68%{transform:translate3d(var(--x2, 5vw),var(--y2, 39vh),0) scale(var(--scale, 1))}to{transform:translate3d(var(--x3, 29vw),var(--y3, 24vh),0) scale(var(--scale, 1))}}@keyframes animal-delight{40%{transform:translateY(-18px) scale(1.08) rotate(-3deg)}}@keyframes rabbit-body{0%,to{transform:translateY(0) rotate(-2deg)}45%{transform:translateY(-16px) rotate(3deg) scaleY(.95)}}@keyframes rabbit-ears{50%{transform:rotate(-8deg)}}@keyframes rabbit-leg{to{transform:rotate(22deg) translate(8px)}}@keyframes wing-up{to{transform:rotate(-34deg)}}@keyframes wing-down{to{transform:rotate(30deg)}}@keyframes turtle-head{45%,62%{transform:translate(-17px) scale(.82)}}@keyframes turtle-step{to{transform:translate(11px) rotate(8deg)}}@keyframes shark-body{to{transform:skewY(2deg) rotate(1.5deg)}}@keyframes shark-fin{to{transform:rotate(10deg)}}@keyframes dino-weight{50%{transform:translateY(5px) rotate(.8deg)}}@keyframes dino-head{50%{transform:rotate(6deg)}}@keyframes dino-step{to{transform:translate(10px) rotate(-5deg)}}@keyframes horse-body{50%{transform:translateY(-8px) rotate(-1deg)}}@keyframes horse-leg{to{transform:rotate(12deg) translateY(-3px)}}@keyframes horse-tail{to{transform:rotate(-9deg)}}@keyframes duck-body{50%{transform:translateY(-5px) rotate(2deg)}}@keyframes duck-head{50%{transform:rotate(-4deg) translateY(2px)}}@keyframes duck-wing{to{transform:rotate(-7deg)}}@keyframes duck-step{to{transform:rotate(12deg) translate(4px)}}@media (max-width: 760px),(orientation: portrait){.screen-welcome .welcome-screen{display:flex;padding-top:84px}.spellbook{display:flex;width:100%;overflow-x:auto;scroll-snap-type:x mandatory}.spell-card{flex:0 0 min(62vw,225px);min-height:178px;scroll-snap-align:center}.hand-portal{inset:auto auto 18px 18px;width:min(38vw,190px)}.animal-world{inset:12% 0 0}.world-animal{--animal-size: 180px}}@media (prefers-reduced-motion: reduce){.world-animal{animation-duration:28s!important;animation-iteration-count:infinite!important}.animal-figure,.animal-figure *{animation-duration:3s!important;animation-iteration-count:infinite!important}}
