.passport-stage{color:var(--experience-ink,var(--foreground));font-family:var(--experience-body,"Inter", sans-serif);padding-block:.4rem 1rem;overflow-x:clip;container:passportbook/inline-size}.passport-book-float-layer{display:contents}.passport-stage--today-floating .passport-book-float-layer{isolation:isolate;display:block;position:relative}.passport-stage--today-floating{padding-block:.5rem 1.25rem;overflow:visible}.passport-stage--today-floating .passport-3d{--passport-w:min(82%, 18.5rem);--passport-x:calc((100% - var(--passport-w)) / 2);min-height:26rem}.passport-stage--today-floating[data-phase=closed] .passport-book-float-layer{animation:7.4s ease-in-out infinite passport-book-float}.passport-stage--today-floating[data-phase=closed] .passport-book-float-layer:hover,.passport-stage--today-floating[data-phase=closed] .passport-book-float-layer:focus-within{animation-play-state:paused}.passport-book-float-shadow{z-index:-1;filter:blur(.85rem);opacity:0;pointer-events:none;background:oklch(8% .018 45/.5);border-radius:50%;width:min(64%,17rem);height:2rem;transition:opacity .22s ease-out;position:absolute;bottom:1.1rem;left:50%;transform:translate(-50%)scaleX(.92)}.passport-stage--today-floating[data-phase=closed] .passport-book-float-shadow{opacity:.7}@keyframes passport-book-float{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@media (width>=768px){.passport-stage--today-floating .passport-3d{--passport-w:min(21rem, calc(100% - 1rem));--passport-x:calc((100% - var(--passport-w)) / 2);min-height:30rem}.passport-stage--today-floating .passport-cover-face{padding:2rem 1.65rem}.passport-stage--today-floating .passport-cover-title{font-size:clamp(1.35rem,5cqi,1.85rem)}}.passport-3d{perspective:1400px;--passport-w:100%;--passport-x:0px;--passport-cover-a:color-mix(in oklab, var(--experience-cover,var(--accent)) 86%, black);--passport-cover-b:color-mix(in oklab, var(--experience-cover,var(--accent)) 68%, black);--passport-cover-ink:color-mix(in oklab, var(--experience-accent,var(--accent)) 72%, white);min-height:22rem;position:relative}@container passportbook (width>=26rem){.passport-3d{--passport-w:17rem;--passport-x:calc((100% - 17rem) / 2)}}@container passportbook (width>=58rem){.passport-stage[data-expanded=true] .passport-3d{grid-template-columns:minmax(0,2fr) minmax(17rem,.78fr);align-items:start;gap:1.25rem;display:grid}}.passport-inner{top:-.35rem;bottom:-.3rem;left:calc(var(--passport-x) - .5rem);width:calc(var(--passport-w) + .8rem);z-index:0;background:linear-gradient(150deg,oklch(27% .035 45),oklch(19% .03 42));border-radius:.7rem;transition:left .32s ease-out,width .32s ease-out;position:absolute;box-shadow:0 1rem 1.8rem -.9rem oklch(8% .02 45/.7)}.passport-stage[data-phase=closed] .passport-pages{visibility:hidden}.passport-stage[data-phase=closed] .passport-pages *{pointer-events:none}.passport-stage[data-expanded=true] .passport-inner{width:calc(100% + .8rem);left:-.5rem}.passport-stage[data-phase=expanding] .passport-cover,.passport-stage[data-phase=open] .passport-cover,.passport-stage[data-phase=collapsing] .passport-cover{z-index:0}.passport-pages{z-index:1;width:var(--passport-w);color:var(--foreground);background-color:var(--experience-paper,var(--surface));background-image:var(--passport-paper-image,none);margin-left:var(--passport-x);--background:oklch(95.5% .02 88);--surface:oklch(97.5% .014 88);--surface-2:oklch(94% .022 86);--foreground:oklch(27% .014 62);--muted-foreground:oklch(43% .02 62);--muted:oklch(92% .024 84);--border:oklch(82% .03 80);--input:oklch(82% .03 80);--card:oklch(97.8% .012 88);--card-foreground:oklch(27% .014 62);--secondary:oklch(90% .03 82);--secondary-foreground:oklch(27% .014 62);--primary:oklch(34% .035 62);--primary-foreground:oklch(98% .014 88);--accent:oklch(89% .04 84);--accent-foreground:oklch(24% .014 62);--accent-strong:oklch(40% .075 72);--ring:oklch(40% .075 72);background-position:50%;background-size:cover;background:var(--background);border-radius:.2rem .55rem .55rem .2rem;padding:.75rem;position:relative;overflow:hidden;box-shadow:0 1.25rem 2rem -1.35rem oklch(18% .025 55/.65),inset 6px 0 12px -11px oklch(30% .02 60)}.passport-stage[data-phase=open] .passport-pages{width:100%;margin-left:0;overflow:visible}.passport-page-heading{justify-content:space-between;align-items:center;gap:.75rem;padding:.35rem .45rem .8rem;display:flex}.passport-close{flex:none;min-height:2.5rem}.passport-spread{min-height:18rem;transform-style:preserve-3d;grid-template-columns:minmax(0,1fr);display:grid;position:relative}.passport-paper{border:1px solid var(--border);background:radial-gradient(circle at 22% 18%, oklch(74% .035 80/.12) 0 1px, transparent 1.4px), repeating-linear-gradient(92deg, transparent 0 7px, oklch(72% .025 80/.06) 7px 8px), var(--surface);min-width:0;box-shadow:0 4px 0 -2px color-mix(in oklab, var(--border) 65%, transparent), 0 8px 0 -5px color-mix(in oklab, var(--border) 42%, transparent);background-size:19px 23px,auto,auto;border-radius:.2rem .45rem .45rem .2rem;padding:.9rem .75rem 1.15rem;position:relative}.passport-paper[data-empty=true]{display:none}.passport-stamp-grid{gap:.65rem;display:grid}.passport-instruction{color:var(--muted-foreground);margin:.8rem .35rem .2rem;font-size:.7rem}@container passportbook (width>=42rem){.passport-spread{grid-template-columns:repeat(2,minmax(0,1fr))}.passport-paper{min-height:22rem;box-shadow:-.35rem .55rem 1rem -.7rem oklch(18% .025 55/.5), 0 5px 0 -3px color-mix(in oklab, var(--border) 62%, transparent);border-radius:.25rem 0 0 .25rem}.passport-paper+.passport-paper{box-shadow:.35rem .55rem 1rem -.7rem oklch(18% .025 55/.5), 0 5px 0 -3px color-mix(in oklab, var(--border) 62%, transparent);border-radius:0 .25rem .25rem 0}.passport-spread:after{content:"";z-index:3;pointer-events:none;background:linear-gradient(90deg,#0000,oklch(30% .025 60/.2),#0000);width:1rem;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}}@keyframes passport-page-next{0%{opacity:.7;transform:perspective(1000px)rotateY(-12deg)}to{opacity:1;transform:perspective(1000px)rotateY(0)}}@keyframes passport-page-previous{0%{opacity:.7;transform:perspective(1000px)rotateY(12deg)}to{opacity:1;transform:perspective(1000px)rotateY(0)}}.passport-spread[data-turn=next] .passport-paper{transform-origin:0;animation:.44s ease-out passport-page-next}.passport-spread[data-turn=previous] .passport-paper{transform-origin:100%;animation:.44s ease-out passport-page-previous}.passport-detail-panel{border-left:1px solid var(--border);padding:.5rem 0 .5rem 1.25rem;display:none}@container passportbook (width>=58rem){.passport-stage[data-expanded=true] .passport-detail-panel{display:block}}.passport-detail-dialog{border-radius:.75rem}.passport-3d[data-cover=kangas]{--passport-cover-a:color-mix(in oklab, var(--accent) 26%, oklch(42% .02 70));--passport-cover-b:color-mix(in oklab, var(--accent) 8%, oklch(28% .018 70))}.passport-3d[data-cover=kausi]{--passport-cover-a:color-mix(in oklab, var(--accent) 62%, oklch(30% .03 45));--passport-cover-b:color-mix(in oklab, var(--accent) 28%, oklch(20% .025 42))}.passport-cover{top:0;left:var(--passport-x);z-index:2;width:var(--passport-w);aspect-ratio:5/7;cursor:pointer;transform-style:preserve-3d;transform-origin:0;background:0 0;border:0;padding:0;transition:transform .78s cubic-bezier(.22,.61,.36,1);position:absolute;transform:rotateY(0)}.passport-stage[data-phase=opening] .passport-cover,.passport-stage[data-phase=expanding] .passport-cover,.passport-stage[data-phase=open] .passport-cover,.passport-stage[data-phase=collapsing] .passport-cover{pointer-events:none;transform:rotateY(-162deg)}.passport-cover-face{backface-visibility:hidden;background:var(--passport-cover-image,linear-gradient(transparent, transparent)), radial-gradient(120% 90% at 25% 15%, oklch(100% 0 0/.08), transparent 60%), repeating-linear-gradient(32deg, oklch(0% 0 0/.075) 0 1px, transparent 1px 4px), linear-gradient(150deg, var(--passport-cover-a), var(--passport-cover-b));color:var(--passport-cover-ink);background-position:50%;background-size:cover;border-radius:.25rem .65rem .65rem .25rem;flex-direction:column;justify-content:space-between;align-items:center;gap:.75rem;padding:1.5rem 1.1rem;display:flex;position:absolute;inset:0;box-shadow:0 1.1rem 2rem -1rem oklch(8% .02 45/.75),inset 0 1px oklch(100% 0 0/.12),inset 0 -1.5rem 2rem -1.6rem oklch(0% 0 0/.6)}.passport-stage[data-visual-preset] .passport-cover-face{font-family:var(--experience-heading,"Montserrat", sans-serif)}.passport-stage[data-scene=maisema] .passport-cover-face{background:linear-gradient(180deg, oklch(0% 0 0/.42), oklch(0% 0 0/.58)), var(--passport-cover-image,linear-gradient(transparent, transparent)), linear-gradient(150deg, var(--passport-cover-a), var(--passport-cover-b));color:oklch(97% .012 88);background-position:50%;background-size:cover}.passport-cover-frame{border:2px double color-mix(in oklab, var(--passport-cover-ink) 58%, transparent);pointer-events:none;border-radius:.2rem .45rem .45rem .2rem;position:absolute;inset:.6rem;box-shadow:inset 0 0 0 1px oklch(0% 0 0/.25),0 1px oklch(100% 0 0/.14)}.passport-cover-spine{pointer-events:none;background:linear-gradient(90deg,oklch(0% 0 0/.45),#0000);border-radius:.3rem 0 0 .3rem;width:.55rem;position:absolute;top:0;bottom:0;left:0}.passport-cover-spine:after{content:"";border-left:1px dashed color-mix(in oklab, var(--passport-cover-ink) 38%, transparent);position:absolute;inset:0 0 0 .18rem}.passport-cover-logo{filter:drop-shadow(0 1px oklch(0% 0 0/.45));width:3.1rem;height:auto}.passport-cover-title{font-family:var(--font-display,inherit);text-align:center;letter-spacing:0;text-shadow:0 1px oklch(0% 0 0/.4);font-size:1.05rem;font-weight:600}.passport-cover-kind{letter-spacing:.24em;text-transform:uppercase;opacity:.85;font-size:.62rem}.passport-cover-name{font-family:"Caveat", var(--font-sans,inherit);font-size:1.3rem;line-height:1.1}.passport-cover-hint{opacity:.85;font-size:.7rem}.passport-cover-back{backface-visibility:hidden;background:linear-gradient(150deg,oklch(30% .03 45),oklch(22% .025 42));border-radius:.3rem .7rem .7rem .3rem;position:absolute;inset:0;transform:rotateY(180deg)}.passport-stamp{border:1px dashed var(--border);background:var(--surface);min-height:7.25rem;color:var(--foreground);text-align:center;border-radius:.25rem;flex-direction:column;justify-content:center;align-items:center;gap:.15rem;padding:.45rem .35rem .55rem;font-size:.68rem;display:flex;position:relative;overflow:hidden}.passport-stamp:hover{background:var(--surface-2)}.passport-stamp-selected{outline:2px solid var(--accent-strong);outline-offset:2px}.passport-stamp[data-state=done]{border-style:solid;border-color:var(--accent-strong)}.passport-stamp-art{border:1px dashed color-mix(in oklab, var(--muted-foreground) 48%, transparent);width:3.25rem;height:3.25rem;color:color-mix(in oklab, var(--muted-foreground) 68%, transparent);border-radius:50%;place-items:center;display:grid;position:relative;transform:rotate(-4deg)}.passport-stamp-art:before,.passport-stamp-art:after{content:"";opacity:.48;border:1px dotted;border-radius:44% 52% 46% 55%;position:absolute;inset:.28rem}.passport-stamp-art:after{inset:.52rem;transform:rotate(17deg)}.passport-stamp-art-icon{stroke-width:1.35px;width:1.55rem;height:1.55rem}.passport-stamp-art>div,.passport-stamp-art img{border-radius:50%;width:100%;height:100%}.passport-stamp[data-state=done] .passport-stamp-art{color:var(--accent-strong);border-color:var(--accent-strong);opacity:.88}.passport-stamp-status{color:var(--muted-foreground);align-items:center;gap:.2rem;font-size:.58rem;display:flex}.passport-stamp-progress{font-family:var(--font-display,inherit);color:var(--muted-foreground);font-size:.72rem;font-weight:700}.passport-stamp-name{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-weight:600;line-height:1.2;display:-webkit-box;overflow:hidden}.passport-stamp-mark{border:2px solid var(--accent-strong);width:2.55rem;height:2.55rem;color:var(--accent-strong);letter-spacing:.04em;opacity:.92;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:.1rem;font-weight:700;animation:none;display:flex;position:absolute;top:.4rem;right:.25rem;transform:rotate(-11deg)}@keyframes passport-stamp-press{0%{opacity:0;transform:rotate(-9deg)scale(1.5)}to{opacity:.92;transform:rotate(-9deg)scale(1)}}.passport-stamp-mark[data-fresh=true]{animation:.34s ease-out passport-stamp-press}.passport-stamp-date{letter-spacing:.02em;font-size:.55rem;font-weight:600}@media (prefers-reduced-motion:reduce){.passport-cover,.passport-pages,.passport-inner{transition:none}.passport-stamp-mark,.passport-spread[data-turn] .passport-paper,.passport-stamp-mark[data-fresh=true],.passport-stage--today-floating[data-phase=closed] .passport-book-float-layer{animation:none}}@media (width<=480px){.passport-stage--today-floating[data-phase=closed] .passport-book-float-layer{animation:none}.passport-stage--today-floating{padding-block:.25rem .9rem}}@media (width>=768px) and (height<=700px){.passport-stage--today-floating .passport-3d{--passport-w:min(20rem, calc(100% - 1rem));--passport-x:calc((100% - var(--passport-w)) / 2);min-height:28rem}}.path-journey{background:radial-gradient(120% 80% at 15% 0%, color-mix(in oklab, var(--surface-2) 92%, white 8%), transparent 62%), linear-gradient(180deg, color-mix(in oklab, var(--surface-2) 97%, black 3%), var(--surface-2));border:1px solid color-mix(in oklab, var(--border) 90%, black 10%);border-radius:1.5rem;padding:1.1rem .75rem 1.4rem;position:relative;box-shadow:inset 0 1px oklab(100% 0 5.96046e-8/.2)}.path-journey__list{flex-direction:column;gap:.9rem;margin:0;padding:0 0 0 3.25rem;list-style:none;display:flex;position:relative}.path-journey__list:before,.path-journey__list:after{content:"";border-radius:999px;width:.4rem;position:absolute;top:1.4rem;bottom:1.4rem;left:1.55rem}.path-journey__list:before{background:repeating-linear-gradient(180deg, color-mix(in oklab, var(--border) 88%, black 12%) 0 10px, transparent 10px 18px)}.path-journey__list:after{height:calc((100% - 2.8rem) * var(--path-progress,0));background:linear-gradient(180deg, color-mix(in oklab, var(--accent) 85%, white 15%), var(--accent));transition:height .7s ease-out;bottom:auto}@media (prefers-reduced-motion:reduce){.path-journey__list:after{transition:none}}.path-journey__stop{min-height:3.5rem;position:relative}.path-journey__marker{border:2px solid color-mix(in oklab, var(--border) 82%, black 18%);background:var(--surface);width:2.75rem;height:2.75rem;color:var(--muted-foreground);border-radius:999px;justify-content:center;align-items:center;font-size:.85rem;font-weight:600;display:flex;position:absolute;top:.35rem;left:-3.25rem}.path-journey__button{border:1px solid color-mix(in oklab, var(--border) 85%, black 15%);background:color-mix(in oklab, var(--surface) 92%, transparent);text-align:left;width:100%;min-height:3.25rem;color:var(--foreground);border-radius:1.1rem;padding:.7rem .9rem;display:block}.path-journey__title{font-weight:600;line-height:1.25;display:block}.path-journey__meta{color:var(--muted-foreground);margin-top:.15rem;font-size:.75rem;display:block}.path-journey__stop[data-state=tehty] .path-journey__marker{border-color:var(--accent);background:color-mix(in oklab, var(--accent) 18%, var(--surface));color:var(--accent-strong)}.path-journey__stop[data-state=nyt] .path-journey__marker{border-color:var(--accent-strong);color:var(--accent-strong);box-shadow:0 0 0 4px color-mix(in oklab, var(--accent) 22%, transparent)}.path-journey__stop[data-state=nyt] .path-journey__button{border-color:var(--accent);background:color-mix(in oklab, var(--accent) 10%, var(--surface))}.path-journey__stop[data-state=tulossa] .path-journey__marker{border-style:dashed}.path-journey__stop[data-state=tulossa] .path-journey__button{color:var(--muted-foreground);background:0 0;border-style:dashed}.path-journey__button[aria-pressed=true]{outline:2px solid var(--accent);outline-offset:2px}@media (width>=640px){.path-journey{padding:1.4rem 1.1rem 1.6rem}.path-journey__list{padding-left:4rem}.path-journey__list:before,.path-journey__list:after{left:1.9rem}.path-journey__marker{width:3rem;height:3rem;left:-4rem}}.letter-envelope{background:color-mix(in oklab, var(--surface-2) 96%, black 4%);border:1px solid color-mix(in oklab, var(--border) 88%, black 12%);border-radius:1.25rem;padding:1rem;position:relative}.letter-envelope__cover{border:1px solid color-mix(in oklab, var(--border) 80%, black 20%);background:linear-gradient(180deg, color-mix(in oklab, var(--surface) 94%, var(--accent) 6%), color-mix(in oklab, var(--surface) 86%, black 6%));width:100%;min-height:9.5rem;color:var(--foreground);text-align:center;border-radius:.9rem;padding:3.6rem 1rem 1.2rem;display:block;position:relative;overflow:hidden;box-shadow:0 8px 20px -14px #0000008c}.letter-envelope__flap{background:linear-gradient(180deg, color-mix(in oklab, var(--surface) 90%, var(--accent) 10%), color-mix(in oklab, var(--surface) 80%, black 8%));clip-path:polygon(0 0,100% 0,50% 100%);border-bottom:1px solid color-mix(in oklab, var(--border) 70%, black 30%);transform-origin:top;height:3.4rem;transition:transform .42s ease-in-out;position:absolute;inset:0 0 auto}.letter-envelope[data-open=true] .letter-envelope__flap{transform:rotateX(180deg)}.letter-envelope__seal{background:color-mix(in oklab, var(--accent) 65%, var(--surface));border:1px solid color-mix(in oklab, var(--accent-strong) 60%, black 20%);border-radius:999px;width:2.1rem;height:2.1rem;position:absolute;top:2.5rem;left:50%;transform:translate(-50%)}.letter-envelope__paper{border:1px solid color-mix(in oklab, var(--border) 85%, black 15%);background:repeating-linear-gradient(180deg, transparent 0 27px, color-mix(in oklab, var(--border) 45%, transparent) 27px 28px), color-mix(in oklab, var(--surface) 97%, var(--accent) 3%);color:var(--foreground);border-radius:.9rem;padding:1.1rem 1rem;animation:.38s ease-out letter-open}.letter-envelope__body{white-space:pre-line;line-height:1.75}.letter-envelope__signature{color:var(--muted-foreground);margin-top:1rem;font-style:italic}@keyframes letter-open{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.letter-envelope__flap{transition:none}.letter-envelope__paper{animation:none}}.bingo-shell{--experience-cover:oklch(23.4% .0084 59.2);--experience-paper:oklch(97.5% .014 88);--experience-ink:oklch(23.4% .0084 59.2);--experience-accent:oklch(72% .105 78);--experience-heading:"Montserrat", sans-serif;--experience-body:"Inter", sans-serif;min-width:0;color:var(--experience-ink);font-family:var(--experience-body)}.bingo-paper{border:1px solid color-mix(in oklab, var(--experience-accent) 82%, var(--experience-ink));background-color:var(--experience-paper);background-image:linear-gradient(color-mix(in oklab, var(--experience-paper) 94%, transparent), color-mix(in oklab, var(--experience-paper) 94%, transparent)), var(--bingo-paper-image,none), repeating-linear-gradient(17deg, transparent 0 7px, color-mix(in oklab, var(--experience-ink) 3%, transparent) 8px 9px);background-position:var(--bingo-paper-position,center), center, center;min-width:0;box-shadow:inset 0 0 0 5px var(--experience-paper), inset 0 0 0 6px color-mix(in oklab, var(--experience-accent) 44%, transparent);background-size:cover,cover,auto;position:relative}.bingo-paper[data-scene=maisema]{border:1px solid color-mix(in oklab, var(--experience-accent) 58%, black 42%);background-color:var(--experience-cover);background-image:linear-gradient(180deg, oklch(0% 0 0/.32), oklch(0% 0 0/.48)), var(--bingo-frame-image,none);box-shadow:inset 0 0 0 2px color-mix(in oklab, var(--experience-accent) 52%, transparent);background-position:50%;background-repeat:no-repeat;background-size:cover;border-radius:1rem;padding:clamp(.7rem,2.2vw,1.4rem)}.bingo-paper[data-scene=maisema] .bingo-board-inner{background:color-mix(in oklab, var(--experience-paper) 88%, transparent);box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--experience-accent) 45%, transparent);border-radius:.75rem;padding:clamp(.6rem,1.8vw,1rem)}.bingo-paper[data-scene=maisema] .bingo-cell{background:var(--experience-paper)}.bingo-scroll{min-width:0}.bingo-title{font-family:var(--experience-heading)}.bingo-subtitle{letter-spacing:.16em;text-transform:uppercase;opacity:.82;margin-top:.15rem;font-size:.7rem}.bingo-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem .75rem;display:flex}.bingo-ribbon{font-family:var(--experience-heading);letter-spacing:.12em;color:color-mix(in oklab, var(--experience-ink) 88%, black 12%);background:linear-gradient(180deg, color-mix(in oklab, var(--experience-accent) 92%, white 8%), color-mix(in oklab, var(--experience-accent) 78%, black 22%));border-radius:.25rem;order:2;padding:.3rem 1.5rem;font-size:.9rem;font-weight:650;box-shadow:0 1px 3px #00000059,inset 0 1px #ffffff59}.bingo-cell{isolation:isolate;border:1px solid color-mix(in oklab, var(--experience-accent) 52%, var(--experience-paper));background:color-mix(in oklab, var(--experience-paper) 90%, white);min-height:8.5rem;color:var(--experience-ink);overflow:hidden}.bingo-cell-art{height:5.6rem;color:color-mix(in oklab, var(--experience-ink) 68%, var(--experience-accent))}.bingo-cell[data-done=true]:after{content:"";z-index:2;border:3px double var(--experience-accent);pointer-events:none;border-radius:50%;position:absolute;inset:9%;transform:rotate(-8deg)}.bingo-cell[data-fresh=true]:after{animation:.42s cubic-bezier(.2,.9,.2,1) both bingo-stamp}.bingo-line-complete{outline:3px solid var(--experience-accent);outline-offset:-2px;background:color-mix(in oklab, var(--experience-accent) 18%, var(--experience-paper))}@keyframes bingo-stamp{0%{opacity:0;transform:rotate(-14deg)scale(1.7)}to{opacity:1;transform:rotate(-8deg)scale(1)}}@media (prefers-reduced-motion:reduce){.bingo-cell[data-fresh=true]:after{animation:none}}.bingo-paper[data-preset=hyvan_olon_bingo]{border:1px solid color-mix(in oklab, var(--experience-accent) 60%, black 40%);background-color:color-mix(in oklab, var(--experience-cover) 74%, var(--experience-accent) 26%);background-image:var(--bingo-frame-image,none), repeating-linear-gradient(91deg, color-mix(in oklab, var(--experience-cover) 84%, var(--experience-accent) 16%) 0 6px, color-mix(in oklab, var(--experience-cover) 66%, var(--experience-accent) 34%) 6px 13px), linear-gradient(160deg, #ffffff14, #00000059);box-shadow:inset 0 0 0 2px color-mix(in oklab, var(--experience-accent) 62%, transparent), inset 0 0 3rem #00000073, 0 1.5rem 2.5rem -1.25rem #000000a6;background-position:50%,50%,50%;background-size:cover,auto,auto;border-radius:1rem;padding:clamp(.7rem,2.2vw,1.5rem)}.bingo-paper[data-preset=hyvan_olon_bingo] .bingo-board-inner{border:1px solid color-mix(in oklab, var(--experience-accent) 55%, transparent);background:linear-gradient(#00000047,#00000029);border-radius:.6rem;padding:clamp(.6rem,1.8vw,1.1rem);box-shadow:inset 0 0 1.5rem #00000080}.bingo-paper[data-preset=hyvan_olon_bingo] .bingo-header{text-align:center;border-bottom:1px solid color-mix(in oklab, var(--experience-accent) 38%, transparent);color:color-mix(in oklab, var(--experience-accent) 78%, var(--experience-paper) 22%);justify-content:center;padding-bottom:.35rem}.bingo-paper[data-preset=hyvan_olon_bingo] .bingo-header>div{flex:100%}.bingo-paper[data-preset=hyvan_olon_bingo] .bingo-title{letter-spacing:.01em;text-transform:none;text-shadow:0 2px 5px #0000008c;font-size:clamp(1.6rem,4.2vw,3rem);font-weight:600;line-height:1;display:block}.bingo-paper[data-preset=hyvan_olon_bingo] .bingo-subtitle,.bingo-paper[data-preset=hyvan_olon_bingo] .bingo-goal,.bingo-paper[data-preset=hyvan_olon_bingo] .bingo-footer p,.bingo-paper[data-preset=hyvan_olon_bingo] .bingo-scroll+p{color:color-mix(in oklab, var(--experience-paper) 78%, var(--experience-accent) 22%)}.bingo-paper[data-preset=hyvan_olon_bingo] .bingo-cell{border:1px solid color-mix(in oklab, var(--experience-accent) 42%, transparent);background:linear-gradient(180deg, color-mix(in oklab, var(--experience-paper) 98%, white 2%), color-mix(in oklab, var(--experience-paper) 88%, var(--experience-accent) 12%));border-radius:.5rem;box-shadow:inset 0 1px #fff9,0 2px 4px #0006}.bingo-paper[data-preset=hyvan_olon_bingo] .bingo-grid{background:0 0;padding:0}.bingo-paper[data-preset=hyvan_olon_bingo] .bingo-cell-title{font-family:var(--experience-body);color:color-mix(in oklab, var(--experience-ink) 92%, black 8%);font-weight:600}.bingo-paper[data-preset=hyvan_olon_bingo] .bingo-cell-date{color:color-mix(in oklab, var(--experience-ink) 70%, var(--experience-paper) 30%)}.bingo-paper[data-preset=hyvan_olon_bingo] .bingo-cell[data-done=true]:after{content:none}.bingo-cell-stamp{display:none}.bingo-paper[data-preset=hyvan_olon_bingo] .bingo-cell-stamp{z-index:3;border:2px double color-mix(in oklab, var(--experience-accent) 72%, black 28%);background:color-mix(in oklab, var(--experience-paper) 88%, var(--experience-accent) 12%);width:2.3rem;height:2.3rem;box-shadow:inset 0 0 0 2px color-mix(in oklab, var(--experience-accent) 26%, transparent), 0 1px 3px #0006;pointer-events:none;border-radius:50%;place-items:center;padding:.25rem;display:grid;position:absolute;top:.3rem;right:.3rem;transform:rotate(-8deg)}.bingo-paper[data-preset=hyvan_olon_bingo] .bingo-cell-stamp-img,.bingo-paper[data-preset=hyvan_olon_bingo] .bingo-cell-stamp-art{object-fit:contain;filter:saturate(.5)contrast(1.15);opacity:.92;width:100%;height:100%;display:block}.bingo-paper[data-preset=hyvan_olon_bingo] .bingo-cell[data-fresh=true] .bingo-cell-stamp{animation:.42s cubic-bezier(.2,.9,.2,1) both bingo-stamp}@media (prefers-reduced-motion:reduce){.bingo-paper[data-preset=hyvan_olon_bingo] .bingo-cell[data-fresh=true] .bingo-cell-stamp{animation:none}}.bingo-paper[data-preset=hyvan_olon_bingo] .bingo-line-complete{outline-color:color-mix(in oklab, var(--experience-accent) 92%, white 8%);background:color-mix(in oklab, var(--experience-accent) 22%, var(--experience-paper));box-shadow:0 0 0 3px color-mix(in oklab, var(--experience-accent) 70%, transparent), 0 0 1.1rem color-mix(in oklab, var(--experience-accent) 60%, transparent), inset 0 1px 0 #fff9;outline-width:2px}.bingo-shell[data-presentation=today-floating] .bingo-paper{filter:drop-shadow(0 1.5rem 2rem #00000073);animation:9s ease-in-out infinite bingo-float}@keyframes bingo-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@media (width<=40rem),(prefers-reduced-motion:reduce){.bingo-shell[data-presentation=today-floating] .bingo-paper{animation:none}}@media (width<=48rem){.bingo-grid{grid-template-columns:repeat(var(--bingo-cols,5), minmax(4.9rem, 1fr))!important}.bingo-scroll{overscroll-behavior:contain;max-width:100%;max-height:62svh;overflow-y:auto}}.experience-card--today-floating-bingo{width:100%}.bingo-atlas-art{aspect-ratio:1;background-repeat:no-repeat;width:auto;max-width:100%;margin-inline:auto}.door-calendar{background:radial-gradient(120% 90% at 12% 0%, color-mix(in oklab, var(--surface-2) 92%, white 8%), transparent 60%), linear-gradient(180deg, color-mix(in oklab, var(--surface-2) 96%, black 4%), var(--surface-2));border:2px solid color-mix(in oklab, var(--door-calendar-accent,#aa8a45) 72%, black 28%);border-radius:1.5rem;padding:1rem;position:relative;box-shadow:inset 0 1px oklab(100% 0 5.96046e-8/.22),0 10px 26px -18px #0000008c}.door-calendar__title-band,.door-calendar__footer{color:var(--experience-ink,var(--foreground));background:color-mix(in oklab, var(--experience-paper,var(--surface)) 84%, transparent);border-radius:.75rem;justify-content:space-between;align-items:center;gap:.75rem;padding:.55rem .7rem;display:flex;box-shadow:0 1px 8px #00000029}.door-calendar__title-band{background-image:linear-gradient(90deg, color-mix(in oklab, var(--experience-paper,var(--surface)) 92%, transparent), color-mix(in oklab, var(--experience-paper,var(--surface)) 72%, transparent)), var(--door-calendar-title-image);background-position:50%;background-size:cover}.door-calendar__title{font-family:var(--experience-heading,var(--font-display));font-size:clamp(1rem,2.5vw,1.55rem);font-weight:650;line-height:1.1}.door-calendar__description{max-width:46rem;font-family:var(--experience-body,var(--font-sans));opacity:.82;margin-top:.15rem;font-size:.68rem;line-height:1.25}.door-calendar__door-total,.door-calendar__opened-count,.door-calendar__footnote{flex:none;font-size:.68rem;line-height:1.2}.door-calendar__footer{flex-wrap:wrap}.door-calendar__footnote{opacity:.78;width:100%}.door-calendar__open-next svg{width:1rem;height:1rem}.door-calendar[data-style=pellava]{background:repeating-linear-gradient(0deg, color-mix(in oklab, var(--surface-2) 97%, black 3%) 0 2px, transparent 2px 4px), repeating-linear-gradient(90deg, color-mix(in oklab, var(--surface-2) 97%, white 3%) 0 2px, transparent 2px 4px), var(--surface-2);--door-calendar-accent:#748b63}.door-calendar[data-style=puu]{background:repeating-linear-gradient(93deg, color-mix(in oklab, var(--surface-2) 92%, black 8%) 0 7px, color-mix(in oklab, var(--surface-2) 97%, white 3%) 7px 15px)}.door-calendar[data-style=yo]{--door-calendar-accent:#c6a15b;background:radial-gradient(90% 70% at 50% -10%, color-mix(in oklab, var(--accent) 22%, transparent), transparent 70%), linear-gradient(180deg, color-mix(in oklab, var(--surface-2) 70%, black 30%), color-mix(in oklab, var(--surface-2) 88%, black 12%))}.door-calendar[data-preset=joulun_materiaali]{--door-calendar-accent:#c7a35c;border-color:color-mix(in oklab, var(--experience-accent) 82%, var(--experience-cover) 18%);box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--experience-accent) 55%, transparent), inset 0 0 2rem #0000002e, 0 1rem 2rem -1rem #000000b8;background:radial-gradient(circle at 18% 12%,#ffffff14 0 2px,#0000 3px),linear-gradient(145deg,#5f1f2d,#173f35 72%)}.door-calendar[data-preset=joulun_materiaali] .door-calendar__title-band{text-align:center;min-height:clamp(4.25rem,8vw,6.25rem);color:var(--experience-paper);border:1px solid color-mix(in oklab, var(--experience-accent) 68%, transparent);background:linear-gradient(90deg, color-mix(in oklab, var(--experience-cover) 92%, black 8%), color-mix(in oklab, var(--experience-cover) 96%, black 4%), color-mix(in oklab, var(--experience-cover) 92%, black 8%));box-shadow:inset 0 1px 0 color-mix(in oklab, var(--experience-accent) 42%, transparent), 0 .35rem .8rem #0003;justify-content:center;padding:.7rem clamp(1rem,3vw,2.5rem);position:relative}.door-calendar[data-preset=joulun_materiaali] .door-calendar__title{font-family:var(--experience-heading);text-shadow:0 2px 4px #0006;font-size:clamp(2rem,5vw,3.65rem);font-weight:600;line-height:.9}.door-calendar[data-preset=joulun_materiaali] .door-calendar__description{color:color-mix(in oklab, var(--experience-paper) 88%, var(--experience-accent) 12%);margin-top:.35rem}.door-calendar[data-preset=joulun_materiaali] .door-calendar__door-total{color:color-mix(in oklab, var(--experience-paper) 82%, var(--experience-accent) 18%);font-size:0;position:absolute;right:1.1rem}.door-calendar[data-preset=joulun_materiaali] .door-calendar__door-total button{color:inherit}.door-calendar[data-preset=kesan_materiaali]{--door-calendar-accent:#ad8b47;background:radial-gradient(circle at 18% 12%,#fff3 0 2px,#0000 3px),linear-gradient(145deg,#365747,#d7c9a4 115%)}.door-calendar[data-preset=neutraali_materiaali]{--door-calendar-accent:#9d7b42;background:linear-gradient(145deg,#9b8d7c,#ded5c5)}.door-calendar[data-style=kuva],.door-calendar[data-has-background=true]{background-image:var(--door-calendar-image,none);background-size:cover;background-position:var(--door-calendar-mobile-position,center)}@media (width>=48rem){.door-calendar[data-style=kuva],.door-calendar[data-has-background=true]{background-position:var(--door-calendar-position,center)}}.door-calendar-shell{align-items:start}.door-calendar[data-style=kuva] .door-calendar__inner,.door-calendar[data-has-background=true] .door-calendar__inner{background:color-mix(in oklab, var(--surface-2) 78%, transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border-radius:1.1rem;padding:.85rem}.door-calendar__state{color:var(--foreground);background:color-mix(in oklab, var(--surface) 82%, transparent);border:1px dashed color-mix(in oklab, var(--border) 90%, black 10%);border-radius:.9rem;padding:.6rem .75rem;font-size:.78rem}.door-calendar__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;display:grid}.door-calendar__slot[data-viewed=true] .door-calendar__hint{background:color-mix(in oklab, var(--surface) 88%, transparent)}@media (width>=48rem){.door-calendar__grid{grid-template-columns:repeat(6,minmax(0,1fr))}}.door-calendar__slot{perspective:700px;z-index:1;min-height:104px;position:relative}.door-calendar__slot[data-open=true]{z-index:2}.door-calendar__well{text-align:center;background:color-mix(in oklab, var(--surface) 82%, black 18%);color:var(--foreground);border-radius:.85rem;flex-direction:column;justify-content:center;align-items:center;gap:.15rem;padding:.4rem;display:flex;position:absolute;inset:0;box-shadow:inset 0 2px 8px #00000059}.door-calendar__slot:not([data-open=true]) .door-calendar__well{visibility:hidden}.door-calendar__door{cursor:pointer;transform-origin:0;transform-style:preserve-3d;color:var(--foreground);background:0 0;border:0;border-radius:.85rem;padding:0;transition:transform .52s cubic-bezier(.22,.72,.24,1),box-shadow .3s;position:absolute;inset:0}.door-calendar__face{backface-visibility:hidden;border:1px dashed color-mix(in oklab, var(--border) 70%, black 30%);border-radius:.85rem;flex-direction:column;justify-content:center;align-items:center;gap:.15rem;padding:.4rem;display:flex;position:absolute;inset:0;overflow:hidden}.door-calendar[data-preset=joulun_materiaali] .door-calendar__face{border:1px dashed color-mix(in oklab, var(--experience-accent) 78%, var(--experience-cover) 22%);box-shadow:inset 0 0 0 1px #0003,0 2px 4px #00000057}.door-calendar__face--front{background:repeating-linear-gradient(92deg, color-mix(in oklab, var(--surface) 94%, white 6%) 0 6px, color-mix(in oklab, var(--surface) 88%, black 4%) 6px 12px);box-shadow:inset 0 1px oklab(100% 0 5.96046e-8/.3),2px 3px 8px -4px #00000080}.door-calendar[data-has-background=true] .door-calendar__face--front{background:var(--surface-2);border-color:oklab(100% 0 5.96046e-8/.28)}.door-calendar[data-has-background=true] .door-calendar__door[data-locked=true] .door-calendar__face--front{background:var(--surface-2);border-color:oklab(100% 0 5.96046e-8/.24)}.door-calendar__image-slice{z-index:0;left:var(--door-calendar-slice-x,0);top:var(--door-calendar-slice-y,0);width:var(--door-calendar-board-width,100%);height:var(--door-calendar-board-height,100%);pointer-events:none;background-image:var(--door-calendar-image);background-repeat:no-repeat;background-size:cover;background-position:var(--door-calendar-mobile-position,center);position:absolute}.door-calendar__face--front:before{content:"";z-index:1;pointer-events:none;background:linear-gradient(180deg, color-mix(in oklab, var(--surface) 8%, transparent), color-mix(in oklab, var(--foreground) 16%, transparent));position:absolute;inset:0}@media (width>=48rem){.door-calendar__image-slice{background-position:var(--door-calendar-position,center)}}.door-calendar__art{border-radius:.45rem;flex:none;width:2.4rem;height:2.4rem;position:relative;overflow:hidden;box-shadow:0 1px 4px #00000059}.door-calendar__art>*{width:100%;height:100%}.door-calendar__door[data-viewed=true] .door-calendar__face--front:after,.door-calendar__door[data-done=true] .door-calendar__face--front:after{content:"";background:color-mix(in oklab, var(--foreground) 45%, transparent);border-radius:999px;width:.42rem;height:.42rem;position:absolute;top:.3rem;right:.3rem}.door-calendar__door[data-done=true] .door-calendar__face--front:after{background:var(--accent);box-shadow:0 0 0 2px color-mix(in oklab, var(--accent) 28%, transparent)}.door-calendar__num{--door-num-ink:oklch(98% .012 88);--door-num-bg:oklch(20.5% .008 59);z-index:2;min-width:1.5rem;color:var(--door-num-ink);background:var(--door-num-bg);border:1px solid color-mix(in oklab, var(--door-num-ink) 40%, transparent);text-shadow:none;border-radius:999px;justify-content:center;align-items:center;gap:.15rem;padding:.12rem .36rem;display:inline-flex;position:relative;box-shadow:0 1px 3px #00000073}.door-calendar__hint{z-index:1;background:color-mix(in oklab, var(--surface) 78%, transparent);border-radius:999px;padding:.1rem .3rem;position:relative}.door-calendar__done-mark{font-size:.8em;line-height:1}.door-calendar[data-preset=joulun_materiaali] .door-calendar__num{font-family:var(--experience-heading);font-size:clamp(1.1rem,2.4vw,1.6rem);font-weight:650;position:absolute;top:.4rem;left:.45rem}.door-calendar[data-preset=joulun_materiaali] .door-calendar__hint{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.door-calendar__lock{z-index:2;filter:drop-shadow(0 1px 2px #000000a6);width:.9rem;height:.9rem;position:absolute;bottom:.5rem;right:.5rem}.door-calendar__face--back{background:color-mix(in oklab, var(--surface) 80%, black 20%);color:color-mix(in oklab, var(--foreground) 70%, var(--surface) 30%);transform:rotateY(180deg);box-shadow:inset 0 0 14px #00000059}.door-calendar__door[data-open=true]{box-shadow:none;pointer-events:none;transform:rotateY(-155deg)}.door-calendar__door[data-locked=true]{cursor:not-allowed}.door-calendar__door[data-locked=true] .door-calendar__face--front{color:color-mix(in oklab, var(--foreground) 62%, var(--surface) 38%);background:repeating-linear-gradient(92deg, color-mix(in oklab, var(--surface-2) 96%, white 4%) 0 6px, color-mix(in oklab, var(--surface-2) 92%, black 6%) 6px 12px)}.door-calendar__num{font-family:var(--font-display,inherit);font-size:1.35rem;font-weight:600;line-height:1}.door-calendar__hint{font-size:.62rem;line-height:1.1}.door-calendar__well-title{-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.68rem;line-height:1.15;display:-webkit-box;overflow:hidden}@media (prefers-reduced-motion:reduce){.door-calendar__door{transition:none}.door-calendar__door[data-open=true]{opacity:0;transform:none}}.door-calendar__close{z-index:3;border:1px solid var(--border);background:var(--surface);width:2.75rem;min-width:2.75rem;height:2.75rem;min-height:2.75rem;color:var(--foreground);border-radius:999px;justify-content:center;align-items:center;padding:0;font-size:.875rem;font-weight:600;display:flex;position:absolute;bottom:.25rem;right:.25rem}.door-calendar-shell[data-presentation=today-floating]{filter:drop-shadow(0 1.2rem 1.1rem #0000004d);width:min(100%,64rem);margin-inline:auto;animation:6.4s ease-in-out infinite door-calendar-float}.door-calendar[data-presentation=today-floating]{border-width:.28rem;border-radius:.7rem;width:100%;min-height:min(38rem,100dvh - 12rem);padding:clamp(.75rem,1.8vw,1.25rem);display:flex;box-shadow:inset 0 0 0 1px oklab(100% 0 5.96046e-8/.28),inset 0 0 2rem #00000029,0 1rem 2rem -1rem #000000b3}.door-calendar[data-presentation=today-floating] .door-calendar__inner{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;grid-template-rows:auto auto minmax(0,1fr) auto;width:100%;display:grid}.door-calendar[data-presentation=today-floating] .door-calendar__grid{grid-template-columns:repeat(var(--door-calendar-mobile-cols), minmax(0, 1fr));grid-auto-rows:minmax(5rem,1fr);gap:clamp(.4rem,1.2vw,.85rem)}.experience-card--today-floating-calendar{width:100%}@keyframes door-calendar-float{0%,to{transform:translateY(0)}50%{transform:translateY(-.3rem)}}@media (width>=48rem){.door-calendar[data-presentation=today-floating] .door-calendar__grid{grid-template-columns:repeat(var(--door-calendar-cols), minmax(0, 1fr));grid-auto-rows:minmax(5.5rem,1fr)}}@media (width>=48rem) and (height<=700px){.door-calendar[data-presentation=today-floating]{min-height:31rem}.door-calendar[data-presentation=today-floating] .door-calendar__grid{grid-auto-rows:minmax(4.35rem,1fr)}}@media (width<=47.999rem){.door-calendar-shell[data-presentation=today-floating]{filter:drop-shadow(0 .75rem .75rem #0000003d);animation:none}.door-calendar[data-presentation=today-floating]{min-height:auto}.door-calendar__title-band{align-items:flex-start}.door-calendar[data-preset=joulun_materiaali] .door-calendar__title-band{align-items:center;min-height:4rem}.door-calendar[data-preset=joulun_materiaali] .door-calendar__title{font-size:clamp(1.75rem,10vw,2.5rem)}.door-calendar[data-preset=joulun_materiaali] .door-calendar__door-total{right:.35rem}.door-calendar__description{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.door-calendar__opened-count,.door-calendar__open-next{width:100%}}@media (prefers-reduced-motion:reduce){.door-calendar-shell[data-presentation=today-floating]{animation:none}}.experience-stage{isolation:isolate;width:100%;max-width:100%;min-height:min(78rem,100dvh - 7rem);color:var(--experience-ink);background:var(--experience-paper);font-family:var(--experience-body);--background:var(--experience-paper);--foreground:var(--experience-ink);--card:color-mix(in oklab, var(--experience-paper) 96%, var(--experience-ink) 4%);--card-foreground:var(--experience-ink);--popover:var(--experience-paper);--popover-foreground:var(--experience-ink);--surface:color-mix(in oklab, var(--experience-paper) 96%, var(--experience-ink) 4%);--surface-2:color-mix(in oklab, var(--experience-paper) 91%, var(--experience-ink) 9%);--muted:color-mix(in oklab, var(--experience-paper) 90%, var(--experience-ink) 10%);--muted-foreground:color-mix(in oklab, var(--experience-ink) 72%, var(--experience-paper) 28%);--border:color-mix(in oklab, var(--experience-ink) 20%, var(--experience-paper) 80%);--input:color-mix(in oklab, var(--experience-ink) 24%, var(--experience-paper) 76%);--accent:color-mix(in oklab, var(--experience-accent) 70%, var(--experience-paper) 30%);--accent-strong:color-mix(in oklab, var(--experience-accent) 62%, var(--experience-ink) 38%);--accent-foreground:var(--experience-paper);--ring:color-mix(in oklab, var(--experience-accent) 62%, var(--experience-ink) 38%);padding:clamp(1.25rem,4vw,3.5rem);position:relative;overflow:hidden}.experience-stage:before{content:"";z-index:-2;background-color:var(--experience-cover);background-image:var(--experience-stage-image,none);background-position:var(--experience-stage-mobile-position,center);background-size:var(--experience-stage-mobile-size,cover);background-repeat:no-repeat;position:absolute;inset:0}.experience-stage:after{content:"";z-index:-1;background:linear-gradient(180deg, color-mix(in oklab, var(--experience-paper) 90%, transparent), color-mix(in oklab, var(--experience-paper) 96%, transparent) 28rem, var(--experience-paper));position:absolute;inset:0}.experience-stage>*{width:min(100%,90rem);margin-inline:auto;position:relative}.experience-stage-title{max-width:22ch;font-family:var(--experience-heading);letter-spacing:0;text-wrap:balance;font-size:2rem;line-height:1.05}@media (width>=48rem){.experience-stage-title{font-size:3rem}}@media (width>=80rem){.experience-stage-title{font-size:4rem}}.experience-stage .passport-stage,.experience-stage .bingo-shell,.experience-stage .door-calendar-shell{margin-top:1.5rem}@media (width>=48rem){.experience-stage:before{background-position:var(--experience-stage-position,center);background-size:var(--experience-stage-size,cover)}}@media (prefers-reduced-motion:reduce){.experience-stage *,.experience-stage :before,.experience-stage :after{scroll-behavior:auto}}.completion-celebration{--surface:oklch(96.5% .018 82);--foreground:oklch(23.5% .018 48);--muted-foreground:oklch(43% .025 55);--accent:oklch(79% .075 78);--accent-strong:oklch(53% .085 68);--border:oklch(79% .055 78);--ring:oklch(53% .085 68);background:linear-gradient(145deg, color-mix(in oklab, var(--surface) 88%, var(--accent)), var(--surface));box-shadow:var(--shadow-soft);overflow-x:hidden}.completion-medallion{z-index:12;border:1px solid color-mix(in oklab, var(--accent) 75%, transparent);background:var(--foreground);width:4.5rem;height:4.5rem;box-shadow:0 .5rem 1.5rem color-mix(in oklab, var(--foreground) 18%, transparent);border-radius:9999px;place-items:center;animation:.52s cubic-bezier(.2,.8,.2,1) both completion-stamp;display:grid;position:absolute;top:1rem;left:50%;transform:translate(-50%)}.completion-medallion:before,.completion-medallion:after{content:"";border:solid var(--accent);opacity:.75;border-width:0 2px;border-radius:50%;width:1.15rem;height:2.75rem;position:absolute}.completion-medallion:before{left:-.5rem;transform:rotate(-24deg)}.completion-medallion:after{right:-.5rem;transform:rotate(24deg)}.completion-medallion img{object-fit:contain;width:2.65rem;height:2.65rem}.completion-earned-stamp{width:6rem;height:6rem;filter:drop-shadow(0 .35rem .5rem color-mix(in oklab, var(--foreground) 18%, transparent));margin:1rem auto 0;animation:.52s cubic-bezier(.2,.8,.2,1) .12s both completion-stamp;transform:rotate(-5deg)}.completion-earned-stamp img{object-fit:contain;width:100%;height:100%}.completion-confetti span{z-index:11;background:var(--accent);border-radius:1px;width:.35rem;height:.7rem;animation:.9s ease-out both completion-confetti;position:absolute;top:-1rem}.completion-confetti span:nth-child(3n){background:var(--accent-strong)}.completion-confetti span:nth-child(2n){width:.55rem;height:.35rem}.completion-confetti span:first-child{animation-delay:30ms;left:8%}.completion-confetti span:nth-child(2){animation-delay:.16s;left:16%}.completion-confetti span:nth-child(3){animation-delay:70ms;left:25%}.completion-confetti span:nth-child(4){animation-delay:.22s;left:34%}.completion-confetti span:nth-child(5){animation-delay:.1s;left:43%}.completion-confetti span:nth-child(6){animation-delay:.26s;left:51%}.completion-confetti span:nth-child(7){animation-delay:50ms;left:59%}.completion-confetti span:nth-child(8){animation-delay:.19s;left:67%}.completion-confetti span:nth-child(9){animation-delay:90ms;left:74%}.completion-confetti span:nth-child(10){animation-delay:.23s;left:82%}.completion-confetti span:nth-child(11){animation-delay:.12s;left:89%}.completion-confetti span:nth-child(12){animation-delay:.28s;left:95%}@keyframes completion-confetti{0%{opacity:0;transform:translateY(0)rotate(0)}15%{opacity:1}to{opacity:0;transform:translateY(15rem)rotate(320deg)}}@keyframes completion-stamp{0%{opacity:0;transform:translate(-50%)scale(.72)}to{opacity:1;transform:translate(-50%)scale(1)}}.completion-earned-stamp{animation-name:completion-earned-stamp}@keyframes completion-earned-stamp{0%{opacity:0;transform:rotate(-5deg)scale(.72)}to{opacity:1;transform:rotate(-5deg)scale(1)}}@media (prefers-reduced-motion:reduce){.completion-confetti{display:none}.completion-medallion,.completion-earned-stamp{animation:none}}
