: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}html{height:100%;overscroll-behavior:none}body{margin:0;min-height:100vh;background-color:var(--color-bg);color:var(--color-text)}body:has(.game-page){overflow:hidden}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}body:has(.game-page) .copyright{display:none}.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) * .75)}}@media(max-width:430px){.page{padding:1.5rem .75rem}.game-page{padding:0rem .75rem .5rem;gap:0rem}.game-page .clue-wrapper{margin-top:-2rem}.game-input-area{margin-top:-2.5rem}.game-page .clue-card{max-width:400px}.clue-card-text{padding:17% 8% 42% 10%;clip-path:polygon(10% 10%,90% 10%,98% 76%,18% 76%)}}.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:36px;height:auto;display:block;filter:invert(1) brightness(.68) sepia(1);transform:rotate(-90deg)}.btn-home img.btn-home-house{width:48px;height:auto;display:block;filter:grayscale(1) brightness(.92) 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;touch-action:manipulation;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;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:400px;width:100%}.clue-card-bg{position:relative;z-index:2;width:100%;height:auto;aspect-ratio:1 / 1.7;object-fit:fill;display:block;opacity:1;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:28% 22% 42% 13%;font-size:clamp(.95rem,4.5vw,1.15rem);color:#3b2a1e;line-height:1.3;text-align:left;clip-path:polygon(11% 15%,78% 15%,84% 76%,17% 76%)}.clue-card-text p{margin:.05rem 0}.typing-cursor{display:inline-block;width:1.5px;height:.9em;background:#5a3e28;margin-left:1px;vertical-align:text-bottom;animation:cursor-blink .6s ease-in-out infinite}@keyframes cursor-blink{0%,to{opacity:1}50%{opacity: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:fixed;inset:0;min-height:unset;overflow:hidden;justify-content:flex-start;padding-top:0;gap:0rem}.admin-page{position:fixed;inset:0;min-height:unset;overflow-y:auto;padding-top:calc(5.5rem + env(safe-area-inset-top,0px))}.admin-delete-btn{background:transparent;border:none;color:#3b2a1e4d;font-size:.75rem;padding:.2rem .4rem;border-radius:4px;cursor:pointer;transition:color .15s}.admin-delete-btn:hover{color:#e8a0a0;opacity:1}.admin-nav{position:absolute;top:0;left:0;right:0;padding:1.25rem;display:flex;align-items:center;gap:.75rem}.admin-nav .btn-home{position:static}.admin-nav-title{position:absolute;left:50%;transform:translate(-50%);font-family:Manrope,system-ui,sans-serif;font-size:.7rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;opacity:.65}.game-page .clue-wrapper{flex:0 1 auto;min-height:0;overflow:hidden}.game-input-area{display:flex;align-items:center;justify-content:center;position:relative;z-index:10}.final-page{position:fixed;inset:0;overflow:hidden;padding-bottom:5rem}.final-player-name-bar{position:absolute;top:1.5rem;left:50%;transform:translate(-50%);z-index:4}.final-content{position:relative;z-index:10;display:flex;flex-direction:column;align-items:center;gap:1rem}.final-photo{width:260px;height:260px;object-fit:cover;border-radius:16px}.final-title{font-family:Manrope,system-ui,sans-serif;font-size:2.4rem;margin:0}.final-subtitle{font-family:Manrope,system-ui,sans-serif;font-size:1.05rem;margin:0;opacity:.85}.treasure-label{font-family:Manrope,system-ui,sans-serif;margin:.5rem 0 0;font-size:1rem;opacity:.7;text-transform:uppercase;letter-spacing:.12em}.treasure-code{font-family:Pacifico,cursive;font-size:5rem;letter-spacing:.15em;color:var(--color-button);margin:-1.5rem 0 0;line-height:1.1}.final-reminder{font-family:Manrope,system-ui,sans-serif;font-size:.85rem;font-style:italic;opacity:.65;margin:-.75rem 0 0;letter-spacing:.03em}@media(min-width:600px){.final-title{font-size:1.8rem}.final-subtitle{font-size:.9rem}.treasure-label{font-size:.85rem}.treasure-code{font-size:3.5rem}}.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:#d4b083;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--entering{animation:fade-in .5s ease-out 2.1s both}.lock-btn--open{color:#e8c98a}.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:row;align-items:center;gap:.75rem}.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}}.broken-heart-overlay{position:fixed;inset:0;z-index:200;pointer-events:none;display:flex;align-items:center;justify-content:center}.broken-heart-container{display:grid;animation:heart-rise .3s ease-out forwards}.broken-heart-half{grid-area:1 / 1;width:150px;height:auto;filter:invert(1)}.broken-heart-left{clip-path:polygon(0 0,50% 0,50% 100%,0 100%);animation:heart-break-left 1.1s ease-in .35s forwards}.broken-heart-right{clip-path:polygon(50% 0,100% 0,100% 100%,50% 100%);animation:heart-break-right 1.1s ease-in .35s forwards}@keyframes heart-rise{0%{transform:translateY(60px) scale(.7);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@keyframes heart-break-left{0%{transform:translate(0) rotate(0);opacity:1}15%{transform:translate(-5px) rotate(-8deg);opacity:1}to{transform:translate(-90px,130px) rotate(-40deg);opacity:0}}@keyframes heart-break-right{0%{transform:translate(0) rotate(0);opacity:1}15%{transform:translate(5px) rotate(8deg);opacity:1}to{transform:translate(90px,130px) rotate(40deg);opacity:0}}.broken-heart-particle{position:absolute;border-radius:50%;opacity:0;animation:particle-burst .65s ease-out .45s forwards}.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}@keyframes fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-14px)}}.clue-number-word{display:block;font-family:Manrope,system-ui,sans-serif;font-size:.55rem;letter-spacing:.18em;text-transform:uppercase;opacity:.7;line-height:1;margin-bottom:-.55rem}.clue-number-label{position:absolute;top:1.2rem;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{animation:fade-in .7s ease-out both;z-index:4}.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 .error-message{animation:fade-in .8s ease-out 1.3s both}.game-page .code-digit:nth-child(1){animation:fade-in .5s ease-out 1.3s both}.game-page .code-digit:nth-child(2){animation:fade-in .5s ease-out 1.5s both}.game-page .code-digit:nth-child(3){animation:fade-in .5s ease-out 1.7s both}.game-page .code-digit:nth-child(4){animation:fade-in .5s ease-out 1.9s both}.game-page .btn-nav{position:relative;width:100%;justify-content:flex-start;align-items:center;z-index:4}.game-page .player-name-bar{position:absolute;left:50%;transform:translate(-50%)}.btn-nav-left{display:flex;align-items:center;gap:.6rem}.btn-enter-code{touch-action:manipulation;font-family:Manrope,system-ui,sans-serif;font-size:.7rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#f5f0e8a6;background:transparent;border:1px solid rgba(245,240,232,.22);border-radius:100px;padding:.75rem 1.8rem;min-height:44px;cursor:pointer;transition:color .2s,border-color .2s}.btn-enter-code:hover{color:#f5f0e8e6;border-color:#f5f0e873}.leaderboard-card .btn-enter-code{color:#3b2a1ea6;border-color:#3b2a1e38}.leaderboard-card .btn-enter-code:hover{color:#3b2a1ee6;border-color:#3b2a1e73}.code-entry-overlay{position:fixed;inset:0;background:#0c060399;z-index:200;display:flex;align-items:center;justify-content:center;padding:1.5rem}.code-entry-sheet{width:100%;max-width:340px;background:#f5ead4f2;color:#2c1a0e;border-radius:20px;padding:1.5rem 1.5rem 2rem;display:flex;flex-direction:column;align-items:center;gap:.75rem;animation:modal-pop .25s cubic-bezier(.34,1.56,.64,1) both}@keyframes modal-pop{0%{transform:scale(.92);opacity:0}to{transform:scale(1);opacity:1}}.code-entry-close{align-self:flex-end;background:transparent;border:none;color:#2c1a0e66;font-size:1rem;line-height:1;cursor:pointer;padding:0}.code-entry-close:hover{color:#2c1a0eb3}.code-entry-sheet .code-digit{animation:none!important;opacity:1!important;color:#f5ead4;background-color:#3b2a1e;border-color:#f5ead433}.code-entry-sheet .code-digit:focus{border-color:#f5ead499}.code-entry-sheet .error-message{animation:none!important;opacity:1!important;color:#7a3a2a}@keyframes fall{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(110vh) rotate(720deg);opacity:0}}.resume-overlay{position:fixed;inset:0;background:#1e120abf;z-index:500;display:flex;align-items:center;justify-content:center;padding:1.5rem;animation:fade-in .3s ease-out both}.resume-card{font-family:Manrope,system-ui,sans-serif;background:#f5ead4f2;color:#2c1a0e;border-radius:20px;padding:2rem 2rem 1.75rem;width:100%;max-width:340px;display:flex;flex-direction:column;align-items:center;gap:1.5rem;text-align:center}.resume-greeting{font-size:1.15rem;margin:0;line-height:1.5;opacity:.9}.resume-actions{display:flex;flex-direction:column;gap:.75rem;width:100%}.btn-resume-continue{background:var(--color-button);color:var(--color-text);border:none;border-radius:12px;padding:.8rem 1.5rem;font-size:1rem;font-family:inherit;cursor:pointer;transition:opacity .2s;width:100%}.btn-resume-continue:hover{opacity:.85}.btn-resume-new{background:transparent;color:#2c1a0e;border:2px solid rgba(44,26,14,.25);border-radius:12px;padding:.75rem 1.5rem;font-size:.95rem;font-family:inherit;cursor:pointer;opacity:.6;transition:opacity .2s;width:100%}.btn-resume-new:hover{opacity:1}.name-entry-page .home-subtitle{animation:fade-in-dimmer .6s ease-out .2s both}.name-entry-page .name-input-wrapper{animation:fade-in .6s ease-out .6s both}.name-entry-page .btn-start{animation:fade-in-dimmer .6s ease-out 1s both,btn-idle-wiggle 3s ease-in-out 4s infinite}.name-input-wrapper{display:flex;flex-direction:column;align-items:center;gap:.4rem;position:relative;z-index:1}.name-input{background:#c4847a2e;border:2px solid rgba(196,132,122,.4);border-radius:12px;color:var(--color-text);font-family:Manrope,system-ui,sans-serif;font-size:max(16px,1rem);font-weight:500;letter-spacing:.04em;padding:.65rem 1.2rem;text-align:center;outline:none;transition:border-color .2s;width:220px}.name-input::placeholder{color:var(--color-button);opacity:.7}.name-input:focus{border-color:var(--color-button)}.name-error{font-family:Manrope,system-ui,sans-serif;font-size:.8rem;color:#f5c6a0;margin:0}.player-name-bar{display:flex;align-items:center;gap:.5rem;opacity:.55;font-family:Manrope,system-ui,sans-serif;font-size:.8rem;font-weight:500;letter-spacing:.06em}.player-name-text{color:#e8d4a0}.trophy-btn{background:transparent;border:none;padding:.2rem .4rem;font-size:1rem;border-radius:6px;cursor:pointer;opacity:1;transition:transform .15s}.trophy-btn:hover{transform:scale(1.15);opacity:1}.leaderboard-overlay{position:fixed;inset:0;background:#1e120ad9;z-index:500;display:flex;align-items:center;justify-content:center;padding:1.5rem}.leaderboard-card{background:#f5ead4f2;color:#2c1a0e;border-radius:16px;padding:1.5rem;width:100%;max-width:420px;max-height:80vh;overflow-y:auto;position:relative}.leaderboard-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.leaderboard-title{font-family:Manrope,system-ui,sans-serif;font-size:1.4rem;margin:0}.admin-refresh-btn{background:transparent;border:none;color:#3b2a1e;font-size:1.7rem;padding:.2rem .4rem;border-radius:6px;opacity:.6;cursor:pointer;transition:opacity .15s,transform .2s;line-height:1;margin-top:-1rem}.admin-refresh-btn:hover{opacity:1}.admin-refresh-btn:disabled{opacity:.3;cursor:default;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.leaderboard-close{background:transparent;border:none;color:#3b2a1e;font-size:1.1rem;padding:.3rem .6rem;border-radius:8px;opacity:.7;cursor:pointer}.leaderboard-close:hover{opacity:1}.leaderboard-loading,.leaderboard-empty{font-family:Manrope,system-ui,sans-serif;font-size:.95rem;opacity:.7;text-align:center;margin:1rem 0}.leaderboard-table{width:100%;border-collapse:collapse;font-family:Manrope,system-ui,sans-serif;font-size:.9rem}.leaderboard-table th{text-align:left;padding:.4rem .6rem;opacity:.6;font-weight:600;letter-spacing:.06em;font-size:.75rem;text-transform:uppercase;border-bottom:1px solid rgba(44,26,14,.15)}.leaderboard-table td{padding:.5rem .6rem;border-bottom:1px solid rgba(44,26,14,.07);vertical-align:middle;text-align:left}.refresh-hint{position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);background:#3b2a1ed1;color:#f5f0e8bf;font-family:Manrope,system-ui,sans-serif;font-size:.7rem;font-weight:500;letter-spacing:.05em;padding:.55rem 1.1rem;border-radius:100px;border:1px solid rgba(245,240,232,.15);z-index:50;white-space:nowrap;margin:0;pointer-events:none;animation:fade-in .6s ease-out both}
