@font-face{font-family:Outfit;src:url('assets/outfit-latin.woff2') format('woff2');font-weight:100 900;font-display:swap}
@font-face{font-family:Playfair;src:url('assets/playfair-italic-latin.woff2') format('woff2');font-style:italic;font-weight:400 900;font-display:swap}
:root{font-family:Outfit,system-ui,sans-serif;color:#F8F3E4;background:#4A4C37;font-synthesis:none;color-scheme:dark;--forest:#4A4C37;--shell:#F8F3E4;--lemon:#FFFB54;--cacao:#342516;--sand:#EFE4B5;--light-moss:#817C50;--stone:#E2E0D6}
*{box-sizing:border-box}body{margin:0}button{font:inherit;cursor:pointer}button:focus-visible{outline:2px solid currentColor;outline-offset:5px}button:active{transform:scale(.97)}[hidden]{display:none!important}em{font-family:Playfair,serif;font-weight:400}
.ambient{position:fixed;inset:0;z-index:-1;pointer-events:none;background:var(--forest);overflow:hidden}
.ambient:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(52,37,22,.42),rgba(52,37,22,.28) 27%,transparent 43%,transparent 64%,rgba(52,37,22,.38) 82%);pointer-events:none}
.gradient{position:absolute;width:110vmax;height:110vmax;border-radius:50%;transform-origin:center;will-change:transform;opacity:.8}
.gradient-sand{left:-65vmax;top:-48vmax;background:radial-gradient(ellipse,rgba(239,228,181,.9),rgba(239,228,181,0) 64%);animation:drift-sand 12s ease-in-out infinite alternate}
.gradient-lemon{left:-30vmax;top:28vh;background:radial-gradient(ellipse,rgba(255,251,84,.68),rgba(255,251,84,0) 60%);animation:drift-lemon 15s ease-in-out infinite alternate}
.gradient-cacao{left:15vw;top:-10vmax;background:radial-gradient(ellipse,rgba(52,37,22,.9),rgba(52,37,22,0) 66%);animation:drift-cacao 18s ease-in-out infinite alternate}
@keyframes drift-sand{from{transform:translate(-8vw,-8vh) scale(.85)}to{transform:translate(40vw,45vh) scale(1.05)}}
@keyframes drift-lemon{from{transform:translate(35vw,26vh) scale(.8)}to{transform:translate(-36vw,-40vh) scale(1.12)}}
@keyframes drift-cacao{from{transform:translate(30vw,-30vh)}to{transform:translate(-35vw,35vh)}}
.word{display:inline-block}.intro .word{animation:word-arrive 700ms cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i)*80ms)}
@keyframes word-arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
#home{min-height:100dvh;display:flex;flex-direction:column;overflow:hidden;padding-bottom:max(28px,env(safe-area-inset-bottom))}
.masthead{width:calc(100% - 44px);max-width:680px;margin:0 auto;min-height:96px;padding-top:max(23px,env(safe-area-inset-top));display:flex;align-items:center}.masthead img{width:104px;height:53px;object-fit:contain}
.experience{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px 8px 24px}
.intro{text-align:center;padding:0 12px}.intro h1{font-size:32px;line-height:1.15;font-weight:400;margin:0 0 14px}.intro p{font-size:14px;opacity:.92;margin:0}
.wheel-wrap{position:relative;width:min(420px,calc(100vw - 12px));margin:0}
#wheel{position:relative;width:100%;height:auto;display:block;overflow:visible;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}
#frosted-panes{position:absolute;inset:0;pointer-events:none}
.frost-pane{position:absolute;inset:0;transform-origin:center;background:rgba(248,243,228,.47);}
.frost-pane:after{content:'';position:absolute;inset:0;background:url('assets/frost-grain.svg');opacity:.12;pointer-events:none}
.frost-pane.selected{background:rgba(255,251,84,.82)}
.petal{cursor:pointer;outline:none}.petal .base{fill:transparent;stroke:none}.petal .material{fill:url(#surface);stroke:url(#rim);stroke-width:1.4;pointer-events:none}.petal:focus-visible .material{stroke:#FFFB54;stroke-width:2}.pointer-return .petal:focus-visible .material{stroke:url(#rim);stroke-width:1.4}
.petal text{font-family:Outfit,sans-serif;font-size:18.5px;font-weight:450;pointer-events:none;fill:#342516}.petal .glyph{fill:none;stroke:#4A4C37;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.footnote{text-align:center;min-height:35px;margin-top:18px;padding:0 14px}.footnote p{margin:0}.footnote #instructions{font-size:12px;opacity:.8;margin-top:0}
#session{position:fixed;inset:0;z-index:4;color:var(--shell);overflow-y:auto;overscroll-behavior:contain;opacity:0;padding-bottom:max(28px,env(safe-area-inset-bottom))}
.session-header{display:flex;justify-content:space-between;align-items:center;width:calc(100% - 40px);max-width:680px;margin:0 auto;padding-top:max(23px,env(safe-area-inset-top));min-height:96px}.session-header img{width:95px;height:50px;object-fit:contain}
.back{display:flex;align-items:center;gap:8px;border:1px solid #f8f3e43d;border-radius:100px;color:var(--shell);background:#f8f3e40b;padding:11px 15px;backdrop-filter:blur(18px) saturate(140%);box-shadow:inset 0 1px 0 #f8f3e420;font-size:13px}.back svg{fill:none;stroke:currentColor;stroke-width:1.5}
.session-content{width:calc(100% - 40px);max-width:650px;margin:33px auto 0;text-align:center}.session-content h2{font-size:36px;font-weight:400;margin:0 0 10px;line-height:1.15}.session-content>p{font-size:14px;line-height:1.5;opacity:.8;margin:0 0 25px}
.video-frame{position:relative;aspect-ratio:4/4.4;max-height:52dvh;background:transparent;border:0;border-radius:28px;overflow:hidden;isolation:isolate}.video-frame video{width:100%;height:100%;object-fit:cover;display:block;opacity:1}.video-caption{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px;pointer-events:none;padding-bottom:12px}.video-caption>span{font-size:29px;color:#F8F3E4}.video-caption em{color:#FFFB54}#video-error{position:absolute;inset:0;padding:35px;display:grid;place-content:center;background:var(--cacao)}
.session-content .placeholder-note{font-size:10px;margin:16px 0 23px;opacity:.62}.another{background:#FFFB54;border:none;color:#342516;padding:15px 22px;border-radius:100px;display:inline-flex;gap:24px;align-items:center;font-size:13px}.another span{font-size:19px}
@media(min-width:700px){#home{padding-bottom:30px}.masthead{min-height:104px}.masthead img{width:118px;height:58px}.experience{padding:20px 20px 45px}.intro h1{font-size:40px}.intro p{font-size:16px}.wheel-wrap{width:460px;margin-top:0}.petal text{font-size:16px}.footnote{margin-top:20px}.session-header{min-height:104px}.session-content{margin-top:25px}.session-content h2{font-size:42px}.session-content>p{font-size:15px}.video-frame{aspect-ratio:16/10;max-height:none}.session-content .placeholder-note{font-size:11px}}
@media(max-height:720px) and (max-width:699px){#home{padding-bottom:12px}.masthead{min-height:80px}.experience{padding-top:12px;padding-bottom:15px}.intro h1{font-size:28px;margin-bottom:10px}.wheel-wrap{width:min(360px,calc(100vw - 18px));margin-top:0}.footnote{margin-top:12px;min-height:30px}.session-content{margin-top:15px}.video-frame{max-height:44dvh}.session-content .placeholder-note{margin:12px 0 18px}}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.frost-pane{background:rgba(248,243,228,.94)}.frost-pane.selected{background:#FFFB54}#shared-frost{background:#F8F3E4!important}}
@media(prefers-reduced-motion:reduce){.gradient,.intro .word{animation:none!important;will-change:auto}}
@media(prefers-reduced-transparency:reduce){.back{background:#4A4C37;-webkit-backdrop-filter:none;backdrop-filter:none}.frost-pane{background:#F8F3E4;-webkit-backdrop-filter:none;backdrop-filter:none}.frost-pane.selected{background:#FFFB54}#shared-frost{background:#F8F3E4!important;-webkit-backdrop-filter:none;backdrop-filter:none}}
@media(prefers-contrast:more){.intro p,.footnote #instructions,.placeholder-note{opacity:1!important}.frost-pane{background:#F8F3E4}.frost-pane.selected{background:#FFFB54}.petal .material{stroke:#342516;stroke-opacity:.6;fill:none}}

.selection-preview{height:44px;display:grid;place-items:center;margin-top:16px;position:relative;z-index:1}
.selection-preview p{font-size:20px;font-weight:450;margin:0;color:var(--shell)}
.selection-preview:has(#preview-title:empty){visibility:hidden}
@media(max-height:720px) and (max-width:699px){.selection-preview{height:30px;margin-top:10px}.selection-preview p{font-size:18px}.footnote #instructions{font-size:10px;margin-top:10px}}

.core-light{position:absolute;inset:0;transform-origin:center;pointer-events:none;opacity:var(--core-energy,.62)}
.core-light:before{content:"";position:absolute;inset:14%;border-radius:50%;background:radial-gradient(circle,rgba(255,251,84,.4),rgba(255,251,84,.21) 30%,rgba(255,251,84,.09) 48%,transparent 70%);animation:core-breathe 8s ease-in-out infinite alternate}
#core-mark{filter:drop-shadow(0 0 6px rgba(255,251,84,.62)) drop-shadow(0 0 18px rgba(255,251,84,.38))}
.petal .reflection{fill:url(#core-reflection);stroke:none;pointer-events:none}
@keyframes core-breathe{from{opacity:.65;transform:scale(.93)}to{opacity:1;transform:scale(1.07)}}
@media(prefers-reduced-motion:reduce){.core-light:before{animation:none}}
@media(prefers-reduced-transparency:reduce){.core-light{display:none}}

.petal .glyph{stroke-width:1.65}
#heart{will-change:transform}

.pointer-session .back:focus-visible{outline:none}

/* Frosted material is precomposed from soft gradients and grain. Moving glass
   must not resample the entire animated backdrop for every tile on every frame. */
.frost-pane{background:linear-gradient(145deg,#f8f3e4a6,#efe4b56b 55%,#e2e0d67d);isolation:isolate}
.frost-pane:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 85%,#fffb54b3,transparent 80%);opacity:var(--heat,0);pointer-events:none}
.frost-pane.selected{background:linear-gradient(145deg,#f8f3e4a6,#efe4b56b 55%,#e2e0d67d)}
#home[inert]{pointer-events:none}
