:root{--ink:#0c1e4a;--green:#1658c4;--paper:#f4f7fc;--muted:#5c6b85;--line:#d7e1ef;--coral:#c11a89}body{font-size:16px;line-height:1.55}.site-header{max-width:none;min-height:112px;height:auto;padding:16px max(24px,calc((100vw - 1180px)/2));background:#fff;color:#0c1e4a;gap:28px;border-bottom:4px solid #1658c4}.official-logo{width:min(280px,42vw);height:auto;max-height:88px;object-fit:contain;display:block}.site-header nav{gap:10px;flex-wrap:wrap}.site-header nav>a,.site-header .nav-link{display:inline-flex!important;align-items:center;min-height:44px;color:#0c1e4a;padding:10px 16px;border-radius:12px;font-size:16px}.site-header nav>a:hover,.site-header .nav-link:hover{background:#eef4fb}.site-header nav>a[aria-current=page]{background:#1658c4;color:#fff}.site-header .inline{display:inline!important}.site-header .button-dark{background:#eef4fb;color:#0c1e4a}.page{padding-top:42px}.page-title h1,.dashboard-head h1{font-size:clamp(30px,4vw,44px);letter-spacing:-.035em}.page-title>p,.dashboard-head p{font-size:17px}.eyebrow{font-size:14px}.dashboard-head{margin-bottom:32px}.filters{position:relative;margin:26px 0;box-shadow:0 5px 20px #17342f05;padding:20px}.filters label{font-size:15px}.filters select{min-height:48px;font-size:16px}.button{min-height:46px;font-size:16px}.game-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.game-card{display:flex;flex-direction:column;align-items:stretch;gap:0;overflow:hidden;border-radius:22px;padding:0;box-shadow:0 6px 20px #17342f07;transition:box-shadow .2s,transform .2s}.game-card:hover{box-shadow:0 12px 30px #17342f13;transform:translateY(-2px)}.cover{position:relative;aspect-ratio:16/9;background:#e8efeb;overflow:hidden}.cover>img{display:block;width:100%;height:100%;object-fit:cover}.cover-fallback{height:100%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:26px 30px;color:#163f37}.cover-fallback>span{font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-bottom:10px}.cover-fallback>strong{font-size:28px;font-weight:850;line-height:1.15;letter-spacing:-.03em;max-width:85%}.cover-fallback.sun{background:#fff0bb}.cover-fallback.mint{background:#d2eee3}.cover-fallback.sky{background:#dce9fa}.cover-fallback.coral{background:#fbe2d9}.cover-fallback.grape{background:#e9e2f5}.favorite-form{position:absolute;top:12px;right:12px}.favorite{display:grid;place-items:center;width:44px;height:44px;font-size:29px;border-radius:50%;background:#fff;color:#516c62;box-shadow:0 3px 12px #0001;border:1px solid #dce4df}.favorite.on{color:#9c6300;background:#fff5ce}.game-main{padding:22px 22px 12px;flex:1}.game-main h3{font-size:21px;line-height:1.25;margin:7px 0 10px}.game-main p{font-size:16px;line-height:1.6;margin:0 0 15px;color:#52695f}.subject{font-size:13px}.game-tags{display:flex;flex-wrap:wrap;gap:8px}.game-tags>span{font-size:14px;font-weight:650;color:#31564a;background:#edf4f0;border-radius:8px;padding:5px 9px}.card-bottom{display:flex;gap:10px;padding:8px 22px 22px}.card-bottom>a{flex:1}.info-link{background:#fff;border:1px solid #bfcec6;color:#1e5040}.info-link:hover{background:#edf4f0}.mini-list .game-card{padding:0;display:block}.mini-list .cover{display:none}.mini-list .game-main{padding:16px 20px}.mini-list .game-main h3{font-size:19px}.mini-list .game-main p:empty{display:none}.mini-list .game-tags{margin-top:6px}.section-heading h2{font-size:27px}.notice{position:static;transform:none;max-width:1124px;margin:20px auto;padding:16px 22px}.table-wrap a{color:#1658c4;font-weight:750;text-decoration:underline;text-underline-offset:3px}.edit-link{font-size:14px}.admin-delete-cell{width:56px;text-align:center;vertical-align:middle}.admin-delete-cell form{margin:0}.delete-game{display:grid;place-items:center;width:42px;height:42px;margin:0 auto;padding:0;border:1px solid #e3b8b0;border-radius:12px;background:#fff8f6;color:#b94325;cursor:pointer}.delete-game svg{width:20px;height:20px}.delete-game:hover,.delete-game:focus-visible{background:#b94325;color:#fff;border-color:#b94325}.admin-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 28px}.admin-tabs a{display:inline-flex;align-items:center;min-height:46px;padding:10px 20px;border:1px solid #d9e4de;border-radius:50px;background:#fff;font-size:15px;font-weight:700}.admin-tabs a[aria-current=page]{background:#1658c4;border-color:#1658c4;color:#fff}.admin-page .admin-grid{grid-template-columns:1fr}.admin-page .admin-panel.span-2{grid-column:auto}.admin-panel p{color:#52695f}.admin-panel input,.admin-panel textarea{font-size:16px}dialog{padding:0;border:0;border-radius:24px;width:min(860px,calc(100vw - 28px));max-height:90dvh;color:var(--ink);box-shadow:0 30px 100px #00144866;overscroll-behavior:contain}dialog::backdrop{background:#0a1a48aa;backdrop-filter:blur(4px)}body:has(dialog[open]){overflow:hidden}.dialog-top{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;background:white;padding:14px 22px;border-bottom:1px solid #e1e8e3;font-weight:750}.close-info{min-height:44px;border:1px solid #c9d7ce;border-radius:10px;background:#f5f8f6;color:#0c1e4a;padding:8px 14px;font:inherit;font-weight:750;cursor:pointer}.info-cover{width:100%;max-height:370px;object-fit:contain;background:#e9f0eb;display:block}.info-body{padding:28px 32px}.info-body h2{font-size:34px;line-height:1.15;margin:0 0 16px;letter-spacing:-.035em}.info-intro{font-size:18px;color:#536b60;line-height:1.65}.info-section{border-top:1px solid #e0e8e2;padding-top:14px;margin-top:24px}.info-section h3{font-size:21px}.preline{white-space:pre-wrap;overflow-wrap:anywhere}.info-gallery{display:grid;grid-template-columns:1fr 1fr;gap:16px}.info-gallery figure{margin:0}.info-gallery img{display:block;width:100%;border-radius:12px;background:#e8eee9}.info-gallery figcaption{font-size:14px;color:#536b60;margin-top:7px}.info-footer{margin-top:28px}.editor-cover{display:block;max-height:220px;max-width:100%;border-radius:14px}.editor-gallery{display:grid;grid-template-columns:1fr 1fr;gap:18px}.editor-photo{padding:12px;border:1px solid #d6e1d9;border-radius:14px}.editor-photo img{width:100%;height:140px;object-fit:contain}.editor-photo label{margin-top:12px}.remove-check{display:flex!important;align-items:center;gap:10px;font-size:15px}.remove-check input{width:20px;height:20px;accent-color:#1658c4}.profile-form label{font-size:16px}.profile-form input,.profile-form textarea{font-size:16px}.profile-form input[type=file]{padding:12px;background:#f2f7f3;white-space:normal}.profile-form p{color:#52695f}.editor-actions{display:flex;flex-wrap:wrap;gap:12px;position:sticky;bottom:12px;padding:14px;background:#ffffffed;border:1px solid #dce4df;border-radius:16px;box-shadow:0 4px 25px #17342f16}.upload-preview{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px}.upload-preview img{height:100px;width:140px;object-fit:contain;border-radius:10px;background:#edf3ee}.upload-preview p{width:100%;margin:0}.check input:focus-visible+span{outline:3px solid #1658c4;outline-offset:3px}:focus-visible{outline:3px solid #f0b400;outline-offset:4px}.button-coral{box-shadow:none}.hero h1{font-size:clamp(44px,5vw,68px)}footer{font-size:15px}a,button{-webkit-tap-highlight-color:transparent}
@media(max-width:1000px){.game-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.site-header{padding:16px 24px}.site-header nav{gap:4px}.site-header nav>a,.site-header .nav-link{padding:10px}}
@media(max-width:640px){.site-header{flex-direction:column;gap:10px;padding:14px 16px}.official-logo{width:min(240px,80vw);height:auto;max-height:78px}.site-header nav{justify-content:center;width:100%;gap:6px}.site-header nav>a,.site-header .nav-link{font-size:14px;padding:8px 11px}.game-grid{grid-template-columns:1fr;gap:20px}.game-main{padding:20px}.card-bottom{padding:4px 20px 20px}.filters{margin-top:20px}.dashboard-head{margin-bottom:28px}.page-title h1,.dashboard-head h1{font-size:34px}.info-body{padding:22px}.info-body h2{font-size:28px}.info-gallery,.editor-gallery{grid-template-columns:1fr}.dialog-top{padding:12px 16px}.editor-actions{bottom:8px}.profile-form fieldset{padding:18px}.notice{margin:16px}.cover-fallback>strong{font-size:30px}.filters select{width:100%;max-width:100%}.table-wrap{max-width:100%}}
.student-games{list-style:none;margin:18px 0 28px;padding:0;display:grid;gap:12px}.student-games li{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff;border:1px solid #d7e1ef;border-radius:18px;padding:16px 18px}.student-games small{display:block;color:#5c6b85;margin-top:4px}.student-games .button{flex:none}.ludik-play-assign{height:48px;padding:0 16px;border:0;border-radius:999px;background:#fff;color:#0c1e4a;font-weight:800;cursor:pointer;box-shadow:0 5px 0 #d7e1ef}.ludik-play-assign[hidden]{display:none}
#ludik-play{position:fixed;inset:0;z-index:80;background:#0a0a0a}#ludik-play[hidden]{display:none!important}#ludik-play iframe{width:100%;height:100%;border:0;background:#0a0a0a}.ludik-play-bar{position:absolute;z-index:2;top:14px;right:14px;display:flex;gap:10px;align-items:center;pointer-events:auto}.ludik-play-full,.ludik-play-close{display:grid;width:48px;aspect-ratio:1;place-items:center;border:4px solid #fff;border-radius:50%;color:#fff;font-weight:900;line-height:1;text-decoration:none;cursor:pointer;padding:0;box-sizing:border-box}.ludik-play-close{background:#b92e2e;box-shadow:0 5px 0 #6e1717;font-size:2rem}.ludik-play-full{background:#1658c4;box-shadow:0 5px 0 #0d3d8a}.ludik-play-full svg{width:22px;height:22px;fill:currentColor}
.info-section ul,.info-section ol{margin:8px 0 0;padding-left:1.35em}
.info-section li{margin:5px 0;line-height:1.5}
.profile-form textarea{white-space:pre-wrap}
.new-badge,.featured-badge{display:inline-flex;align-items:center;font-size:12px;font-weight:800;letter-spacing:.02em;text-transform:uppercase;padding:4px 10px;border-radius:40px}
.new-badge{background:#f0b400;color:#0c1e4a}
.featured-badge{background:#1658c4;color:#fff}
.info-body>.new-badge,.info-body>.featured-badge{margin:0 8px 12px 0}
.info-video-frame{position:relative;aspect-ratio:16/9;margin-top:12px;border-radius:14px;overflow:hidden;background:#0c1e4a}
.info-video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.admin-new-cell{white-space:nowrap}
.admin-new-cell form{margin:0}
.new-check{display:flex;align-items:center;gap:8px;margin:0;font-size:13px;font-weight:700;cursor:pointer}
.new-check input{width:18px;height:18px;accent-color:#f0b400;cursor:pointer}
.featured-check input{accent-color:#1658c4}
