:root{--spruce: #1e3b32;--snow: #eef1ef;--lingonberry: #9e2235;--brass: #b8954a;--ink: #16231e;--muted: #4f5f58;--font-display: "Young Serif", Georgia, serif;--font-body: "Figtree", system-ui, sans-serif;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--snow);color:var(--ink);font:1rem/1.5 var(--font-body)}main{max-width:56rem;margin:0 auto;padding:2rem 1rem 4rem}header h1{margin:0;font:400 clamp(2.5rem,8vw,4.5rem)/1 var(--font-display);color:var(--spruce)}header p{max-width:38rem;color:var(--muted)}.doors{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.5rem,1fr));gap:.75rem;margin:2rem 0}.door{aspect-ratio:1;border:2px solid var(--spruce);border-radius:.375rem;background:var(--spruce);color:var(--snow);font:400 2rem/1 var(--font-display);cursor:pointer}.door-open{background:var(--lingonberry);border-color:var(--lingonberry);box-shadow:0 0 0 3px var(--brass)}.door-past{background:transparent;color:var(--spruce)}.door-locked{cursor:default;opacity:.85}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid var(--brass);outline-offset:2px}.panel{padding:1.5rem;border-radius:.5rem;background:#fff}.panel h2{margin-top:0;font:400 1.75rem/1.2 var(--font-display)}.game-options{display:flex;flex-wrap:wrap;gap:.5rem}.game button,.game-options button{padding:.6rem 1.1rem;border:0;border-radius:999px;background:var(--spruce);color:var(--snow);font:600 1rem var(--font-body);cursor:pointer}.game-scrambled{font:400 2rem/1.2 var(--font-display);letter-spacing:.15em}.game-input{display:grid;gap:.25rem;margin-bottom:.75rem;max-width:20rem}.game-input input{padding:.5rem .75rem;border:1px solid var(--muted);border-radius:.375rem;font:inherit}.game-hint,.code-terms{color:var(--muted)}.product img{max-width:100%;border-radius:.375rem}.product a{color:var(--spruce)}.code{margin-top:1rem;padding:1rem;border:2px dashed var(--lingonberry);border-radius:.5rem}.code p{margin:0}.code-value{font:400 2rem/1.3 var(--font-display);color:var(--lingonberry);-webkit-user-select:all;user-select:all}.error{color:var(--lingonberry);font-weight:600}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}
