:root{--color-bg-dark: #c79a60;--color-bg-light: #e7d2ac;--color-accent-gold: #c5a059;--color-accent-gold-hover: #e6b86a;--color-text-main: #4a3426;--color-text-parchment: #3e2723;--font-header: "Cinzel Decorative", "Cinzel", serif;--font-body: "IM Fell English", "Playfair Display", serif;--font-script: "Great Vibes", cursive}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background-color:var(--color-bg-light);background-image:radial-gradient(circle at 20% 15%,#fff8e699,#fff8e600 55%),radial-gradient(circle at 80% 10%,#784e221f,#784e2200 60%),linear-gradient(140deg,#f3e4c6 0%,var(--color-bg-light) 45%,#dcc095 100%);color:var(--color-text-main);min-height:100vh;min-height:100dvh;display:flex;justify-content:center;align-items:center;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;position:relative;isolation:isolate}body:before,body:after{content:"";position:fixed;inset:0;pointer-events:none}body:before{z-index:-1;opacity:.65;mix-blend-mode:multiply;background-image:repeating-linear-gradient(15deg,rgba(88,57,28,.08) 0,rgba(88,57,28,.08) 1px,transparent 1px,transparent 26px),repeating-linear-gradient(-12deg,rgba(88,57,28,.06) 0,rgba(88,57,28,.06) 1px,transparent 1px,transparent 32px);background-size:420px 420px,520px 520px;animation:mapGrain 90s ease-in-out infinite alternate}body:after{z-index:-1;opacity:.55;mix-blend-mode:multiply;background-image:radial-gradient(circle at 50% 40%,#5a3c1e00 55%,#3f271247),radial-gradient(circle at 12% 78%,#804e2240,#804e2200 60%),radial-gradient(circle at 86% 22%,#5a3c1e2e,#5a3c1e00 65%)}.map-container{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;overflow:hidden;z-index:0;background-image:url(https://icochi.github.io/The-Marauders-Map/map-bg.png);background-size:cover;background-position:center;filter:saturate(95%) contrast(102%)}.map-container .map{position:absolute;inset:0;background-image:url(/img/map.png);background-size:cover;background-position:center;mix-blend-mode:multiply;filter:grayscale(1) sepia(35%);opacity:.94}.map-container .mask{position:absolute;inset:0;background-image:url(https://icochi.github.io/The-Marauders-Map/cloud.png);background-size:cover;background-position:center;mix-blend-mode:lighten;animation:magic 3s linear forwards;opacity:.9}.map-container .path{position:absolute;inset:0;width:100%;height:100%}.map-container .path #path{stroke:#fff0;fill:none}#texture-layer{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:4;filter:url(#parchment) contrast(112%);opacity:.42;mix-blend-mode:multiply}#app{width:100%;max-width:800px;height:auto;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;z-index:10;position:relative;padding:1rem 0 2rem}h1,h2,h3{font-family:var(--font-header);color:var(--color-accent-gold);text-shadow:0 0 10px rgba(197,160,89,.5);margin-bottom:2rem}button{background:linear-gradient(135deg,var(--color-accent-gold),#8a6e3e);border:2px solid #5a4625;color:#1a0f00;padding:1rem 2rem;font-family:var(--font-header);font-size:1.2rem;font-weight:700;cursor:pointer;transition:all .3s ease;border-radius:4px;box-shadow:0 4px 15px #00000080;text-transform:uppercase;letter-spacing:2px;position:relative;overflow:hidden}button:hover{transform:translateY(-2px);box-shadow:0 6px 20px #c5a05966;filter:brightness(1.2)}button:active{transform:translateY(1px)}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.animate-fade-in{animation:fadeIn 1s ease-out forwards}.animate-float{animation:float 4s ease-in-out infinite}@keyframes mapGrain{0%{background-position:0 0,0 0}to{background-position:220px 160px,-180px 140px}}.magic-dust{position:fixed;inset:0;pointer-events:none;z-index:9;mix-blend-mode:screen}.magic-dust:before,.magic-dust:after{content:"";position:absolute;inset:-10%;background-image:radial-gradient(1px 1px at 20% 30%,#fff3d2b3,#fff3d200),radial-gradient(1px 1px at 70% 20%,#ffe6aa99,#ffe6aa00),radial-gradient(1px 1px at 40% 80%,#ffffff80,#fff0),radial-gradient(1px 1px at 85% 65%,#ffebc399,#ffebc300),radial-gradient(1px 1px at 10% 75%,#fff5e199,#fff5e100),radial-gradient(1px 1px at 55% 45%,#ffebbeb3,#ffebbe00);background-size:320px 320px;opacity:.45;animation:sparkleDrift 18s linear infinite}.magic-dust:after{background-size:480px 480px;opacity:.32;animation:sparkleDrift 28s linear infinite,sparkleTwinkle 6s ease-in-out infinite alternate}@keyframes sparkleDrift{0%{transform:translateZ(0)}50%{transform:translate3d(-2%,1%,0)}to{transform:translate3d(2%,-1%,0)}}@keyframes sparkleTwinkle{0%{opacity:.15}to{opacity:.35}}.envelope-overlay{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem;z-index:12;pointer-events:auto;background:radial-gradient(circle at 50% 35%,#fff5dc14,#28160a52);-webkit-backdrop-filter:blur(2px) saturate(105%);backdrop-filter:blur(2px) saturate(105%);transition:opacity .8s ease}.envelope-overlay:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 45%,#fff0c838,#fff0c800 58%),radial-gradient(circle at 50% 80%,#3c200c47,#3c200c00 70%);mix-blend-mode:screen;opacity:.55}.envelope-overlay.is-opening{animation:envelopeOverlayFade 1.8s ease forwards}.envelope{position:relative;width:min(440px,78vw);height:min(300px,56vw);min-width:280px;min-height:200px;border:0;padding:0;background:transparent;cursor:pointer;overflow:hidden;transform-style:preserve-3d;animation:envelopeFloat 10s ease-in-out infinite;filter:drop-shadow(0 10px 16px rgba(46,25,10,.22))}.envelope:focus-visible{outline:3px solid rgba(255,225,160,.7);outline-offset:6px;border-radius:12px}.envelope__glow{position:absolute;inset:-12% -10% -18%;background:radial-gradient(circle at 50% 40%,#ffe6aa8c,#ffe6aa00 62%),radial-gradient(circle at 50% 70%,#ffc87852,#ffc87800 68%);filter:blur(18px);opacity:.16;z-index:0;animation:envelopeGlow 10s ease-in-out infinite}.envelope__back,.envelope__front,.envelope__flap,.envelope__letter,.envelope__seal{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.envelope__back{width:100%;height:100%;border-radius:16px;background:linear-gradient(160deg,#f3e6cceb,#e2c9a0f5 60%,#d2b280fa),repeating-linear-gradient(18deg,rgba(130,100,65,.05) 0,rgba(130,100,65,.05) 1px,transparent 1px,transparent 20px),radial-gradient(circle at 18% 20%,#6e502824,#6e502800 55%),radial-gradient(circle at 80% 85%,#78552d2e,#78552d00 60%);border:2px solid rgba(124,82,38,.55);box-shadow:inset 0 0 0 1px #fff5dc8c,inset 0 -18px 30px #784a1a2e;z-index:1}.envelope__front{width:100%;height:100%;border-radius:16px;background:linear-gradient(145deg,#ebd2aaeb,#cea570f5),repeating-linear-gradient(-22deg,rgba(140,105,70,.05) 0,rgba(140,105,70,.05) 1px,transparent 1px,transparent 18px),radial-gradient(circle at 50% 90%,#78552d38,#78552d00 55%);border:2px solid rgba(124,82,38,.5);clip-path:polygon(0 100%,50% 52%,100% 100%);z-index:3}.envelope__flap{width:100%;height:100%;border-radius:16px;background:linear-gradient(160deg,#f2dcb8f5,#d4ac70fc),repeating-linear-gradient(16deg,rgba(140,105,70,.05) 0,rgba(140,105,70,.05) 1px,transparent 1px,transparent 18px),radial-gradient(circle at 50% 18%,#78552d2e,#78552d00 60%);border:2px solid rgba(124,82,38,.55);clip-path:polygon(0 0,100% 0,50% 58%);transform-origin:50% 0%;z-index:4;transition:transform 1.6s cubic-bezier(.2,.7,.1,1);backface-visibility:hidden}.envelope__flap:after{content:"";position:absolute;left:50%;top:18%;width:96px;height:96px;transform:translate(-50%,-50%);background-image:url(/img/Hogwarts%20Crest%20PNG.png);background-size:contain;background-repeat:no-repeat;background-position:center;mix-blend-mode:multiply;pointer-events:none}.envelope__letter{width:86%;height:78%;border-radius:10px;background:linear-gradient(180deg,#fffaf0,#f4e6cc);border:1.5px solid rgba(132,92,52,.4);box-shadow:0 12px 18px #4b2e1433,inset 0 0 0 1px #ffffff73;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;color:#5a3b21;text-shadow:0 1px 0 rgba(255,255,255,.35);transform:translate(-50%,-50%) translateY(42%);opacity:0;transition:transform 1.8s cubic-bezier(.2,.8,.1,1),opacity 1.2s ease}.envelope__title{font-family:var(--font-header);font-size:clamp(1.6rem,3.6vw,2.4rem);letter-spacing:1px}.envelope__subtitle{font-family:var(--font-script);font-size:clamp(1.8rem,4.4vw,2.8rem)}.envelope__seal{width:76px;height:76px;border-radius:50%;background:radial-gradient(circle at 28% 22%,#ffbebeb3,#ffbebe00 55%),radial-gradient(circle at 70% 78%,#3c06068c,#3c060600 72%),linear-gradient(165deg,#b81f1f,#8d1010 55%,#5d0707);border:3px solid rgba(255,210,180,.25);box-shadow:0 10px 16px #460c0c59,inset 0 0 0 2px #ffe6d22e,inset 0 -6px 10px #3c080859;z-index:5;display:grid;place-items:center;color:#ffeedce6;font-family:var(--font-header);font-weight:700;font-size:1.4rem;letter-spacing:1px;text-transform:uppercase;transition:transform .6s ease,opacity .8s ease}.envelope__seal:before{content:"";position:absolute;inset:10px;border-radius:50%;border:2px solid rgba(255,210,190,.35);box-shadow:inset 0 0 6px #ffc8c840,inset 0 -4px 6px #5a0c0c40;pointer-events:none}.envelope__seal:after{content:"H";position:absolute;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 50% 30%,#ffe1cd59,#ffe1cd00 55%),radial-gradient(circle at 50% 72%,#4e0c0c61,#4e0c0c00 76%),repeating-conic-gradient(from 6deg,#ffdcc33d 0deg 10deg,#6410102e 10deg 22deg);box-shadow:inset 0 1px 1px #ffe6d247,inset 0 -2px 4px #540e0e61;font-family:var(--font-header);font-size:1.35rem;font-weight:700;line-height:1;color:#f4d8bc94;text-shadow:0 1px 0 rgba(255,232,212,.22),0 -1px 0 rgba(66,8,8,.55)}.envelope:hover .envelope__seal{transform:translate(-50%,-50%) scale(1.04)}.envelope__hint{position:relative;z-index:13;font-family:var(--font-header);font-size:1rem;letter-spacing:1px;text-transform:uppercase;color:#f6e7c4;text-shadow:0 2px 6px rgba(28,12,4,.55);animation:hintPulse 2.2s ease-in-out infinite}.envelope.is-opening{pointer-events:none}.envelope.is-opening .envelope__flap{transform:translate(-50%,-50%) rotateX(-168deg) translateY(-6px)}.envelope.is-opening .envelope__letter{transform:translate(-50%,-84%) translateY(-36%);opacity:1;animation:letterRise 1.8s cubic-bezier(.2,.8,.1,1) forwards}.envelope.is-opening .envelope__seal{transform:translate(-50%,-50%) scale(.4);opacity:0}@keyframes envelopeGlow{0%,to{opacity:.62;transform:scale(.98)}50%{opacity:.85;transform:scale(1.02)}}@keyframes envelopeFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes letterRise{0%{filter:brightness(1)}60%{filter:brightness(1.04)}to{filter:brightness(1.08)}}@keyframes hintPulse{0%,to{opacity:.72;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}@keyframes envelopeOverlayFade{0%{opacity:1}to{opacity:0}}.landing-container,.quiz-container,.reward-container{background:#f8f1e3;color:var(--color-text-parchment);padding:3rem;border-radius:8px;box-shadow:0 0 20px #00000080,inset 0 0 50px #0000001a;border:1px solid #d7c49e;position:relative;z-index:10}.landing-container h1,.reward-container h1,.quiz-container h2{color:#3e2723;text-shadow:none}.landing-letter{position:relative;background:linear-gradient(0deg,transparent 48%,rgba(120,80,40,.16) 50%,transparent 52%),linear-gradient(90deg,transparent 48%,rgba(120,80,40,.12) 50%,transparent 52%),repeating-linear-gradient(25deg,rgba(140,100,60,.06) 0,rgba(140,100,60,.06) 1px,transparent 1px,transparent 14px),radial-gradient(circle at 20% 15%,#fff8e6bf,#fff8e600 55%),radial-gradient(circle at 80% 30%,#b4783c1f,#b4783c00 60%),linear-gradient(180deg,#fff6e6,#f0dcc0);border:1px solid rgba(180,140,90,.6);box-shadow:0 18px 30px #3e27234d,inset 0 0 35px #784a1a33;overflow:hidden}.landing-letter:before{content:"";position:absolute;top:1.2rem;left:50%;width:120px;height:120px;transform:translate(-50%);background-image:url(/img/Hogwarts%20Crest%20PNG.png);background-size:contain;background-repeat:no-repeat;background-position:center;opacity:.18;mix-blend-mode:multiply;filter:grayscale(1) contrast(110%);pointer-events:none}.landing-letter:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 12% 10%,#78502829,#78502800 45%),radial-gradient(circle at 85% 90%,#78502833,#78502800 55%);opacity:.5;pointer-events:none}.landing-title{text-transform:uppercase;letter-spacing:1px}.landing-cirmi{position:relative;z-index:2;display:block;width:min(240px,72vw);margin:-.2rem auto 1rem;border-radius:16px;border:2px solid rgba(124,82,38,.55);box-shadow:0 10px 18px #3e272347,inset 0 0 0 1px #fff4dc66;animation:cirmiFloat 4.8s ease-in-out infinite}.landing-intro{position:relative;z-index:2;margin:0 auto 1.8rem;padding:.95rem 1.1rem;max-width:520px;border:1px solid rgba(125,84,42,.35);border-radius:8px;background:radial-gradient(circle at 18% 22%,#fff7e494,#fff7e400 58%),linear-gradient(180deg,#fef4e0b3,#f3ddbb9e);color:#4f3320;font-size:1.03rem;line-height:1.55;box-shadow:0 6px 12px #3e27232e;text-shadow:0 1px 0 rgba(255,247,232,.45)}.landing-subtitle{color:#5d4037}@keyframes cirmiFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@media(max-width:768px){body{align-items:flex-start}#app{justify-content:flex-start;min-height:100dvh;padding:.85rem 0 1.5rem}.landing-container{margin:.4rem auto .8rem;padding:1.55rem 1.15rem!important}.landing-title{font-size:1.5rem!important;margin-bottom:1rem!important;line-height:1.3!important}.landing-cirmi{width:min(210px,68vw);margin-bottom:.8rem}.landing-intro{font-size:.98rem;line-height:1.45;margin-bottom:1.1rem}}.quiz-container{position:relative;overflow:hidden;border:1px solid rgba(124,82,38,.5);background:radial-gradient(circle at 15% 20%,#fff8e6a6,#fff8e600 55%),linear-gradient(180deg,#fff6e3,#f4e2bf);box-shadow:0 18px 30px #3e27234d,inset 0 0 35px #784a1a2e;isolation:isolate;animation:quizContainerBreath 7.5s ease-in-out infinite;will-change:transform,box-shadow}.quiz-container>*{position:relative;z-index:2}.quiz-container:before{content:"";position:absolute;inset:12px;border:1px dashed rgba(120,78,34,.42);border-radius:6px;background-image:radial-gradient(1.4px 1.4px at 10% 20%,#ffebaa73,#ffebaa00),radial-gradient(1.6px 1.6px at 88% 24%,#ffecb261,#ffecb200),radial-gradient(1.8px 1.8px at 22% 78%,#fff1cd57,#fff1cd00),radial-gradient(1.4px 1.4px at 80% 74%,#fff4d561,#fff4d500);opacity:.64;mix-blend-mode:screen;z-index:1;pointer-events:none;animation:quizSparkTwinkle 4.6s ease-in-out infinite}.quiz-container:after{content:"";position:absolute;inset:0;background:linear-gradient(118deg,#fff5d400 28%,#fff2c670 46%,#ffefbc29 54%,#ffefbc00 68%),radial-gradient(circle at 85% 20%,#ffe6aa59,#ffe6aa00 55%),radial-gradient(circle at 10% 80%,#965a2238,#965a2200 60%),radial-gradient(circle at 50% 50%,#fffff500,#4a2e182e);background-size:240% 240%,100% 100%,100% 100%,100% 100%;background-position:120% 0%,0 0,0 0,0 0;opacity:.72;mix-blend-mode:multiply;z-index:1;pointer-events:none;animation:quizGlow 6.2s ease-in-out infinite,quizLightSweep 7.5s linear infinite}.quiz-container .progress{letter-spacing:1px;text-transform:uppercase;font-size:.95rem}@keyframes quizGlow{0%,to{opacity:.48}50%{opacity:.78}}@keyframes quizLightSweep{0%{background-position:135% -20%,0 0,0 0,0 0}to{background-position:-140% 20%,0 0,0 0,0 0}}@keyframes quizContainerBreath{0%,to{transform:translateY(0) scale(1);box-shadow:0 18px 30px #3e27234d,0 0 #ffd68000,inset 0 0 35px #784a1a2e}50%{transform:translateY(-4px) scale(1.004);box-shadow:0 24px 40px #3e27235c,0 0 26px #ffd6804d,inset 0 0 40px #784a1a38}}@keyframes quizSparkTwinkle{0%,to{opacity:.34;filter:brightness(1)}45%{opacity:.6;filter:brightness(1.2)}70%{opacity:.42;filter:brightness(.94)}}@media(prefers-reduced-motion:reduce){.quiz-container,.quiz-container:before,.quiz-container:after{animation:none!important}.quiz-container{transform:none!important}}.reward-cake{width:min(420px,82vw);margin:1.6rem auto;border-radius:12px;box-shadow:0 14px 24px #3e272333;border:2px solid rgba(124,82,38,.35);display:block}.ticket-vault-overlay{position:fixed;inset:0;z-index:70;display:grid;place-items:center;padding:1rem;background:radial-gradient(circle at 20% 18%,#ffe7af29,#ffe7af00 45%),#180c04c2;-webkit-backdrop-filter:blur(6px) saturate(114%);backdrop-filter:blur(6px) saturate(114%);animation:ticketVaultFadeIn .22s ease-out both}.ticket-vault-overlay.is-closing{animation:ticketVaultFadeOut .2s ease-in both}.ticket-vault{position:relative;width:min(94vw,600px);border-radius:14px;padding:2.3rem 2rem 1.9rem;border:1px solid rgba(232,184,98,.62);background:radial-gradient(circle at 18% 20%,#ffefca24,#ffefca00 52%),radial-gradient(circle at 82% 10%,#ffd37a1a,#ffd37a00 44%),linear-gradient(158deg,#2f1b0f,#201208);color:#f8e7c0;box-shadow:0 22px 44px #00000094,0 0 28px #ffbe5a33,inset 0 0 0 1px #ffe3a533;animation:ticketVaultPop .28s cubic-bezier(.2,.85,.2,1) both}.ticket-vault h3{margin:0 0 1rem;color:#f2cf8b;font-size:1.45rem;text-shadow:0 2px 8px rgba(0,0,0,.4)}.ticket-vault__info{margin:0 0 1.2rem;line-height:1.55;font-size:1.02rem;color:#f0dfb8}.ticket-vault__form{display:flex;flex-direction:column;gap:.9rem}.ticket-vault__input{width:100%;border:1px solid rgba(222,173,96,.5);border-radius:8px;padding:.9rem .95rem;font-family:var(--font-body);font-size:1rem;color:#2e1a0c;background:linear-gradient(180deg,#f7ebd0,#ead0a3);box-shadow:inset 0 0 0 1px #fff6df73,0 4px 10px #0000002e}.ticket-vault__input:focus{outline:2px solid rgba(255,217,132,.82);outline-offset:1px}.ticket-vault__submit{justify-self:start}.ticket-vault__feedback{margin:.9rem 0 0;min-height:1.4rem;font-size:.95rem;font-family:var(--font-header);letter-spacing:.4px;text-transform:uppercase;color:#f0d7aa}.ticket-vault__feedback.is-error{color:#ffb2a5}.ticket-vault__feedback.is-success{color:#c8f2b8}.ticket-vault__close{position:absolute;top:.55rem;right:.62rem;border:0;background:transparent;color:#f9e1b6f2;box-shadow:none;text-transform:none;letter-spacing:0;font-size:2rem;line-height:1;padding:.2rem .45rem}.ticket-vault__close:hover{transform:none;box-shadow:none;filter:brightness(1.15)}.ticket-vault__close:focus-visible{outline:2px solid rgba(255,221,156,.9);outline-offset:2px;border-radius:4px}@keyframes ticketVaultFadeIn{0%{opacity:0}to{opacity:1}}@keyframes ticketVaultFadeOut{0%{opacity:1}to{opacity:0}}@keyframes ticketVaultPop{0%{opacity:0;transform:translateY(14px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}.quiz-feedback{margin-top:1.5rem;min-height:1.5rem;font-family:var(--font-header);letter-spacing:.5px;text-transform:uppercase;font-size:.95rem;opacity:0;transition:opacity .3s ease}.quiz-feedback.correct{color:#2e6b3f;opacity:1}.quiz-feedback.incorrect{color:#7b2f24;opacity:1}.quiz-container.shake{animation:quizShake .35s ease}@keyframes quizShake{0%{transform:translate(0)}25%{transform:translate(-6px)}50%{transform:translate(6px)}75%{transform:translate(-4px)}to{transform:translate(0)}}.snitch{position:absolute;width:28px;height:28px;border:0;padding:0;appearance:none;border-radius:50%;background:radial-gradient(circle at 28% 26%,#ffffffe6 0 14%,#fff0 42%),radial-gradient(circle at 70% 72%,#7b440f59 0 48%,#7b440f00 72%),radial-gradient(circle at 38% 36%,#ffe8a3,#f5c542 46%,#c78a1e 78%,#8b5a12);border:1.5px solid rgba(120,70,12,.55);box-shadow:0 0 12px #ffd77873,0 6px 14px #56341059,inset -6px -8px 12px #66380873,inset 6px 8px 12px #ffebaa59;z-index:20;animation:snitchFlight 16s ease-in-out infinite;pointer-events:auto;cursor:pointer;transform-style:preserve-3d;will-change:transform,top,left;transition:filter .2s ease}.snitch:hover{filter:brightness(1.16) drop-shadow(0 0 8px rgba(255,220,130,.65))}.snitch:focus-visible{outline:2px solid rgba(255,230,170,.9);outline-offset:5px}.snitch.is-caught{pointer-events:none;animation:snitchCatchPop .5s ease forwards}.snitch.is-caught:before,.snitch.is-caught:after{animation-play-state:paused;opacity:.25}.snitch:before,.snitch:after{content:"";position:absolute;top:50%;width:64px;height:26px;z-index:-1;opacity:.95;border-radius:60% 40%;background:linear-gradient(90deg,#fffffff2,#fff9),repeating-linear-gradient(-12deg,#8c6e5a2e 0 2px,#fff0 2px 6px);border:1px solid rgba(150,115,92,.45);box-shadow:inset 0 0 12px #ffffff8c,0 2px 8px #482c122e;filter:blur(.1px);transform:translateY(-50%);will-change:transform}.snitch:before{left:-58px;transform-origin:98% 50%;clip-path:polygon(100% 50%,86% 34%,60% 18%,28% 8%,6% 18%,0 38%,16% 56%,0 72%,10% 92%,34% 86%,66% 72%,88% 62%);animation:snitchWingLeft .16s ease-in-out infinite}.snitch:after{right:-58px;transform-origin:2% 50%;clip-path:polygon(0 50%,14% 34%,40% 18%,72% 8%,94% 18%,100% 38%,84% 56%,100% 72%,90% 92%,66% 86%,34% 72%,12% 62%);animation:snitchWingRight .16s ease-in-out infinite}.snitch-fireworks-layer{position:fixed;inset:0;z-index:60;pointer-events:none;mix-blend-mode:screen}.snitch-firework{position:absolute;width:0;height:0}.snitch-firework__spark{--angle: 0deg;--distance: 118px;--spark-size: 4px;--spark-hue: 42;position:absolute;left:0;top:0;width:var(--spark-size);height:calc(var(--spark-size) * 4.1);border-radius:999px;background:linear-gradient(180deg,#fffffff2,hsl(var(--spark-hue) 95% 62%) 42%,hsl(calc(var(--spark-hue) + 20) 94% 54%));box-shadow:0 0 18px hsl(var(--spark-hue) 96% 68% / .88),0 0 36px hsl(calc(var(--spark-hue) + 25) 90% 56% / .58);transform:rotate(var(--angle)) translateY(0);opacity:0;transform-origin:center bottom;animation:fireworkSpark 1.35s cubic-bezier(.18,.7,.2,1) forwards}.snitch-firework__core{position:absolute;left:0;top:0;width:30px;height:30px;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle at 40% 35%,#fffffffa,#fff0 42%),radial-gradient(circle at 50% 50%,#ffe893f2,#ffb84000 72%);box-shadow:0 0 34px #ffdc80e6,0 0 64px #ffa847a6;animation:fireworkCore 1.45s ease-out forwards}.snitch-firework__ring{position:absolute;left:0;top:0;width:26px;height:26px;border-radius:50%;border:2px solid rgba(255,235,170,.9);transform:translate(-50%,-50%) scale(.3);opacity:0;animation:fireworkRing 1.2s ease-out forwards}.snitch-modal-overlay{position:fixed;inset:0;z-index:45;display:grid;place-items:center;padding:1.2rem;background:#1c0e0599;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:snitchModalFadeIn .24s ease-out both}.snitch-modal-overlay.is-closing{animation:snitchModalFadeOut .2s ease-in both}.snitch-modal{position:relative;width:min(92vw,560px);border-radius:14px;border:1px solid rgba(210,164,88,.65);background:radial-gradient(circle at 18% 16%,#fff4d273,#fff4d200 48%),linear-gradient(160deg,#2f1c0f,#22140a);box-shadow:0 18px 42px #0000008c,0 0 24px #ffbf5c3d,inset 0 0 0 1px #ffe5a838;color:#f6e4bd;padding:2.4rem 2rem 1.8rem;animation:snitchModalPop .3s cubic-bezier(.2,.85,.2,1) both}.snitch-modal p{margin:0;font-size:1.2rem;line-height:1.6;letter-spacing:.2px;text-shadow:0 1px 8px rgba(0,0,0,.35)}.snitch-modal__close{position:absolute;right:.6rem;top:.5rem;border:0;background:transparent;color:#f7e5b8e6;font-size:2rem;line-height:1;padding:.2rem .45rem;cursor:pointer;box-shadow:none;text-transform:none;letter-spacing:0}.snitch-modal__close:hover{transform:none;filter:brightness(1.15);box-shadow:none}.snitch-modal__close:focus-visible{outline:2px solid rgba(255,222,150,.9);outline-offset:2px;border-radius:4px}.snitch-modal__action{margin-top:1.4rem}@keyframes snitchFlight{0%{top:12%;left:8%;transform:translateZ(0) rotate(-6deg) scale(1)}20%{top:26%;left:78%;transform:translateZ(0) rotate(10deg) scale(1.02)}42%{top:68%;left:64%;transform:translateZ(0) rotate(4deg) scale(.98)}62%{top:56%;left:18%;transform:translateZ(0) rotate(-12deg) scale(1.01)}82%{top:22%;left:42%;transform:translateZ(0) rotate(8deg) scale(1)}to{top:14%;left:88%;transform:translateZ(0) rotate(2deg) scale(1.02)}}@keyframes snitchWingLeft{0%{transform:translateY(-50%) rotate(-18deg) skewY(-4deg) scaleY(1)}50%{transform:translateY(-50%) rotate(28deg) skewY(6deg) scaleY(.92)}to{transform:translateY(-50%) rotate(-18deg) skewY(-4deg) scaleY(1)}}@keyframes snitchWingRight{0%{transform:translateY(-50%) rotate(18deg) skewY(4deg) scaleY(1)}50%{transform:translateY(-50%) rotate(-28deg) skewY(-6deg) scaleY(.92)}to{transform:translateY(-50%) rotate(18deg) skewY(4deg) scaleY(1)}}@keyframes snitchCatchPop{0%{opacity:1;transform:scale(1)}75%{opacity:.85;transform:scale(1.35);filter:brightness(1.5) saturate(1.3)}to{opacity:0;transform:scale(0);filter:brightness(1.8) saturate(1.6)}}@keyframes fireworkSpark{0%{opacity:0;transform:rotate(var(--angle)) translateY(0) scaleY(.8)}12%{opacity:1}78%{opacity:1}to{opacity:0;transform:rotate(var(--angle)) translateY(calc(var(--distance) * -1)) scaleY(.15)}}@keyframes fireworkCore{0%{opacity:.95;transform:translate(-50%,-50%) scale(.35)}70%{opacity:.82;transform:translate(-50%,-50%) scale(1.5)}to{opacity:0;transform:translate(-50%,-50%) scale(2.3)}}@keyframes fireworkRing{0%{opacity:.85;transform:translate(-50%,-50%) scale(.25)}to{opacity:0;transform:translate(-50%,-50%) scale(7.2)}}@keyframes snitchModalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes snitchModalFadeOut{0%{opacity:1}to{opacity:0}}@keyframes snitchModalPop{0%{opacity:0;transform:translateY(18px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}.track{position:fixed;inset:0;pointer-events:none;mix-blend-mode:normal;opacity:1;z-index:11}.footprint{position:absolute;will-change:transform,opacity;opacity:.7;mix-blend-mode:multiply}.footprint .foot{position:absolute;width:10px;height:22px;background-image:url(https://icochi.github.io/The-Marauders-Map/footprints.png);background-size:40px;background-repeat:no-repeat;background-position-x:10px;animation:footsteps 1s linear 0s forwards;filter:sepia(.65) saturate(1.1)}.footprint .foot:after{display:none;content:"";width:100%;height:100%;background-image:url(https://icochi.github.io/The-Marauders-Map/footprints-cloud.png);background-repeat:no-repeat;background-size:20px 22px;mix-blend-mode:lighten;animation:8s linear 1s footHide forwards;opacity:0}.footprint.last .foot:after{animation-play-state:paused}.footprint .foot.left{left:-5px;top:7px}.footprint .foot.right{left:5px;top:-7px;background-position-y:-22px;animation-delay:1s}.footprint .foot.right:after{background-position-x:-10px}.name-banner{position:absolute;width:160px;height:40px;background-image:url(https://icochi.github.io/The-Marauders-Map/banner.svg);background-repeat:no-repeat;background-size:160px 40px;text-align:center;line-height:32px;font-family:var(--font-body);font-size:.95rem;color:#3a2416;font-weight:700;text-shadow:0 1px 2px rgba(22,10,4,.55),0 0 8px rgba(255,244,214,.4);z-index:12;display:none;animation:1s linear 0s nameShow forwards;pointer-events:none;filter:drop-shadow(0 1px 1px rgba(0,0,0,.18))}.name-banner--static{display:block;opacity:0;animation:nameShow 1s linear .6s forwards}.name-banner--cirmike{left:68%;top:62%;transform:translate(-50%,-50%) rotate(-3deg)}.name-banner--paws:before,.name-banner--paws:after{content:"";position:absolute;width:14px;height:14px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Ccircle cx='8' cy='8' r='3' fill='%233a2416'/%3E%3Ccircle cx='16' cy='6' r='3' fill='%233a2416'/%3E%3Ccircle cx='24' cy='8' r='3' fill='%233a2416'/%3E%3Ccircle cx='12' cy='14' r='3' fill='%233a2416'/%3E%3Cellipse cx='16' cy='22' rx='7' ry='6' fill='%233a2416'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;opacity:.75}.name-banner--paws:before{left:12px;top:12px;transform:rotate(-14deg)}.name-banner--paws:after{right:12px;top:12px;transform:scaleX(-1) rotate(14deg)}.pawprint{position:absolute;width:22px;height:22px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Ccircle cx='8' cy='8' r='3' fill='%233a2416'/%3E%3Ccircle cx='16' cy='6' r='3' fill='%233a2416'/%3E%3Ccircle cx='24' cy='8' r='3' fill='%233a2416'/%3E%3Ccircle cx='12' cy='14' r='3' fill='%233a2416'/%3E%3Cellipse cx='16' cy='22' rx='7' ry='6' fill='%233a2416'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;opacity:0;transform:translate(-50%,-50%);animation:pawFade 6s ease forwards;filter:drop-shadow(0 2px 2px rgba(40,20,10,.35));mix-blend-mode:multiply;z-index:1}@keyframes pawFade{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}20%{opacity:.75;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(1.08)}}@keyframes footsteps{0%{background-position-x:0}25%{background-position-x:0}25.1%{background-position-x:-10px}50%{background-position-x:-10px}50.1%{background-position-x:-20px}75%{background-position-x:-20px}75.1%{background-position-x:-30px}to{background-position-x:-30px}}@keyframes footHide{0%{opacity:0}25%{opacity:1;filter:brightness(1)}to{opacity:1;filter:brightness(10)}}@keyframes nameShow{0%{opacity:0}to{opacity:1}}@keyframes magic{0%{filter:brightness(10)}to{filter:brightness(0)}}.stars{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1;background-image:radial-gradient(2px 2px at 20px 30px,#eee,#0000),radial-gradient(2px 2px at 40px 70px,#fff,#0000),radial-gradient(2px 2px at 50px 160px,#ddd,#0000),radial-gradient(2px 2px at 90px 40px,#fff,#0000),radial-gradient(2px 2px at 130px 80px,#fff,#0000),radial-gradient(2px 2px at 160px 120px,#ddd,#0000);background-repeat:repeat;background-size:200px 200px;opacity:.3}.hogwarts-footer{position:fixed;bottom:0;left:0;width:100%;height:clamp(140px,26vh,260px);background-image:url(https://www.harrypotter.com/images/home/horizons_hogwarts.png);background-size:contain;background-position:center bottom;background-repeat:no-repeat;z-index:3;pointer-events:none;opacity:.9}
