:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){a:hover{color:#747bff}button{color:#f5f5f5}}:root{--blueprint-lightblue: #7cb9ff;--blueprint-blue: #27334b}#root{margin:0 auto;text-align:center;min-height:100vh;display:flex;flex-direction:column;font-family:Inter,Arial,Helvetica,sans-serif}html{overflow-x:hidden}body{min-height:100vh;margin:0;padding:0;box-sizing:border-box}.app-content{flex:1 0 auto;display:flex;flex-direction:column}.home-container{max-width:1600px;margin:0 auto;text-align:left;width:100%;display:flex;flex-direction:column;align-items:center}.home-flex{display:flex;flex-direction:row;align-items:flex-start;justify-content:flex-start;gap:3rem}.home-info{flex:1 1 0;min-width:0;margin-left:4rem}.home-info p{font-size:1.1rem}.home-title{text-align:center}.home-title-row{display:flex;align-items:center;gap:1.2rem;justify-content:center;margin-bottom:1.2rem;margin-top:1.5rem}.home-title-img{border-radius:50%;object-fit:cover;height:200px;width:200px}.sidebar{position:static;min-width:10rem;max-width:15rem;margin-top:2.5rem;background:#27334b;color:#fff;padding:1.2em 1.5em;border-radius:12px;box-shadow:-2px 2px 12px #3c3c6421;display:flex;flex-direction:column;align-items:flex-start;gap:2em}.sidebar-link{color:#7cb9ff;text-decoration:none;font-weight:600;transition:color .2s;font-size:larger}.sidebar-link:hover{color:#fff;text-decoration:underline}.footer{width:100%;background:#222b3a;color:#bfc9e0;text-align:center;padding:1.5rem 0 1.2rem;font-size:1rem;font-weight:500;letter-spacing:.04em;margin-top:4rem;border-top:2px solid var(--blueprint-lightblue);flex-shrink:0}.fade-in-section{opacity:0;transform:translateY(30px);transition:opacity 1.2s cubic-bezier(.4,0,.2,1),transform 1.2s cubic-bezier(.4,0,.2,1)}.fade-in-section.animation{opacity:1;transform:translateY(0)}.fade-in-section.delay1{transition-delay:.8s}.fade-in-section.delay2{transition-delay:1.3s}.fade-in-section.delay3{transition-delay:1.6s}@media (max-width: 900px){.home-flex{flex-direction:column;align-items:center;gap:1.5rem}.home-info{margin-left:0;width:90%;padding:0 0rem}.sidebar{margin-top:1.5rem;width:100%;max-width:100%;align-items:flex-start;padding:1em .5em;padding-left:4rem}.home-title-row{flex-direction:column;gap:.7rem;margin-bottom:1rem;margin-top:1rem}.home-title-img{width:90px;height:90px}}@media (max-width: 600px){.home-flex{gap:.7rem}.home-info{padding:0 .3rem}.sidebar{padding:.7em .2em;font-size:.98rem;gap:1em;margin-left:1rem;padding-left:4rem}.home-title-row{gap:.4rem;margin-bottom:.7rem;margin-top:.7rem}.home-title-img{width:60px;height:60px}.home-title{font-size:1.3rem}.home-info p{font-size:1rem}}.navbar{display:flex;justify-content:flex-start;align-items:center;width:100%;padding:1.2rem 2.5rem;padding-left:0;background:linear-gradient(90deg,var(--blueprint-blue) 70%,#1a2233 100%);box-shadow:0 2px 12px #27334b21;border-bottom:2px solid var(--blueprint-lightblue);position:sticky;top:0;z-index:100}.navbar-menu{max-width:1600px;margin:0 auto}.navbar-btn{padding:.6rem 1.6rem;font-size:1.1rem;font-weight:600;color:#fff;background:none;border:2px solid transparent;border-radius:8px;transition:background .18s,color .18s,border .18s;cursor:pointer;letter-spacing:.04em}.navbar-btn:hover,.navbar-btn:focus{background:var(--blueprint-lightblue);color:#1a2233;border:2px solid #fff;outline:none}.navbar-btn.active{background:#fff;color:var(--blueprint-blue);border:2px solid var(--blueprint-lightblue)}.navbar-hamburger{display:none;background:none;border:none;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;width:2.2rem;height:2.2rem;padding:0;margin-left:auto;margin-right:1rem;z-index:110}.hamburger-bar{display:block;width:1.8rem;height:.23rem;margin:.22rem 0;background:#fff;border-radius:2px;transition:all .3s}.navbar-hamburger.open .hamburger-bar:nth-child(1){transform:translateY(.45rem) rotate(45deg)}.navbar-hamburger.open .hamburger-bar:nth-child(2){opacity:0}.navbar-hamburger.open .hamburger-bar:nth-child(3){transform:translateY(-.45rem) rotate(-45deg)}@media (max-width: 900px){.navbar-hamburger{display:flex}.navbar-menu{display:none;flex-direction:column;width:100%;background:linear-gradient(90deg,var(--blueprint-blue) 80%,#1a2233 100%);box-shadow:0 2px 12px #27334b21;position:absolute;top:100%;left:0;z-index:105;padding:.2rem 0 .5rem;border-bottom-left-radius:.7em;border-bottom-right-radius:.7em}.navbar-menu.show{display:flex}.navbar{position:sticky;flex-direction:row;gap:.2rem;padding:.2rem;min-height:2.5rem}.navbar-btn{width:100%;margin-bottom:.1rem;font-size:.95rem;padding:.5rem .7rem;border-radius:6px}}@media (max-width: 600px){.navbar-hamburger{width:1.7rem;height:1.7rem}.hamburger-bar{width:1.3rem;height:.18rem}.navbar-menu{padding:.1rem 0 .2rem}.navbar-btn{font-size:.9rem;padding:.35rem .4rem;border-radius:5px}}@media (min-width: 901px){.navbar-hamburger{display:none!important}.navbar-menu{display:flex!important;flex-direction:row;position:static;background:none;box-shadow:none;width:auto;padding:0}.navbar-btn{margin-right:1.2rem}.navbar-btn:last-child{margin-right:0}}:root{--room-size: clamp(60px, 8vw, 90px);--blueprint-size: clamp(180px, 16vw, 210px);--wall-style: 8px solid #16003b !important;--blueprint-lightblue: #7cb9ff;--blueprint-blue: #27334b;--gem-purple: #f15bff;--coin-gold: gold}.puzzle-main-flex{max-width:1600px;margin:0 auto;margin-top:1rem;display:flex;justify-content:center;align-items:flex-start}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#27334bd9;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background-color:var(--blueprint-blue);color:#eaf3ff;padding:24px 20px 20px;border-radius:12px;box-shadow:0 4px 24px #3c3c6438;border:2px solid var(--blueprint-lightblue);position:relative;max-width:500px;width:90%}.modal-content p{font-size:1.1rem;text-wrap:pretty}.resource-display{margin:1rem;padding:.5rem 1.25rem;background:#2e3a4d;color:#0a0913;border-radius:6px;font-weight:600;font-size:1.3rem;display:inline-flex;align-items:center;justify-content:center}.resource-display svg{margin-right:.5em;font-size:1.5rem}.resource-display.steps{color:#dfdfdf}.resource-display.keys{color:var(--blueprint-lightblue)}.resource-display.gems{color:var(--gem-purple)}.resource-display.coins{color:var(--coin-gold)}.room-grid{display:flex;flex-direction:column;gap:4px;margin:0rem auto 2rem;width:fit-content;cursor:default;align-items:center}.room-row{display:flex;gap:4px;justify-content:center;font-family:Times New Roman,Times,serif}.room{width:var(--room-size);height:var(--room-size);background:#e0e0e0;border:1px solid var(--blueprint-lightblue);box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:1.1rem;font-weight:600;letter-spacing:.03em;text-align:center;line-height:1.2;overflow:hidden}.room:hover{background:#fff}.room.active{background:#00c431;color:#004912}.room.active:hover{background:#16e74b}.room.inactive{background:var(--blueprint-blue)}.room.inactive:hover{background:#374869}.room.activated{background:#847bff;color:#2b2186}.room.activated:hover{background:#928aff}.room.locked{background:#b83838;color:#470000}.room.locked:hover{background:#c44646}.room.current{position:relative;z-index:1;box-shadow:0 0 16px 4px var(--blueprint-lightblue);animation:border-glow 1.2s linear infinite alternate}.room.current:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:12px;pointer-events:none;z-index:-1;animation:border-glow 1.2s linear infinite alternate;box-shadow:0 0 16px 4px var(--blueprint-lightblue)}.wall-up{border-top:var(--wall-style)}.wall-down{border-bottom:var(--wall-style)}.wall-left{border-left:var(--wall-style)}.wall-right{border-right:var(--wall-style)}#room_20{color:#000;background:#dbdbdb;font-size:.8rem;font-weight:600}#room_20:hover{background:#fff}.room-arrow{display:flex;justify-content:center;align-items:center;font-size:clamp(3rem,2vw,6rem);color:var(--blueprint-lightblue);text-shadow:1px 1px 4px #222,0 0 8px #0000005d;font-weight:700;height:1.8em;min-height:1.2em;pointer-events:none;-webkit-user-select:none;user-select:none;font-family:Fira Mono,Consolas,Menlo,"monospace"}.btn{margin-bottom:1rem;padding:.75rem clamp(5rem,12vw,10rem);font-size:1rem;background:var(--blueprint-blue);color:#fff;border:none;border-radius:6px;cursor:pointer;transition:.4s}.btn.tutorial{background:#16223a}.btn:hover{background:var(--blueprint-lightblue);color:#000}.btn.active{position:relative;z-index:1;background:var(--blueprint-blue);color:#fff;border:none;border-radius:6px;box-shadow:0 0 0 0 var(--blueprint-lightblue);overflow:visible}.btn.reset.active:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:10px;border:3px solid var(--blueprint-lightblue);pointer-events:none;z-index:-1;animation:border-glow 1.2s linear infinite alternate}.day-display{display:block;margin:0 0 1.5rem;padding:.5rem 1rem;background:var(--blueprint-blue);color:#fff;border-radius:10px;font-size:.9rem;font-weight:500;letter-spacing:.06em;text-align:left;box-shadow:0 4px 16px #3c3c6421;border:1px solid var(--blueprint-lightblue);align-self:flex-start;cursor:default}.rule-button{display:block;margin:0 0 1.5rem;padding:.5rem 1rem;background:var(--blueprint-blue);color:#fff;border-radius:10px;font-size:.9rem;font-weight:500;letter-spacing:.06em;box-shadow:0 4px 16px #3c3c6421;border:1px solid var(--blueprint-lightblue);align-self:flex-start;cursor:pointer;display:flex;align-items:center;justify-content:center}.rule-button svg{font-size:1rem;margin-right:.5em}.message-display{display:inline-block;min-height:7.5rem;padding:.5rem 1.25rem;margin-top:2rem;background:var(--blueprint-blue);color:#fff;border-radius:6px;font-size:1.1rem;font-weight:500;box-sizing:border-box;width:clamp(100px,30vw,400px);overflow-wrap:break-word;text-wrap:pretty}.choice-row-container{display:flex;flex-direction:column;justify-content:flex-start;align-items:center;height:100%;min-width:270px;margin-top:1.5rem;margin-right:2rem;margin-left:auto;margin-right:auto}.choice-row{display:flex;flex-direction:row;justify-content:center;align-items:center;height:var(--blueprint-size);margin-top:50px}.choice-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;width:var(--blueprint-size);height:var(--blueprint-size);background:var(--blueprint-blue);border:3px double var(--blueprint-lightblue);box-shadow:0 4px 24px var(--blueprint-blue),0 0 0 4px #2d3e5e inset;box-sizing:border-box;margin-right:1rem;border-radius:18px;position:relative;overflow:hidden;padding-top:2.2em}.choice-cell:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:2px dashed #fff3;border-radius:14px;pointer-events:none}.choice-cell:last-child{margin-right:0}.choice-cell.inactive{background:#1b1b1b}.choice-cell.active:hover{background:#30405f;cursor:pointer}.blueprint-title{position:absolute;top:0;left:0;width:100%;padding-top:.2rem;font-size:clamp(1rem,2.2vw,1.5rem);font-weight:700;color:#4394ff;letter-spacing:.05em;text-align:center}.gem-cost{font-size:clamp(1rem,1.5vw,1.3rem);font-weight:700;color:var(--gem-purple);margin-bottom:.25rem;letter-spacing:.05em;text-align:center;display:inline-flex;align-items:center;justify-content:center}.gem-cost svg{font-size:1.5rem;font-weight:400;margin-left:.2em}.arrows{display:flex;justify-content:center;gap:.5rem;font-size:clamp(2rem,5vw,3rem);color:#7cb9ff;text-shadow:1px 1px 2px #222,0 0 8px #0000005d;font-weight:700;letter-spacing:.2em;font-family:Fira Mono,Consolas,Menlo,"monospace"}.blueprint-resources{font-weight:500;font-size:1.2rem;display:inline-flex;align-items:center;justify-content:center}.blueprint-resources svg{margin-left:.2em;margin-right:.4em;font-size:1.2em}.blueprint-resources.keys{color:var(--blueprint-lightblue)}.blueprint-resources.gems{color:var(--gem-purple)}.blueprint-resources.coins{color:var(--coin-gold)}.shop{margin-top:2rem;background:var(--blueprint-blue);border-radius:16px;box-shadow:0 4px 24px #3c3c6421;padding:2.5rem 2.5rem 2rem;max-width:400px;margin-left:auto;margin-right:auto;display:flex;flex-direction:column;align-items:center}.shop-title{color:var(--blueprint-lightblue);font-size:2rem;font-weight:700;margin-bottom:2rem;letter-spacing:.04em;text-align:center}.shop-button{background:var(--coin-gold);color:#27334b;font-size:1.2rem;font-weight:700;border:none;border-radius:8px;padding:.8em 2.2em;margin:.7em 0;box-shadow:0 2px 8px #3c3c6421;cursor:pointer;transition:background .2s,color .2s,box-shadow .2s}.shop-button:hover{background:gold;color:#16003b;box-shadow:0 4px 16px #3c3c6438}@keyframes border-glow{0%{box-shadow:0 0 0 0 var(--blueprint-lightblue);opacity:.7}to{box-shadow:0 0 16px 4px var(--blueprint-lightblue);opacity:1}}@media (max-width: 1200px){.choice-row{flex-direction:column;align-items:center;justify-content:flex-start;height:auto;gap:1.2rem}.choice-cell{margin-right:0;margin-bottom:1.2rem;width:min(90vw,200px);height:min(90vw,200px);min-width:120px;min-height:120px;max-width:200px;max-height:200px}.choice-cell:last-child{margin-bottom:0}}@media (max-width: 900px){.puzzle-main-flex{flex-direction:column;align-items:center;gap:1.5rem}.message-display{width:95vw;min-width:0;max-width:99vw;font-size:1rem;margin-left:auto;margin-right:auto}}@media (max-width: 600px){.modal-content{width:90vw!important;max-width:90vw!important;min-width:0!important;height:100vh!important;min-height:0!important;padding:1rem!important;border-radius:0!important;font-size:.95rem;box-sizing:border-box!important;margin:0!important;margin-right:1.5rem!important;margin-left:.5rem!important;overflow-y:auto!important;overflow-x:hidden!important;display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch}.modal-content p{font-size:.97rem;padding:8px 12px}}:root{--event-bg: #222b3a;--event-card-bg: #27334b;--event-card-border: #7cb9ff;--event-title: #7cb9ff;--venue-title: rgb(253, 253, 255);--event-text: #eaf3ff;--event-link: #ffd700;--event-link-hover: #fff}.event-lists-wrapper{max-width:1200px;margin:2.5rem auto;padding:0 1.2rem;border-radius:14px}.event-list{margin-bottom:0;background:var(--event-bg);padding:0;border-radius:14px}.event-list:not(:first-child){margin-top:0}.venue-banner{display:flex;align-items:center;justify-content:center;background:var(--event-banner-bg, #1a2233);padding:.7rem 20rem;border-radius:14px 14px 0 0;box-shadow:0 2px 8px #1e283c14;cursor:pointer;transition:background .18s;width:100%;box-sizing:border-box;gap:1.2rem}.venue-banner:hover{background:var(--event-banner-hover, #232e45)}.venue-title{font-size:2rem;color:var(--venue-title);margin:0;padding:0;letter-spacing:.04em;text-align:center;flex:1 1 0}.event-card{background:var(--event-card-bg);border:1.5px solid var(--event-card-border);border-radius:12px;box-shadow:0 2px 12px #3c3c6421;margin-bottom:2.2rem;padding:1.5rem 1.2rem 1.2rem;transition:box-shadow .2s,border .2s}.event-card:hover{background:#202b3d}.event-card h2{font-size:1.3rem;color:var(--event-title);margin-bottom:.7rem;margin-top:0}.event-card .event-dates{font-size:1.05rem;color:var(--blueprint-lightblue);margin-bottom:.5rem;font-weight:600}.event-card p{font-size:1.08rem;color:var(--event-text);margin-bottom:.7rem;margin-top:0;line-height:1.6}.event-card a{color:var(--event-link);text-decoration:underline;font-weight:500;word-break:break-all;transition:color .18s}.event-card a:hover{color:var(--event-link-hover)}@media (max-width: 600px){.event-lists-wrapper{padding:0 .2rem;border-radius:8px}.event-card{padding:1rem .5rem .8rem;border-radius:8px}.event-card h2{font-size:1.08rem}.event-card p{font-size:.98rem}.event-card .event-dates{font-size:.95rem}.venue-banner{flex-direction:column;align-items:center;padding:.7rem 1rem;border-radius:8px 8px 0 0;gap:.5rem}.venue-title{font-size:1.3rem;margin-bottom:.5rem}}
