:root{
  --night:#041923;--navy:#082b3e;--deep:#0c3b53;--water:#17627a;--teal:#4daea5;
  --sand:#d6bd7a;--foam:#f2f7f8;--mist:#b9cbd2;--line:rgba(214,189,122,.18);
  --header-h:54px;--footer-h:28px
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:"Avenir Next",Avenir,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--foam);background:linear-gradient(#17627a,#082b3e 45%,#041923);-webkit-text-size-adjust:100%}
body{overflow-x:hidden}
button,select{font:inherit}button{cursor:pointer}img{display:block;max-width:100%}.hidden{display:none!important}
.water-bubbles,.ambient-fish-layer{position:fixed;inset:0;pointer-events:none;overflow:hidden}
.water-bubbles{z-index:0}.ambient-fish-layer{z-index:1;contain:strict;isolation:isolate}
.bubble{position:absolute;bottom:-40px;border-radius:50%;background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.48),rgba(130,225,255,.12) 55%,transparent 72%);animation:bubble 16s linear infinite}
@keyframes bubble{0%{transform:translateY(0);opacity:0}12%{opacity:.38}100%{transform:translateY(-110vh) translateX(var(--drift));opacity:0}}
.ambient-fish{position:absolute;left:0;top:0;opacity:.24;will-change:transform;animation-duration:var(--dur);animation-timing-function:linear;animation-fill-mode:both;pointer-events:none}
.ambient-fish.swim-right{animation-name:swimRight}
.ambient-fish.swim-left{animation-name:swimLeft}
.ambient-fish img{width:100%;height:auto;display:block;filter:drop-shadow(0 8px 14px rgba(0,0,0,.18));transform-origin:50% 50%;--fish-flip:1;animation:fishBreath 3.8s ease-in-out infinite}
@keyframes swimRight{from{transform:translate3d(-22vw,var(--y0),0)}to{transform:translate3d(122vw,var(--y1),0)}}
@keyframes swimLeft{from{transform:translate3d(122vw,var(--y0),0)}to{transform:translate3d(-22vw,var(--y1),0)}}
@keyframes fishBreath{0%,100%{transform:scaleX(var(--fish-flip)) scaleY(1)}50%{transform:scaleX(var(--fish-flip)) scaleY(.985)}}
.app-header{position:sticky;top:0;z-index:20;height:var(--header-h);display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;padding:7px 12px;background:rgba(4,23,34,.9);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}
.header-title{display:grid;place-items:center;font-weight:900;letter-spacing:-.02em}
.header-btn,.tool-btn,.primary-btn,.secondary-btn,.tray-toggle{border:1px solid var(--line);border-radius:10px;color:var(--foam);background:linear-gradient(rgba(15,65,86,.9),rgba(6,39,55,.95));font-weight:750}
.header-btn{padding:6px 12px}
.game-name-brand{font-family:"Avenir Next Condensed","Arial Narrow","Trebuchet MS",sans-serif}
.app-shell{position:relative;z-index:3;padding-bottom:42px;min-height:calc(100svh - var(--header-h))}
.screen{display:none;padding:22px}.screen.active{display:block}
.panel{max-width:1320px;margin:auto;padding:24px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(rgba(6,35,49,.86),rgba(4,24,35,.94));box-shadow:0 18px 38px rgba(0,0,0,.15)}
.home-shell{min-height:calc(100svh - 96px);display:grid;place-items:center;padding:18px}
.home-main{width:min(1080px,100%);display:grid;grid-template-columns:minmax(300px,500px) minmax(300px,430px);gap:clamp(28px,6vw,70px);align-items:center}
.home-art-wrap{display:grid;place-items:center}.home-logo{width:100%;max-height:540px;object-fit:contain;filter:drop-shadow(0 22px 30px rgba(0,0,0,.22))}
.home-kicker{color:var(--sand);font-size:.76rem;font-weight:850;letter-spacing:.16em;text-transform:uppercase}
.home-title{font-size:clamp(3rem,6vw,5rem);line-height:.94;margin:8px 0}.home-tagline{color:var(--mist);font-size:1.08rem;margin:0 0 24px}
.home-actions{display:grid;gap:10px}.home-action{position:relative;text-align:left;min-height:62px;padding:12px 44px 12px 16px;border:1px solid var(--line);border-radius:12px;color:var(--foam);background:linear-gradient(rgba(7,38,52,.82),rgba(4,27,39,.9));box-shadow:inset 3px 0 0 var(--sand)}
.home-action:after{content:"›";position:absolute;right:16px;top:50%;transform:translateY(-50%);font-size:1.7rem;color:var(--sand)}.home-action strong,.home-action span{display:block}.home-action span{font-size:.8rem;color:var(--mist);margin-top:2px}
.screen-heading,.button-row,.complete-grid,.play-toolbar,.tray-header{display:flex}.screen-heading{align-items:center;justify-content:space-between;gap:18px}.screen-heading h2{margin:0}.screen-heading p{color:var(--mist)}
.difficulty-strip,.fish-select-grid,.caught-grid{display:grid;gap:16px}.difficulty-strip{grid-template-columns:repeat(4,minmax(120px,1fr));margin:18px 0 24px}
.difficulty-choice{padding:14px;border:1px solid var(--line);border-radius:12px;color:var(--foam);background:rgba(4,29,42,.75);font-weight:800}.difficulty-choice.selected{color:#10252d;background:linear-gradient(#e2cc8e,#cbb16a)}.difficulty-choice strong,.difficulty-choice span{display:block}.difficulty-choice strong{font-size:1.2rem}.difficulty-choice span{font-size:.86rem}
.fish-select-grid,.caught-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.fish-select-card,.caught-card{padding:0;text-align:left;overflow:hidden;border:1px solid var(--line);border-radius:14px;color:var(--foam);background:rgba(4,26,38,.88);box-shadow:0 10px 22px rgba(0,0,0,.12)}
.fish-select-card img,.caught-card img{width:100%;aspect-ratio:4/3;object-fit:cover;background:#0a3245}.fish-card-body,.caught-card-body{padding:12px 14px}.fish-card-body strong,.caught-card-body strong{display:block}.fish-card-body span,.caught-card-body span{display:block;margin-top:4px;color:var(--mist);font-size:.88rem}
.button-row{gap:12px;flex-wrap:wrap;margin-top:22px}.primary-btn,.secondary-btn{padding:11px 16px}.primary-btn{color:#122830;background:linear-gradient(#e2cc8e,#cbb16a)}
.how-panel{max-width:920px}.eyebrow{color:var(--sand);text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;font-weight:800}.how-steps{padding-left:1.35rem;display:grid;gap:15px;line-height:1.45;color:var(--mist)}.how-steps strong{color:var(--foam)}
.puzzle-screen{padding:0;height:calc(100svh - var(--header-h) - var(--footer-h));overflow:hidden}
.play-shell{height:100%;display:grid;grid-template-rows:auto minmax(320px,1fr) auto;overflow:hidden}
.play-toolbar{z-index:8;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;background:rgba(4,24,35,.95);border-bottom:1px solid var(--line)}
.play-status{display:flex;flex-direction:column;min-width:170px}.play-status span{color:var(--mist);font-size:.84rem}.play-toolbar-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.tool-btn{padding:9px 12px}.edge-tool{color:#172a2d;background:linear-gradient(#e0c989,#c7aa62)}.scatter-tool{color:#092e37;background:linear-gradient(#72cabb,#4dad9f)}
.piece-count{padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:rgba(15,65,86,.75);font-weight:800;white-space:nowrap}
.play-table{position:relative;margin:8px 14px 6px;min-height:320px;overflow:hidden;touch-action:none;user-select:none;contain:layout paint;background:radial-gradient(90% 70% at 50% 8%,rgba(255,255,255,.05),transparent 48%),linear-gradient(rgba(10,45,94,.5),rgba(2,17,49,.72));border:1px solid rgba(255,255,255,.08);border-radius:12px}
.board-shell{position:absolute;overflow:visible;border:2px solid rgba(231,242,252,.62);background:rgba(4,25,48,.55)}.board-preview,.board-preview img,.board-cutlines,.pieces-layer{position:absolute;inset:0}.board-preview{opacity:0}.board-shell.show-preview .board-preview{opacity:.34}.board-preview img{width:100%;height:100%;object-fit:cover}.board-cutlines{width:100%;height:100%;overflow:visible;pointer-events:none;z-index:4}.pieces-layer{pointer-events:none;z-index:8}
.piece{position:absolute;pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;will-change:transform;filter:drop-shadow(0 7px 12px rgba(0,0,0,.24));cursor:grab}.piece.dragging{cursor:grabbing;z-index:999!important}.piece.locked{cursor:default;filter:none}.piece svg,.tray-piece svg{display:block;overflow:visible}.piece-hit{fill:transparent;pointer-events:all}
.tray-bar{z-index:8;min-height:106px;max-height:160px;margin:0 12px 6px;padding:8px 12px;border:1px solid var(--line);border-radius:12px;background:rgba(4,23,34,.97);overflow:hidden}.tray-bar.collapsed{min-height:46px}.tray-bar.collapsed .tray-pieces{display:none}
.tray-header{align-items:center;justify-content:space-between;gap:12px}.tray-title{display:flex;gap:8px;align-items:baseline}.tray-title span{color:var(--mist);font-size:.84rem}.tray-options{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.tray-options select{border:1px solid var(--line);border-radius:9px;padding:7px 9px;color:var(--foam);background:#0b465d}.tray-toggle{padding:7px 10px}
.tray-pieces{display:flex;gap:10px;overflow-x:auto;overflow-y:hidden;max-height:96px;padding:8px 2px 5px;touch-action:pan-x}.tray-piece{flex:0 0 auto;display:grid;place-items:center;min-width:68px;min-height:68px;padding:0;border:0;background:transparent}.tray-empty{color:var(--mist);padding:15px}
.complete-grid{gap:28px;align-items:flex-start}.complete-grid>img{width:min(46%,520px);aspect-ratio:4/3;object-fit:cover;border-radius:14px;background:#0b364b}.scientific,.complete-kicker{color:var(--mist)}
.caught-empty{grid-column:1/-1;padding:28px;text-align:center;border:1px dashed var(--line);border-radius:14px;color:var(--mist)}
.app-footer{position:fixed;left:0;right:0;bottom:0;z-index:30;height:var(--footer-h);display:flex;align-items:center;justify-content:center;gap:7px;background:rgba(4,20,30,.93);border-top:1px solid var(--line);font-size:.7rem;color:rgba(242,247,248,.75)}.footer-wordmark{font-weight:900;color:#fff}.footer-wordmark span{color:#d8aa45}
.toast{position:fixed;left:50%;bottom:42px;transform:translateX(-50%);z-index:100;padding:9px 14px;border-radius:999px;background:#031b27;border:1px solid var(--line);box-shadow:0 12px 24px rgba(0,0,0,.25)}
body.puzzle-mode{width:100%;height:100svh;overflow:hidden;overscroll-behavior:none;touch-action:manipulation}
body.puzzle-mode .app-shell{height:calc(100svh - var(--header-h) - var(--footer-h));min-height:0;padding:0;overflow:hidden}
@media(max-width:840px){.home-main{grid-template-columns:1fr}.home-art-wrap{max-width:430px;margin:auto}.home-copy{text-align:center}.difficulty-strip{grid-template-columns:repeat(2,1fr)}.play-toolbar{align-items:flex-start}.complete-grid{flex-direction:column}.complete-grid>img{width:100%}}
@media(max-width:620px){.screen{padding:14px}.panel{padding:18px}.app-header{gap:5px;padding:6px}.header-btn{font-size:.78rem;padding:5px}.header-title{font-size:.9rem}.play-toolbar{flex-direction:column}.play-toolbar-actions{justify-content:flex-start}.play-shell{grid-template-rows:auto minmax(260px,1fr) auto}.play-table{min-height:260px}.tray-header{align-items:flex-start;flex-direction:column}}
@media(prefers-reduced-motion:reduce){.bubble,.ambient-fish{animation:none!important}.ambient-fish-layer{display:none}}


/* Missing artwork is reported only if a canonical packaged file fails to load. */
.fish-select-card.art-missing,.caught-card.art-missing{opacity:.72}
.fish-select-card .missing-art,.caught-card .missing-art{aspect-ratio:4/3;display:grid;place-items:center;padding:18px;text-align:center;background:linear-gradient(180deg,#0a3245,#061f2d);color:var(--mist);font-size:.84rem;font-weight:700}
.fish-select-card .missing-art strong,.caught-card .missing-art strong{display:block;color:var(--foam);margin-bottom:5px}


/* v3.9.1 — progressive levels, simplified puzzle controls, magnetic groups */
.level-start-panel{max-width:980px}.level-start-panel .difficulty-strip{margin-top:24px}.primary-btn:disabled{opacity:.5;cursor:default}
.compact-tools{gap:8px}.mode-tool.selected,.tool-btn.selected{outline:2px solid rgba(226,204,142,.8);outline-offset:1px}.piece.connected{filter:drop-shadow(0 6px 10px rgba(0,0,0,.25)) drop-shadow(0 0 5px rgba(91,207,194,.25))}
.simple-tray-header{min-height:32px}.tray-mode-note{color:var(--mist);font-size:.8rem}.tray-bar{min-height:105px;max-height:150px}
.caught-panel{max-width:960px}.caught-list{display:grid;gap:12px;margin-top:20px}.caught-row{width:100%;min-height:112px;display:grid;grid-template-columns:120px 1fr;align-items:center;gap:18px;padding:12px 18px;border:1px solid var(--line);border-radius:16px;text-align:left;color:var(--foam);background:rgba(236,243,247,.96)}
button.caught-row{cursor:pointer}.caught-row img{width:110px;height:86px;object-fit:contain;filter:drop-shadow(0 6px 8px rgba(0,0,0,.18))}.caught-row-copy{display:flex;flex-direction:column;gap:3px}.caught-row-copy strong{font-size:1.08rem;color:#102942}.caught-row-copy em{font-size:.84rem;color:#557086}.caught-row-copy span{font-size:.88rem;color:#344e64}.caught-row-copy b{font-size:.8rem;color:#1389a3;margin-top:3px}.caught-row.locked{background:rgba(18,49,79,.78);border-style:dashed;grid-template-columns:90px 1fr;min-height:102px}.caught-row.locked .caught-row-copy strong,.caught-row.locked .caught-row-copy span{color:#b9c9dc}.locked-mark{display:grid;place-items:center;font-size:2rem;font-weight:900;color:#6c85aa}.danger-btn{margin-left:auto;padding:11px 16px;border:1px solid rgba(219,109,109,.45);border-radius:10px;background:rgba(93,28,36,.6);color:#ffd9d9;font-weight:800}
.species-result-wrap{max-width:760px;margin:24px auto 70px;display:grid;justify-items:center}.species-cutout-stage{width:min(420px,74vw);height:250px;display:grid;place-items:center;border-radius:18px;background:linear-gradient(rgba(8,46,69,.35),rgba(4,28,45,.72));box-shadow:0 18px 34px rgba(0,0,0,.18);z-index:2}.species-cutout-stage img{width:90%;height:88%;object-fit:contain;filter:drop-shadow(0 12px 16px rgba(0,0,0,.25))}.species-result-card{width:min(620px,92vw);margin-top:-2px;padding:22px;border:1px solid rgba(214,189,122,.23);border-radius:20px;background:linear-gradient(rgba(17,58,94,.96),rgba(8,39,70,.98));text-align:center;box-shadow:0 18px 38px rgba(0,0,0,.25)}.species-result-card h2{font-size:2rem;margin:4px 0}.species-result-card .complete-kicker{text-transform:uppercase;letter-spacing:.18em;color:var(--sand);font-weight:900;font-size:.75rem}.species-facts{margin:16px 0;padding:16px;text-align:left;border:1px solid rgba(255,255,255,.14);border-radius:14px;background:rgba(255,255,255,.06)}.species-facts h3{margin:0 0 8px;color:#7bd6e0;text-transform:uppercase;letter-spacing:.12em;font-size:.78rem}.species-description{color:var(--mist)}.species-more{text-align:left;color:var(--mist);margin:12px 0}.species-more summary{cursor:pointer;color:var(--foam);font-weight:800}.species-actions{justify-content:center}.species-actions button{min-width:120px}
@media(max-width:620px){.caught-row{grid-template-columns:86px 1fr;padding:10px 12px;gap:12px}.caught-row img{width:82px;height:66px}.danger-btn{margin-left:0}.species-cutout-stage{height:190px}.species-result-card{padding:16px}.compact-tools{display:grid;grid-template-columns:repeat(2,minmax(100px,1fr));width:100%}.play-toolbar-actions{width:100%}}


/* v3.9.2 — maximize board and consolidate gameplay UI */
body.puzzle-mode .app-header{display:none}
body.puzzle-mode .app-shell{height:calc(100svh - var(--footer-h));min-height:0;padding:0;overflow:hidden}
.puzzle-screen{height:calc(100svh - var(--footer-h))}
.play-shell{grid-template-rows:auto minmax(0,1fr) auto}
.single-row-toolbar{display:grid;grid-template-columns:minmax(88px,.85fr) minmax(155px,1.25fr) auto auto auto auto minmax(120px,1fr);align-items:center;gap:8px;padding:6px 10px;min-height:52px}
.inline-status{min-width:0;line-height:1.12}.inline-status strong,.inline-status span{white-space:nowrap}.inline-status strong{font-size:.95rem}.inline-status span{font-size:.76rem}
.nav-tool{min-width:0;font-weight:850}
.segmented-control{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;padding:3px;gap:3px;border:1px solid rgba(214,189,122,.2);border-radius:11px;background:rgba(1,24,35,.72)}
.segment-btn{min-width:58px;padding:7px 9px;border:0;border-radius:8px;background:transparent;color:var(--mist);font-weight:900;font-size:.78rem;letter-spacing:.02em;cursor:pointer}
.segment-btn.selected{color:#102b34;background:linear-gradient(#e5cd89,#c9ad62);box-shadow:0 0 0 1px rgba(255,232,164,.35),0 0 12px rgba(224,194,112,.38)}
#boardActionControl .segment-btn.selected{background:linear-gradient(#7fd5c7,#4cad9f);box-shadow:0 0 0 1px rgba(142,235,219,.32),0 0 12px rgba(75,190,174,.32)}
.play-table{margin:0 6px;min-height:0;border-radius:8px}
.tray-bar{margin:4px 6px 4px;min-height:96px;max-height:126px;padding:6px 10px}
.tray-pieces{max-height:78px;padding-top:5px}.tray-piece{min-width:58px;min-height:58px}
.return-game-action{box-shadow:inset 3px 0 0 #65c8b9,0 0 14px rgba(83,191,174,.12)}
.caught-actions .hidden,.home-actions .hidden{display:none!important}
@media(max-width:980px){.single-row-toolbar{grid-template-columns:minmax(72px,.75fr) minmax(138px,1.15fr) auto auto auto auto minmax(100px,.95fr);gap:5px;padding:5px 6px}.segment-btn{min-width:50px;padding:7px 6px}.tool-btn,.piece-count{padding:7px 8px;font-size:.78rem}}
@media(max-width:700px){.single-row-toolbar{overflow-x:auto;grid-template-columns:80px 140px 124px 124px 70px 96px 110px}.play-table{margin:0 3px}.tray-bar{margin:3px}}

/* v3.9.4 control/recovery refinements */
.caught-heading-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.compact-return{margin:0;white-space:nowrap;padding:9px 13px}
.caught-heading-actions .hidden{display:none!important}
@media(max-width:620px){.caught-heading-actions{justify-content:flex-start}}


/* v3.9.9 — stable puzzle layers, larger board, continuous tray-to-table drag */
body.puzzle-mode #screen-puzzle{position:relative;isolation:isolate}
.single-row-toolbar{position:relative;z-index:60;pointer-events:auto;isolation:isolate}
.single-row-toolbar button,.single-row-toolbar .segmented-control{pointer-events:auto}
.play-table{position:relative;z-index:10;isolation:isolate}
.board-shell{z-index:1;pointer-events:none}
.board-preview{z-index:0;pointer-events:none}
.board-cutlines{z-index:2;pointer-events:none}
.pieces-layer{z-index:5;pointer-events:none}
.tray-bar{position:relative;z-index:40;isolation:isolate}
.puzzle-drag-layer{position:fixed;inset:0;z-index:50;pointer-events:none;overflow:hidden}
.drag-ghost{position:fixed;left:0;top:0;pointer-events:none;will-change:transform;filter:drop-shadow(0 8px 14px rgba(0,0,0,.32));opacity:.94}
.drag-ghost svg{display:block;overflow:visible;width:100%;height:100%}
.tray-piece.drag-source-active{opacity:.25}


/* v3.10.0 — ARTEZIQ shared UI kit integration.
   The kit files stay unmodified; these are app-specific theme/layout overrides. */
:root{
  --ui-accent:#4daea5;
  --ui-accent-lo:#2f817c;
  --ui-panel:#082b3e;
  --ui-text:#f2f7f8;
}

/* Reserve the true top-right corner for the shared fullscreen/sound/settings stack. */
body:not(.puzzle-mode) .app-header{padding-right:78px}
body.puzzle-mode .single-row-toolbar{padding-right:76px}

/* iOS immersive fallback hides only app chrome, never puzzle controls. */
body.immersive:not(.puzzle-mode) .app-shell{min-height:100svh;padding-bottom:0}
body.immersive.puzzle-mode .app-shell,
body.immersive.puzzle-mode .puzzle-screen{height:100svh}

/* Keep shared UI above every game/drag layer. */
.ui-corner,.ui-overlay{isolation:isolate}


/* v3.10.1 — fixed-height Tackle Tray and uniform thumbnails.
   Tray pieces are display thumbnails only; puzzle-piece geometry stays unchanged. */
:root{--aj-tray-thumb:58px;--aj-tray-height:116px}
.tray-bar{height:var(--aj-tray-height);min-height:var(--aj-tray-height);max-height:var(--aj-tray-height);overflow:hidden}
.simple-tray-header{height:32px;min-height:32px}
.tray-pieces{height:68px;min-height:68px;max-height:68px;padding:5px 2px 4px;align-items:center;overflow-x:auto;overflow-y:hidden}
.tray-piece{width:var(--aj-tray-thumb);height:var(--aj-tray-thumb);min-width:var(--aj-tray-thumb);min-height:var(--aj-tray-thumb);max-width:var(--aj-tray-thumb);max-height:var(--aj-tray-thumb)}
.tray-piece svg{width:var(--aj-tray-thumb)!important;height:var(--aj-tray-thumb)!important}


/* v3.10.2 — tray drag reliability.
   Keep the fixed 58px thumbnail layout from v3.10.1, but ensure Safari treats
   an actual thumbnail gesture as a piece drag rather than a tray pan. */
.tray-piece{touch-action:none!important;-webkit-user-select:none!important;user-select:none!important;-webkit-touch-callout:none!important}
.tray-piece svg{pointer-events:none}


/* v3.10.4 — iPad system-gesture safety and resilient tray interaction.
   The bottom-center edge belongs to iPadOS (Siri/home/app switching), so the
   playable tray is intentionally lifted away from that native gesture zone. */
:root{--aj-system-gesture-safe:max(30px,env(safe-area-inset-bottom,0px))}
body.puzzle-mode .play-shell{position:relative;padding-bottom:var(--aj-system-gesture-safe)}
body.puzzle-mode{overscroll-behavior:none;-webkit-user-select:none;user-select:none}
body.puzzle-mode .tray-bar{margin-bottom:0}
body.puzzle-mode .tray-pieces{padding-bottom:7px}
body.puzzle-mode .tray-piece{position:relative;z-index:2}
/* Never place game controls inside the OS-owned bottom safety strip. */
body.puzzle-mode .play-shell::after{content:"";position:absolute;left:0;right:0;bottom:0;height:var(--aj-system-gesture-safe);pointer-events:none;background:linear-gradient(180deg,rgba(4,20,30,0),rgba(4,20,30,.38))}


/* v3.10.6 — persistent environment themes, robust toolbar actions, and visible tray scrollbar. */
.environment-theme-layer{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;background-position:center;background-repeat:no-repeat;background-size:cover;transition:opacity .55s ease,filter .55s ease}
.environment-theme-layer.theme-deep-ocean{background:radial-gradient(75% 45% at 50% 6%,rgba(78,153,202,.30),rgba(9,55,88,.06) 55%,transparent 76%),linear-gradient(180deg,#12627d 0%,#0a4263 38%,#062a49 68%,#031a35 100%)}
.environment-theme-layer.theme-coral-reef{background-image:linear-gradient(180deg,rgba(5,49,68,.42),rgba(2,23,42,.62)),url('../assets/themes/coral-reef.png');background-position:center,bottom center;background-size:cover,cover}
.environment-theme-layer.theme-pirate-ship{background-image:linear-gradient(180deg,rgba(4,42,63,.38),rgba(2,20,37,.62)),url('../assets/themes/sunken-pirate-ship.png');background-position:center,bottom center;background-size:cover,cover}
/* Let the selected environment read through the app instead of replacing it. */
body{background:#031a35}
.play-table{background:linear-gradient(rgba(8,43,82,.36),rgba(2,16,43,.52))}
.panel{background:linear-gradient(rgba(6,35,49,.76),rgba(4,24,35,.88))}
.species-more-expanded{display:grid;grid-template-columns:1fr;gap:4px;padding:14px 16px;border:1px solid rgba(255,255,255,.10);border-radius:14px;background:rgba(255,255,255,.035)}
.species-more-expanded h3{margin:8px 0 2px;color:#7bd6e0;text-transform:uppercase;letter-spacing:.1em;font-size:.75rem}
.species-more-expanded p{margin:0 0 6px}
.single-row-toolbar button{touch-action:manipulation;-webkit-touch-callout:none}
.segment-btn.working{filter:brightness(1.18);box-shadow:0 0 0 2px rgba(126,221,205,.42),0 0 18px rgba(75,190,174,.45)}
/* Keep the tray at the established fixed height while reserving an always-visible control below the thumbnails. */
.tray-bar{display:grid;grid-template-rows:28px minmax(0,1fr) 12px}
.simple-tray-header{height:28px;min-height:28px}
.tray-pieces{height:auto;min-height:0;max-height:none;padding:2px 2px 1px;scrollbar-width:thin;scrollbar-color:rgba(110,207,194,.75) rgba(255,255,255,.08)}
.tray-pieces::-webkit-scrollbar{height:6px}.tray-pieces::-webkit-scrollbar-track{background:rgba(255,255,255,.06);border-radius:999px}.tray-pieces::-webkit-scrollbar-thumb{background:rgba(110,207,194,.72);border-radius:999px}
.tray-scrollbar-wrap{height:12px;display:flex;align-items:center;padding:0 2px;transition:opacity .2s ease}
.tray-scrollbar-wrap.is-hidden{opacity:.22;pointer-events:none}
.tray-scrollbar{width:100%;height:12px;margin:0;accent-color:#65c8b9;touch-action:pan-x}
.tray-scrollbar::-webkit-slider-runnable-track{height:5px;border-radius:999px;background:rgba(255,255,255,.12)}
.tray-scrollbar::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:24px;height:10px;margin-top:-2.5px;border:0;border-radius:999px;background:#65c8b9;box-shadow:0 0 0 1px rgba(255,255,255,.18)}
.tray-scrollbar::-moz-range-track{height:5px;border-radius:999px;background:rgba(255,255,255,.12)}
.tray-scrollbar::-moz-range-thumb{width:24px;height:10px;border:0;border-radius:999px;background:#65c8b9}


/* v3.10.8 — iPad-stable puzzle toolbar interaction layer */
.single-row-toolbar{
  position:relative!important;
  z-index:200!important;
  isolation:isolate!important;
  pointer-events:auto!important;
  touch-action:manipulation;
  -webkit-user-select:none;
  user-select:none;
}
.single-row-toolbar [data-puzzle-action]{
  position:relative;
  z-index:1;
  pointer-events:auto!important;
  touch-action:manipulation!important;
  -webkit-user-select:none;
  user-select:none;
  -webkit-touch-callout:none;
  -webkit-tap-highlight-color:transparent;
}
.single-row-toolbar [data-puzzle-action].aj-pressed{
  transform:translateY(1px) scale(.985);
  filter:brightness(1.12);
}
/* Board/tray/drag layers can never cover the toolbar. */
.play-table{z-index:10!important;}
.tray-bar{z-index:40!important;}
.puzzle-drag-layer{z-index:50!important;pointer-events:none!important;}


/* v3.11.0 — ARTEZIQ Ladybug host integration. The connector keeps its own UI in Shadow DOM. */
html{--tx:1}
.has-ladybug .app-footer{padding-right:82px}
[data-arteziq-ladybug]{isolation:isolate}
@media(max-width:700px){.has-ladybug .app-footer{padding-right:74px}}
