@layer theme,base,components,utilities;@keyframes gp-enter{0%{opacity:0;transform:translateY(10px)}}@keyframes gp-rise{0%{opacity:0;transform:translateY(14px)}}@keyframes gp-drop{0%{opacity:0;transform:translateY(-6px)}}@keyframes gp-pop{0%{opacity:0;transform:scale(.85)}}@keyframes gp-shake{15%,55%{transform:translate(-8px)}35%,75%{transform:translate(8px)}}@keyframes gp-shake-again{15%,55%{transform:translate(-8px)}35%,75%{transform:translate(8px)}}@keyframes gp-stamp{0%{opacity:0;transform:scale(2.2)rotate(-14deg)}}@keyframes gp-spin-in{0%{opacity:0;transform:translateY(-50%)scale(.4)rotate(-90deg)}}@keyframes gp-bump{40%{transform:scale(1.35)}}@keyframes gp-wiggle{20%{transform:rotate(-12deg)scale(1.12)}45%{transform:rotate(10deg)scale(1.12)}70%{transform:rotate(-5deg)}}@keyframes gp-ripple{0%{opacity:.45;transform:scale(1)}to{opacity:0;transform:scale(3.2)}}@keyframes gp-pulse{50%{opacity:.4;transform:scale(1.6)}}@keyframes gp-fade-out{to{opacity:0}}@keyframes gp-burst-out{0%{opacity:0;transform:translate(-50%,-50%)scale(.2)}}@keyframes gp-coin-fall{0%{opacity:0;transform:translate(calc(-50% + var(--dx)), -60vh) rotateY(0)}10%{opacity:1}80%{transform:translate(calc(-50% + var(--dx)), calc(-50% + var(--dy) + 8px)) rotateY(720deg)}}@keyframes gp-slam{0%{opacity:0;transform:translate(-50%,-50%)scale(2.6)rotate(-4deg)}60%{opacity:1;transform:translate(-50%,-50%)scale(.94)rotate(-12deg)}}@keyframes gp-drop-seal{0%{opacity:0;transform:translate(-50%,-140%)scale(1.4)}60%{opacity:1;transform:translate(-50%,-50%)scale(.9)}}@keyframes gp-badge-in{0%{opacity:0;transform:translate(-50%,-50%)scale(.2)rotate(-200deg)}70%{transform:translate(-50%,-50%)scale(1.12)rotate(8deg)}}@keyframes gp-spark{0%{opacity:1;transform:rotate(var(--a)) translateY(0) scale(1.4)}}@keyframes gp-glitch{0%,to{clip-path:inset(0);transform:translate(-50%,-50%)}20%{clip-path:inset(20% 0 55%);transform:translate(calc(-50% - 6px),-50%)}40%{clip-path:inset(60% 0 8%);transform:translate(calc(5px - 50%),-50%)}60%{clip-path:inset(35% 0);transform:translate(calc(-50% - 3px),-50%)}}@keyframes gp-draw{0%{stroke-dashoffset:300px}}@keyframes gp-caret{50%{opacity:0}}.gp-scope :is(.gp-title,.gp-cert-title,.gp-cert-team){letter-spacing:var(--gp-heading-tracking,0em)}.gp-scope[data-uppercase=true] :is(.gp-title,.gp-cert-title,.gp-challenge-title,.gp-cert-kicker){text-transform:uppercase;letter-spacing:calc(.04em + var(--gp-heading-tracking,0em))}.gp-scope[data-speaker-font=heading] .gp-speaker-name{font-family:var(--font-heading)}.gp-scope[data-easy-reading=true] :is(p,li,blockquote,dd){letter-spacing:var(--gp-letter-spacing);word-spacing:var(--gp-word-spacing)}.gp-scope{--gp-ink:color-mix(in srgb, var(--foreground) 7%, transparent);--gp-ink-strong:color-mix(in srgb, var(--foreground) 11%, transparent);--gp-tint:color-mix(in srgb, var(--gp-highlight) 12%, transparent);--gp-noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .3 0 0 0 0 .22 0 0 0 0 .12 0 0 0 .6 -.22'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");--gp-fibers:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.012 .35' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .25 0 0 0 0 .12 0 0 0 .5 -.18'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23f)'/%3E%3C/svg%3E");--gp-bg-gradient:linear-gradient(transparent, transparent)}.gp-scope:not([data-slot]):is([data-texture=none],[data-texture=custom],[data-texture=image]){background-image:var(--gp-bg-gradient)}.gp-scope:not([data-slot])[data-texture=custom]{isolation:isolate;position:relative}.gp-scope:not([data-slot])[data-texture=custom]:before{content:"";z-index:-1;pointer-events:none;background-image:var(--gp-texture-image);background-size:var(--gp-texture-size,256px);opacity:var(--gp-texture-opacity,.4);background-repeat:repeat;position:absolute;inset:0}.gp-scope:not([data-slot])[data-texture=custom][data-texture-tint=true]:before{background:var(--foreground);-webkit-mask-image:var(--gp-texture-image);mask-image:var(--gp-texture-image);-webkit-mask-size:var(--gp-texture-size,256px);mask-size:var(--gp-texture-size,256px);-webkit-mask-repeat:repeat;mask-repeat:repeat}.gp-scope[data-texture-strength=strong]{--gp-ink:color-mix(in srgb, var(--foreground) 12%, transparent);--gp-ink-strong:color-mix(in srgb, var(--foreground) 18%, transparent);--gp-tint:color-mix(in srgb, var(--gp-highlight) 24%, transparent)}.gp-scope:not([data-slot])[data-texture=parchment]{background-image:radial-gradient(120% 80% at 50% 40%, transparent 55%, var(--gp-tint)), radial-gradient(circle at 18% 22%, var(--gp-tint), transparent 22%), radial-gradient(circle at 82% 68%, var(--gp-tint), transparent 26%), var(--gp-noise), var(--gp-bg-gradient);background-size:100% 100%,640px 640px,720px 720px,180px 180px,100% 100%}.gp-scope:not([data-slot])[data-texture=paper]{background-image:var(--gp-fibers), var(--gp-noise), var(--gp-bg-gradient);background-size:240px 240px,180px 180px,100% 100%}.gp-scope:not([data-slot])[data-texture=lined]{background-image:linear-gradient(to right, transparent 2.25rem, #d9534f66 2.25rem calc(2.25rem + 1.5px), transparent calc(2.25rem + 1.5px)), repeating-linear-gradient(to bottom, transparent 0 31px, color-mix(in srgb, var(--gp-highlight) 30%, transparent) 31px 32px), var(--gp-bg-gradient)}.gp-scope[data-texture-strength=strong]:not([data-slot])[data-texture=lined]{background-image:linear-gradient(to right, transparent 2.25rem, #d9534f99 2.25rem calc(2.25rem + 2px), transparent calc(2.25rem + 2px)), repeating-linear-gradient(to bottom, transparent 0 31px, color-mix(in srgb, var(--gp-highlight) 50%, transparent) 31px 32px), var(--gp-bg-gradient)}.gp-scope:not([data-slot])[data-texture=grid]{background-image:linear-gradient(var(--gp-ink-strong) 1px, transparent 1px), linear-gradient(90deg, var(--gp-ink-strong) 1px, transparent 1px), var(--gp-bg-gradient);background-size:22px 22px,22px 22px,100% 100%}.gp-scope:not([data-slot])[data-texture=kraft]{background-image:linear-gradient(#a87b4524, #a87b4524), var(--gp-fibers), var(--gp-noise), var(--gp-bg-gradient);background-size:100% 100%,240px 240px,180px 180px,100% 100%}.gp-scope[data-texture-strength=strong]:not([data-slot])[data-texture=kraft]{background-image:linear-gradient(#a87b4542, #a87b4542), var(--gp-fibers), var(--gp-noise), var(--gp-noise), var(--gp-bg-gradient);background-size:100% 100%,240px 240px,180px 180px,130px 130px,100% 100%}.gp-scope:not([data-slot])[data-texture=linen]{background-image:repeating-linear-gradient(0deg, var(--gp-ink) 0 1px, transparent 1px 4px), repeating-linear-gradient(90deg, var(--gp-ink) 0 1px, transparent 1px 5px), var(--gp-bg-gradient)}.gp-scope:not([data-slot])[data-texture=stars]{background-image:radial-gradient(1.6px 1.6px at 20px 30px, var(--gp-highlight), transparent), radial-gradient(1.2px 1.2px at 90px 80px, var(--foreground), transparent), radial-gradient(1px 1px at 140px 20px, var(--foreground), transparent), radial-gradient(2px 2px at 60px 120px, color-mix(in srgb, var(--gp-highlight) 70%, transparent), transparent), radial-gradient(1px 1px at 170px 150px, var(--foreground), transparent), radial-gradient(120% 60% at 50% 0%, color-mix(in srgb, var(--primary) 18%, transparent), transparent 70%), var(--gp-bg-gradient);background-size:190px 170px,190px 170px,190px 170px,230px 210px,230px 210px,100% 100%,100% 100%}.gp-scope[data-texture-strength=light]:not([data-slot])[data-texture=stars]{background-blend-mode:normal}.gp-scope:not([data-slot])[data-texture=scanlines]{background-image:repeating-linear-gradient(to bottom, var(--gp-ink) 0 1px, transparent 1px 3px), radial-gradient(120% 70% at 50% 0%, color-mix(in srgb, var(--primary) 14%, transparent), transparent 70%), var(--gp-bg-gradient)}.gp-scope:not([data-slot])[data-texture=dots]{background-image:radial-gradient(circle, var(--gp-tint) 2.5px, transparent 3px), radial-gradient(circle, var(--gp-ink) 1.5px, transparent 2px), var(--gp-bg-gradient);background-position:0 0,9px 9px,0 0;background-size:36px 36px,18px 18px,100% 100%}.gp-scope:is([data-texture=lined],[data-texture=dots],[data-texture=grid],[data-texture=scanlines],[data-texture=custom],[data-plain-panel=true]) .gp-plain{border-radius:calc(var(--radius) * .75);background:var(--background);box-shadow:0 0 0 .5rem var(--background), 0 0 .9rem .6rem var(--background)}.gp-backdrop{z-index:-1;pointer-events:none;background-position:50%;background-size:cover;position:absolute;inset:0}.gp-backdrop:after{content:"";background:linear-gradient(color-mix(in srgb, var(--background) var(--gp-veil-top,78%), transparent), color-mix(in srgb, var(--background) var(--gp-veil-mid,90%), transparent) 40%, color-mix(in srgb, var(--background) var(--gp-veil-bottom,94%), transparent));position:absolute;inset:0}.gp-scope[data-card=paper] .gp-card{border-color:#0000;box-shadow:0 1px 1px #00000014,0 10px 22px -12px #00000061}.gp-scope[data-card=framed] .gp-card{border:2px solid color-mix(in srgb, var(--primary) 55%, var(--border));box-shadow:inset 0 0 0 4px var(--card), inset 0 0 0 5px color-mix(in srgb, var(--primary) 30%, transparent), 0 4px 14px -8px #0000004d}.gp-scope[data-card=glass] .gp-card{background-color:color-mix(in srgb, var(--card) 86%, transparent);border:1px solid color-mix(in srgb, var(--foreground) 16%, transparent);-webkit-backdrop-filter:blur(12px)saturate(1.2);backdrop-filter:blur(12px)saturate(1.2);box-shadow:inset 0 1px #ffffff24,0 12px 28px -14px #00000080}.gp-scope[data-card=sticker] .gp-card{border:3px solid color-mix(in srgb, var(--foreground) 85%, transparent);box-shadow:4px 5px 0 color-mix(in srgb, var(--foreground) 85%, transparent)}.gp-scope[data-card=sticker] .gp-actions [data-slot=button]{border:3px solid color-mix(in srgb, var(--foreground) 85%, transparent);box-shadow:3px 4px 0 color-mix(in srgb, var(--foreground) 85%, transparent)}.gp-scope[data-card-border-width=custom] .gp-card{border-style:solid;border-width:var(--gp-card-border-width)}.gp-scope[data-card-border-color=custom] .gp-card{border-color:var(--gp-card-border-color)}.gp-scope[data-card-shadow=none] .gp-card{box-shadow:none}.gp-scope[data-card-shadow=soft] .gp-card{box-shadow:0 1px 2px #00000014,0 8px 18px -12px #00000059}.gp-scope[data-card-shadow=strong] .gp-card{box-shadow:0 2px 4px #00000024,0 18px 34px -14px #0000008c}.gp-scope[data-card-round=true] .gp-card{padding-inline:max(1.25rem, calc(var(--radius) / 2))}.gp-scope[data-card=framed][data-card-shadow] .gp-card{outline:1px solid color-mix(in srgb, var(--primary) 30%, transparent);outline-offset:-6px}[data-layout=parchment] .gp-challenge{background:radial-gradient(130% 90% at 50% 0%, transparent 60%, color-mix(in srgb, var(--gp-highlight) 22%, transparent)), radial-gradient(120% 120% at 50% 50%, transparent 55%, color-mix(in srgb, var(--primary) 14%, transparent)), color-mix(in srgb, var(--card) 82%, var(--gp-highlight));box-shadow:0 1px 0 color-mix(in srgb, var(--foreground) 10%, transparent), 0 14px 30px -12px #3c281473;-webkit-backdrop-filter:none;backdrop-filter:none;border:0;border-radius:3px;padding:2rem 1.25rem;position:relative;-webkit-mask:radial-gradient(6px at 50% 0,#0000 98%,#000) 50% 0/14px 51% repeat-x,radial-gradient(6px at 50% 100%,#0000 98%,#000) 50% 100%/14px 51% repeat-x;mask:radial-gradient(6px at 50% 0,#0000 98%,#000) 50% 0/14px 51% repeat-x,radial-gradient(6px at 50% 100%,#0000 98%,#000) 50% 100%/14px 51% repeat-x}[data-layout=parchment] .gp-challenge:before{content:"";border:1px solid color-mix(in srgb, var(--primary) 35%, transparent);outline:1px solid color-mix(in srgb, var(--primary) 18%, transparent);outline-offset:3px;pointer-events:none;position:absolute;inset:.75rem}[data-layout=parchment] .gp-challenge-header{flex-direction:column;align-items:center}[data-layout=parchment] .gp-challenge-title{font-family:var(--font-heading)}[data-layout=parchment] .gp-challenge-prompt{font-family:var(--gp-font-prose);text-align:center;font-style:normal}[data-layout=fullscreen] .gp-challenge{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;border-radius:0;padding:.5rem 0}[data-layout=fullscreen] .gp-challenge-prompt{font-family:var(--gp-font-prose);font-size:1.6em;font-weight:700;line-height:1.25}[data-layout=notebook] .gp-challenge{background:linear-gradient(to right, transparent 2.4rem, #d9534f8c 2.4rem calc(2.4rem + 2px), transparent calc(2.4rem + 2px)), repeating-linear-gradient(to bottom, transparent 0 calc(1.75em - 1px), #4a7bd038 calc(1.75em - 1px) 1.75em), var(--card);border:0;border-radius:4px 10px 10px 4px;padding:1.5rem 1.25rem 1.5rem 3.25rem;position:relative;box-shadow:0 1px 1px #0000001a,0 12px 24px -14px #0006}[data-layout=notebook] .gp-challenge:before{content:"";background:radial-gradient(circle at 50% 50%, var(--background) 0 4px, transparent 5px) 0 0 / 100% 1.75em repeat-y;pointer-events:none;width:.9rem;position:absolute;top:1rem;bottom:1rem;left:.55rem}[data-layout=notebook] .gp-challenge-prompt{font-size:1.15em;line-height:1.75em}[data-layout=terminal] .gp-challenge{--card:#0c1311;--card-foreground:#c9f7de;--foreground:#c9f7de;--muted:#13201b;--muted-foreground:#8fc4a9;--border:#22463a;--input:#2f6150;--primary:#3be89b;--primary-foreground:#04140f;--gp-primary-text:#3be89b;--accent:#173328;--gp-highlight-soft:#173328;--gp-warning-soft:#2b2510;--gp-success-soft:#123522;--success:#5fd08a;background:repeating-linear-gradient(to bottom, #ffffff06 0 1px, transparent 1px 3px), var(--card);color:var(--card-foreground);-webkit-backdrop-filter:none;backdrop-filter:none;border:1px solid #22463a;border-radius:6px;box-shadow:0 0 0 1px #0006,0 14px 30px -14px #0009,inset 0 0 40px #3be89b0f}[data-layout=terminal] .gp-challenge-title{font-family:var(--gp-font-mono)}[data-layout=terminal] .gp-challenge-prompt{font-family:var(--gp-font-prose);font-weight:700}[data-layout=terminal] .gp-challenge-prompt>p:first-child:before{content:"> ";color:var(--primary)}[data-layout=terminal] .gp-challenge-prompt>p:last-child:after{content:"▌";color:var(--primary);margin-left:.15em;animation:1s step-end 4 forwards gp-caret}[data-layout=postcard] .gp-challenge{background:repeating-linear-gradient(-45deg, #c0392b 0 10px, transparent 10px 20px, #2e5c9a 20px 30px, transparent 30px 40px) top / 100% 6px no-repeat, repeating-linear-gradient(-45deg, #c0392b 0 10px, transparent 10px 20px, #2e5c9a 20px 30px, transparent 30px 40px) bottom / 100% 6px no-repeat, var(--card);-webkit-backdrop-filter:none;backdrop-filter:none;border:0;border-radius:4px;padding:1.5rem 1.25rem;position:relative;box-shadow:0 1px 2px #0000001f,0 14px 28px -14px #00000073}[data-layout=postcard] .gp-challenge:after{content:"";background:radial-gradient(circle, var(--card) 2.5px, transparent 3px) -3px -3px / 8px 8px, linear-gradient(135deg, var(--gp-highlight), var(--primary));outline:2px solid var(--card);outline-offset:-5px;pointer-events:none;width:3.25rem;height:3.9rem;position:absolute;top:-1.1rem;right:.9rem;transform:rotate(4deg);box-shadow:0 1px 3px #00000040}[data-layout=postcard] .gp-challenge-header{padding-right:4.25rem}[data-layout=postcard] .gp-challenge{margin-top:1rem}[data-layout=postcard] .gp-challenge-prompt{font-family:var(--gp-font-prose);font-size:1.35em;font-weight:700}.gp-bubble{border-color:var(--gp-speaker,var(--border))}.gp-bubble:before{content:"";border-top:2px solid var(--gp-speaker,var(--border));border-left:2px solid var(--gp-speaker,var(--border));background:var(--card);width:18px;height:18px;position:absolute;top:-11px;left:1.6rem;transform:rotate(45deg)}.gp-bubble-kicker{font-family:var(--gp-font-mono);letter-spacing:.12em;text-transform:uppercase;opacity:.85;margin-bottom:.5rem;font-size:.75em;font-weight:700;display:block}[data-bubble=scroll] .gp-bubble{background:linear-gradient(to bottom, color-mix(in srgb, var(--gp-highlight) 35%, var(--card)), transparent .9rem) top / 100% .9rem no-repeat, linear-gradient(to top, color-mix(in srgb, var(--gp-highlight) 35%, var(--card)), transparent .9rem) bottom / 100% .9rem no-repeat, color-mix(in srgb, var(--card) 88%, var(--gp-highlight));box-shadow:0 -6px 0 -2px color-mix(in srgb, var(--gp-highlight) 55%, var(--card)), 0 6px 0 -2px color-mix(in srgb, var(--gp-highlight) 55%, var(--card)), 0 12px 24px -12px #3c281473;border:0;border-radius:4px;padding:1.75rem 1.5rem}[data-bubble=scroll] .gp-bubble:before,[data-bubble=terminal] .gp-bubble:before,[data-bubble=postit] .gp-bubble:before,[data-bubble=letter] .gp-bubble:before,[data-bubble=radio] .gp-bubble:before,[data-bubble=slate] .gp-bubble:before{display:none}[data-bubble=comic] .gp-bubble{border:3px solid var(--foreground);box-shadow:4px 5px 0 var(--foreground);border-radius:1.6rem}[data-bubble=comic] .gp-bubble:before{border-top:3px solid var(--foreground);border-left:3px solid var(--foreground);top:-13px}[data-bubble=terminal] .gp-bubble{--card:#0c1311;--card-foreground:#c9f7de;color:#c9f7de;background:repeating-linear-gradient(#ffffff06 0 1px,#0000 1px 3px),#0c1311;border:1px solid #22463a;border-radius:6px}[data-bubble=terminal] .gp-bubble .gp-bubble-kicker{color:#3be89b}[data-bubble=postit] .gp-bubble{--card-foreground:#2e2a10;color:#2e2a10;background:linear-gradient(170deg,#fff5a8,#ffe97a);border:0;border-radius:2px 2px 18px;transform:rotate(-1deg);box-shadow:0 2px 2px #00000014,0 14px 20px -12px #0006}[data-bubble=postit] .gp-bubble a{color:#4a3b00}[data-bubble=letter] .gp-bubble{background:repeating-linear-gradient(-45deg, #c0392b 0 10px, transparent 10px 20px, #2e5c9a 20px 30px, transparent 30px 40px) top / 100% 6px no-repeat, var(--card);border:0;border-radius:3px;padding:1.75rem 1.4rem 1.5rem;box-shadow:0 1px 2px #0000001f,0 14px 26px -14px #00000073}[data-bubble=radio] .gp-bubble{border:0;border-left:6px solid var(--gp-speaker,var(--primary));border-radius:4px var(--radius) var(--radius) 4px;background:color-mix(in srgb, var(--card) 92%, var(--foreground))}[data-bubble=radio] .gp-bubble .gp-bubble-kicker:before{content:"◉ ";color:var(--destructive)}[data-bubble=slate] .gp-bubble{--card-foreground:#f4f1e8;color:#f4f1e8;background:radial-gradient(120% 90% at 30% 20%,#ffffff0f,#0000 60%),#2f3b33;border:8px solid #8b5e34;border-radius:6px;box-shadow:inset 0 0 0 1px #0000004d,0 12px 24px -12px #00000080}[data-bubble=slate] .gp-bubble a{color:#ffe08a}.gp-scope[data-bubble-color=custom] .gp-bubble{--card:var(--gp-bubble-bg);--card-foreground:var(--gp-bubble-fg);background:var(--gp-bubble-bg);color:var(--gp-bubble-fg)}.gp-scope[data-bubble-color=custom] .gp-bubble a{color:inherit}.gp-scope[data-bubble-color=custom] .gp-bubble:before{background:var(--gp-bubble-bg)}.gp-scope[data-bubble-border=custom] .gp-bubble{border-color:var(--gp-bubble-border)}.gp-scope[data-bubble-border=custom] .gp-bubble:before{border-top-color:var(--gp-bubble-border);border-left-color:var(--gp-bubble-border)}.gp-typing:after,[data-typewriter-hint=true] .gp-bubble[data-typewriter=true] p:last-child:after{content:"▌";margin-left:.1em;animation:.9s step-end infinite gp-caret}[data-typewriter-hint=true] .gp-bubble[data-typewriter=true] p:last-child:after{animation-iteration-count:4;animation-fill-mode:forwards}[data-avatar=rounded] .gp-avatar{border-radius:24%}[data-avatar=shield] .gp-avatar{border-radius:14% 14% 50% 50%/10% 10% 62% 62%}.gp-poster{border:2px solid color-mix(in srgb, var(--primary) 60%, var(--border));outline:1px solid color-mix(in srgb, var(--primary) 30%, transparent);outline-offset:-8px}.gp-poster-art{background:radial-gradient(90% 80% at 50% 30%, color-mix(in srgb, var(--gp-highlight) 40%, transparent), transparent 70%), repeating-radial-gradient(circle at 30% 70%, transparent 0 18px, color-mix(in srgb, var(--primary-foreground) 14%, transparent) 18px 19px), linear-gradient(color-mix(in srgb, var(--primary-foreground) 10%, transparent) 1px, transparent 1px) 0 0 / 28px 28px, linear-gradient(90deg, color-mix(in srgb, var(--primary-foreground) 10%, transparent) 1px, transparent 1px) 0 0 / 28px 28px, var(--primary)}.gp-celebrate{animation:.45s ease-in 1.8s both gp-fade-out;container-type:inline-size}.gp-celebrate[data-hold=true]{animation:none}.gp-celebrate>*{position:absolute;top:42%;left:50%}.gp-ending-celebration .gp-celebrate>:not(.gp-firework){top:50%}.gp-confetti-bit{background:var(--gp-highlight);width:10px;height:14px;transform:translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) rotate(var(--r));animation:gp-burst-out 1.1s cubic-bezier(.22, 1, .36, 1) calc(var(--i) * 18ms) both;border-radius:2px}.gp-confetti-bit:nth-child(3n){background:var(--primary)}.gp-confetti-bit:nth-child(4n+1){background:color-mix(in srgb, var(--gp-highlight) 50%, var(--success));border-radius:50%;width:9px;height:9px}.gp-coin{width:30px;height:30px;transform:translate(calc(-50% + var(--dx)), calc(-50% + var(--dy)));animation:gp-coin-fall 1.2s cubic-bezier(.3, .8, .4, 1) calc(var(--i) * 70ms) both;background:radial-gradient(circle at 35% 30%,#fff6c2,#f4c430 45%,#b8860b);border-radius:50%;box-shadow:inset 0 0 0 3px #ffffff59,0 3px 6px #0000004d}.gp-star{color:var(--gp-highlight);text-shadow:0 2px 4px #00000040;transform:translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) rotate(var(--r));animation:gp-burst-out .7s cubic-bezier(.34, 1.56, .64, 1) calc(var(--i) * 80ms) both;font-size:1.9rem;line-height:1}.gp-star-main{font-size:5.5rem;animation-delay:0s;transform:translate(-50%,-50%)}.gp-celebrate>.gp-firework{top:calc(42% + var(--fy));left:calc(50% + var(--fx));width:0;height:0}.gp-firework>i{background:linear-gradient(var(--gp-highlight), transparent);width:4px;height:18px;transform:rotate(var(--a)) translateY(-70px);animation:gp-spark .9s cubic-bezier(.22, 1, .36, 1) var(--delay) both;border-radius:2px;margin:-9px 0 0 -2px;position:absolute}.gp-firework:nth-child(2)>i{background:linear-gradient(var(--primary), transparent)}.gp-stamp{color:#b42318;background:color-mix(in srgb, var(--card) 70%, transparent);font-family:var(--font-heading);font-size:min(2.6rem, calc(78cqi / (var(--gp-stamp-chars,6) * .92)));letter-spacing:.12em;white-space:nowrap;mix-blend-mode:multiply;border:5px double #b42318;border-radius:8px;padding:.35rem 1rem;font-weight:800;animation:.52s cubic-bezier(.22,1,.36,1) both gp-slam;transform:translate(-50%,-50%)rotate(-12deg)}.gp-scope[data-scheme=dark] .gp-stamp{mix-blend-mode:normal;color:#ff8f80;border-color:#ff8f80}.gp-seal{color:#ffe1d6;width:7rem;height:7rem;font-family:var(--font-heading);background:radial-gradient(circle at 35% 30%,#d84a3a,#8b1e1e 60%,#5e1010);border-radius:46% 54% 50% 50%/52% 46% 54% 48%;place-items:center;font-size:3rem;animation:.65s cubic-bezier(.34,1.56,.64,1) both gp-drop-seal;display:grid;transform:translate(-50%,-50%);box-shadow:inset 0 0 0 8px #0000001f,inset 0 0 0 10px #ffffff14,0 6px 14px #00000059}.gp-seal>span{border:2px solid #ffffff40;border-radius:50%;place-items:center;width:4.6rem;height:4.6rem;display:grid}.gp-badge{background:radial-gradient(circle, var(--gp-highlight) 0 58%, transparent 59%), repeating-conic-gradient(var(--primary) 0 10deg, color-mix(in srgb, var(--primary) 70%, black) 10deg 20deg);width:7.5rem;height:7.5rem;color:var(--gp-highlight-foreground);border-radius:50%;place-items:center;animation:.7s cubic-bezier(.22,1,.36,1) both gp-badge-in;display:grid;transform:translate(-50%,-50%);box-shadow:0 6px 16px #0000004d}.gp-glitch{color:#3be89b;font-family:var(--gp-font-mono);letter-spacing:.08em;white-space:nowrap;text-shadow:2px 0 #ff005099,-2px 0 #00c8ff99;background:#04140fe6;border:2px solid #3be89b;padding:.6rem 1rem;font-size:1.6rem;font-weight:700;animation:.6s steps(2,end) 2 both gp-glitch;transform:translate(-50%,-50%)}.gp-check{fill:none;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 4px 8px #0003);width:8rem;height:8rem;transform:translate(-50%,-50%)}.gp-check circle{fill:var(--success);stroke:var(--card);stroke-width:5px}.gp-check path{stroke:var(--success-foreground);stroke-width:9px;stroke-dasharray:300;animation:.7s ease-out .15s both gp-draw}.gp-success-celebration .gp-celebrate>:not(.gp-firework):not(.gp-rain-bit){top:50%}.gp-success-celebration .gp-seal,.gp-success-celebration .gp-badge,.gp-success-celebration .gp-check{scale:.82}@keyframes gp-float{0%{opacity:0;transform:translate(-50%,-30%)}40%{opacity:1}70%{transform:translate(-50%,-58%)}}@keyframes gp-spin{0%{opacity:0;transform:translate(-50%,-50%)scale(.3)rotate(-360deg)}}@keyframes gp-pop-center{0%{opacity:0;transform:translate(-50%,-50%)scale(.3)}65%{opacity:1;transform:translate(-50%,-50%)scale(1.12)}}@keyframes gp-rain-fall{0%{opacity:0;transform:translate(var(--dx), -55cqh) rotate(var(--r))}12%{opacity:1}to{opacity:0;transform:translate(var(--dx), 60cqh) rotate(calc(var(--r) + 120deg))}}.gp-custom-celebration{justify-items:center;gap:.35rem;width:min(9rem,42cqi);display:grid;transform:translate(-50%,-50%)}.gp-custom-celebration img{object-fit:contain;filter:drop-shadow(0 6px 10px #00000040);width:100%;height:auto;max-height:9rem;display:block}.gp-custom-celebration-text{background:var(--primary);color:var(--primary-foreground);font-family:var(--font-heading);letter-spacing:.06em;white-space:nowrap;border-radius:999px;padding:.15rem .7rem;font-size:1.15rem;font-weight:800}.gp-custom-celebration[data-motion=stamp]{animation:.52s cubic-bezier(.22,1,.36,1) both gp-slam;rotate:-8deg}.gp-custom-celebration[data-motion=pop],.gp-custom-celebration[data-motion=rain]{animation:.56s cubic-bezier(.34,1.56,.64,1) both gp-pop-center}.gp-custom-celebration[data-motion=spin]{animation:.76s cubic-bezier(.22,1,.36,1) both gp-spin}.gp-custom-celebration[data-motion=float]{animation:1.8s ease-in-out both gp-float}.gp-celebrate[data-kind=custom]{container-type:size}.gp-rain-bit{object-fit:contain;width:2.6rem;height:2.6rem;animation:gp-rain-fall 1.5s cubic-bezier(.4, .1, .6, 1) calc(var(--i) * 70ms) both;top:50%}.gp-scope[data-reduced-motion=true] .gp-rain-bit{display:none}@media (prefers-reduced-motion:reduce){.gp-rain-bit{display:none}}.gp-cert{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);color:var(--card-foreground);box-shadow:0 16px 34px -18px #00000073}.gp-cert-kicker{color:var(--gp-primary-text,var(--primary));letter-spacing:.16em;text-transform:uppercase;font-size:.8em;font-weight:700}.gp-cert-title{font-family:var(--font-heading);text-wrap:balance;font-size:1.9em;font-weight:700;line-height:1.1}.gp-cert-team{font-family:var(--font-heading);color:var(--gp-primary-text,var(--primary));font-size:1.45em;font-weight:700}.gp-cert-body{max-width:30rem;font-family:var(--gp-font-prose);font-size:1.05em;line-height:1.55}.gp-cert-stats{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:center;gap:.5rem 1.5rem;margin-top:.25rem;padding-top:.75rem;display:flex}.gp-cert-stats dt{color:var(--muted-foreground);font-size:.8em}.gp-cert-stats dd{font-family:var(--font-sans);font-variant-numeric:lining-nums tabular-nums;font-size:1.25em;font-weight:700}.gp-cert-footer{color:var(--muted-foreground);font-size:.82em}.gp-cert-seal{background:var(--primary);width:3.6rem;height:3.6rem;color:var(--primary-foreground);border-radius:50%;place-items:center;font-size:1.6rem;line-height:1;display:grid;position:absolute;bottom:.9rem;right:.9rem;transform:rotate(-8deg);box-shadow:0 3px 8px #00000040}.gp-cert-seal>span{border:1.5px dashed color-mix(in srgb, currentColor 55%, transparent);border-radius:50%;place-items:center;width:2.9rem;height:2.9rem;display:grid}.gp-cert[data-template=charter]{border:3px double color-mix(in srgb, var(--primary) 70%, transparent);background:radial-gradient(120% 90% at 50% 40%, transparent 60%, color-mix(in srgb, var(--gp-highlight) 22%, transparent)), color-mix(in srgb, var(--card) 90%, var(--gp-highlight));outline:1px solid color-mix(in srgb, var(--primary) 35%, transparent);outline-offset:-10px;padding-bottom:4.5rem}.gp-cert[data-template=charter] .gp-cert-seal,.gp-cert[data-template=pirate] .gp-cert-seal{color:#ffe1d6;background:radial-gradient(circle at 35% 30%,#d84a3a,#8b1e1e 60%,#5e1010);border-radius:46% 54% 50% 50%/52% 46% 54% 48%;width:4.2rem;height:4.2rem;margin-right:-2.1rem;bottom:.6rem;right:50%}.gp-cert[data-template=case-closed]{--card:#f1dfae;--card-foreground:#2a2116;--muted-foreground:#5a4a30;--border:#c9b27a;font-family:var(--gp-font-mono);border-radius:4px 18px 4px 4px}.gp-cert[data-template=case-closed]:after{content:"CLASSÉ";color:#b42318;letter-spacing:.12em;border:3px solid #b42318;padding:.1rem .6rem;font-weight:800;position:absolute;top:1.1rem;right:-.4rem;transform:rotate(14deg)}.gp-cert[data-template=pirate]{--card:#ecd5a3;--card-foreground:#3a2412;--muted-foreground:#5c4128;--border:#b48a52;background:radial-gradient(120% 100% at 50% 50%, transparent 62%, #5a320f73), var(--card);border:0;padding-bottom:4.5rem;-webkit-mask:radial-gradient(9px at 50% 0,#0000 96%,#000) 50% 0/22px 51% repeat-x,radial-gradient(9px at 50% 100%,#0000 96%,#000) 50% 100%/22px 51% repeat-x;mask:radial-gradient(9px at 50% 0,#0000 96%,#000) 50% 0/22px 51% repeat-x,radial-gradient(9px at 50% 100%,#0000 96%,#000) 50% 100%/22px 51% repeat-x}.gp-cert[data-template=naturalist]{border:3px dashed color-mix(in srgb, var(--primary) 60%, transparent);outline:6px solid color-mix(in srgb, #a87b45 22%, var(--card));outline-offset:-11px}.gp-cert[data-template=kids]{background:linear-gradient(var(--card), var(--card)) padding-box, conic-gradient(#ef4444, #f59e0b, #eab308, #22c55e, #3b82f6, #a855f7, #ef4444) border-box;border:6px solid #0000;border-radius:1.6rem}.gp-cert[data-template=kids] .gp-cert-seal{color:#3a2a00;clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);background:#fbbf24;border-radius:0;width:4.4rem;height:4.4rem}.gp-cert[data-template=declassified]{--card:#0b1215;--card-foreground:#d7fbe8;--muted-foreground:#8fb8a8;--border:#22463a;--primary:#3be89b;--primary-foreground:#04140f;background:repeating-linear-gradient(to bottom, #ffffff08 0 1px, transparent 1px 3px), var(--card);font-family:var(--gp-font-mono)}.gp-cert[data-template=declassified]:after{content:"DÉCLASSIFIÉ";color:#3be89b;letter-spacing:.14em;border:2px solid #3be89b;padding:.1rem .5rem;font-size:.75em;font-weight:700;position:absolute;top:1rem;left:-.3rem;transform:rotate(-10deg)}.gp-cert[data-template=postcard]{background:repeating-linear-gradient(-45deg, #c0392b 0 12px, transparent 12px 24px, #2e5c9a 24px 36px, transparent 36px 48px) top / 100% 8px no-repeat, repeating-linear-gradient(-45deg, #c0392b 0 12px, transparent 12px 24px, #2e5c9a 24px 36px, transparent 36px 48px) bottom / 100% 8px no-repeat, var(--card);border:0;border-radius:4px}.gp-cert[data-template=postcard] .gp-cert-seal{background:radial-gradient(circle, var(--card) 2.5px, transparent 3px) -3px -3px / 8px 8px, linear-gradient(135deg, var(--gp-highlight), var(--primary));border-radius:2px;width:3.2rem;height:3.8rem;top:1rem;bottom:auto;transform:rotate(5deg)}.gp-cert[data-template=classic]{border:1px solid var(--border);outline:2px solid color-mix(in srgb, var(--primary) 50%, transparent);outline-offset:-10px}.gp-cert[data-template=agent]{--card:#1e232b;--card-foreground:#f2f2f2;--muted-foreground:#a8b0bc;--border:#3a414c;--primary:#ff6b81;--primary-foreground:#1a0a0d;background:linear-gradient(90deg, transparent 12%, #000 12% 38%, transparent 38%) 50% 92% / 70% 6px no-repeat, var(--card)}.gp-cert[data-template=agent]:after{content:"TOP SECRET";color:#ff6b81;letter-spacing:.14em;border:3px solid #e11d48;padding:.1rem .6rem;font-weight:800;position:absolute;top:.9rem;right:-.2rem;transform:rotate(12deg)}.gp-cert[data-template=grimoire]{--card:#2a2045;--card-foreground:#f3ebd6;--muted-foreground:#c4b8de;--border:#fbbf24;--primary:#fbbf24;--primary-foreground:#1f1633;outline-offset:-9px;background:radial-gradient(1.4px 1.4px at 20px 30px, #fbbf24, transparent) 0 0 / 120px 110px, radial-gradient(1px 1px at 80px 70px, #f3ebd6, transparent) 0 0 / 120px 110px, var(--card);border:2px solid #fbbf24;outline:1px solid #fbbf2473}.gp-cert[data-template=school]{background:linear-gradient(#3b82f624 1px, transparent 1px) 0 0 / 18px 18px, linear-gradient(90deg, #3b82f624 1px, transparent 1px) 0 0 / 18px 18px, var(--card);border:2px solid #3b82f673}.gp-cert[data-template=gourmet]{border:2px solid color-mix(in srgb, var(--primary) 55%, transparent);background:radial-gradient(100% 70% at 50% 0%, color-mix(in srgb, var(--gp-highlight) 14%, transparent), transparent 70%), var(--card)}.gp-cert[data-template=gourmet] .gp-cert-seal{color:#3a2600;background:radial-gradient(circle at 35% 30%,#fff1b8,#e0a800 55%,#9c6b00)}.gp-cert-signature{font-family:var(--font-heading);justify-items:center;gap:.15rem;margin-top:.25rem;font-size:.95em;font-style:italic;display:grid}.gp-cert-signature img{object-fit:contain;max-width:12rem;max-height:3.5rem;display:block}.gp-cert-seal[data-seal=image]{background:var(--card);padding:0;overflow:hidden}.gp-cert-seal[data-seal=image] img{object-fit:cover;width:100%;height:100%}.gp-cert-partner{object-fit:contain;max-width:8rem;max-height:2.5rem;display:block}.gp-cert[data-template=custom]{aspect-ratio:4/5;align-content:var(--gp-cert-align,center);background-color:var(--card);background-image:var(--gp-cert-bg);color:var(--gp-cert-ink);--card-foreground:var(--gp-cert-ink);--muted-foreground:var(--gp-cert-ink);--gp-primary-text:var(--gp-cert-ink);background-position:50%;background-size:cover;border:0}.gp-cert[data-template=custom][data-layout=top]{--gp-cert-align:start}.gp-cert[data-template=custom][data-layout=bottom]{--gp-cert-align:end}.gp-cert-panel{border-radius:calc(var(--radius) * .75);background:var(--gp-cert-panel);justify-items:center;gap:.6rem;width:100%;padding:1rem 1.1rem;display:grid}.gp-cert:is([data-template=declassified],[data-template=agent],[data-template=grimoire]){--gp-primary-text:var(--primary)}.gp-marker[data-target=true]:before{content:"";background:color-mix(in srgb, var(--gp-highlight) 45%, transparent);pointer-events:none;border-radius:999px;animation:1.8s ease-in-out 6 gp-pulse;position:absolute;inset:-2px}.gp-marker-badge[hidden]{display:none}.gp-marker-image{object-fit:contain;pointer-events:none;width:1.5rem;height:1.5rem;display:block}.gp-map>.gp-map-canvas{width:100%;height:100%;position:absolute;inset:0}.gp-map-canvas .maplibregl-canvas{filter:var(--gp-map-filter,none)}.gp-map-canvas .maplibregl-ctrl-attrib{font-size:10px}@media print{body *{visibility:hidden}.gp-cert,.gp-cert *{visibility:visible}.gp-cert{width:min(90%,42rem);height:fit-content;box-shadow:none;-webkit-print-color-adjust:exact;print-color-adjust:exact;margin:auto;position:fixed;inset:0}}@media (prefers-reduced-motion:reduce){.gp-scope,.gp-scope *,.gp-scope :before,.gp-scope :after{scroll-behavior:auto;transition-duration:.01ms;animation-duration:.01ms;animation-iteration-count:1;animation-delay:0s}.gp-celebrate{animation:none}}.gp-scope[data-reduced-motion=true],.gp-scope[data-reduced-motion=true] *,.gp-scope[data-reduced-motion=true] :before,.gp-scope[data-reduced-motion=true] :after{scroll-behavior:auto;transition-duration:.01ms;animation-duration:.01ms;animation-iteration-count:1;animation-delay:0s}.gp-scope[data-reduced-motion=true] .gp-celebrate{animation:none}@media (max-height:30rem){.gp-hud{padding-top:calc(env(safe-area-inset-top) + .2rem);padding-bottom:.25rem;position:static}.gp-hud-team{display:none}.gp-actions{padding-top:.5rem;position:static}}.gp-success-celebration .gp-custom-celebration,.gp-ending-celebration .gp-custom-celebration{max-height:100cqh}.gp-success-celebration .gp-custom-celebration img,.gp-ending-celebration .gp-custom-celebration img{width:auto;max-width:100%;max-height:4.75rem}.gp-success-celebration .gp-custom-celebration-text,.gp-ending-celebration .gp-custom-celebration-text{font-size:1rem;line-height:1.5rem}
