@font-face{font-family:Archivo;src:url('/assets/archivo-black.woff2') format('woff2');font-display:swap}
:root{--orange:#ff7900;--ink:#222425;--paper:#f7f6f2;--line:#e3e2dc;--bulma-primary-h:28deg;--bulma-primary-s:100%;--bulma-primary-l:50%;--bulma-family-primary:Arial,sans-serif;--bulma-body-background-color:var(--paper);--bulma-body-color:var(--ink);--bulma-link-text:var(--ink)}
*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:Arial,sans-serif;background:var(--paper)}a{color:inherit}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #125fc3;outline-offset:4px}[hidden]{display:none!important}h1,h2,h3,p{margin:0 0 1rem}h1{font-family:Archivo,Arial,sans-serif;font-size:clamp(2.5rem,5vw,4.5rem);line-height:1.08;letter-spacing:-.055em;margin:1rem 0 1.5rem}h1 em{color:var(--orange);font-style:normal}h2{font-size:1.4rem;font-weight:800;letter-spacing:-.03em}h3{font-size:1.1rem;font-weight:700;margin-top:1rem}p{line-height:1.6}.topbar{max-width:1400px;margin:auto;padding:26px 4%;display:flex;align-items:center;gap:24px;border-bottom:1px solid var(--line)}.wordmark{font-family:Archivo,Arial,sans-serif;font-size:2.2rem;letter-spacing:-.07em;display:inline-flex;align-items:center;gap:10px;line-height:1;text-decoration:none;color:var(--ink)}.xp-badge{background:var(--orange);font-family:Arial,sans-serif;font-weight:900;font-size:1.1rem;letter-spacing:-.05em;padding:8px;border-radius:8px;transform:rotate(-7deg);color:#fff}.brand-note{font-size:.65rem;letter-spacing:.14em;color:#6e706b;font-weight:700}.topbar nav{margin-left:auto;display:flex;gap:24px;font-size:.9rem;font-weight:700}.site-main{max-width:1250px;margin:auto;padding:40px 4% 70px;min-height:80vh}.eyebrow{font-size:.7rem;letter-spacing:.15em;font-weight:800;margin:0 0 1.2rem;color:#656962}.site-footer{max-width:1400px;border-top:1px solid var(--line);margin:auto;padding:25px 4%;display:flex;gap:24px;color:#73766f;font-size:.65rem;letter-spacing:.08em}.site-footer span{margin-right:auto}.hero-panel{position:relative;overflow:hidden;padding:45px 0 30px}.hero-panel h1{font-size:clamp(3rem,6.5vw,6rem);max-width:750px}.intro{font-size:1.1rem;max-width:430px}.button{font-weight:800;min-height:48px;border-radius:10px;box-shadow:none!important;white-space:normal;height:auto;padding:.8rem 1.2rem}.button.is-primary{background:var(--orange);color:white;border:0}.button.is-primary:hover{background:#df6900;color:#fff}.button.is-primary.is-light{color:#aa4c00;background:#fff0e0}.button.is-light{background:#ebeae5;color:var(--ink)}.buttons{margin-top:1.5rem}.hero-stats{display:flex;gap:44px;margin-top:50px;font-weight:900}.hero-stats small{display:block;color:#77796e;font-size:.7rem;font-weight:400;margin-top:5px}.hero-orbit{position:absolute;right:5px;top:80px;width:350px;height:380px;pointer-events:none}.orbit-card{position:absolute;border:2px solid var(--ink);border-radius:24px;width:165px;height:210px;box-shadow:8px 8px 0 #222425;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:Archivo;font-size:4rem}.orbit-card small{font:800 .6rem Arial;letter-spacing:.16em;margin-top:20px}.orbit-card.one{background:#eedc70;transform:rotate(-17deg);left:8px;top:0}.orbit-card.two{background:var(--orange);transform:rotate(12deg);right:0;top:100px;color:#fff}.orbit-card.two span{font-size:1.3rem}.orbit-card.three{background:#c1cab8;transform:rotate(-6deg);left:10px;top:250px;width:130px;height:145px;font-size:2.8rem}.how-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:50px;border-top:1px solid var(--line);padding-top:35px}.how-grid b{font-family:Archivo;color:var(--orange);font-size:1.4rem}.how-grid h2{margin-top:12px}.how-grid p{font-size:.9rem;color:#686d65}.box{background:#fff;border:1px solid var(--line);box-shadow:none;border-radius:18px;padding:26px;margin-bottom:24px}.narrow{max-width:530px;margin:40px auto}.narrow h1{font-size:2.6rem}.field{display:block;margin-bottom:18px}.label{font-size:.85rem;font-weight:700;margin-bottom:8px;color:var(--ink)}.input{min-height:54px;border-color:#d9dbd1;border-radius:9px;background:#fff;color:var(--ink);padding:12px 16px}.input:focus{border-color:var(--orange);box-shadow:0 0 0 2px #ff790030}.full{width:100%;margin-top:16px}.quiet{font-size:.8rem;color:#777b73;margin-top:20px;line-height:1.6}.check-row{display:flex;align-items:flex-start;gap:12px;font-size:.9rem;line-height:1.5;margin:18px 0;cursor:pointer}.check-row input{width:22px;height:22px;accent-color:var(--orange);flex-shrink:0}.filters{display:flex;align-items:flex-end;gap:20px;margin:25px 0}.filters label{flex:1;font-weight:700;font-size:.8rem}.filters select{margin-top:8px}.page-heading h1{font-size:3.8rem}.leader-row{display:flex;align-items:center;gap:22px;padding:24px 18px;border-bottom:1px solid var(--line)}.leader-row:first-child{background:#fff0df;border-radius:16px}.rank{font-family:Archivo;color:#969b8e;font-size:1.4rem;width:35px}.avatar{background:#edece4;border:1px solid #d9dccf;display:inline-flex;align-items:center;justify-content:center;width:50px;height:50px;border-radius:15px;font-weight:900;color:#565f4e;flex-shrink:0}.leader-person{flex:1}.leader-person h2{margin-bottom:4px}.leader-person p{font-size:.8rem;color:#6b7165;margin-bottom:8px}.xp-score{font-family:Archivo;font-size:2rem;color:#dd6400;text-align:right}.xp-score small{display:block;font:700 .65rem Arial;letter-spacing:.1em}.achievement-tags{display:flex;flex-wrap:wrap;gap:6px}.achievement-tags span{font-size:.63rem;border:1px solid #d9dccf;border-radius:20px;padding:4px 8px;background:#fff}.empty-state{text-align:center;padding:60px 12px}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:30px 0}.stat-grid>div{padding:25px;background:#fff;border:1px solid var(--line);border-radius:16px}.stat-grid b{font-family:Archivo;font-size:2.8rem;display:block;color:#e96b00}.stat-grid span{font-size:.85rem;color:#68705f}.staff-heading{display:flex;justify-content:space-between;align-items:center}.staff-heading h1{margin:10px 0}.staff-tabs{display:flex;gap:5px;overflow:auto;white-space:nowrap;border-bottom:1px solid var(--line);margin:22px 0 30px;padding-bottom:12px}.staff-tabs a{padding:12px 15px;border-radius:9px;font-size:.85rem;font-weight:700}.staff-tabs a.selected{background:var(--ink);color:#fff}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px;align-items:start}.staff-form{margin-bottom:20px}.staff-form .button{margin-top:8px}details{margin-bottom:18px}summary{font-weight:700;cursor:pointer;padding:12px 0;min-height:44px}summary small{font-weight:400;color:#6a7160;margin-left:12px}details[open] summary{margin-bottom:15px}.table{font-size:.85rem;color:var(--ink);background:#fff}.table th{color:#626959}.table td,.table th{border-color:var(--line);padding:16px 12px;vertical-align:middle}.table td .input{min-width:140px}.ledger-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 0;border-bottom:1px solid var(--line);font-size:.9rem}.ledger-row small{color:#777b73}.ledger-row b{white-space:nowrap}.receipt,.recovery-code{overflow-wrap:anywhere}.prose{max-width:800px;margin:auto}.prose h1{font-size:3rem}.prose h2{margin-top:30px}.achievement{padding:12px 15px;border:1px solid #e6ca92;background:#fff9ed;border-radius:10px;font-weight:700}.achievement small{font-weight:400;font-size:.7rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
/* Kiosk: portrait first, no administrator navigation. */
.kiosk .topbar{max-width:850px;padding:28px 35px}.kiosk .brand-note{margin-left:auto}.kiosk-main{max-width:760px;margin:auto;padding:22px 35px 40px;min-height:calc(100dvh - 160px)}.kiosk-context{display:flex;align-items:center;gap:8px;font-size:.8rem;font-weight:700;color:#5d6759;margin-bottom:35px}.location-dot{width:7px;height:7px;background:var(--orange);border-radius:50%}#today-count{margin-left:auto;font-size:.72rem;font-weight:400}.welcome-screen{text-align:center;padding-top:18px}.welcome-screen h1{font-size:clamp(3.6rem,11vw,5.6rem);margin-bottom:12px}.welcome-screen .eyebrow{font-size:.65rem}.welcome-art{position:relative;height:225px;max-width:360px;margin:25px auto}.xp-token{position:absolute;left:85px;top:15px;width:190px;height:190px;background:var(--orange);color:#fff;border:3px solid var(--ink);border-radius:35px;box-shadow:10px 10px 0 var(--ink);transform:rotate(-10deg);display:flex;align-items:center;justify-content:center;flex-direction:column;font-family:Archivo;font-size:4.4rem;line-height:1}.xp-token small{font:900 1.1rem Arial;letter-spacing:.15em;margin-top:12px}.art-star{position:absolute;left:7px;top:0;font-size:70px;color:#859879}.art-dice{position:absolute;right:0;bottom:-5px;font-size:70px;transform:rotate(20deg)}.start-button{min-height:82px;width:100%;font-size:1.35rem;display:flex;justify-content:space-between;padding:22px 28px;border-radius:16px;letter-spacing:.02em;margin-top:34px}.start-button span{font-size:2rem}.kiosk .site-footer{max-width:760px;text-align:center;justify-content:center;padding:24px 10px}.kiosk .site-footer span{margin:0}.step-line{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;color:#717669;font-size:.75rem}.back-button{border:0;background:transparent;min-height:48px;font-weight:700;padding:10px 0;color:var(--ink);cursor:pointer}.kiosk h1{font-size:clamp(2.2rem,6vw,3.6rem);letter-spacing:-.05em}.game-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:25px}.game-card{border:1px solid #dedfcf;background:#fff;border-radius:16px;min-height:133px;text-align:left;padding:18px;position:relative;cursor:pointer;display:flex;flex-direction:column;gap:15px}.game-card:active,.player-card:active{transform:scale(.98)}.game-card strong{font-size:1.05rem;line-height:1.25;max-width:85%}.game-icon{font-size:1.8rem;line-height:1.2}.game-arrow{position:absolute;right:15px;top:18px;font-size:1.2rem}.game-0{background:#fff3ca}.game-1{background:#ffe4c9}.game-2{background:#ffe3e1}.game-3{background:#dfedff}.game-4{background:#e7eaf5}.game-5{background:#eee4ff}.game-6{background:#f9e2f2}.game-7{background:#e7eedd}.game-8{background:#e5e9ed}.new-button{width:100%;margin:20px 0 24px;min-height:58px;font-size:1.05rem}.player-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.player-card{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);min-height:88px;border-radius:14px;padding:15px;text-align:left;cursor:pointer}.player-card strong{flex:1;overflow-wrap:anywhere;font-size:1rem}.player-card .avatar{width:40px;height:40px;border-radius:12px}.pin-input{font-size:2.1rem;letter-spacing:.4em;text-align:center;min-height:90px;margin:15px 0 25px}.privacy-box{background:#eeeee7;border-radius:14px;padding:20px;font-size:.85rem;margin-top:10px}.privacy-box>p{font-size:.8rem;color:#646c5f;margin-top:8px}.privacy-box .check-row{font-size:.8rem}.privacy-box details{font-size:.75rem}.kiosk form .input{min-height:60px}.success-screen{text-align:center;padding-top:35px}.success-icon{width:95px;height:95px;background:#c9e0ac;border:2px solid #222425;border-radius:50%;margin:0 auto 35px;font-size:3.8rem;font-weight:900;box-shadow:5px 5px 0 #222425}.success-screen h1{font-size:3.1rem}.success-xp{font-family:Archivo;font-size:4.4rem;color:#e97000;margin:30px 0}.streak-pill{display:inline-block;border:1px solid #d7dccb;border-radius:25px;padding:12px 22px;background:#fff;font-weight:700;margin-bottom:25px}.success-screen .achievement{margin-top:12px}.recovery-code{font-family:monospace;background:#fff;padding:16px;margin:20px 0}.notification{border-radius:12px}.kiosk input{font-size:1.1rem}html{scroll-behavior:smooth}
@media(max-width:1000px){.hero-orbit{right:-40px;opacity:.8;transform:scale(.75);transform-origin:top right}.hero-panel h1{position:relative;z-index:1}.hero-panel .intro{max-width:55%}}@media(max-width:700px){.topbar{padding:20px}.brand-note{display:none}.topbar nav{gap:15px;font-size:.8rem}.site-main{padding:25px 20px 50px}.hero-panel{padding-top:20px}.hero-orbit{display:none}.hero-panel h1{font-size:3.6rem}.hero-panel .intro{max-width:100%}.hero-stats{gap:20px;font-size:.85rem}.how-grid{grid-template-columns:1fr;gap:20px}.how-grid article{border-bottom:1px solid var(--line);padding-bottom:12px}.admin-grid{grid-template-columns:1fr}.filters{flex-wrap:wrap;gap:12px}.filters label{min-width:40%}.stat-grid{gap:8px}.stat-grid>div{padding:16px 10px}.stat-grid b{font-size:2rem}.stat-grid span{font-size:.65rem}.leader-row{gap:12px;padding:20px 8px}.rank{width:23px;font-size:1rem}.leader-row>.avatar{display:none}.xp-score{font-size:1.5rem}.leader-person h2{font-size:1.15rem}.page-heading h1{font-size:2.7rem}.staff-heading{display:block}.staff-heading>div:last-child{display:flex;align-items:center;gap:20px;font-size:.75rem}.staff-heading form{margin:0}.kiosk .topbar{padding:23px 25px}.kiosk-main{padding:20px 25px 35px}.kiosk-context{margin-bottom:28px}.kiosk .brand-note{display:block;font-size:.5rem;max-width:110px;line-height:1.6}.welcome-screen{padding-top:10px}.welcome-art{height:200px;transform:scale(.9);margin:10px auto 20px}.welcome-screen h1{font-size:4rem}.start-button{margin-top:20px}.game-card{min-height:120px;padding:16px}.game-card strong{font-size:.9rem}.player-card{gap:8px;padding:12px}.player-card .avatar{width:32px;height:32px}.player-card strong{font-size:.9rem}.form-grid{grid-template-columns:1fr;gap:0}.success-screen h1{font-size:2.6rem}.site-footer{font-size:.55rem;gap:15px}.narrow{padding:22px}.narrow h1{font-size:2.2rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
