@font-face{font-family:'Hub Thai';src:url('hub-thai.ttf') format('truetype');font-weight:400;font-display:swap}
:root{color-scheme:dark;--ink:#f8f5ff;--muted:#b9a9e7;--castle:url('hub-castle-v1.webp')}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 75% 0,#25194c,transparent 65%),#14102d;color:var(--ink);font:16px/1.65 'Hub Thai','Leelawadee UI',Tahoma,sans-serif}button,input,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.5;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #d5b1ff;outline-offset:4px}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}p{color:var(--muted)}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;clip:rect(0,0,0,0);overflow:hidden}.skip{position:fixed;left:12px;top:-100px;padding:12px;background:#302252;z-index:30}.skip:focus{top:12px}
.sidebar{position:fixed;inset:0 auto 0 0;width:220px;border:1px solid #554087;border-radius:24px;background:linear-gradient(145deg,#19132e,#110c25);padding:56px 16px;z-index:5}.brand{display:flex;flex-direction:column;margin:0 20px 46px;font-size:26px;font-weight:600;line-height:1.35}.brand b{font-weight:700}.brand-mark{color:#b488f2;font-size:48px;margin-bottom:8px;line-height:1}.nav-item{display:flex;align-items:center;gap:14px;width:100%;padding:16px 12px;margin:8px 0;border:1px solid transparent;border-radius:13px;color:#c7bce6;background:transparent;text-align:left;font-size:14px;line-height:1.6}.nav-item span{font-size:27px;line-height:1}.nav-item.active{background:linear-gradient(120deg,#42208e,#382176);border-color:#b17aef;box-shadow:inset 0 0 22px #7551ce30;color:white;font-weight:700}.nav-item:hover{background:#31204f}.workspace{margin-left:220px;min-width:0}.topbar{position:absolute;top:0;right:0;left:220px;height:64px;display:flex;justify-content:flex-end;align-items:center;gap:25px;padding:0 35px;border-bottom:1px solid #71639a55;background:#15102a66;z-index:2}.quiet{color:var(--ink);border:0;background:transparent;padding:10px 14px;border-radius:10px}.quiet:hover{background:#483271}.avatar{width:38px;height:38px;display:grid;place-items:center;border:1px solid #f7ecff;border-radius:50%;font-size:27px}.hero-banner{padding:108px 44px 42px;min-height:285px;background:linear-gradient(90deg,#15102e,#18123290 35%,#1e134020),var(--castle) center 46%/cover;border-bottom:1px solid #4f397455}.hero-banner h1{font-size:clamp(26px,3.6vw,54px);line-height:1.5;font-weight:800;text-shadow:0 2px 20px #111024}.hero-banner p{font-size:clamp(18px,2vw,27px);font-weight:600;margin-top:6px;color:#c8aff7}.view-content{padding:25px 36px 50px;max-width:1800px;margin:auto}.control-top{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:22px}.control-top h2,.page-heading h2{font-size:clamp(26px,3vw,40px);line-height:1.45}.control-top p{font-size:18px}.search{display:flex;align-items:center;gap:12px;width:min(410px,40%);border:1px solid #9271d2;border-radius:12px;padding:9px 16px;background:#21183c}.search span{font-size:30px;line-height:1}.search input{background:none;border:0;outline:0;color:white;width:100%;min-width:0;padding:7px 0}.search input::placeholder{color:#b7a6d9}.filters{display:flex;align-items:center;gap:10px;margin-bottom:24px}.grade-filter{display:flex;gap:8px;border:0;padding:0;margin:0}.grade{padding:10px 20px;white-space:nowrap;border:1px solid #8b63c4;background:#1a1434;color:white;border-radius:10px}.grade.active{background:linear-gradient(145deg,#8752ea,#6334c2);border-color:#c197ff;box-shadow:inset 0 0 18px #ab6cff40}.select-label{flex:1;min-width:140px}.select-label select{width:100%;padding:12px 16px;background:#1d1638;color:white;border:1px solid #8b63c4;border-radius:10px}.filter-reset{border:1px solid #9b71d6;white-space:nowrap;padding:12px 20px}.game-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.game-card{min-width:0;border:1px solid #a27ad6;border-radius:16px;overflow:hidden;background:linear-gradient(145deg,#231740,#17112e);box-shadow:0 10px 26px #06041140;transition:transform .18s}.game-card:hover{transform:translateY(-4px);border-color:#d2aaff}.cover{position:relative;aspect-ratio:1.8;background:#26153d;overflow:hidden;border-bottom:1px solid #785299}.cover img{width:100%;height:100%;object-fit:cover;display:block}.cover-label{position:absolute;top:13px;left:13px;font-size:13px;background:#0d092ee8;color:white;border:1px solid #baa1f4;border-radius:12px;padding:5px 10px;max-width:calc(100% - 26px)}.cover-fallback{padding:35px;color:#dac4ff}.card-body{padding:19px 20px 21px}.tags{display:flex;flex-wrap:wrap;gap:8px}.tag{display:inline-flex;padding:4px 10px;border:1px solid #73549c;border-radius:9px;color:#e9deff;background:#271a44;font-size:13px}.card-body h3{margin:12px 0 5px;font-size:20px;line-height:1.55;overflow-wrap:break-word}.card-unit{font-size:14px}.card-actions{display:flex;gap:10px;margin-top:18px}.primary,.secondary{display:inline-flex;justify-content:center;align-items:center;min-height:44px;padding:10px 17px;border-radius:11px;font-weight:600;border:1px solid #8c65d0}.primary{background:linear-gradient(110deg,#7245ff,#6438e7);color:white;flex:1;border-color:#a779ff}.primary:hover{filter:brightness(1.18);box-shadow:0 0 18px #8951ee55}.secondary{color:#ddcaff;background:#241a40}.secondary:hover{background:#3b275d}.stars{color:#ffd478;letter-spacing:3px}.card-status{margin-top:10px;font-size:14px}.empty,.summary-box,.result-row{border:1px solid #7557a7;background:linear-gradient(145deg,#291c46,#19112f);border-radius:16px;padding:26px}.empty{text-align:center;margin-top:20px}.empty h2{font-size:23px}.empty p{margin:9px 0 20px}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:24px 0}.summary-box strong{display:block;font-size:36px;color:#d2b1ff}.summary-box span{color:#bca8dd}.result-row{display:flex;align-items:center;gap:20px;margin:14px 0}.result-row>div{flex:1;min-width:0}.storage-notice,.notice{background:#312044;border:1px solid #8f66b6;padding:16px;border-radius:12px}
 dialog{width:min(850px,92vw);max-height:90dvh;padding:0;border:2px solid #8960df;border-radius:24px;background:linear-gradient(145deg,#1f173a,#130d27);color:white;box-shadow:0 25px 90px #040213a0;overflow:auto}dialog::backdrop{background:#080514bb;backdrop-filter:blur(5px)}.dialog-top{padding:58px 38px 30px;position:relative;min-height:190px;background:linear-gradient(90deg,#17112ee8,#1b123660),var(--castle) center/cover;border-bottom:1px solid #67508d}.dialog-top h2{padding-right:28px;font-size:clamp(26px,3vw,42px);line-height:1.45;overflow-wrap:break-word}.dialog-top h2 span{display:block;color:#cdb4ff;font-size:.8em;margin-top:4px}.icon-button{position:absolute;top:20px;right:20px;border:1px solid #b895ef;background:#18102ce0;color:#e5d4ff;border-radius:50%;width:42px;height:42px;font-size:30px;line-height:1}.dialog-copy{padding:26px 38px 36px}.dialog-copy>.tags{margin-bottom:22px}.dialog-copy>p{font-size:19px;margin:16px 0 25px;color:#e9dfff}.dialog-copy>div:not(.tags){margin:22px 0}.dialog-copy strong{font-size:20px}.dialog-copy p{margin-top:5px}.objective-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;list-style:none;padding:0}.objective-grid li{padding:16px;border:1px solid #695095;border-radius:12px;color:#ebe1ff;background:#211535}.dialog-copy>.primary{width:100%;margin-top:18px;min-height:55px;font-size:21px}.table-wrap{overflow:auto}.report{width:100%;border-collapse:collapse}.report td,.report th{padding:12px;text-align:left;border-bottom:1px solid #655078}
@media(min-width:1800px){.sidebar{width:264px}.workspace{margin-left:264px}.topbar{left:264px}.view-content{padding:30px 44px}.hero-banner{min-height:310px}.brand{font-size:31px}.nav-item{font-size:17px}.cover-label{font-size:16px}}@media(max-width:1150px){.sidebar{width:190px;padding:34px 12px}.brand{font-size:23px;margin:0 12px 35px}.workspace{margin-left:190px}.topbar{left:190px}.view-content{padding:24px}.hero-banner{padding-left:28px}.filters{flex-wrap:wrap}.grade-filter{flex:1 1 100%}.game-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.sidebar{position:static;width:auto;padding:13px;border-radius:0;display:flex;align-items:center;gap:10px;border-width:0 0 1px}.brand{flex-direction:row;align-items:center;gap:7px;margin:0;font-size:14px;flex:1}.brand-mark{font-size:28px;margin:0}.sidebar nav{display:flex;gap:5px}.nav-item{width:auto;padding:10px;font-size:0;margin:0}.nav-item span{font-size:24px}.workspace{margin:0}.topbar{position:relative;left:0;height:47px;padding:0 16px}.avatar{width:28px;height:28px;font-size:19px}.topbar .quiet{font-size:13px}.hero-banner{padding:35px 20px;min-height:205px;background-position:65% center}.hero-banner h1{font-size:29px;max-width:340px}.hero-banner p{font-size:18px}.view-content{padding:20px 16px 35px}.control-top{flex-wrap:wrap;gap:15px;margin-bottom:16px}.search{width:100%;padding:4px 12px}.control-top h2{font-size:28px}.control-top p{font-size:15px}.grade{padding:8px 15px}.grade-filter{gap:6px}.filters{gap:8px}.select-label{min-width:130px}.filter-reset{padding:10px;font-size:14px}.game-grid{grid-template-columns:1fr;gap:18px}.summary-grid{gap:8px}.summary-box{padding:15px}.summary-box strong{font-size:28px}.summary-box span{font-size:12px}.result-row{flex-wrap:wrap;padding:18px;gap:10px}.dialog-top{padding:55px 23px 26px;min-height:175px}.dialog-top h2{font-size:29px}.dialog-copy{padding:23px}.dialog-copy>p{font-size:17px}.objective-grid{grid-template-columns:1fr}.objective-grid li{padding:12px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
@media(min-width:651px) and (max-height:850px){.dialog-top{min-height:0;padding:32px 38px 22px}.dialog-top h2{font-size:38px}.dialog-copy{padding:20px 38px 24px}.dialog-copy>.tags{margin-bottom:16px}.dialog-copy>p{margin:12px 0 18px}.dialog-copy>div:not(.tags){margin:14px 0}.objective-grid li{padding:12px 16px}.dialog-copy>.primary{margin-top:10px;min-height:50px}}
