:root{--bg:#071b24;--bg2:#0d2a32;--fg:#f0efdd;--muted:#a4bdbd;--acc:#a2e5bc;--gold:#f5cd86;--coral:#f6a38d;--line:#9fcdbb29;--panel:#102e36;--cyan:#6ee7ff;--violet:#a78bfa;--rose:#ff8fb0;--green:#7dffb0;--maxw:1320px;color-scheme:dark;font:16px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 80% 10%,#183c3b99,transparent 45%),var(--bg);color:var(--fg)}button,input,select,textarea{font:inherit}button,a,input,select{touch-action:manipulation}button{min-height:44px;border:1px solid var(--line);border-radius:12px;padding:10px 17px;background:#18363e;color:var(--fg);cursor:pointer;transition:background .15s,transform .15s}button:hover{background:#254a4d}button:active{transform:translateY(1px)}button:disabled{opacity:.48;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,canvas:focus-visible{outline:3px solid var(--gold);outline-offset:4px}a{color:var(--acc)}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Georgia,'Times New Roman',serif;font-weight:400;line-height:1.12}h1{font-size:clamp(42px,5vw,72px);letter-spacing:-.045em}h1 em{color:var(--acc);font-weight:400}h2{font-size:30px}h3{font-size:25px}[hidden]{display:none!important}.topbar{max-width:1440px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:18px;height:100px;padding:16px 44px;border-bottom:1px solid var(--line)}.wordmark{display:flex;align-items:center;gap:12px;border:0;background:none;padding:0;text-align:left;font-weight:500;letter-spacing:.13em;font-size:20px;white-space:nowrap}.wordmark b{font-weight:750}.wordmark small{display:block;font-size:8px;letter-spacing:.22em;color:var(--muted);margin-top:4px}.wordmark svg{width:46px;height:44px;fill:none;stroke:var(--acc);stroke-width:1.5}.wordmark svg circle{fill:var(--acc)}nav{display:flex;align-items:center;gap:12px}.quiet{background:transparent;border-color:var(--line)}.text-button{background:none;border:0;color:var(--muted)}.icon-button{width:44px;padding:8px;font-size:22px}.star-count{color:var(--gold);padding:0 12px;white-space:nowrap}.primary{background:var(--acc);color:#10332c;border-color:var(--acc);font-weight:700}.primary:hover{background:#c3f4cb}.primary span{padding-left:18px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:.16em;color:var(--acc);line-height:1.5}.eyebrow i,.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--acc);margin-right:9px}.home-intro{display:grid;grid-template-columns:1.45fr 1fr;gap:60px;padding:56px 0 42px;align-items:center}.home-intro .eyebrow{margin-bottom:23px}.lead{color:var(--muted);font-size:17px;margin-top:22px;line-height:1.65}.hero-actions{display:flex;gap:10px;margin-top:27px}.hero-note{font-size:11px;color:var(--muted);margin-top:18px}.hero-note span{margin:0 9px;color:var(--acc)}main{max-width:var(--maxw);margin:auto;padding:0 44px}.hero-caption{position:relative;padding:32px 0 24px 50px;border-left:1px solid var(--line)}.specimen-tag{display:block;color:var(--coral);font-size:10px;letter-spacing:.16em;margin-bottom:16px}.hero-caption h2{font-size:36px;color:#e6e4cf}.hero-caption>p{margin-top:17px;color:var(--muted);font-size:13px;line-height:1.7}.mentor-avatar{float:left;margin:24px 14px 0 0;border:1px solid var(--acc);border-radius:50%;width:43px;height:43px;text-align:center;font-size:30px;color:var(--acc);background:#244740}.mentor-sign{padding-top:8px}.mentor-sign span{display:block;font-size:10px}.workspace-title{display:flex;justify-content:space-between;align-items:center;margin:10px 0 18px;gap:10px}.workspace-title h2{font-size:30px;margin-top:5px}.workspace-actions{display:flex;gap:8px}.reef-stage{position:relative;height:410px;border-radius:24px 24px 0 0;overflow:hidden;border:1px solid #78a99744;background:#092e37}#reef{width:100%;height:100%;display:block;touch-action:none}.stage-hud{position:absolute;top:19px;left:23px;right:23px;display:flex;justify-content:space-between;gap:12px;pointer-events:none;font-size:11px;color:#d1e7d9;text-shadow:0 1px 4px #001b25}.stage-hud b{font-size:9px;letter-spacing:.17em}.habitat-label{position:absolute;bottom:24px;left:23px;font-size:9px;letter-spacing:.15em;color:#bddbcb;pointer-events:none}.zoom-controls{position:absolute;right:16px;top:55px;display:flex;flex-direction:column;gap:6px}.zoom-controls button{padding:0;width:44px;background:#09262dda;backdrop-filter:blur(8px);font-size:21px}.canvas-hint{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);color:#d5e5d1aa;font-size:10px;white-space:nowrap;pointer-events:none}.stage-pause{position:absolute;right:16px;bottom:12px;background:#09262dda;padding:0;width:44px}.graph-strip{display:grid;grid-template-columns:175px 1fr 148px;align-items:center;gap:22px;border:1px solid var(--line);border-top:0;background:#102a32;border-radius:0 0 18px 18px;padding:15px 23px;height:116px}.graph-label select{display:block;width:160px;background:none;border:0;color:var(--fg);font-size:13px;min-height:44px;padding:0}.legend{display:flex;align-items:center;gap:7px;font-size:9px;color:var(--muted)}.legend i{width:14px;height:2px;background:var(--acc)}.legend .total{background:#7596a2}.graph-strip canvas{width:100%;height:85px}.graph-summary{font-size:11px;color:var(--muted)}.mission-card{display:flex;flex-direction:column;gap:10px;position:relative;background:#15343c;border:1px solid var(--line);border-radius:18px;padding:23px 26px;margin-top:16px}.mission-card h2{font-size:26px}.mission-card p{max-width:900px;color:#c5d5cf;font-size:14px}.mission-card .eyebrow{color:var(--acc);font-size:10px}.mission-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.arc-pips{display:flex;gap:6px;color:#68877b;font-size:17px}.arc-pips .earned{color:var(--gold)}.arc-pips .current{color:var(--acc)}.choices,.action-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.choices button{flex:1;min-width:90px}.choices button.selected{background:#325a4c;border-color:var(--acc)}.action-row .primary{min-width:150px}.evidence{display:flex;gap:13px;align-items:center;color:var(--gold);font-size:13px}.evidence strong{font-size:23px;font-weight:600}.lesson-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:12px}.lesson-tools label{display:flex;gap:8px;align-items:center}.lesson-tools select{max-width:170px;min-height:44px;background:#0c252c;border:1px solid var(--line);border-radius:9px;padding:8px;color:var(--fg)}.punnett{display:grid;grid-template-columns:25px repeat(2,43px);gap:3px;align-items:center;text-align:center;font-family:ui-monospace,monospace}.punnett>span{padding:2px;background:#254a45;border-radius:4px}.punnett .axis{background:none;color:var(--gold)}.gene-lab{display:flex;gap:25px;align-items:center}.gene-note{font-size:12px;color:var(--muted);max-width:350px}.mutation-pair{font-family:ui-monospace,monospace;font-size:22px;color:var(--gold)}.feedback{border-left:3px solid var(--gold);padding-left:12px}.progress-bar{height:5px;border-radius:8px;background:#203f43;overflow:hidden}.progress-bar i{display:block;height:100%;background:var(--acc);transition:width .15s}.station-section{padding:44px 0}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:22px}.section-heading h2{margin-top:8px;font-size:32px}.section-heading>p{font-size:11px;color:var(--muted)}.station-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.station{position:relative;text-align:left;padding:22px;background:#102b33;min-height:164px;overflow:hidden;border-radius:15px}.station:hover{border-color:#8bd8b580}.station-top{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:10px}.station-icon{font-size:30px;color:var(--acc);line-height:1}.station h3{margin-top:17px;font-size:23px}.station p{color:var(--muted);font-size:10px;margin-top:6px}.station-stars{display:block;color:var(--gold);font-size:15px;letter-spacing:4px;margin-top:13px}.station.locked{background:#0b242c}.station.locked .station-icon{color:#71938a}.station.locked h3{color:#b9c6bc}.station.locked .station-stars{font-size:10px;letter-spacing:0;color:var(--muted)}footer{display:flex;justify-content:space-between;align-items:center;gap:16px;border-top:1px solid var(--line);font-size:11px;padding:20px 0 75px}footer span{color:var(--muted)}.overlay{padding:20px;padding-top:max(20px,env(safe-area-inset-top));padding-bottom:max(20px,env(safe-area-inset-bottom));position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;border:0;background:#04181bba;color:var(--fg);margin:0;z-index:5000;overflow-y:auto}.overlay[open]{display:flex;justify-content:safe center;align-items:safe center}.overlay::backdrop{background:transparent}.sheet{position:relative;background:#102e36;border:1px solid #8bd8b544;border-radius:24px;width:min(620px,100%);padding:32px;box-shadow:0 30px 100px #0008}.sheet h2{padding-right:34px;margin:8px 0 16px}.sheet p{font-size:14px;color:#bed3cd;margin:12px 0}.sheet .eyebrow{color:var(--acc);font-size:10px}.sheet-close{position:absolute;right:15px;top:15px;border-radius:50%;padding:0;font-size:25px;width:44px;background:transparent}.sheet button{margin-top:4px}.band-choice{display:block;width:100%;text-align:left;margin:9px 0}.band-choice strong{display:block}.band-choice span{font-size:12px;color:var(--muted)}.setting-row{margin:18px 0}.setting-row label{display:flex;justify-content:space-between;font-size:13px}.setting-row input{width:100%;accent-color:var(--acc);min-height:38px}.endpoint-labels{display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}.background-choices{display:flex;gap:7px}.background-choices button{flex:1}.background-choices .selected{border-color:var(--gold);color:var(--gold)}.trait-table{width:100%;border-collapse:collapse;font-size:12px}.trait-table td,.trait-table th{padding:9px 5px;border-bottom:1px solid var(--line);text-align:left}.trait-table th{color:var(--muted);font-weight:400}.trait-table td:last-child{color:var(--acc)}.sheet textarea{width:100%;height:160px;background:#071d24;color:var(--fg);border:1px solid var(--line);border-radius:10px;padding:12px}.sheet input[type=text]{width:100%;min-height:46px;background:#071d24;color:var(--fg);border:1px solid var(--line);border-radius:10px;padding:10px}.report-table{width:100%;font-size:12px;border-collapse:collapse}.report-table td{padding:8px 2px;border-bottom:1px solid var(--line)}.report-table td:last-child{color:var(--gold)}details{margin:15px 0;font-size:13px}summary{cursor:pointer;min-height:44px;padding-top:12px;color:var(--acc)}.notice{background:#59482b;color:#fff1d0;padding:10px;font-size:12px}.toast{position:fixed;bottom:max(65px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);max-width:90vw;width:max-content;padding:13px 22px;border-radius:14px;background:#d0eacb;color:#123c31;box-shadow:0 4px 30px #0019;z-index:6000;font-size:13px}.empty-reef{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;flex-direction:column;gap:10px;background:#041f2655;font-size:13px}.empty-reef strong{font-family:Georgia,serif;font-size:29px}.star-celebration{position:fixed;left:50%;top:40%;transform:translate(-50%,-50%);font-size:170px;color:var(--gold);text-shadow:0 0 60px #ffd97a55;z-index:7000;pointer-events:none;animation:star-rise .8s ease-out both}.no-script{position:fixed;inset:20%;background:var(--panel);padding:40px}.sr-only{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}.admin-dock{position:fixed;right:10px;top:70px;width:310px;max-height:calc(100dvh - 145px);overflow:auto;z-index:4000;background:#0d242af5;border:1px solid var(--gold);border-radius:15px;padding:15px;font-size:12px}.admin-dock button,.admin-dock input,.admin-dock select{min-height:44px;max-width:100%;font-size:12px}.admin-dock pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:10px}.admin-tab{position:fixed;right:10px;top:70px;z-index:4000;color:var(--gold)}
body.lesson{height:100dvh;overflow:hidden}body.lesson .topbar{height:76px}body.lesson main{height:calc(100dvh - 76px);padding-bottom:66px;display:flex;flex-direction:column}body.lesson .home-intro,body.lesson .station-section,body.lesson footer{display:none}body.lesson .reef-workspace{flex:1;min-height:0;display:grid;grid-template-rows:58px minmax(140px,1fr) 87px auto;gap:0}body.lesson .workspace-title{margin:3px 0 10px}body.lesson .workspace-title h2{font-size:25px}body.lesson .reef-stage{height:auto;min-height:0}body.lesson .graph-strip{height:87px;padding:5px 20px}body.lesson .graph-strip canvas{height:68px}body.lesson .mission-card{margin-top:10px;padding:15px 22px;gap:8px}body.lesson .mission-card h2{font-size:23px}body.lesson .mission-card p{font-size:13px}body.lesson .canvas-hint{bottom:16px}body.lesson .habitat-label{bottom:16px}.evidence-note{font-size:11px;color:var(--muted)}.badge-line{color:var(--gold);font-size:12px}
@keyframes star-rise{0%{opacity:0;transform:translate(-50%,-35%) scale(.3)}35%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-75%) scale(.8)}}
@media(min-width:1400px){.home-intro{padding-top:70px}.reef-stage{height:460px}}
@media(max-width:1050px){main{padding:0 28px}.topbar{padding:15px 28px}.home-intro{gap:35px}.hero-caption{padding-left:32px}.hero-caption h2{font-size:30px}.station-grid{gap:10px}.station{padding:16px}.station h3{font-size:20px}.canvas-hint{display:none}}
@media(max-width:780px){.topbar{height:84px;padding:12px 22px;gap:10px}nav{gap:6px}.wordmark{font-size:16px;gap:8px}.wordmark svg{width:35px}.wordmark small{font-size:6px}nav button{font-size:12px;padding:8px 11px}.star-count{font-size:13px;padding:0 4px}.home-intro{grid-template-columns:1.4fr 1fr;padding:35px 0;gap:25px}.hero-caption{padding-left:25px}.hero-caption h2{font-size:28px}.hero-caption>p{font-size:12px}.lead{font-size:14px}.hero-note{font-size:9px}.hero-note span{margin:0 4px}.hero-actions{flex-wrap:wrap}.station-grid{grid-template-columns:repeat(2,1fr)}.graph-strip{grid-template-columns:135px 1fr;gap:15px}.graph-label select{width:130px}.graph-summary{display:none}.section-heading>p{max-width:150px;text-align:right}body.lesson .topbar{height:76px}body.lesson .reef-workspace{grid-template-rows:64px minmax(160px,1fr) 90px auto}body.lesson .mission-card{padding:18px;gap:10px}body.lesson .mission-card h2{font-size:26px}body.lesson .mission-card p{font-size:14px}.workspace-title h2{font-size:27px}}
@media(max-width:560px){main{padding:0 15px}.topbar{padding:10px 15px;height:76px}.wordmark{font-size:14px}.wordmark small{display:none}.wordmark svg{width:28px}#parentsButton{display:none}.star-count{font-size:12px}#bandButton{max-width:112px;font-size:11px;padding:8px}.home-intro{display:block;padding:32px 3px}.home-intro h1{font-size:48px}.hero-caption{display:none}.lead{font-size:15px}.home-intro .eyebrow{font-size:8px}.hero-note{font-size:10px}.workspace-title{align-items:end}.workspace-title h2{font-size:27px}.workspace-title .eyebrow{font-size:8px}.workspace-actions button{padding:8px 10px;font-size:11px}.reef-stage{height:330px;border-radius:18px 18px 0 0}.stage-hud{left:14px;right:14px;top:15px;font-size:9px}.stage-hud b{font-size:8px}.zoom-controls{right:10px;top:45px}.habitat-label{left:15px;font-size:8px}.graph-strip{height:106px;padding:10px 14px;grid-template-columns:102px 1fr;gap:10px}.graph-label select{width:102px;font-size:11px}.legend{font-size:8px;gap:4px}.mission-card{padding:18px}.mission-card h2{font-size:24px}.mission-card p{font-size:13px}.section-heading{align-items:start}.section-heading h2{font-size:27px}.section-heading>p{font-size:10px;max-width:90px}.station-section{padding-top:32px}.station{padding:15px;min-height:157px}.station h3{font-size:22px}.station p{font-size:10px}.station-stars{letter-spacing:2px}footer{flex-wrap:wrap;gap:6px;padding-bottom:80px}footer>span{display:none}.sheet{padding:26px 22px;border-radius:18px}.sheet h2{font-size:27px}.trait-table{font-size:11px}.sheet .setting-row{margin:12px 0}body.lesson .topbar{height:66px}body.lesson main{height:calc(100dvh - 66px);padding-bottom:64px}body.lesson .reef-workspace{grid-template-rows:58px minmax(120px,1fr) 73px auto}body.lesson .workspace-title h2{font-size:22px}body.lesson .workspace-title .eyebrow{font-size:8px}body.lesson .graph-strip{height:73px;padding:3px 12px}body.lesson .graph-strip canvas{height:63px}body.lesson .mission-card{padding:13px 15px;gap:7px;margin-top:8px}body.lesson .mission-card h2{font-size:20px}body.lesson .mission-card p{font-size:12px;line-height:1.4}body.lesson .mission-card .eyebrow{font-size:8px}.choices button{font-size:12px;padding:9px 7px;min-width:70px}.gene-lab{gap:10px}.gene-note{font-size:10px}.punnett{grid-template-columns:17px repeat(2,30px);font-size:11px}.lesson-tools{gap:6px;font-size:11px}.lesson-tools select{max-width:120px;font-size:11px}.evidence strong{font-size:20px}.evidence{font-size:11px;gap:8px}.arc-pips{font-size:13px}.action-row button{font-size:12px}.mission-top{gap:4px}.graph-label .eyebrow{font-size:8px}}
@media(max-height:800px) and (min-width:800px){body.lesson .topbar{height:64px}body.lesson main{height:calc(100dvh - 64px)}body.lesson .reef-workspace{grid-template-rows:50px minmax(130px,1fr) 72px auto}body.lesson .graph-strip{height:72px}body.lesson .graph-strip canvas{height:60px}body.lesson .mission-card{padding:11px 20px;gap:6px}body.lesson .mission-card h2{font-size:22px}body.lesson .mission-card p{font-size:12px}.gene-lab{gap:18px}.punnett{grid-template-columns:20px repeat(2,30px);font-size:12px}.lesson-tools select{font-size:11px}.gene-note{font-size:11px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}html[data-motion=off] *,html[data-motion=off] *::before,html[data-motion=off] *::after{animation:none!important;transition:none!important}
.mission-audio{display:flex;align-items:center;gap:12px}.prompt-audio{min-width:44px;min-height:44px;padding:0;background:transparent;font-size:20px;margin:-10px 0}.action-row .evidence-note{flex:1;min-width:120px}
@media(max-width:420px){.wordmark{font-size:12px;letter-spacing:.08em;gap:6px}.wordmark svg{width:24px}.topbar{gap:7px}.topbar nav{gap:4px}.star-count{font-size:11px;padding:0 2px}#bandButton{max-width:100px;padding:7px;font-size:10px}.icon-button{flex:0 0 44px}}
/* M1.1: transient messages never take the next tap or cover lesson controls. */
.toast{pointer-events:none}
/* Lesson feedback stays inside the reef, clear of answers and the shared site tray. */
body.lesson .toast{position:absolute;top:64px;bottom:auto;max-width:calc(100vw - 32px);padding:6px 12px;font-size:11px;line-height:1.3;box-shadow:none}
body.lesson main{padding-bottom:max(66px,calc(env(safe-area-inset-bottom) + 52px))}
body.lesson .zoom-controls{top:auto;bottom:12px;right:68px;flex-direction:row;gap:5px}
body.lesson .stage-pause{right:16px}
body.lesson .habitat-label{bottom:auto;top:39px}
body.lesson .canvas-hint{display:none}
body.lesson .mission-card{min-width:0}
body.lesson .mission-top{min-height:44px}
.prompt-audio{margin:0}
.choices button.selected{box-shadow:inset 0 -3px 0 var(--acc)}
.choices button.selected::before{content:'✓ ';color:var(--acc)}
button.speaking{color:var(--gold);border-color:var(--gold)}
.setting-row input{min-height:44px}
.feedback{color:#ffe2a5!important;background:#f5cd860a;border-radius:3px}
.empty-reef{pointer-events:none;text-align:center;padding:42px 12px 58px;background:#041f2699}
.empty-reef button{pointer-events:auto}
body.lesson .empty-reef{padding:30px 180px 4px 12px;gap:4px;align-items:flex-start;text-align:left}
body.lesson .empty-reef strong{font-size:18px}
body.lesson .empty-reef span{font-size:11px;line-height:1.3}
body.lesson .empty-reef button{font-size:11px;padding:6px 9px}
@media(max-width:780px){
 body.lesson .mission-card{padding:12px 16px;gap:6px}
 body.lesson .mission-card h2{font-size:23px}
 body.lesson .mission-card p{font-size:13px;line-height:1.4}
}
@media(max-width:560px){
 .home-intro{padding:22px 3px}
 .home-intro h1{font-size:42px}
 .home-intro .eyebrow{margin-bottom:14px}
 .lead{margin-top:14px}
 .hero-actions{margin-top:18px}
 body.lesson .mission-card{padding:10px 14px;gap:6px}
 body.lesson .mission-card h2{font-size:20px}
 body.lesson .mission-card p{font-size:12px}
 body.lesson .workspace-title h2{font-size:20px}
 body.lesson .empty-reef strong{font-size:15px}
}
@media(max-width:420px){
 body.lesson .reef-workspace{grid-template-rows:58px minmax(140px,1fr) 73px auto}
 body.lesson .mission-card .choices{gap:5px}
 body.lesson .mission-card .choices button{min-width:52px;padding:7px 4px;font-size:11px}
 body.lesson .empty-reef{padding-right:165px}
}
.sheet a,footer a{display:inline-flex;align-items:center;min-height:44px;min-width:44px}
/* Site integration: visible tray controls match this world's 44px touch targets.
   The lesson reserves 64px beneath its actions; keep shared tray positioning intact. */
#aeTray>a,#aeTray>button,#aeTray>[role=button]{min-width:44px!important;min-height:44px!important}
#aeTray>a::after,#aeTray>button::after,#aeTray>[role=button]::after{top:0!important;bottom:0!important}
