:root{font-family:system-ui,Arial,sans-serif;color:#16374b;background:#edf8fc}*{box-sizing:border-box}body{margin:0}header{background:#102d45;color:#fff;padding:16px 5%;display:flex;justify-content:space-between;align-items:center;gap:12px}header b{color:#f2c15b}button,input,select{font:inherit;border-radius:10px;padding:10px;border:1px solid #b9d4df}button{cursor:pointer;background:#087f9d;color:#fff;border:0}button.secondary{background:#e7f3f8;color:#16374b}button:disabled{opacity:.45;cursor:not-allowed}main{max-width:1100px;margin:28px auto;padding:0 16px}.card{background:#fff;border-radius:20px;padding:24px;box-shadow:0 8px 30px #1d5b7615;margin:16px 0}.hero{text-align:center;padding:36px 12px}.hero h1{font-size:clamp(25px,5vw,40px)}.actions,.tools,.class-list{display:flex;flex-wrap:wrap;gap:10px}.class-list button{background:#d8f1f6;color:#174158}.aquarium{height:340px;position:relative;overflow:hidden;border-radius:18px;background:linear-gradient(#72d9ec,#218ab5 75%,#17678e);border:5px solid #bcebf4}.aquarium:before{content:"🪸 🪨 🌿 🪸 🌱 🐚 🌿";position:absolute;bottom:0;left:0;right:0;font-size:36px;letter-spacing:15px;background:#d9c08a;padding:8px}.fish{position:absolute;display:flex;flex-direction:column;align-items:center;will-change:transform;transform-origin:center}.fish .emoji{transition:transform .25s ease;font-size:var(--size);filter:drop-shadow(0 4px 3px #14506a55)}.fish span{background:#ffffffd9;padding:3px 8px;border-radius:20px;font-size:12px;white-space:nowrap}.bubble{position:absolute;border:2px solid #ffffff77;border-radius:50%;animation:rise 5s linear infinite}@keyframes rise{0%{bottom:-20px;opacity:1}to{bottom:100%;opacity:0}}form{display:flex;flex-wrap:wrap;gap:9px;margin:12px 0}form input,form select{min-width:150px;flex:1}.notice{padding:12px;background:#fff3d8;border-radius:10px}.muted{color:#5a7988}.row{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}.students{display:grid;gap:10px}.student{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid #e5eef1;padding:10px 0}.student .tools{align-items:center}@media(max-width:600px){.student{align-items:flex-start;flex-direction:column}.aquarium{height:300px}}body{background:radial-gradient(circle at 12% 0%,#d7f7fb 0,#edf8fc 38%,#e4f1f8)}header{background:linear-gradient(105deg,#09253d,#124c68 62%,#0d344e);box-shadow:0 5px 20px #09253d25}header div:first-child{font-weight:750;letter-spacing:.2px}header b{display:inline-flex;align-items:center;justify-content:center;border:1px solid #e8bd52;border-radius:10px;padding:3px 7px;margin-right:8px;color:#f6ce68}.hero{padding:0;overflow:hidden;background:#082e49;color:#fff;border:1px solid #c7e8ef}.hero-ocean{position:relative;min-height:390px;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:48px 24px;background:radial-gradient(ellipse at 50% 110%,#1e9cc0 0,#0c597c 43%,#082c49)}.hero-ocean:before{content:"";position:absolute;left:-10%;right:-10%;bottom:-75px;height:150px;border-radius:50% 50% 0 0;background:linear-gradient(180deg,#d7c18a,#a88a54);opacity:.95}.hero-ocean:after{content:"♟　♞　♜　♝　♟";position:absolute;bottom:18px;left:0;right:0;text-align:center;font-size:clamp(28px,5vw,52px);letter-spacing:14px;color:#f3d88c;text-shadow:0 3px 0 #6e552c;opacity:.9}.hero-copy{position:relative;z-index:4;max-width:760px;text-align:center}.eyebrow{font-size:11px;letter-spacing:2.2px;font-weight:800;color:#e9bd51;margin:0 0 12px}.hero h1{font-size:clamp(28px,4.5vw,48px);line-height:1.12;margin:0 auto 16px;color:#fff;text-shadow:0 3px 20px #001c2b80}.hero-copy>p:not(.eyebrow){max-width:650px;margin:0 auto 24px;color:#d9f3fb;line-height:1.65;font-size:clamp(14px,2vw,17px)}.hero-actions{justify-content:center;position:relative;z-index:5}.hero-actions button{padding:12px 18px;font-weight:750;box-shadow:0 7px 18px #001c2b40;background:linear-gradient(135deg,#f5d477,#d9a936);color:#14344b}.hero-actions button.secondary{background:#eaf7fb;color:#12394f}.hero-fish{position:absolute;z-index:2;filter:drop-shadow(0 7px 5px #001c2b40);-webkit-user-select:none;user-select:none;animation:heroSwim 7s ease-in-out infinite}.fish-one{left:8%;top:19%;font-size:clamp(38px,6vw,66px)}.fish-two{right:10%;top:24%;font-size:clamp(34px,5vw,58px);animation-delay:-2.5s}.fish-three{left:15%;bottom:22%;font-size:clamp(28px,4vw,46px);animation-delay:-4s}.hero-chess{position:absolute;right:8%;bottom:20%;font-size:clamp(24px,4vw,42px);opacity:.55;transform:rotate(-8deg)}@keyframes heroSwim{0%,to{transform:translate(0) rotate(-4deg)}50%{transform:translate(18px,-12px) rotate(4deg)}}.weekly{border:1px solid #c8e2eb;overflow:hidden}.weekly-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.weekly-heading h2{margin:0;color:#153d55}.weekly-heading .eyebrow{color:#b18422;margin-bottom:6px}.date-range{display:inline-flex;align-items:center;gap:6px;background:#fff4d5;color:#76591b;border:1px solid #f0d58b;border-radius:999px;padding:9px 13px;font-size:13px;font-weight:750}.weekly-subtitle{color:#607e8b;margin:10px 0 18px}.table-wrap{overflow-x:auto;border:1px solid #e0edf1;border-radius:14px}.weekly-table{width:100%;border-collapse:collapse;min-width:440px;background:#fff}.weekly-table th{background:#103b56;color:#e9f7fb;text-align:left;font-size:13px;font-weight:700;padding:13px 15px;white-space:nowrap}.weekly-table td{padding:13px 15px;border-bottom:1px solid #e8f0f3;color:#244b60}.weekly-table tbody tr:last-child td{border-bottom:0}.weekly-table tbody tr:nth-child(2n){background:#f6fbfd}.weekly-table tbody tr:hover{background:#edf8fb}.weekly-table td:last-child{color:#a77913}.player-name{font-weight:750}.rank{display:inline-flex;width:28px;height:28px;border-radius:50%;align-items:center;justify-content:center;background:#eaf3f7;color:#30596c;font-weight:800}.rank-1{background:#f8df8f;color:#77540b}.rank-2{background:#e1e8ed;color:#4d6472}.rank-3{background:#f0c9a8;color:#7a4d2c}.empty-week{text-align:center;padding:28px 12px;border:1px dashed #c7dfe8;border-radius:14px;background:#f7fcfd;color:#557889}.empty-week>span{display:block;font-size:34px;margin-bottom:8px}.empty-week strong{color:#214c63}.empty-week p{margin:7px 0 0;font-size:13px}.weekly-footnote{font-size:12px;color:#78919d;margin:12px 0 0}@media(max-width:600px){.hero-ocean{min-height:420px;padding:42px 18px}.hero-fish.fish-one{left:3%;top:9%}.hero-fish.fish-two{right:3%;top:15%}.hero-chess{right:4%;bottom:16%}.date-range{font-size:12px}.weekly-table th,.weekly-table td{padding:11px 10px}}#app:has(.portal-poster)>header{display:none}#app:has(.portal-poster)>main{max-width:1024px;margin:0 auto;padding:0}body:has(.portal-poster){background:#031b30}.portal-poster{position:relative;width:100%;aspect-ratio:2/3;overflow:hidden;background:#062c4c url(/assets/portal-bg-DlCytmhl.png) center top/100% 100% no-repeat;border:0;border-radius:0;box-shadow:none}.poster-hotspot{position:absolute;z-index:5;top:57.1%;height:7.7%;width:44%;border-radius:22px}.visitor-hotspot{left:5%}.login-hotspot{left:51.2%}.poster-hotspot button{display:block;width:100%;height:100%;padding:0;border:0;border-radius:22px;background:transparent;color:transparent;box-shadow:none;cursor:pointer}.poster-hotspot button:focus-visible{outline:4px solid #fff;outline-offset:3px;background:#ffffff18}.poster-weekly{position:absolute;z-index:4;left:2.4%;right:2.4%;top:66.55%;height:28.2%;padding:1.25% 1.6%;overflow:hidden;border:1px solid #087ba6;border-radius:28px;background:linear-gradient(115deg,#021e36f7,#032846f7);color:#f5fbff;box-shadow:0 6px 22px #00111f70}.poster-weekly-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:19%;margin-bottom:1%}.poster-weekly-title{display:flex;align-items:center;gap:14px;min-width:0}.weekly-star{font-size:clamp(22px,4.2vw,48px);line-height:1}.poster-weekly-title h2{margin:0;font-size:clamp(18px,3.2vw,38px);line-height:1.05;color:#fff}.poster-weekly-title p{margin:4px 0 0;font-size:clamp(9px,1.4vw,16px);color:#d7eafa}.date-range{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;background:#073b68;border:1px solid #1767a0;border-radius:999px;padding:9px 12px;color:#fff;font-size:clamp(9px,1.35vw,15px);font-weight:750}.poster-weekly-columns{height:78%;display:grid;grid-template-columns:1fr 1fr;gap:1.5%}.leader-category{min-width:0;overflow:hidden;border:1px solid #174c7c;border-radius:18px;background:linear-gradient(145deg,#073c6b,#082b50);padding:2%}.leader-category h3{font-size:clamp(10px,1.65vw,18px);margin:0 0 3px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.leader-category>p{font-size:clamp(8px,1.15vw,13px);margin:0 0 8px;color:#d9eafb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.leader-list{list-style:none;padding:0;margin:0;display:grid;gap:5px}.leader-list li{display:grid;grid-template-columns:clamp(20px,3vw,34px) minmax(0,1fr) auto;align-items:center;gap:7px;min-height:clamp(25px,4.25vw,49px);padding:4px 8px;border:1px solid #245780;border-radius:13px;background:linear-gradient(100deg,#143e65,#0c3155)}.leader-rank{display:inline-flex;align-items:center;justify-content:center;width:clamp(20px,2.9vw,32px);height:clamp(20px,2.9vw,32px);border-radius:50%;background:#e6eef5;color:#344e65;font-size:clamp(10px,1.5vw,17px);font-weight:900}.leader-rank.rank-1{background:linear-gradient(#fff0a8,#e7a91c);color:#65470b}.leader-rank.rank-3{background:linear-gradient(#ffd6ae,#d98a4e);color:#70421e}.leader-name{min-width:0;font-size:clamp(9px,1.4vw,16px);font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.leader-list strong{font-size:clamp(9px,1.35vw,15px);color:#ffd34e;white-space:nowrap}.leader-empty{padding:10px 6px;font-size:12px;color:#d8eafa}@media(max-width:600px){.portal-poster{aspect-ratio:auto;min-height:1040px;background-size:100% 100%}.poster-hotspot{top:57.2%;height:7.4%;border-radius:14px}.poster-weekly{top:66.2%;height:30%;padding:12px 10px;border-radius:18px}.poster-weekly-heading{align-items:flex-start;min-height:15%;gap:5px}.poster-weekly-title{gap:6px}.poster-weekly-title h2{font-size:18px}.poster-weekly-title p{font-size:9px}.date-range{font-size:9px;padding:7px 8px;white-space:normal;text-align:center}.poster-weekly-columns{height:82%;gap:7px}.leader-category{padding:7px 5px;border-radius:12px}.leader-category h3{font-size:10px;white-space:normal;line-height:1.15;min-height:24px}.leader-category>p{font-size:8px;white-space:normal;line-height:1.2;min-height:20px}.leader-list{gap:5px}.leader-list li{grid-template-columns:20px minmax(0,1fr);gap:4px;padding:5px;min-height:43px}.leader-list strong{grid-column:2;font-size:10px}.leader-name{font-size:10px}}.aquarium.has-3d-fish .fish .emoji{display:none}.aquarium.has-3d-fish .fish{z-index:3;pointer-events:none}.aquarium.has-3d-fish .fish span{margin-top:22px;position:relative;z-index:4}.aquarium .fish-3d-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none}body:has(.aquarium-panel){background:radial-gradient(ellipse at 50% 0,#09547a 0,#042c4a 48%,#03172d);color:#f4fbff}body:has(.aquarium-panel) header{background:#041b31;border-bottom:1px solid #176a91}body:has(.aquarium-panel) main{max-width:1500px}body:has(.aquarium-panel) .card{background:linear-gradient(135deg,#052a48f5,#031b33f5);color:#f4fbff;border:1px solid rgba(67,177,225,.42);box-shadow:0 12px 35px #0013266b}body:has(.aquarium-panel) .class-list button{background:#0e5981;color:#fff;border:1px solid #4cafd7}.aquarium-panel{padding:18px!important;background:transparent!important;border:0!important;box-shadow:none!important}.aquarium-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;background:linear-gradient(105deg,#073c63,#062944);border:1px solid #2698ce;border-radius:18px 18px 0 0;padding:18px 24px;color:#fff}.aquarium-heading h2{margin:0 0 6px;font-size:clamp(21px,3vw,31px)}.aquarium-heading span{color:#bce7ff}.aquarium-tag{background:#0a5778;border:1px solid #4fb6db;padding:10px 14px;border-radius:14px}.aquarium{height:clamp(360px,39vw,555px);background:url(/assets/akvaryum-bg-CwddqKc_.png) center center/cover no-repeat!important;border:5px solid #64c5eb!important;border-top:0!important;border-radius:0 0 25px 25px!important;box-shadow:inset 0 0 35px #91edff8c,0 0 25px #008fcb55}.aquarium:before{display:none!important}.aquarium:after{display:none!important}.aquarium .fish-3d-layer{z-index:2}.aquarium .fish{z-index:3}.aquarium .fish span{color:#083252;background:#e4f9ffed!important;font-weight:700;box-shadow:0 3px 12px #002d4977;padding:5px 11px}body:has(.aquarium-panel) .muted{color:#b2d9e9}.ocean-subtitle{color:#fff;font-size:22px;margin:24px 0 16px}.aquarium-panel .students{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:14px}.aquarium-panel .student{display:flex;align-items:center;flex-wrap:wrap;gap:12px;background:linear-gradient(120deg,#0b4368,#062c4e);border:1px solid #317aa4;border-radius:18px;padding:16px;min-width:0}.student-avatar{font-size:38px;background:linear-gradient(#087eaf,#06375a);border:1px solid #4fb9db;border-radius:12px;padding:8px}.student-summary{flex:1;min-width:100px;display:flex;flex-direction:column;gap:4px}.student-summary span{color:#ffd36d;font-weight:700;font-size:13px}.feed-track{height:9px;background:#1e5371;border-radius:20px;overflow:hidden;margin-top:6px}.feed-fill{height:100%;background:linear-gradient(90deg,#248cff,#57e0ff);border-radius:20px}.aquarium-panel .student .tools{width:100%;justify-content:flex-end}.aquarium-panel button{background:linear-gradient(#0b7fba,#075b96);border:1px solid #329bd5;color:#fff}.aquarium-panel button.secondary{background:#0c527d;color:#f4fbff}.aquarium-panel #addStudent{background:#052e4d;border:1px solid #36799f;padding:14px;border-radius:16px}.aquarium-panel #addStudent input{background:#103b57;color:#fff;border:1px solid #5793af}.aquarium-panel #addStudent input::placeholder{color:#a7c8d9}.aquarium-panel #addStudent button{background:linear-gradient(#ffdc78,#e9ac3d);color:#152a3a;font-weight:800;border:0}@media(max-width:650px){.aquarium{height:380px}.aquarium-panel{padding:4px!important}.aquarium-heading{padding:14px}.aquarium-tag{display:none}.aquarium-panel .students{grid-template-columns:1fr}}.aquarium-panel #addStudent select{min-width:210px;flex:1;background:#103b57;color:#fff;border:1px solid #5793af;padding:12px;border-radius:12px}.aquarium-panel .student .tools{gap:8px}.aquarium-panel [data-change-fish]{background:#0b476d;color:#dff5ff}.aquarium.has-3d-fish .fish span{position:absolute!important;top:30px!important;left:50%!important;transform:translate(-50%)!important;margin-top:0!important;white-space:nowrap;z-index:5;background:#e6f9ffeb!important;color:#083252!important;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:700;pointer-events:none}@media(min-width:701px){#app:has(.portal-poster)>main{width:min(100%,1024px,calc((100svh - 12px) * 2 / 3))}.portal-poster{width:100%;aspect-ratio:2 / 3;min-height:0;overflow:hidden;container-type:inline-size}.poster-weekly{position:absolute;top:66.55%;left:2.4%;right:2.4%;height:28.2%;min-height:0;margin:0;overflow:hidden;padding:1.25% 1.6%}.poster-weekly-title h2{font-size:clamp(16px,3.7cqw,38px)}.poster-weekly-title p{font-size:clamp(9px,1.55cqw,16px)}.weekly-star{font-size:clamp(20px,4.6cqw,48px)}.poster-weekly .date-range{font-size:clamp(9px,1.45cqw,15px);padding:.75cqw 1.15cqw}.leader-category h3{font-size:clamp(10px,1.75cqw,18px)}.leader-category>p{font-size:clamp(8px,1.2cqw,13px)}.leader-list li{min-height:clamp(25px,4.4cqw,49px)}.leader-name,.leader-list strong{font-size:clamp(9px,1.5cqw,15px)}.leader-rank{width:clamp(20px,3cqw,32px);height:clamp(20px,3cqw,32px)}.poster-weekly-columns{height:78%;grid-template-columns:1fr 1fr}}@media(max-width:700px){#app:has(.portal-poster)>main{width:100%}.portal-poster{width:100%;aspect-ratio:auto;min-height:1040px;overflow:hidden;background-size:100% 100%}.poster-weekly{position:absolute;top:66.2%;left:2.4%;right:2.4%;height:30%;min-height:0;margin:0;overflow:hidden}.poster-weekly-columns{height:82%;grid-template-columns:1fr 1fr}}body:has(.visitor-world){background:radial-gradient(ellipse at 50% 0%,#0b5273,#052942 58%,#031b30);color:#fff}body:has(.visitor-world) main{max-width:1500px}.visitor-world{max-width:1280px;margin:0 auto;color:#fff}.visitor-topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 4px;color:#cef;font-weight:750}.visitor-topbar button,.visitor-back button{background:#0c527d;color:#fff;border:1px solid #54b9df}.visitor-welcome{position:relative;overflow:hidden;text-align:center;padding:clamp(36px,6vw,76px) 22px;border:1px solid #2698ce;border-radius:24px;background:radial-gradient(circle at 50% 0%,#127fa4aa,transparent 55%),linear-gradient(145deg,#075079,#04223d);box-shadow:0 16px 45px #00182b75}.visitor-welcome:after{content:"🫧  🫧  🫧";position:absolute;bottom:8px;right:24px;opacity:.45;font-size:30px;pointer-events:none}.visitor-eyebrow{color:#ffdb82;font-size:13px;letter-spacing:2px;font-weight:850}.visitor-welcome h1{font-size:clamp(26px,4.5vw,48px);line-height:1.13;margin:18px auto;color:#fff;max-width:760px}.visitor-welcome p{max-width:680px;margin:0 auto 22px;color:#d1efff;line-height:1.65}.visitor-stat{display:inline-block;padding:10px 18px;border-radius:30px;background:#0b648c;border:1px solid #4eb6df;color:#fff;font-weight:750}.visitor-classes{padding:26px 0 8px}.visitor-section-title h2{margin:0 0 6px;font-size:clamp(21px,3vw,30px);color:#fff}.visitor-section-title p{margin:0 0 22px;color:#b5daed}.visitor-class-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));gap:18px}.visitor-class-card{display:flex;flex-direction:column;text-align:left;padding:0;overflow:hidden;min-height:270px;border-radius:20px;border:1px solid #3b9dc6;background:linear-gradient(145deg,#0b456a,#062a4a);color:#fff;box-shadow:0 8px 28px #00152c88;transition:transform .2s,box-shadow .2s}.visitor-class-card:hover{transform:translateY(-4px);box-shadow:0 16px 35px #00152caa}.visitor-class-card:focus-visible{outline:3px solid #ffd36d;outline-offset:3px}.visitor-card-art{display:flex;justify-content:center;align-items:center;gap:15px;min-height:138px;width:100%;font-size:64px;background:radial-gradient(circle at 50% 30%,#2ab7db,#08638e 65%,#06456c)}.visitor-card-art span{font-size:38px;opacity:.8}.visitor-card-body{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:19px;width:100%}.visitor-card-body strong{font-size:21px;overflow-wrap:anywhere}.visitor-card-body small{color:#c3e9f8;font-size:14px}.visitor-card-link{color:#ffda78;font-size:14px;font-weight:800;margin-top:6px}.visitor-back{display:flex;align-items:center;gap:16px;margin:12px 0 20px;color:#d9f3ff;font-weight:750}.visitor-empty{color:#cceaff}@media(max-width:600px){.visitor-topbar{font-size:13px}.visitor-welcome{padding:42px 16px}.visitor-class-grid{grid-template-columns:1fr}.visitor-class-card{min-height:230px}.visitor-card-art{min-height:115px}}header>div:first-child,.visitor-topbar>span{display:inline-flex;align-items:center;gap:10px}.brand-logo{display:inline-block;width:38px;height:38px;object-fit:cover;border-radius:50%;border:1px solid #dcb764;flex-shrink:0}.visitor-topbar .brand-logo{width:34px;height:34px}@media(max-width:600px){.brand-logo{width:32px;height:32px}.visitor-topbar .brand-logo{width:30px;height:30px}}html:has(.visitor-world){min-height:100%;background:#031b30}body:has(.visitor-world){min-height:100vh;margin:0;background:radial-gradient(ellipse at 50% 0%,#0b5273,#052942 58%,#031b30) fixed}body:has(.visitor-world) #app{min-height:100vh;background:transparent}body:has(.visitor-world) main{padding-bottom:40px}body:has(.visitor-world) .aquarium.has-3d-fish .fish.fish-clickable,body:has(.visitor-world) .aquarium .fish.fish-clickable{pointer-events:auto;cursor:pointer;z-index:5;min-width:90px;min-height:70px}body:has(.visitor-world) .aquarium .fish.fish-clickable:hover span{box-shadow:0 0 0 2px #ffda78,0 4px 16px #001d3a!important}body:has(.visitor-world) .aquarium .fish.fish-clickable:focus-visible{outline:2px solid #ffda78;outline-offset:6px;border-radius:12px}body:has(.visitor-world) .aquarium .fish.fish-clickable span{pointer-events:none}body:has(.visitor-world) .aquarium.has-3d-fish .fish.fish-clickable span{top:64px!important;z-index:6}.monthly-section{margin:28px auto 0;padding:24px;border-radius:22px;background:linear-gradient(145deg,#073553,#09243e);border:1px solid #3a8fae;color:#fff}.monthly-heading h2{margin:0 0 7px;color:#ffdb84}.monthly-heading p{margin:0 0 18px;color:#d1e7f5}.monthly-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));gap:16px}.monthly-card{background:linear-gradient(155deg,#fff8e6,#e9f5ff);border:2px solid #d8b45c;border-radius:17px;padding:20px;color:#203148;box-shadow:0 8px 18px #0002}.monthly-card h3{margin:10px 0;font-size:22px;color:#1b3553}.monthly-status{display:inline-block;border-radius:30px;background:#184c72;color:#fff;font-size:12px;font-weight:700;padding:6px 11px}.monthly-dates{font-size:14px}.monthly-prizes{border-top:1px solid #d4bf91;margin-top:15px;padding-top:9px}.monthly-prizes p{margin:9px 0;overflow-wrap:anywhere}.competition-manager{margin:20px 0}.competition-manager .row{gap:12px;flex-wrap:wrap}.competition-form{display:grid;gap:12px;margin:18px 0;padding:18px;border-radius:16px;background:#edf7ff;color:#1b3553}.competition-form label{display:grid;gap:6px;font-weight:700}.competition-form input{width:100%;box-sizing:border-box;padding:12px;border:1px solid #a2bfd2;border-radius:9px;font:inherit}.competition-dates{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.competition-admin-list{margin-top:15px}.competition-admin-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid #ddd;flex-wrap:wrap}#app:has(.portal-poster)>main{max-width:1024px}.monthly-accordion{margin:12px 2.4% 24px;color:#fff}.monthly-disclosure{border:1px solid #c59a45;border-radius:15px;overflow:hidden;background:linear-gradient(115deg,#073354,#092642);box-shadow:0 5px 20px #00132366}.monthly-disclosure>summary{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:55px;padding:11px 19px;cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.monthly-disclosure>summary::-webkit-details-marker{display:none}.monthly-disclosure>summary:hover{background:#15507577}.monthly-disclosure>summary:focus-visible{outline:3px solid #ffda78;outline-offset:-3px}.monthly-summary-title{color:#ffda80;font-weight:850;font-size:clamp(16px,2vw,21px)}.monthly-summary-hint{color:#d4e9f6;font-size:13px;text-align:right}.monthly-chevron{display:inline-block;margin-left:8px;font-size:21px;transition:transform .2s}.monthly-disclosure[open] .monthly-chevron{transform:rotate(180deg)}.monthly-expanded{padding:3px 17px 18px;border-top:1px solid #29617d}.monthly-expanded .monthly-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));margin-top:15px}.monthly-expanded .monthly-card{padding:16px}.monthly-expanded .monthly-card h3{font-size:19px}.monthly-empty{color:#cbe6f6}@media(max-width:600px){.monthly-accordion{margin:10px 2.4% 22px}.monthly-disclosure>summary{padding:12px}.monthly-summary-hint{font-size:11px}}.portal-poster{overflow:visible!important}.portal-poster>.monthly-accordion{position:absolute;z-index:8;top:95.25%;left:2.4%;right:2.4%;margin:0}.portal-poster>.monthly-accordion .monthly-disclosure>summary{min-height:46px;padding:8px 16px}@media(max-width:700px){.portal-poster .poster-weekly{height:26.5%}.portal-poster>.monthly-accordion{top:93.5%}}.portal-poster>.monthly-accordion{z-index:30}.monthly-disclosure{position:relative;overflow:visible}.monthly-disclosure>summary{position:relative;z-index:2}.monthly-disclosure>.monthly-expanded{position:absolute;bottom:calc(100% + 9px);left:0;right:0;max-height:min(62vh,570px);overflow-y:auto;overscroll-behavior:contain;padding:15px;border:1px solid #c59a45;border-radius:16px;background:linear-gradient(145deg,#062b49,#08243e);box-shadow:0 15px 38px #00101de0;z-index:10}.monthly-disclosure:not([open])>.monthly-expanded{display:none}.monthly-expanded .monthly-grid{margin-top:0}@media(max-width:600px){.monthly-disclosure>.monthly-expanded{max-height:55vh;padding:9px}}body:has(.visitor-world) .visitor-class-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:16px;align-items:stretch}body:has(.visitor-world) .visitor-class-card{min-width:0;min-height:0;aspect-ratio:1/1.03;display:flex;flex-direction:column;border-radius:17px;border:1px solid #2187b9;background:linear-gradient(180deg,#075078,#062b4c);overflow:hidden;text-align:center;box-shadow:0 7px 20px #00172d8c}body:has(.visitor-world) .visitor-class-card:hover{transform:translateY(-5px);border-color:#27d9ff;box-shadow:0 0 0 2px #15c9ed88,0 14px 32px #00172dcc}body:has(.visitor-world) .visitor-card-art{flex:1 1 auto;min-height:0;display:block;position:relative;overflow:hidden;background:#075478}body:has(.visitor-world) .visitor-card-art img{width:100%;height:100%;display:block;object-fit:cover;object-position:center}body:has(.visitor-world) .visitor-card-body{flex:0 0 auto;padding:8px 5px 10px;align-items:center;gap:5px}body:has(.visitor-world) .visitor-card-body strong{font-size:15px;line-height:1.2}body:has(.visitor-world) .visitor-card-body small{display:inline-block;font-size:11px;color:#c8efff;background:#0b648b;border-radius:999px;padding:4px 9px}body:has(.visitor-world) .visitor-card-link{display:none}body:has(.visitor-world) .brand-logo{object-fit:contain;background:#092c42}@media(max-width:560px){body:has(.visitor-world) .visitor-class-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}body:has(.visitor-world) .visitor-class-card{aspect-ratio:1/1.1}}body:has(.visitor-world) .visitor-welcome{isolation:isolate;min-height:345px;padding:55px clamp(24px,5vw,76px) 45px clamp(210px,26vw,320px);background:linear-gradient(90deg,#0019321f,#00203dc4 34%,#001e3ad9 73%,#001d356b),url(/visitor-hero-ocean.webp) center center/cover no-repeat;border:1px solid #25a6e2;box-shadow:inset 0 0 65px #00274788,0 18px 45px #00182b80}body:has(.visitor-world) .visitor-welcome:before{content:"";position:absolute;z-index:-1;pointer-events:none;left:0;top:0;bottom:0;width:32%;background:url(/visitor-hero-king.webp) center center/cover no-repeat;-webkit-mask-image:linear-gradient(90deg,#000 48%,transparent 100%);mask-image:linear-gradient(90deg,#000 48%,transparent 100%)}body:has(.visitor-world) .visitor-welcome:after{content:"🫧  🫧";bottom:12px;right:16px;opacity:.65}body:has(.visitor-world) .visitor-welcome h1{font-size:clamp(28px,3.4vw,43px);text-shadow:0 3px 14px #00172e}body:has(.visitor-world) .visitor-welcome p{color:#eefaff;text-shadow:0 2px 8px #00182e}@media(max-width:700px){body:has(.visitor-world) .visitor-welcome{min-height:350px;padding:170px 18px 28px;background-position:center}body:has(.visitor-world) .visitor-welcome:before{width:100%;height:180px;bottom:auto;top:0;background-size:auto 210px;background-position:left top;-webkit-mask-image:linear-gradient(180deg,#000 50%,transparent 100%);mask-image:linear-gradient(180deg,#000 50%,transparent 100%)}}.class-list .class-admin-item{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:4px;border-radius:12px;background:#083a59}.class-list .class-admin-item button{margin:0}.class-list .class-rename-btn{font-size:12px;padding:8px 10px;background:#e7f3f8;color:#173d52}.coach-aquarium-back{max-width:1100px;margin:0 auto 14px;display:flex;justify-content:flex-start}.coach-aquarium-back button{padding:11px 18px;font-weight:700}.student-add-disclosure{margin-top:20px;border:1px solid #287aa3;border-radius:14px;background:#073352;overflow:hidden}.student-add-disclosure summary{display:flex;justify-content:space-between;align-items:center;cursor:pointer;list-style:none;padding:14px 18px;color:#fff;font-weight:750;background:linear-gradient(90deg,#0c547a,#0a3a60);-webkit-user-select:none;user-select:none}.student-add-disclosure summary::-webkit-details-marker{display:none}.student-add-disclosure summary:hover{background:linear-gradient(90deg,#12688f,#0d4c74)}.student-add-disclosure summary span{font-size:20px;transition:transform .2s}.student-add-disclosure[open] summary span{transform:rotate(180deg)}.student-add-disclosure #addStudent{padding:15px;display:flex;gap:10px;align-items:end;flex-wrap:wrap}.student-add-disclosure .student-name-label{display:flex;flex:1 1 240px;flex-direction:column;gap:6px;color:#d7edfb;font-weight:650}.student-add-disclosure .student-name-label input{width:100%;box-sizing:border-box}.student-add-disclosure #addStudent select{flex:1 1 180px;min-width:160px}@media(max-width:600px){.student-add-disclosure #addStudent{align-items:stretch;flex-direction:column}.student-add-disclosure .student-name-label,.student-add-disclosure #addStudent select{width:100%;flex:auto}}html:has(.aquarium-panel){min-height:100%;background:#031b30}body:has(.aquarium-panel){min-height:100vh;background:radial-gradient(ellipse at 50% 0%,#0b5273,#052942 58%,#031b30) fixed!important}body:has(.aquarium-panel) #app{min-height:100vh;background:transparent}body:has(.aquarium-panel) main{padding-bottom:32px}.aquarium-panel .student-avatar{width:64px;height:58px;flex:0 0 64px;display:flex;align-items:center;justify-content:center;padding:3px;overflow:hidden}.aquarium-panel .student-avatar img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 2px 3px #001d36)}.aquarium-panel .student-avatar{width:74px;height:64px;flex:0 0 74px;display:flex;align-items:center;justify-content:center;padding:2px;overflow:hidden}.aquarium-panel .student-avatar img{width:100%;height:100%;object-fit:contain;display:block}.student-add-disclosure #addStudent .fish-picker{flex:1 0 100%;min-width:0;border:1px solid #267ba5;border-radius:12px;padding:12px;margin:0;color:#e6f5ff}.fish-picker legend{font-weight:750;padding:0 7px}.fish-picker-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.fish-picker-choice{display:block;cursor:pointer;min-width:0}.fish-picker-choice input{position:absolute;opacity:0;width:1px;height:1px}.fish-picker-content{display:flex;align-items:center;flex-direction:column;gap:5px;min-height:113px;padding:9px 5px;background:#073c60;border:2px solid #216c93;border-radius:12px;text-align:center;color:#ecfaff;font-size:12px;font-weight:700;transition:background .15s,border-color .15s}.fish-picker-content img{width:100%;height:73px;max-width:125px;object-fit:contain}.fish-picker-choice:hover .fish-picker-content{background:#0b5279;border-color:#5ccaf6}.fish-picker-choice input:checked+.fish-picker-content{border-color:#ffd05a;background:#15577b;box-shadow:0 0 0 2px #ffd05a66}.fish-picker-choice input:focus-visible+.fish-picker-content{outline:3px solid #fff;outline-offset:3px}@media(max-width:560px){.fish-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.aquarium-panel .students{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(185px,1fr))!important;gap:15px!important;align-items:stretch}.aquarium-panel .student{aspect-ratio:1/1;min-height:215px;display:flex!important;flex-direction:column!important;flex-wrap:nowrap!important;justify-content:space-between!important;align-items:stretch!important;gap:6px!important;padding:12px!important;text-align:center;border-radius:17px!important;background:linear-gradient(160deg,#0c5277,#062b4d)!important;box-shadow:0 7px 20px #00162955}.aquarium-panel .student-avatar{width:100%!important;height:39%!important;min-height:60px;flex:0 1 auto!important;padding:0!important;background:radial-gradient(ellipse at center,#1c7698,#073c60 72%)!important;border:0!important;border-radius:12px!important}.aquarium-panel .student-avatar img{width:100%!important;height:100%!important;object-fit:contain!important}.aquarium-panel .student-summary{width:100%;min-width:0;display:flex;flex-direction:column;gap:3px;align-items:center}.aquarium-panel .student-summary strong{font-size:15px;line-height:1.2}.aquarium-panel .student-summary span{font-size:12px}.aquarium-panel .student-summary small{font-size:11px;color:#a6d7eb}.aquarium-panel .student .feed-track{width:100%;margin-top:4px;height:6px}.aquarium-panel .student .tools{width:100%!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px!important;margin-top:auto;justify-content:stretch!important}.aquarium-panel .student .tools button{min-width:0;padding:8px 3px!important;font-size:11px!important;border-radius:9px;white-space:normal;line-height:1.2}.aquarium-panel .student .tools [data-change-fish]{grid-column:1/-1}.aquarium-panel .aquarium .fish.fish-clickable{cursor:pointer;pointer-events:auto}.aquarium-panel .aquarium .fish.fish-clickable:focus-visible{outline:2px solid #ffdb71;outline-offset:7px;border-radius:10px}.aquarium-panel .aquarium .fish.fish-clickable:hover span{box-shadow:0 0 0 2px #ffdb71,0 3px 12px #001a35}@media(max-width:520px){.aquarium-panel .students{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important}.aquarium-panel .student{min-height:205px;padding:9px!important}.aquarium-panel .student .tools button{font-size:10px!important}}.aquarium-panel .student .feed-track,.aquarium-panel .student .feed-fill{display:none!important}.aquarium-panel .student-summary{gap:5px!important}.aquarium-panel .student-avatar img{object-fit:contain!important}.fish-change-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#001322c9;display:flex;align-items:center;justify-content:center;padding:16px;box-sizing:border-box}.fish-change-dialog{width:min(650px,100%);max-height:calc(100vh - 32px);overflow-y:auto;background:linear-gradient(160deg,#0b4365,#062b49);color:#f3fbff;border:1px solid #3c91bb;border-radius:20px;box-shadow:0 22px 65px #0009;padding:20px;box-sizing:border-box}.fish-change-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.fish-change-heading h3{margin:0;font-size:20px;color:#fff}.fish-change-dialog p{color:#c6e7f6;font-size:13px;margin:8px 0 16px}.fish-change-dialog .fish-picker{border:1px solid #267ba5;border-radius:12px;padding:12px;margin:0;color:#e6f5ff;min-width:0}.fish-change-dialog .fish-picker-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.fish-change-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}@media(max-width:560px){.fish-change-dialog{padding:13px}.fish-change-dialog .fish-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.work-history-profile{margin-top:22px;padding:24px;border:2px solid #d6a840;border-radius:18px;background:linear-gradient(135deg,#fff4d3,#fff,#e3f4ff);color:#1a3049;scroll-margin-top:20px}.work-history-head{display:flex;justify-content:space-between;align-items:start;gap:15px}.work-history-head h2{margin:6px 0}.work-history-head p{margin:0}.work-history-total{text-align:center;white-space:nowrap}.work-history-total strong{display:block;font-size:34px}.work-history-total span{font-size:12px}.work-history-title{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin:15px 0}.work-history-title h3{margin:0}.work-history-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin-bottom:18px}.work-history-column{background:#ffffffc9;border:1px solid #cad9e7;border-radius:14px;padding:15px;min-width:0}.work-history-column h4{margin:0 0 12px;color:#0c4366;font-size:17px}.work-history-item{padding:12px 0;border-top:1px solid #d7e2ea;overflow-wrap:anywhere}.work-history-item strong{display:block}.work-history-item time{display:block;font-size:12px;color:#526176;margin-top:4px}.work-history-item p{margin:6px 0 0;font-size:14px}.work-history-empty{color:#61758a;font-size:14px}.work-history-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.work-history-editor{background:#edf8ff;border:1px solid #aacbdc;border-radius:14px;padding:16px;margin:14px 0}.work-history-editor h4{margin:0 0 12px}.work-history-editor form{display:grid;gap:12px}.work-history-editor label{display:grid;gap:5px;font-weight:650}.work-history-editor input,.work-history-editor select,.work-history-editor textarea{width:100%;box-sizing:border-box;padding:10px;border:1px solid #b1c6d5;border-radius:9px;background:#fff;color:#1a3049}.work-history-editor textarea{min-height:75px}.work-history-hint{font-size:12px;color:#526176}@media(max-width:650px){.work-history-columns{grid-template-columns:1fr}.work-history-profile{padding:15px}}.aquarium-panel .fish.fish-clickable{pointer-events:auto!important;cursor:pointer}.aquarium-panel .fish.fish-clickable span{pointer-events:auto;cursor:pointer}.student .tools .student-delete-button{background:#8e2730;color:#fff;border:1px solid #f49aa0;cursor:pointer}.student .tools .student-delete-button:hover{background:#ad2e39}.aquarium-panel .student{aspect-ratio:1/1!important;min-height:235px!important;padding:9px!important;gap:3px!important;overflow:hidden}.aquarium-panel .student-avatar{height:34%!important;min-height:48px!important}.aquarium-panel .student-summary{gap:1px!important}.aquarium-panel .student-summary strong{font-size:13px!important}.aquarium-panel .student-summary span{font-size:11px!important}.aquarium-panel .student-summary small{font-size:10px!important}.aquarium-panel .student .tools{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:4px!important;margin-top:auto!important;width:100%!important;flex-shrink:0!important}.aquarium-panel .student .tools [data-change-fish]{grid-column:auto!important}.aquarium-panel .student .tools button{width:100%!important;min-width:0!important;padding:6px 2px!important;font-size:10px!important;line-height:1.15!important;min-height:29px!important;border-radius:7px!important;white-space:normal!important}@media(max-width:520px){.aquarium-panel .student{min-height:220px!important;padding:7px!important}.aquarium-panel .student .tools button{font-size:9px!important;padding:5px 1px!important;min-height:28px!important}}.aquarium-panel .students{display:grid!important;grid-template-columns:repeat(auto-fill,210px)!important;gap:16px!important;justify-content:start!important;align-items:start!important}.aquarium-panel .students>.student{box-sizing:border-box!important;width:210px!important;min-width:0!important;max-width:100%!important;height:210px!important;min-height:0!important;aspect-ratio:auto!important;margin:0!important;padding:8px!important;overflow:hidden!important}.aquarium-panel .student-avatar{height:72px!important;min-height:0!important;flex:0 0 72px!important}.aquarium-panel .student-summary{flex:0 0 auto!important;min-height:0!important}.aquarium-panel .student .tools{flex:0 0 auto!important;gap:5px!important}.aquarium-panel .student .tools button{min-height:27px!important;padding:5px 2px!important;font-size:10px!important}@media(max-width:470px){.aquarium-panel .students{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}.aquarium-panel .students>.student{width:100%!important;height:auto!important;min-height:210px!important;aspect-ratio:auto!important}.aquarium-panel .student .tools button{font-size:9px!important}}.aquarium.has-3d-fish .fish.fish-clickable{width:90px;height:70px;min-width:0;min-height:0;display:block;box-sizing:border-box}.aquarium.has-3d-fish .fish.fish-clickable span,body:has(.visitor-world) .aquarium.has-3d-fish .fish.fish-clickable span{position:absolute!important;top:calc(50% + var(--fish-label-offset, 42px))!important;left:50%!important;transform:translate(-50%)!important;margin:0!important;white-space:nowrap}@media(max-width:650px){.aquarium.has-3d-fish .fish.fish-clickable{width:74px;height:60px}.aquarium.has-3d-fish .fish.fish-clickable span{font-size:10px!important;padding:3px 7px!important}}.aquarium .fish-follow-label,body:has(.visitor-world) .aquarium .fish-follow-label,.aquarium.has-3d-fish .fish-follow-label{position:absolute!important;left:0!important;top:0!important;right:auto!important;bottom:auto!important;margin:0!important;z-index:7!important;pointer-events:none!important;white-space:nowrap!important;transition:none!important;animation:none!important;will-change:transform;background:#e4f9ffed!important;color:#083252!important;font-weight:700;border-radius:20px;padding:5px 11px;font-size:12px;box-shadow:0 3px 12px #002d4977}@media(max-width:650px){.aquarium .fish-follow-label{font-size:10px!important;padding:3px 7px!important}}.aquarium .fish-follow-label{transition-property:none!important;animation:none!important;transform-origin:0 0!important}html,body,#app{max-width:100%}body:has(.visitor-world),body:has(.aquarium-panel){overflow-x:clip}body:has(.visitor-world) main,body:has(.aquarium-panel) main{width:100%;min-width:0;box-sizing:border-box}.aquarium-panel,.visitor-world,.aquarium-heading{min-width:0;max-width:100%;box-sizing:border-box}.aquarium-panel .aquarium{width:100%;max-width:100%;min-width:0;box-sizing:border-box;overflow:hidden;contain:layout paint}.aquarium.has-3d-fish .fish-follow-label,body:has(.visitor-world) .aquarium.has-3d-fish .fish-follow-label{position:absolute!important;right:auto!important;bottom:auto!important;margin:0!important;transition:none!important;animation:none!important;transform:translate(-50%)!important;transform-origin:50% 0!important;pointer-events:none!important;max-width:min(180px,60vw);overflow:hidden;text-overflow:ellipsis}@media(max-width:650px){body:has(.visitor-world) main,body:has(.aquarium-panel) main{padding-left:8px!important;padding-right:8px!important;margin-left:0!important;margin-right:0!important}.aquarium-panel{padding:0!important;margin:8px 0!important;width:100%!important}.aquarium-heading{padding:12px 10px!important;gap:6px!important}.aquarium-heading h2{font-size:clamp(17px,5vw,22px)!important}.aquarium-tag{padding:5px 7px!important;font-size:10px!important}.aquarium-panel .aquarium{height:clamp(260px,75vw,390px)!important;border-width:3px!important}.aquarium.has-3d-fish .fish-follow-label{font-size:10px!important;padding:3px 6px!important}}.aquarium.has-3d-fish .fish.fish-clickable{position:absolute!important;overflow:visible!important;transition:none!important;animation:none!important;transform-origin:50% 50%!important}.aquarium.has-3d-fish .fish.fish-clickable>.fish-attached-label,body:has(.visitor-world) .aquarium.has-3d-fish .fish.fish-clickable>.fish-attached-label{position:absolute!important;left:50%!important;top:calc(50% + var(--fish-attached-offset, 35px))!important;right:auto!important;bottom:auto!important;transform:translate(-50%)!important;transition:none!important;animation:none!important;margin:0!important;z-index:9!important;display:block!important;width:max-content!important;max-width:min(180px,60vw)!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap!important;pointer-events:none!important;background:#e4f9ffed!important;color:#083252!important;border-radius:20px;padding:4px 8px;font-size:11px}.aquarium.has-3d-fish .fish.fish-clickable>span.fish-attached-label{display:none!important}@media(max-width:650px){body:has(.visitor-world) .aquarium-panel .aquarium,body:has(.aquarium-panel) .aquarium-panel .aquarium{width:100%!important;max-width:100%!important;height:clamp(215px,60vw,310px)!important;background-size:100% 100%!important;background-position:center center!important;overflow:hidden!important}.aquarium-panel{max-width:100vw!important;overflow:hidden}.aquarium-panel .fish-3d-layer{width:100%!important;height:100%!important}}
