:root{--color-bg: #3b2a1e;--color-card: #7a9e7e;--color-button: #c4847a;--color-text: #f5f0e8;font-family:Pacifico,cursive;line-height:1.5;font-weight:400;color:var(--color-text);background-color:var(--color-bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;background-color:var(--color-bg);color:var(--color-text)}a{color:var(--color-button);text-decoration:none}.page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1.5rem;text-align:center;gap:1.5rem}.copyright{position:fixed;bottom:1rem;left:50%;transform:translate(-50%);z-index:0;font-family:Manrope,system-ui,sans-serif;font-size:.6rem;font-weight:400;letter-spacing:.08em;opacity:.5;margin:0;white-space:nowrap;z-index:1}.home-page{position:relative;overflow:hidden}.sticker-layer{position:fixed;inset:0;pointer-events:none;z-index:0}.sticker{position:absolute;filter:invert(1);opacity:.2;width:var(--size)}@media(max-width:640px){.sticker{display:none}.sticker--mobile{display:block;width:calc(var(--size) * .6)}}.home-hero,.btn-start{position:relative;z-index:1}.home-hero{display:flex;flex-direction:column;align-items:center;gap:.4rem}.home-date{font-family:Manrope,system-ui,sans-serif;font-size:.95rem;font-weight:300;letter-spacing:.2em;text-transform:uppercase;margin:0;animation:fade-in-dim 1s ease-out .2s both,glow-soft 4.5s ease-in-out 1.6s infinite}.home-names{font-size:3.2rem;font-weight:200;letter-spacing:.04em;margin:0;line-height:1.1;animation:fade-in 1.1s ease-out .6s both}.home-subtitle{font-family:Manrope,system-ui,sans-serif;font-size:.9rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;margin:0;margin-top:.6rem;animation:fade-in-dimmer 1s ease-out 1.6s both,glow-soft 4.5s ease-in-out 2.9s infinite}@keyframes fade-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in-dim{0%{opacity:0;transform:translateY(14px)}to{opacity:.75;transform:translateY(0)}}@keyframes fade-in-dimmer{0%{opacity:0;transform:translateY(14px)}to{opacity:.6;transform:translateY(0)}}@keyframes glow-pulse{0%{text-shadow:0 0 8px rgba(245,240,232,.15),1px 0 22px rgba(245,240,232,.08)}18%{text-shadow:-1px 0 14px rgba(245,240,232,.42),0 -1px 30px rgba(245,240,232,.2),0 0 52px rgba(196,132,122,.13)}42%{text-shadow:0 0 20px rgba(245,240,232,.65),-2px 1px 38px rgba(245,240,232,.3),1px 0 58px rgba(196,132,122,.2)}63%{text-shadow:2px -1px 12px rgba(245,240,232,.38),0 2px 28px rgba(245,240,232,.16),-1px 0 46px rgba(196,132,122,.11)}81%{text-shadow:-1px 1px 18px rgba(245,240,232,.52),2px 0 34px rgba(245,240,232,.24),0 -1px 50px rgba(196,132,122,.16)}to{text-shadow:0 0 8px rgba(245,240,232,.15),1px 0 22px rgba(245,240,232,.08)}}@keyframes glow-soft{0%{text-shadow:0 0 6px rgba(245,240,232,.08)}28%{text-shadow:0 0 10px rgba(245,240,232,.3),-1px 0 20px rgba(245,240,232,.13)}52%{text-shadow:1px 0 8px rgba(245,240,232,.18),0 -1px 24px rgba(245,240,232,.1)}74%{text-shadow:0 0 14px rgba(245,240,232,.35),-1px 1px 22px rgba(245,240,232,.16)}to{text-shadow:0 0 6px rgba(245,240,232,.08)}}@media(prefers-reduced-motion:reduce){.home-date{animation:none;opacity:.75}.home-names{animation:none}.home-subtitle,.btn-start{animation:none;opacity:.6}}.btn-nav{position:absolute;top:1.25rem;left:1.25rem;display:flex;align-items:center;gap:.6rem;z-index:1}.btn-home{position:absolute;top:1.25rem;left:1.25rem;background:transparent;border:none;padding:0;opacity:.7;transition:opacity .2s,transform .2s}.btn-nav .btn-home{position:static}.btn-home img{width:48px;height:auto;display:block;filter:invert(1) brightness(.68) sepia(1);transform:rotate(-90deg)}.btn-home img.btn-home-house{width:36px;height:auto;display:block;filter:invert(1) brightness(.68) sepia(1);transform:none}.btn-home:hover,.btn-home:active{opacity:1;transform:scale(1.1)}button{background-color:var(--color-button);color:var(--color-text);border:none;border-radius:12px;padding:.75rem 2rem;font-size:1.1rem;font-weight:600;font-family:inherit;cursor:pointer;transition:opacity .2s}button:hover{opacity:.85}.btn-start{position:relative;background:transparent;border:none;border-radius:0;padding:0;margin-top:-1rem;cursor:pointer;opacity:.8;animation:fade-in-dimmer 1s ease-out 2.6s both,btn-idle-wiggle 3s ease-in-out 3.9s infinite;transition:opacity .2s}.btn-start-img{display:block;width:260px;height:auto;transform:scaleX(-1);filter:invert(1) brightness(.92) sepia(.15);mix-blend-mode:screen}.btn-start--nudging{animation:btn-nudge .4s ease-out forwards;pointer-events:none}@keyframes btn-idle-wiggle{0%{transform:translate(0)}10%{transform:translate(9px)}20%{transform:translate(0)}28%{transform:translate(5px)}36%{transform:translate(0)}to{transform:translate(0)}}@keyframes btn-nudge{0%{transform:translate(0);opacity:.8}35%{transform:translate(14px);opacity:.65}to{transform:translate(0);opacity:0}}.btn-start:hover:not(:disabled),.btn-start:active:not(:disabled){opacity:1}button:disabled{opacity:.5;cursor:not-allowed}.clue-card{position:relative;max-width:340px;width:100%}.clue-card-bg{position:relative;z-index:2;width:100%;height:auto;display:block;filter:sepia(1) brightness(.75);opacity:.4;mix-blend-mode:multiply}.clue-card-fill{position:absolute;z-index:1;inset:0;background-color:#f5ead4}.clue-card-text{position:absolute;z-index:3;inset:0;display:flex;flex-direction:column;justify-content:flex-start;padding:11% 24% 48% 10%;font-size:.88rem;color:#3b2a1e;line-height:1.7;text-align:left}.clue-card-text p{margin:.15rem 0}.clue-card-text--final{padding:22% 15% 44%;align-items:center}.clue-card-smiley{font-size:2.8rem;line-height:1}.error-message{color:#f5c6a0;font-size:1.1rem;margin:0}.game-page{position:relative}.final-page{position:relative;overflow:hidden}.final-content{position:relative;z-index:10;display:flex;flex-direction:column;align-items:center;gap:1rem}.final-content h1{font-size:1.8rem;margin:0}.final-content h2{font-size:1.4rem;margin:0;color:var(--color-button)}.cat-placeholder{width:240px;height:240px;background-color:#888;border-radius:16px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1rem}.claim{font-size:1.2rem;font-weight:600}.footer{font-size:.9rem;opacity:.7}.code-input-wrapper button{border:2px solid rgba(245,240,232,.6)}.code-input-wrapper .lock-btn{border:none}.lock-btn{background:transparent;border:none;padding:.5rem;color:#f5f0e859;transition:color .3s;display:flex;align-items:center;justify-content:center}.lock-btn:hover:not(:disabled){opacity:1}.lock-btn:disabled{opacity:.35;cursor:not-allowed}.lock-btn--open{color:var(--color-text)}.lock-btn--submitting{animation:wiggle 1.5s ease-in-out forwards}.lock-btn--success{color:#a8d5a2;animation:lock-snap .4s ease-out forwards}.lock-btn--error{color:#e8a0a0}.lock-btn--incomplete{animation:lock-rattle .55s ease-in-out forwards}@keyframes lock-rattle{0%{transform:translate(0) rotate(0)}14%{transform:translate(-6px) rotate(-4deg)}28%{transform:translate(6px) rotate(4deg)}42%{transform:translate(-5px) rotate(-3deg)}57%{transform:translate(5px) rotate(3deg)}71%{transform:translate(-3px) rotate(-2deg)}85%{transform:translate(3px) rotate(2deg)}to{transform:translate(0) rotate(0)}}@keyframes wiggle{0%{transform:rotate(0)}12%{transform:rotate(-10deg)}25%{transform:rotate(10deg)}37%{transform:rotate(-10deg)}50%{transform:rotate(10deg)}62%{transform:rotate(-6deg)}75%{transform:rotate(6deg)}87%{transform:rotate(-2deg)}to{transform:rotate(0)}}@keyframes lock-snap{0%{transform:scale(1) rotate(0)}35%{transform:scale(1.25) rotate(-8deg)}55%{transform:scale(1.1) rotate(5deg)}75%{transform:scale(1.04) rotate(-2deg)}to{transform:scale(1) rotate(0)}}.code-input-wrapper{display:flex;flex-direction:column;align-items:center;gap:1.25rem}.code-digits{display:flex;gap:.75rem}.code-digit{width:3rem;height:3.5rem;text-align:center;font-size:1.8rem;font-weight:700;font-family:inherit;color:var(--color-text);background-color:#c4847a40;border:2px solid rgba(196,132,122,.25);border-radius:10px;outline:none;transition:border-color .15s}.code-digit:focus{border-color:var(--color-button)}.dev-controls{display:flex;align-items:center;gap:.75rem;border:2px dashed rgba(245,240,232,.3);border-radius:10px;padding:.6rem 1rem;opacity:.6}.dev-controls button{padding:.4rem 1rem;font-size:.9rem;border-radius:8px}.dev-label{font-size:.75rem;font-weight:700;letter-spacing:.08em;color:var(--color-button);text-transform:uppercase}.champagne-overlay{position:fixed;inset:0;z-index:200;pointer-events:none;display:flex;align-items:center;justify-content:center}.champagne-bottle{width:130px;height:auto;filter:invert(1);animation:champagne-pop 1.4s cubic-bezier(.22,1,.36,1) forwards}@keyframes champagne-pop{0%{transform:translateY(100vh) scale(.9);opacity:0}8%{opacity:1}45%{transform:translateY(-12px) scale(1.1);opacity:1}56%{transform:translateY(5px) scale(.96);opacity:1}66%{transform:translateY(0) scale(1);opacity:1}73%{transform:translateY(0) scale(1.35);opacity:1}to{transform:translateY(-14px) scale(2.8);opacity:0}}.champagne-particle{position:absolute;border-radius:50%;opacity:0;animation:particle-burst .75s ease-out .65s forwards}@keyframes particle-burst{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(var(--tx),var(--ty)) scale(0);opacity:0}}.confetti{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:999;overflow:hidden}.confetti-piece{position:absolute;top:-20px;width:10px;height:14px;border-radius:2px;animation:fall linear infinite}@keyframes page-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-12px)}}.home-page.fading-out{animation:page-fade-out .5s ease-out forwards;pointer-events:none}.final-page{animation:fade-in .5s ease-out both}.clue-wrapper{display:flex;flex-direction:column;align-items:center;gap:.5rem}.clue-wrapper--fading-out{animation:fade-out .4s ease-in forwards}@keyframes fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-14px)}}.clue-number-label{position:absolute;top:.6rem;right:1.5rem;font-family:Pacifico,cursive;font-size:2.2rem;font-weight:400;letter-spacing:.02em;color:#e8d4a0;opacity:.7;margin:0}.game-page .clue-number-label,.game-page .clue-card-bg,.game-page .clue-card-fill{animation:fade-in .7s ease-out both}.game-page .clue-card-text{animation:fade-in .8s ease-out .6s both}.game-page .code-input-wrapper,.game-page .error-message{animation:fade-in .8s ease-out 1.3s both}.game-page .btn-nav{animation:fade-in .8s ease-out 2.8s both}@keyframes fall{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(110vh) rotate(720deg);opacity:0}}
