:root{--brand:#1e54c1;--brand-strong:#153d91;--ink:#131829;--muted:#657089;--page:#f7f9ff;--surface:#fff;--surface-soft:#eef4ff;--line:#dbe4f2;--cyan:#16b8c7;--gold:#f2b84b;--rose:#f26a8d;--green:#21a67a;--shadow:0 18px 60px #1e54c11f;--shadow-soft:0 12px 36px #13182914;color:var(--ink);background:var(--page);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:root[data-theme=dark]{--ink:#f4f7ff;--muted:#b3bdd2;--page:#0f1422;--surface:#171e31;--surface-soft:#202a42;--line:#33405b;--brand:#7da2ff;--brand-strong:#a9c0ff;--shadow:0 18px 60px #00000057;--shadow-soft:0 12px 36px #0000003d}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;margin:0}body,button,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}#root{min-height:100svh}.exams-root{background:#10131a;justify-content:center;align-items:center;width:100%;height:100dvh;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;display:flex;overflow:hidden}.exams-frame{aspect-ratio:9/16;touch-action:none;-webkit-user-select:none;user-select:none;background:#000;max-width:100%;height:100%;position:relative;overflow:hidden}@media (aspect-ratio<=9/16){.exams-frame{width:100%;height:auto}}.game-screen,.game-canvas{width:100%;height:100%;position:absolute;inset:0}.game-canvas{display:block}.hud{pointer-events:none;justify-content:space-between;align-items:flex-start;padding:3%;display:flex;position:absolute;top:0;left:0;right:0}.hud-score{color:#fff;text-shadow:0 2px 4px #00000080;font-size:clamp(16px,5vmin,32px);font-weight:700}.hud-lives{gap:8px;margin-top:8px;display:flex}.heart{filter:drop-shadow(0 2px 3px #00000059);background:#e53935;width:clamp(16px,4vmin,26px);height:clamp(16px,4vmin,26px);position:relative;transform:rotate(45deg)}.heart:before,.heart:after{content:"";background:inherit;border-radius:50%;width:100%;height:100%;position:absolute}.heart:before{top:-50%;left:0}.heart:after{top:0;left:-50%}.heart.lost{filter:none;background:#ffffff4d}.hud-boss{background:#00000059;border-radius:10px;align-items:center;gap:4px;padding:4px 8px;display:flex}.boss-hp{background:#c62828;border-radius:50%;width:clamp(14px,3.5vmin,22px);height:clamp(14px,3.5vmin,22px)}.boss-hp.lost{background:#ffffff40}.hud-right{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.hud-time{color:#fff;font-variant-numeric:tabular-nums;text-shadow:0 2px 4px #00000080;background:#00000059;border-radius:10px;padding:2px 10px;font-size:clamp(14px,4vmin,26px);font-weight:700}.pause-btn{pointer-events:auto;color:#fff;cursor:pointer;background:#00000059;border:none;border-radius:12px;width:clamp(40px,10vmin,64px);height:clamp(40px,10vmin,64px);font-size:clamp(14px,4vmin,24px)}.quiz-overlay{color:#fff;pointer-events:none;text-align:center;background:#10131ac7;border-radius:16px;flex-direction:column;gap:1.2vmin;padding:2.5vmin 3vmin;display:flex;position:absolute;top:20%;left:4%;right:4%}.quiz-intro{font-size:clamp(18px,5.5vmin,34px);font-weight:800}.quiz-prof{color:#ffd54f;font-size:clamp(13px,3.6vmin,20px);font-weight:700}.quiz-hint{opacity:.8;font-size:clamp(13px,3.6vmin,20px)}.quiz-question{font-size:clamp(15px,4.4vmin,26px);font-weight:700;line-height:1.25}.quiz-options{text-align:left;flex-direction:column;gap:.8vmin;display:flex}.quiz-option{background:#ffffff14;border-radius:10px;padding:.8vmin 1.4vmin;font-size:clamp(13px,3.8vmin,22px);transition:background .2s}.quiz-option.correct{background:#4caf508c}.quiz-option.wrong{background:#e539358c}.quiz-letter{color:#ffd600;min-width:1.5em;font-weight:800;display:inline-block}.quiz-result{font-size:clamp(15px,4.4vmin,26px);font-weight:800}.quiz-result.correct{color:#a5d6a7}.quiz-result.wrong{color:#ef9a9a}.touch-controls{pointer-events:none;justify-content:space-between;align-items:flex-end;padding:4%;display:flex;position:absolute;bottom:0;left:0;right:0}.touch-left{gap:4vmin;display:flex}.touch-btn{pointer-events:auto;color:#fff;cursor:pointer;touch-action:none;-webkit-tap-highlight-color:transparent;background:#ffffff38;border:none;border-radius:50%;width:clamp(56px,16vmin,110px);height:clamp(56px,16vmin,110px);font-size:clamp(22px,7vmin,44px)}.touch-btn:active{background:#ffffff73}.touch-btn.jump{background:#2979ff66;width:clamp(68px,20vmin,130px);height:clamp(68px,20vmin,130px)}.touch-btn.jump:active{background:#2979ffb3}.screen{text-align:center;color:#fff;flex-direction:column;justify-content:space-evenly;align-items:center;gap:1.5vmin;padding:6% 8%;display:flex;position:absolute;inset:0;overflow-y:auto}.menu-screen{background:linear-gradient(160deg,#283593,#4a148c 70%,#311b92)}.gameover-screen{background:linear-gradient(160deg,#c62828,#4a0d0d)}.victory-screen{background:linear-gradient(160deg,#2e7d32,#0d3311)}.diploma-screen{background:linear-gradient(160deg,#ffa726,#e65100)}.menu-screen:after,.gameover-screen:after,.victory-screen:after,.diploma-screen:after{content:"";pointer-events:none;background:radial-gradient(#0000 55%,#00000059 100%);position:absolute;inset:0}.screen>*{z-index:1;position:relative}.title-emoji{filter:drop-shadow(0 6px 10px #0006);margin:0;font-size:clamp(48px,16vmin,110px);animation:3s ease-in-out infinite float}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.game-title{letter-spacing:.08em;text-shadow:0 4px #00000040,0 8px 18px #00000073;margin:0;font-size:clamp(40px,14vmin,96px)}.screen h1{overflow-wrap:break-word;max-width:100%;margin:0;font-size:clamp(24px,7vmin,48px)}.subtitle{opacity:.85;margin:0;font-size:clamp(15px,4.5vmin,26px)}.diploma{font-size:clamp(64px,22vmin,160px)}.last-time{color:#ffd54f;font-variant-numeric:tabular-nums;opacity:.9;margin:0;font-size:clamp(14px,3.8vmin,22px);font-weight:700}.player-name-field{text-align:left;gap:1vmin;width:min(82%,420px);display:grid}.player-name-field span{color:#ffffffdb;font-size:clamp(13px,3.5vmin,20px);font-weight:800}.player-name-field input{color:#fff;width:100%;min-height:clamp(44px,11vmin,68px);font:inherit;background:#ffffff24;border:2px solid #ffffff47;border-radius:14px;outline:none;padding:0 clamp(14px,4vmin,22px);font-size:clamp(16px,4.5vmin,26px);font-weight:800}.player-name-field input::placeholder{color:#ffffff8f}.player-name-field input:focus{border-color:#ffd54feb;box-shadow:0 0 0 4px #ffd54f2e}.player-name-field small,.score-save-message.is-error{color:#ffcdd2;font-weight:800}.score-save-message{background:#0000002e;border-radius:12px;margin:0;padding:1vmin 2vmin;font-size:clamp(13px,3.8vmin,22px);font-weight:800}.score-save-message.is-saved{color:#c8e6c9}.score-save-message.is-saving{color:#fff9c4}.screenshot-note{color:#fffde7;text-shadow:0 2px 8px #00000047;max-width:88%;margin:0;font-size:clamp(13px,3.8vmin,22px);font-weight:800;line-height:1.35}.credits{opacity:.7;margin:0;font-size:clamp(13px,3.5vmin,20px);position:absolute;bottom:4%;left:0;right:0}.menu-btn{color:#fff;cursor:pointer;background:linear-gradient(#3d8bff,#2264d1);border:none;border-radius:16px;min-width:60%;padding:clamp(12px,3vmin,20px) clamp(20px,5vmin,40px);font-size:clamp(17px,5vmin,30px);font-weight:700;transition:transform 80ms,box-shadow 80ms,filter .15s;box-shadow:0 5px #00000047,0 8px 16px #0000004d}.menu-btn:hover{filter:brightness(1.08)}.menu-btn:active{transform:translateY(4px);box-shadow:0 1px #00000047,0 3px 8px #0000004d}.menu-btn.big{background:linear-gradient(#1ed760,#00a344)}.menu-btn.secondary{background:#ffffff29;box-shadow:inset 0 0 0 2px #ffffff59,0 4px 10px #00000040}.overlay{background:#0009;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.menu-box{color:#fff;background:#1c2333;border-radius:20px;flex-direction:column;align-items:center;gap:2.5vmin;min-width:70%;padding:6vmin;display:flex}.menu-box h2{margin:0 0 1vmin;font-size:clamp(22px,7vmin,44px)}.site-header{z-index:20;border-bottom:1px solid color-mix(in srgb, var(--line) 78%, transparent);background:color-mix(in srgb, var(--page) 88%, transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);justify-content:space-between;align-items:center;gap:24px;min-height:76px;padding:14px clamp(18px,4vw,56px);display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;min-width:max-content;display:inline-flex}.brand-mark,.faculty-logo{color:#fff;background:radial-gradient(circle at 30% 20%, #ffffff59, transparent 34%), linear-gradient(135deg, var(--brand), var(--cyan));justify-content:center;align-items:center;display:inline-flex}.brand-mark{background:var(--surface);width:44px;height:44px;box-shadow:inset 0 0 0 1px var(--line);border-radius:8px;padding:4px}.brand-mark img{object-fit:contain;width:100%;height:100%}.brand strong,.brand small{display:block}.brand strong{font-size:16px;line-height:1.1}.brand small{color:var(--muted);font-size:13px}.main-nav{justify-content:center;align-items:center;gap:8px;display:flex}.main-nav a,.main-nav button{min-height:40px;color:var(--muted);background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;padding:0 14px;font-size:15px;line-height:1;transition:color .16s,background .16s;display:inline-flex}.main-nav a:hover,.main-nav button:hover{color:var(--brand-strong);background:var(--surface-soft)}.header-actions{align-items:center;gap:8px;display:flex}.icon-button{border:1px solid var(--line);width:42px;height:42px;color:var(--ink);background:var(--surface);border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.menu-button{display:none}main{overflow:hidden}.section-shell,.page-shell{width:min(1160px,100% - 32px);margin:0 auto}.section-shell{padding:92px 0}.page-shell{padding:72px 0 96px}.hero-section{grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);align-items:center;gap:48px;min-height:calc(100svh - 76px);display:grid;position:relative}.particle-field{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.particle-field span{background:var(--brand);width:7px;height:7px;box-shadow:0 0 18px color-mix(in srgb, var(--brand) 68%, transparent);opacity:.34;border-radius:50%;animation:9s ease-in-out infinite float-particle;position:absolute}.particle-field span:first-child{top:18%;left:4%}.particle-field span:nth-child(2){width:5px;height:5px;animation-delay:-2s;top:76%;left:14%}.particle-field span:nth-child(3){animation-delay:-4s;top:36%;left:24%}.particle-field span:nth-child(4){width:10px;height:10px;animation-delay:-1s;top:12%;left:37%}.particle-field span:nth-child(5){animation-delay:-5s;top:82%;left:44%}.particle-field span:nth-child(6){width:5px;height:5px;animation-delay:-7s;top:25%;left:54%}.particle-field span:nth-child(7){animation-delay:-3s;top:64%;left:63%}.particle-field span:nth-child(8){width:9px;height:9px;animation-delay:-6s;top:14%;left:74%}.particle-field span:nth-child(9){animation-delay:-8s;top:42%;left:84%}.particle-field span:nth-child(10){width:5px;height:5px;animation-delay:-2.5s;top:78%;left:91%}.particle-field span:nth-child(11){animation-delay:-6.5s;top:48%;left:7%}.particle-field span:nth-child(12){width:6px;height:6px;animation-delay:-1.8s;top:68%;left:31%}.particle-field span:nth-child(13){animation-delay:-4.6s;top:8%;left:58%}.particle-field span:nth-child(14){width:6px;height:6px;animation-delay:-7.3s;top:86%;left:69%}.particle-field span:nth-child(15){animation-delay:-3.4s;top:58%;left:79%}.particle-field span:nth-child(16){width:4px;height:4px;animation-delay:-5.5s;top:20%;left:96%}.particle-field span:nth-child(17){width:4px;height:4px;animation-delay:-8.2s;top:8%;left:18%}.particle-field span:nth-child(18){width:8px;height:8px;animation-delay:-2.9s;top:51%;left:49%}@keyframes float-particle{0%,to{transform:translate(0,0)scale(1)}50%{transform:translate(16px,-24px)scale(1.35)}}.hero-section:before{border:1px solid color-mix(in srgb, var(--brand) 24%, transparent);content:"";border-radius:50%;width:340px;height:340px;position:absolute;inset:38px -90px auto auto}.hero-copy{z-index:1;position:relative}.eyebrow{border:1px solid var(--line);min-height:34px;color:var(--brand-strong);background:var(--surface);border-radius:8px;align-items:center;gap:8px;padding:0 12px;font-size:14px;font-weight:700;display:inline-flex}h1,h2,h3,p{margin:0}h1{max-width:850px;color:var(--ink);margin-top:22px;font-size:clamp(44px,7vw,82px);font-weight:800;line-height:.98}h2{color:var(--ink);font-size:clamp(30px,4vw,48px);font-weight:800;line-height:1.05}h3{color:var(--ink);font-size:21px;line-height:1.15}.hero-copy p,.section-title p,.page-intro p,.game-banner p{max-width:680px;color:var(--muted);font-size:18px;line-height:1.65}.hero-copy p{margin-top:24px}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:32px;display:flex}.primary-link,.secondary-link,.text-link,.message-form button{border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:48px;font-weight:700;display:inline-flex}.primary-link,.message-form button{color:#fff;background:linear-gradient(135deg, var(--brand-strong), var(--brand));box-shadow:var(--shadow);border:0}.primary-link{padding:0 20px}.secondary-link{border:1px solid var(--line);color:var(--ink);background:var(--surface);padding:0 18px}.text-link{color:var(--brand-strong)}.hero-visual{border:1px solid var(--line);background:linear-gradient(90deg, color-mix(in srgb, var(--line) 45%, transparent) 1px, transparent 1px), linear-gradient(color-mix(in srgb, var(--line) 45%, transparent) 1px, transparent 1px), radial-gradient(circle at 20% 20%, color-mix(in srgb, var(--gold) 22%, transparent), transparent 34%), radial-gradient(circle at 82% 72%, color-mix(in srgb, var(--rose) 20%, transparent), transparent 32%), var(--surface);min-height:500px;box-shadow:var(--shadow-soft);background-size:42px 42px,42px 42px,auto,auto,auto;border-radius:8px;position:relative;overflow:hidden}.faculty-logo{width:190px;height:190px;box-shadow:0 24px 80px color-mix(in srgb, var(--brand) 36%, transparent);background:radial-gradient(circle at 30% 20%, #fffc, transparent 34%), var(--surface);border-radius:50%;flex-direction:column;padding:22px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.faculty-logo img{object-fit:contain;width:100%;height:100%}.formula,.code-chip{border:1px solid var(--line);min-height:44px;color:var(--ink);background:color-mix(in srgb, var(--surface) 86%, transparent);box-shadow:var(--shadow-soft);border-radius:8px;align-items:center;padding:0 14px;font-family:Consolas,Courier New,monospace;display:inline-flex;position:absolute}.formula-one{top:76px;left:34px}.formula-two{top:144px;right:24px}.formula-three{bottom:70px;right:66px}.code-chip{color:var(--brand-strong);bottom:106px;left:36px}.dean-section{grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);align-items:start;gap:30px;display:grid}.dean-portrait-card,.dean-speech{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-soft);border-radius:8px}.dean-portrait-card{align-content:end;height:560px;display:grid;position:relative;overflow:hidden}.dean-portrait-card:before{background:radial-gradient(circle at 34% 28%, color-mix(in srgb, var(--brand) 32%, transparent), transparent 36%), radial-gradient(circle at 72% 70%, color-mix(in srgb, var(--cyan) 18%, transparent), transparent 34%), linear-gradient(145deg, var(--surface-soft), var(--surface));content:"";position:absolute;inset:0}.dean-math-bg{color:color-mix(in srgb, var(--brand) 30%, transparent);pointer-events:none;font-family:Consolas,Courier New,monospace;font-weight:800;position:absolute;inset:0}.dean-math-bg span{position:absolute}.dean-math-bg span:first-child{font-size:64px;top:42px;left:38px}.dean-math-bg span:nth-child(2){font-size:52px;top:104px;right:46px}.dean-math-bg span:nth-child(3){font-size:34px;bottom:130px;right:34px}.dean-portrait-card img{z-index:1;object-fit:contain;object-position:bottom center;filter:drop-shadow(0 24px 36px #13182947);justify-self:center;width:min(112%,520px);max-height:500px;margin-bottom:-10px;position:relative}.dean-caption{z-index:2;border-top:1px solid color-mix(in srgb, var(--line) 72%, transparent);background:color-mix(in srgb, var(--surface) 86%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:20px;position:relative}.dean-caption strong,.dean-caption span{display:block}.dean-caption strong{color:var(--ink);font-size:22px}.dean-caption span{color:var(--muted);margin-top:6px;line-height:1.45}.dean-speech{padding:clamp(22px,3vw,32px)}.dean-speech h2{max-width:780px;margin-top:14px;font-size:clamp(28px,4vw,42px)}.dean-speech blockquote{border-left:4px solid var(--gold);color:var(--ink);background:var(--surface-soft);border-radius:8px;margin:18px 0 0;padding:14px 18px;font-size:clamp(18px,2.5vw,24px);font-weight:800;line-height:1.3}.speech-text{gap:12px;margin-top:18px;display:grid}.speech-text p{color:var(--muted);font-size:16px;line-height:1.58}.dean-rules{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:4px 0;display:grid}.dean-rules span{border:1px solid var(--line);min-height:64px;color:var(--brand-strong);background:var(--surface-soft);border-radius:8px;align-items:center;padding:12px;font-weight:800;line-height:1.35;display:flex}.speech-text .speech-signature{color:var(--ink);font-weight:800}.read-more-button{border:1px solid var(--line);min-height:44px;color:var(--ink);background:var(--surface);border-radius:8px;justify-content:center;align-items:center;margin-top:18px;padding:0 16px;font-weight:800;transition:border-color .16s,color .16s,background .16s;display:inline-flex}.read-more-button:hover{border-color:color-mix(in srgb, var(--brand) 48%, var(--line));color:var(--brand-strong);background:var(--surface-soft)}.section-title,.page-intro{margin-bottom:36px}.section-title h2,.page-intro h1{margin-top:16px}.section-title p,.page-intro p{margin-top:14px}.preview-grid,.graduates-grid,.nominations-grid,.message-grid{gap:18px;display:grid}.preview-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.honors-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;width:100%}.honors-grid .graduate-card.is-compact{grid-template-columns:132px minmax(0,1fr);min-height:220px;padding:24px}.honors-grid .avatar-placeholder{font-size:34px}.honors-grid .graduate-info h3{font-size:25px}.honors-grid .graduate-info p{font-size:17px}.graduates-grid,.nominations-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.nomination-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.graduate-card,.nomination-card,.message-card,.message-form,.admin-login-card,.admin-card{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-soft);border-radius:8px}.graduate-card{will-change:transform;grid-template-columns:116px minmax(0,1fr);gap:18px;min-height:184px;padding:18px;transition:transform .18s,box-shadow .18s,border-color .18s;display:grid}.graduate-card:hover{border-color:color-mix(in srgb, var(--brand) 48%, var(--line));box-shadow:0 22px 58px color-mix(in srgb, var(--brand) 20%, transparent);transform:translateY(-6px)rotate(-.4deg)}.graduate-card.is-compact{grid-template-columns:90px minmax(0,1fr)}.avatar-placeholder{aspect-ratio:1;color:#fff;background:linear-gradient(135deg, #fff3, transparent), linear-gradient(135deg, var(--brand), var(--cyan) 48%, var(--rose));border-radius:8px;justify-content:center;align-items:center;font-size:28px;font-weight:900;display:flex}.graduate-info{min-width:0}.direction,.nomination-card span{color:var(--brand-strong);margin-bottom:10px;font-size:13px;font-weight:800;line-height:1.3;display:inline-flex}.graduate-info p,.nomination-card p,.message-card p{color:var(--muted);margin-top:12px;line-height:1.55}.section-action{justify-content:center;margin-top:28px;display:flex}.wall-layout{grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);align-items:start;gap:22px;display:grid}.teacher-wall{grid-template-columns:1fr}.wish-constellation{border:1px solid var(--line);min-height:520px;box-shadow:var(--shadow-soft);background:radial-gradient(circle at 18% 22%,#7da2ff29,#0000 28%),radial-gradient(circle at 72% 68%,#16b8c721,#0000 30%),linear-gradient(135deg,#121a31,#18233d 48%,#101728);border-radius:8px;position:relative;overflow:visible}.wish-constellation:before{z-index:0;content:"";opacity:.55;background-image:radial-gradient(circle at 7% 14%,#ffffff57 0 1px,#0000 1.7px),radial-gradient(circle at 13% 73%,#7da2ff47 0 1.2px,#0000 2px),radial-gradient(circle at 19% 39%,#fff3 0 .8px,#0000 1.6px),radial-gradient(circle at 24% 88%,#ffffff42 0 1px,#0000 1.8px),radial-gradient(circle at 29% 18%,#7da2ff38 0 1px,#0000 1.7px),radial-gradient(circle at 35% 63%,#ffffff52 0 1.1px,#0000 1.9px),radial-gradient(circle at 41% 9%,#ffffff2e 0 .8px,#0000 1.5px),radial-gradient(circle at 46% 78%,#16b8c738 0 1px,#0000 1.8px),radial-gradient(circle at 52% 24%,#ffffff47 0 1px,#0000 1.7px),radial-gradient(circle at 57% 91%,#ffffff38 0 .9px,#0000 1.6px),radial-gradient(circle at 63% 12%,#7da2ff42 0 1.2px,#0000 2px),radial-gradient(circle at 68% 54%,#fff3 0 .9px,#0000 1.6px),radial-gradient(circle at 73% 32%,#ffffff52 0 1px,#0000 1.8px),radial-gradient(circle at 79% 84%,#7da2ff3d 0 1px,#0000 1.8px),radial-gradient(circle at 84% 19%,#ffffff2e 0 .8px,#0000 1.5px),radial-gradient(circle at 88% 68%,#ffffff4d 0 1.1px,#0000 1.9px),radial-gradient(circle at 94% 42%,#16b8c733 0 1px,#0000 1.8px),radial-gradient(circle at 5% 51%,#ffffff2e 0 .7px,#0000 1.4px),radial-gradient(circle at 11% 26%,#7da2ff5c 0 1.4px,#0000 2.2px),radial-gradient(circle at 16% 91%,#ffffff24 0 .6px,#0000 1.3px),radial-gradient(circle at 27% 52%,#ffffff3d 0 .9px,#0000 1.6px),radial-gradient(circle at 33% 81%,#16b8c72e 0 .8px,#0000 1.5px),radial-gradient(circle at 39% 35%,#ffffff29 0 .7px,#0000 1.4px),radial-gradient(circle at 44% 16%,#fff6 0 1.5px,#0000 2.3px),radial-gradient(circle at 49% 67%,#7da2ff33 0 .9px,#0000 1.6px),radial-gradient(circle at 55% 7%,#fff3 0 .8px,#0000 1.5px),radial-gradient(circle at 60% 74%,#ffffff57 0 1.2px,#0000 2px),radial-gradient(circle at 66% 23%,#16b8c729 0 .7px,#0000 1.4px),radial-gradient(circle at 71% 9%,#ffffff26 0 .7px,#0000 1.4px),radial-gradient(circle at 76% 61%,#7da2ff52 0 1.3px,#0000 2.1px),radial-gradient(circle at 83% 93%,#ffffff2e 0 .8px,#0000 1.5px),radial-gradient(circle at 91% 13%,#ffffff42 0 1px,#0000 1.8px),radial-gradient(circle at 97% 79%,#ffffff29 0 .7px,#0000 1.4px);position:absolute;inset:0}.constellation-lines{z-index:1;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.constellation-lines polyline{fill:none;stroke:color-mix(in srgb, var(--brand) 42%, transparent);stroke-dasharray:2 4;stroke-linecap:round;stroke-width:.45px}.wish-star{z-index:2;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;display:inline-flex;position:absolute;transform:translate(-50%,-50%)}.star-core{width:13px;height:13px;box-shadow:0 0 0 5px color-mix(in srgb, var(--brand) 18%, transparent), 0 0 24px color-mix(in srgb, var(--brand) 74%, transparent);background:#fff;border-radius:50%;display:block;position:relative}.star-core:before,.star-core:after{background:color-mix(in srgb, var(--brand) 72%, transparent);content:"";border-radius:999px;width:24px;height:2px;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.star-core:after{width:2px;height:24px}.wish-popover{border:1px solid color-mix(in srgb, var(--brand) 18%, var(--line));color:#1b2133;opacity:0;pointer-events:none;text-align:left;transform-origin:0 100%;border-radius:8px;gap:6px;width:min(260px,42vw);padding:14px 16px;font-size:14px;font-weight:650;line-height:1.45;transition:opacity .16s,transform .16s;display:grid;position:absolute;bottom:22px;left:22px;transform:translateY(8px)scale(.96);box-shadow:0 20px 50px #1318292e}.wish-popover strong{color:#1b2133;font-size:13px}.wish-popover span{display:block}.wish-star.from-right .wish-popover{transform-origin:100% 100%;left:auto;right:22px}.wish-star.from-top .wish-popover{transform-origin:0 0;top:22px;bottom:auto}.wish-star.from-right.from-top .wish-popover{transform-origin:100% 0}.wish-star:hover,.wish-star:focus-visible{z-index:4}.wish-star:hover .wish-popover,.wish-star:focus-visible .wish-popover{opacity:1;transform:translateY(0)scale(1)}.message-form{gap:12px;padding:22px;display:grid}.message-form label{color:var(--ink);font-weight:800}.message-form textarea{resize:vertical;border:1px solid var(--line);width:100%;min-height:150px;color:var(--ink);background:var(--page);border-radius:8px;outline:none;padding:14px}.message-form textarea:focus{border-color:var(--brand);box-shadow:0 0 0 4px color-mix(in srgb, var(--brand) 16%, transparent)}.form-footer{justify-content:space-between;align-items:center;gap:12px;display:flex}.form-footer span,.form-note{color:var(--muted);font-size:14px}.message-form button{min-width:128px;padding:0 18px}.message-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.message-card{min-height:140px;padding:20px}.message-card svg{color:var(--gold)}.wish-popover.is-blue{background:#dfeaff}.wish-popover.is-mint{background:#dcf7ed}.wish-popover.is-lemon{background:#fff3c7}.wish-popover.is-rose{background:#ffe1ec}.wish-popover.is-violet{background:#eee5ff}.nomination-card{will-change:transform;gap:18px;padding:20px;transition:transform .18s,box-shadow .18s,border-color .18s;display:grid;overflow:hidden}.nomination-card:hover{border-color:color-mix(in srgb, var(--brand) 48%, var(--line));box-shadow:0 24px 58px color-mix(in srgb, var(--brand) 20%, transparent);transform:translateY(-6px)}.nomination-photo{aspect-ratio:16/10;color:#fff;background:linear-gradient(135deg, #fff3, transparent), linear-gradient(135deg, var(--rose), var(--brand), var(--green));border-radius:8px;justify-content:center;align-items:center;width:100%;min-width:0;transition:filter .18s;display:flex}.nomination-photo svg{transition:transform .18s}.nomination-card:hover .nomination-photo{filter:brightness(1.05)}.nomination-card:hover .nomination-photo svg{transform:scale(1.12)rotate(-4deg)}.nomination-card.is-locked .nomination-photo{background:linear-gradient(135deg,#ffffff1f,#0000),linear-gradient(135deg,#4c5873,#26324b)}.nomination-card.is-locked strong{color:var(--muted)}.nomination-card strong{color:var(--ink);margin-top:12px;display:block}.game-banner{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;margin-bottom:48px;display:flex}.game-banner h2{max-width:760px;margin-top:16px}.game-banner p{margin-top:12px}.filter-bar{flex-wrap:wrap;gap:10px;margin-bottom:26px;display:flex}.filter-bar button{border:1px solid var(--line);min-height:44px;color:var(--muted);background:var(--surface);border-radius:8px;padding:0 15px}.filter-bar button.is-active{color:#fff;background:var(--brand);border-color:#0000}.game-page{min-height:72svh}.game-layout{grid-template-columns:minmax(0,1fr) minmax(280px,360px);align-items:start;gap:22px;display:grid}.game-embed{border:1px solid var(--line);background:radial-gradient(circle at 22% 18%, color-mix(in srgb, var(--brand) 18%, transparent), transparent 32%), radial-gradient(circle at 78% 72%, color-mix(in srgb, var(--cyan) 14%, transparent), transparent 34%), #10131a;min-height:760px;box-shadow:var(--shadow-soft);border-radius:8px;place-items:center;display:grid;overflow:hidden}.game-embed .exams-root{background:0 0;width:100%;height:min(78svh,860px);min-height:680px}.game-embed .exams-frame{border-radius:8px;box-shadow:0 24px 70px #00000059}.leaderboard-card{border:1px solid var(--line);background:radial-gradient(circle at 18% 0%, color-mix(in srgb, var(--brand) 16%, transparent), transparent 34%), var(--surface);box-shadow:var(--shadow-soft);border-radius:8px;gap:18px;padding:22px;display:grid;position:sticky;top:96px}.leaderboard-card.is-admin{position:static}.leaderboard-head{align-items:center;gap:14px;display:flex}.leaderboard-icon{color:#fff;background:linear-gradient(135deg, var(--brand), var(--cyan));border-radius:8px;place-items:center;width:48px;height:48px;display:grid}.leaderboard-head span:not(.leaderboard-icon){color:var(--brand-strong);font-weight:800}.leaderboard-head h2{font-size:clamp(24px,3vw,34px)}.leaderboard-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.leaderboard-list li{border:1px solid var(--line);background:var(--surface-soft);border-radius:8px;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:64px;padding:10px 12px;display:grid}.leaderboard-list.is-admin li{grid-template-columns:38px minmax(0,1fr) auto auto}.leaderboard-place{color:#fff;background:var(--brand);border-radius:8px;place-items:center;width:34px;height:34px;font-weight:900;display:grid}.leaderboard-list strong,.leaderboard-list small{display:block}.leaderboard-list strong{color:var(--ink)}.leaderboard-list small,.leaderboard-muted{color:var(--muted)}.leaderboard-list time{color:var(--brand-strong);font-variant-numeric:tabular-nums;font-weight:900}.leaderboard-delete{border:1px solid color-mix(in srgb, #d14343 42%, var(--line));color:#d14343;background:color-mix(in srgb, #d14343 7%, var(--surface));border-radius:8px;justify-content:center;align-items:center;min-height:36px;padding:0 12px;font-weight:900;display:inline-flex}.leaderboard-delete:not(:disabled):hover{background:color-mix(in srgb, #d14343 13%, var(--surface))}.leaderboard-delete:disabled{cursor:not-allowed;opacity:.56}.leaderboard-admin-tools{gap:12px;display:grid}.leaderboard-admin-tools button{border:1px solid color-mix(in srgb, #d14343 46%, var(--line));color:#d14343;background:color-mix(in srgb, #d14343 8%, var(--surface));border-radius:8px;justify-content:center;align-items:center;width:fit-content;min-height:42px;padding:0 14px;font-weight:900;transition:background .16s,opacity .16s,transform .16s;display:inline-flex}.leaderboard-admin-tools button:not(:disabled):hover{background:color-mix(in srgb, #d14343 14%, var(--surface));transform:translateY(-1px)}.leaderboard-admin-tools button:disabled{cursor:not-allowed;opacity:.56}.admin-page{min-height:72svh}.admin-placeholder{gap:18px;max-width:860px;display:grid}.admin-login-card,.admin-card{grid-template-columns:64px minmax(0,1fr);align-items:start;gap:20px;padding:26px;display:grid}.admin-login-card>svg,.admin-card>svg{color:#fff;background:linear-gradient(135deg, var(--brand), var(--cyan));border-radius:8px;justify-content:center;align-items:center;width:64px;height:64px;padding:14px;display:flex}.admin-login-card h2,.admin-card h2{font-size:clamp(28px,4vw,44px)}.admin-login-card p,.admin-card p{color:var(--muted);margin-top:12px;font-size:18px;line-height:1.6}.admin-login-card label{color:var(--ink);margin-top:16px;font-weight:800;display:block}.admin-login-card input{border:1px solid var(--line);width:100%;max-width:360px;min-height:44px;color:var(--ink);background:var(--page);border-radius:8px;outline:none;margin-top:8px;padding:0 12px}.admin-login-card input:focus{border-color:var(--brand);box-shadow:0 0 0 4px color-mix(in srgb, var(--brand) 16%, transparent)}.admin-login-card button,.logout-button{border:1px solid var(--line);min-height:44px;color:var(--ink);background:var(--surface);border-radius:8px;justify-content:center;align-items:center;font-weight:800;display:inline-flex}.admin-login-card button{margin-top:18px;padding:0 18px}.admin-login-card button:not(:disabled):hover,.logout-button:hover{border-color:color-mix(in srgb, var(--brand) 48%, var(--line));color:var(--brand-strong);background:var(--surface-soft)}.admin-login-card button:disabled{cursor:not-allowed;opacity:.48}.admin-live-control{gap:14px;margin-top:20px;display:grid}.status-pill{border-radius:8px;align-items:center;width:fit-content;min-height:36px;padding:0 12px;font-weight:800;display:inline-flex}.status-pill.is-open{color:#0f5132;background:#d1f7df}.status-pill.is-closed{color:#7a4b00;background:#fff0c2}.admin-actions{flex-wrap:wrap;gap:10px;display:flex}.admin-actions button{border:1px solid var(--line);min-height:44px;color:var(--ink);background:var(--surface);border-radius:8px;justify-content:center;align-items:center;padding:0 16px;font-weight:800;transition:border-color .16s,color .16s,background .16s,opacity .16s;display:inline-flex}.admin-actions button:not(:disabled):hover{border-color:color-mix(in srgb, var(--brand) 48%, var(--line));color:var(--brand-strong);background:var(--surface-soft)}.admin-actions button:disabled{cursor:not-allowed;opacity:.48}.logout-button{width:fit-content;padding:0 14px}.admin-error{color:#d14343;font-weight:700}.admin-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.admin-steps span{border:1px solid var(--line);min-height:54px;color:var(--brand-strong);background:var(--surface-soft);border-radius:8px;align-items:center;padding:12px 14px;font-weight:800;line-height:1.35;display:flex}.site-footer{border-top:1px solid var(--line);color:var(--muted);background:var(--surface);grid-template-columns:minmax(280px,1fr) auto minmax(220px,.55fr);align-items:center;gap:28px;padding:30px clamp(18px,4vw,56px);display:grid}.footer-brand{align-items:center;gap:16px;min-width:0;display:flex}.footer-brand img{border:1px solid var(--line);object-fit:cover;background:#fff;border-radius:8px;width:86px;height:58px}.footer-brand span,.footer-devs span{color:var(--brand-strong);font-weight:800;display:block}.footer-brand p,.footer-devs p,.footer-devs small{margin-top:6px}.footer-brand p{max-width:560px;line-height:1.45}.footer-links{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.footer-links a{border:1px solid var(--line);min-height:38px;color:var(--ink);background:var(--page);border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:0 12px;font-weight:700;transition:border-color .16s,color .16s,transform .16s;display:inline-flex}.footer-links a:hover{border-color:color-mix(in srgb, var(--brand) 48%, var(--line));color:var(--brand-strong);transform:translateY(-2px)}.footer-devs{text-align:right;justify-self:end}.footer-devs p{color:var(--ink);font-weight:800}.footer-devs small{line-height:1.45;display:block}@media (width<=980px){.main-nav{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:8px;align-items:stretch;padding:12px;display:none;position:fixed;top:76px;left:16px;right:16px}.main-nav.is-open{display:grid}.main-nav a,.main-nav button{justify-content:flex-start;width:100%}.menu-button{display:inline-flex}.hero-section,.dean-section,.wall-layout,.game-banner{grid-template-columns:1fr}.hero-section{min-height:auto;padding-top:54px}.hero-visual{min-height:390px}.dean-portrait-card{height:500px}.dean-rules{grid-template-columns:1fr}.preview-grid,.graduates-grid,.nominations-grid,.nomination-row{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-steps{grid-template-columns:1fr}.site-footer{grid-template-columns:1fr;align-items:flex-start}.footer-links{justify-content:flex-start}.footer-devs{text-align:left;justify-self:start}}@media (width<=680px){.site-header{min-height:68px;padding-inline:16px}.brand small{display:none}.main-nav{top:68px}.section-shell{padding:64px 0}.page-shell{padding:52px 0 72px}h1{font-size:42px}.hero-copy p,.section-title p,.page-intro p,.speech-text p,.game-banner p{font-size:16px}.dean-portrait-card{height:430px}.dean-portrait-card img{width:min(118%,420px);max-height:390px}.preview-grid,.graduates-grid,.nominations-grid,.nomination-row,.message-grid{grid-template-columns:1fr}.honors-grid{max-width:none}.honors-grid .graduate-card.is-compact{grid-template-columns:86px minmax(0,1fr);min-height:0;padding:14px}.honors-grid .avatar-placeholder{font-size:28px}.honors-grid .graduate-info h3{font-size:21px}.honors-grid .graduate-info p{font-size:inherit}.wish-constellation{min-height:430px}.wish-popover{width:min(230px,68vw);font-size:13px;bottom:18px;left:18px}.admin-login-card,.admin-card,.game-layout{grid-template-columns:1fr}.game-embed{min-height:680px}.game-embed .exams-root{height:min(82svh,760px);min-height:620px}.leaderboard-card{position:static}.leaderboard-list.is-admin li{grid-template-columns:38px minmax(0,1fr) auto}.leaderboard-list.is-admin .leaderboard-delete{grid-column:2/-1;width:fit-content}.graduate-card,.graduate-card.is-compact{grid-template-columns:86px minmax(0,1fr);min-height:0;padding:14px}.formula-one{top:48px;left:18px}.formula-two{top:112px;right:18px}.formula-three{bottom:42px;right:26px}.code-chip{bottom:96px;left:18px}.faculty-logo{width:150px;height:150px;padding:18px}.footer-brand{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){.particle-field span,.graduate-card,.nomination-card,.nomination-photo{transition:none;animation:none}.graduate-card:hover,.nomination-card:hover,.nomination-card:hover .nomination-photo{transform:none}}@media (width<=460px){.graduate-card,.graduate-card.is-compact{grid-template-columns:1fr}.avatar-placeholder{max-width:150px}.form-footer{flex-direction:column;align-items:stretch}.message-form button{width:100%}}
