@font-face{font-family:Pixel;src:url('../assets/fonts/fusion-pixel-12px-monospaced-zh_hans.ttf.woff2?v=b259134ca6558a88cce77ebf1f96042785982de5') format('woff2');font-display:swap}
:root{--cream:#dedcc4;--faint:#99a486;--line:#59664b;--night:#242d21;--paper:#cbc7a6}
*{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0;height:100%;overflow:hidden;background:#22291f;color:var(--cream);font:12px Pixel,monospace}button,a,select{font:inherit}button{cursor:pointer;color:inherit}a{color:inherit}button:focus-visible,a:focus-visible,select:focus-visible{outline:2px solid #d2d2a8;outline-offset:3px}button:disabled{cursor:default}p{line-height:1.8}.faint{color:var(--faint)}
#game{height:100dvh;width:min(760px,100%);margin:auto;display:flex;flex-direction:column;padding:0 12px max(8px,env(safe-area-inset-bottom));background:var(--night)}
.topbar{height:38px;flex:none;display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid #3e4b34}.header-mark{width:28px;color:#6c785b}.topbar #dayLabel{white-space:nowrap;color:#adb799}.icon-button{display:inline-flex;align-items:center;justify-content:center;background:none;border:0;color:#adb894;min-width:36px;min-height:36px;padding:6px;flex:none}.icon-button:hover{color:#e2dcb9}.pixel-icon{display:inline-block;width:24px;height:22px;position:relative;flex:none}.pixel-icon i{position:absolute;display:block;left:0;top:0;width:2px;height:2px}#soundBtn[aria-pressed=false]{opacity:.48}#soundBtn[aria-pressed=false]::after{content:'';position:absolute;width:3px;height:3px;background:#c5b28f;margin:20px 0 0 23px}
.title-card{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:safe center;text-align:center;overflow-y:auto;padding:12px 0}.title-card h1{font-size:38px;line-height:1.06;font-weight:400;margin:8px 0 9px;letter-spacing:.025em}.title-card .zh{font-size:18px;margin:0}.intro-copy{color:#a8b295;margin:22px 8px;line-height:1.9}.empty-box{position:relative;width:min(420px,100%);height:clamp(160px,31dvh,270px);border:5px solid #647052;box-shadow:3px 3px #161f14;flex:none;background:#443729}.empty-box canvas{width:100%;height:100%;display:block;image-rendering:pixelated;pointer-events:none}#emptyCritters{display:none}.draw-button{position:absolute;bottom:12px;right:12px;display:flex;align-items:center;justify-content:center;width:44px;height:42px;background:#b7b58e;border:2px solid #dbd5b0;box-shadow:3px 3px #263020;color:#3d4430}.draw-button:hover{background:#d1cba8}.title-links{display:flex;align-items:center;justify-content:center;gap:22px;margin:14px 0 3px}.text-button{color:#a8b294;background:none;border:0;padding:8px}
.arrival-card,.end-card{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;align-items:center;justify-content:safe center;text-align:center;padding:20px 8px}.arrival-card h2,.end-card h2{font-size:24px;font-weight:400}.arrival-card>p{max-width:290px}#arrivalSpecimens{display:flex;gap:28px;align-items:center;justify-content:center;flex-wrap:wrap;min-height:95px;padding:20px 10px}#arrivalSpecimens .isopod{transform:scale(1.15)}.primary{background:#c5c6a6;color:#273120;border:2px solid #dfdcc0;box-shadow:3px 3px #151e12;padding:12px 20px;margin-top:18px}
.play-view{flex:1;min-height:0;display:grid;grid-template-rows:minmax(100px,1fr) auto auto 40px;gap:8px;padding-top:9px}.box-frame{position:relative;min-height:0;overflow:hidden;border:5px solid #757d61;box-shadow:2px 2px #182015;background:#443729}#habitat{width:100%;height:100%;display:block;image-rendering:pixelated;touch-action:none;cursor:grab}#habitat:active{cursor:grabbing}#critters{position:absolute;inset:0;overflow:hidden;pointer-events:none}.box-label{position:absolute;bottom:11px;left:9px;color:#d0cba8;font-size:12px;pointer-events:none}.activity-label{position:absolute;top:10px;right:9px;max-width:38%;padding:5px 7px;border-left:2px solid #8d916b;background:#293024b8;color:#b9bd9b;pointer-events:none;line-height:1.5;font-size:12px}.zoom-tools{position:absolute;right:7px;bottom:7px;display:flex;align-items:center;gap:5px;background:#242d20e8;padding:3px;border:1px solid #707b5b}.zoom-tools button{background:#35432b;border:0;color:#c5c8a6;height:29px;min-width:28px;padding:0 5px}.zoom-tools span{min-width:26px;text-align:center}
.record{padding:9px 11px;border:1px solid #536046;background:#2c3627;max-height:29dvh;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#657451 #2c3627}.record-head{color:#8f9f7c;font-size:11px}.record p{margin:6px 0 0;line-height:1.75}.actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.action{min-height:44px;padding:7px 5px;background:#394631;border:1px solid #758061;color:#dedcc1;line-height:1.45}.action:disabled{opacity:.45}.action:hover:not(:disabled){background:#4b5a3f}.bottom-bar{display:grid;grid-template-columns:44px 44px 1fr;gap:8px}.field-button{background:#303b28;border:1px solid #48583b;box-shadow:inset 2px 0 #66745233}.field-button .pixel-icon{transform:rotate(-5deg)}.next-button{border:0;background:#bcc2a0;color:#293723;padding:4px 8px}.next-button:disabled{background:#2e3927;color:#7c896c}#miniView{display:flex;justify-content:center;align-items:center;gap:14px;flex-wrap:wrap;margin-top:8px;padding:5px;min-height:30px}#miniView .isopod{transform:scale(.75)}
.end-specimen{height:75px;display:flex;gap:32px;align-items:center}.end-specimen .isopod{transform:scale(1.4)}.end-molts{display:block;margin:2px auto 8px;max-width:100%;image-rendering:pixelated;opacity:.9}.end-card #endingBody{max-width:420px;line-height:1.9;margin:10px 18px}.last-line{margin:18px 8px;line-height:1.9}.end-actions{display:flex;align-items:center;justify-content:center;gap:22px}.end-actions .icon-button{margin-top:18px}#endingCount{font-size:11px;margin-top:24px}#storageNotice{position:fixed;bottom:6px;left:12px;right:12px;font-size:11px;text-align:center;color:#e0bd81;background:#252d21;z-index:10}#flash{display:none}
/* One shared field notebook, with quiet names and unsigned notes. */
dialog{width:min(470px,calc(100% - 24px));max-height:calc(100dvh - 24px);background:#2c3627;color:#dedbc0;border:3px solid #768464;padding:13px;box-shadow:5px 5px #141f12;overflow:hidden;font:12px/1.8 Pixel,monospace}dialog[open]{display:flex;flex-direction:column}dialog::backdrop{background:#111c12cb}dialog header,dialog footer{display:flex;align-items:center;justify-content:space-between;gap:10px;flex:none}dialog header{padding-bottom:9px;border-bottom:1px solid #576548}dialog footer{padding-top:9px;border-top:1px solid #576548;margin-top:10px}dialog h2{font-size:18px;font-weight:400;margin:0;line-height:1.4}dialog button{background:#35432c;border:1px solid #677653;min-width:32px;min-height:32px;color:#d0d4b3}.drawer-tools{display:flex;align-items:center;gap:6px}.drawer-tools .icon-button{border:0;background:none}.drawer-tools .pixel-icon{transform:scale(.8)}#drawerTabs{display:flex;gap:18px;padding-top:9px;flex:none}#drawerTabs button{background:none;border:0;border-bottom:2px solid transparent;min-width:48px;color:#899b77;padding:3px}#drawerTabs button[aria-pressed=true]{color:#d5d7b9;border-bottom-color:#9ea883}#drawerContent{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:12px 3px 3px;scrollbar-width:thin;scrollbar-color:#82916b #303b2a}#drawerContent p{margin:7px 0}#pageNumber{color:#879874;font-size:11px}.species-card{content-visibility:auto;contain-intrinsic-size:auto 500px;overflow-wrap:anywhere}.catalog-art{height:105px;display:flex;align-items:center;justify-content:center}.catalog-art .isopod{transform:scale(2.5)}.specimen-controls{display:flex;justify-content:center;align-items:center;gap:20px;margin:7px 0 22px}.size-controls{display:flex;gap:5px}.size-controls button[aria-pressed=true]{background:#c1c7a4;color:#2b3625}.specimen-controls select{font:inherit;color:#cfceb0;background:#35432c;border:1px solid #65734f;padding:5px}.specimen-names{text-align:center;padding:6px 4px 14px}.specimen-names h3{font-size:21px;font-weight:400;margin:0}.trade-name{color:#afba96}.latin{color:#99a889;line-height:1.8;overflow-wrap:anywhere}.name-aside{font-size:11px;color:#889879}.specimen-names .faint{font-size:11px}.anonymous-note{margin:10px 4px 8px;padding:18px 10px 14px;border-top:1px dashed #59684b;text-align:left;color:#c9d0ac}.anonymous-note p{line-height:2!important;margin:10px 0!important}.unseen{min-height:320px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:12px}.absent-mark{width:48px;height:30px;border:2px dashed #6a7857;margin-bottom:25px;opacity:.55}.unseen .faint{font-size:11px}
.journal-paper{position:relative;margin:12px 5px 10px;padding:26px 20px 30px;background:#c1bb96;color:#41452e;box-shadow:3px 4px #192313;clip-path:polygon(0 0,97% 0,97% 3%,100% 3%,100% 96%,94% 96%,94% 100%,0 100%);min-height:220px}.journal-paper::before{content:'';position:absolute;top:9px;left:43%;width:45px;height:8px;background:#9a9474;box-shadow:2px 2px #77745355}.journal-paper .entry-date{color:#777858;font-size:11px;padding-bottom:16px}.journal-paper .pencil-mark{color:#60664a;padding-bottom:6px}.journal-paper p{line-height:2}.ending-note{padding:35px 12px;min-height:280px;display:flex;flex-direction:column;justify-content:center}.ending-note h3{font-size:21px;font-weight:400}.ending-note p{line-height:2}.reference-page{padding:8px 8px 20px}.reference-intro{color:#b2bd9b;padding:12px 0 22px}.reference-page h3{font-size:12px;font-weight:400;color:#b7c29e;border-bottom:1px solid #4f6241;padding-bottom:6px;margin-top:25px}.reference-page ul{padding-left:17px}.reference-page li{padding:6px 0;overflow-wrap:anywhere}.reference-page a{text-underline-offset:4px;color:#cbd2ae}.reference-note{font-size:11px;color:#8fa17b;line-height:1.9!important;padding-top:15px}
.isopod.grooming>.antennae{animation:antenna-clean 1.5s steps(3) infinite}@keyframes antenna-clean{50%{transform:translateX(-2px) scaleX(.6) scaleY(.65)}}
@media(max-height:680px){.title-card{padding:6px 0}.title-card h1{font-size:30px;margin:4px}.title-card .zh{font-size:16px}.intro-copy{margin:13px 4px}.title-links{margin-top:10px}.play-view{gap:6px;padding-top:6px}.record{padding:6px 8px;max-height:26dvh}.record p{line-height:1.55}.action{min-height:40px}.catalog-art{height:85px}.arrival-card,.end-card{padding:8px}.end-card h2{margin:8px}.end-specimen{height:50px}#endingCount{margin-top:8px}.primary{margin-top:10px}}
@media(max-width:360px){#game{padding-inline:8px}.action{font-size:11px;padding:5px 3px}.activity-label{font-size:10px;max-width:35%}.instruments{transform:scale(.86);transform-origin:top left}.intro-copy{font-size:11px}dialog{padding:10px}.journal-paper{padding-inline:15px}.specimen-controls{gap:12px}}
@media(orientation:landscape) and (max-height:600px){#game{width:100%}.play-view{grid-template-columns:1.1fr 1fr;grid-template-rows:1fr auto 40px}.box-frame{grid-row:1/4}.record{grid-column:2;max-height:none}.actions,.bottom-bar{grid-column:2}.title-card{display:grid;grid-template-columns:1fr 1.15fr;grid-template-rows:auto auto auto;column-gap:20px;align-content:center;justify-items:center;padding:8px 14px}.title-card h1{grid-column:1;grid-row:1}.title-card .zh{grid-column:1;grid-row:2}.title-card .intro-copy{grid-column:1;grid-row:3;margin:10px 0}.empty-box{grid-column:2;grid-row:1/4;height:210px;width:100%;max-width:420px}.title-links{grid-column:1/-1;margin:5px}.end-card{padding:5px}.end-specimen{height:36px}.end-card #endingBody{margin:4px;max-width:560px}.last-line{margin:8px}.end-card h2{margin:5px}.catalog-art{height:65px}.primary{padding:8px 18px}.instruments{transform:scale(.8);transform-origin:top left}}


/* Square camera viewport; small screens crop the fixed world rather than squeeze it. */
.play-view{grid-template-rows:auto auto auto 40px;align-content:start;overflow-y:auto;overscroll-behavior:contain}
.box-frame{aspect-ratio:1;width:min(100%,calc(100dvh - 262px));min-width:0;min-height:0;justify-self:center;flex:none}
.empty-box{aspect-ratio:1;height:auto;width:min(100%,300px,38dvh)}
.record{max-height:24dvh}
.catalog-art{height:135px}.catalog-art .isopod{transform:scale(2)}
#arrivalSpecimens{gap:0}#arrivalSpecimens .isopod{transform:none}
@media(min-width:900px){#game{width:min(1100px,100%)}.play-view{grid-template-columns:minmax(0,1.5fr) minmax(290px,1fr);grid-template-rows:1fr auto 40px;align-content:stretch;overflow:hidden;padding:18px 0}.box-frame{grid-column:1;grid-row:1/4;width:min(100%,calc(100dvh - 90px));align-self:center}.record{grid-column:2;max-height:none;align-self:start}.actions,.bottom-bar{grid-column:2}.record p{line-height:2}.empty-box{width:min(320px,38dvh)}}
@media(orientation:landscape) and (max-height:600px){.play-view{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:1fr auto 40px;overflow-y:auto}.box-frame{grid-column:1;grid-row:1/4;width:min(100%,calc(100dvh - 64px));align-self:center}.record{max-height:none}.empty-box{width:min(100%,38dvh);height:auto}.catalog-art{height:120px}}
@media(max-width:899px) and (orientation:portrait){.box-frame{width:min(100%,max(220px,calc(100dvh - 280px)))}}

/* A tiny desktop window surrounds a square, independently clipped habitat. */
.box-frame,.empty-box{aspect-ratio:auto;height:auto;border:3px solid #303c32;border-top-color:#b1b49a;border-left-color:#b1b49a;padding:3px;background:#7f8974;box-shadow:3px 3px #111d17;overflow:hidden}
.window-title{height:28px;display:flex;align-items:center;justify-content:space-between;padding:0 8px;background:#526e67;color:#e3e2c8;border-bottom:2px solid #354d45;text-align:left;letter-spacing:1px}
.window-title::before{content:'';width:10px;height:10px;border:2px solid #c7cbb0;box-shadow:2px 2px #354d45;margin-right:8px;flex:none}.window-title>span:first-child{flex:1}
.window-menu{min-height:28px;display:flex;align-items:center;gap:0;background:#b8bda2;color:#334436;border-top:2px solid #d5d7bc;border-bottom:2px solid #58674e;padding:4px 3px;text-align:left;font-size:10px;white-space:nowrap}
.instruments{position:static;transform:none;pointer-events:auto;flex-direction:row}.window-menu>span{padding:0 7px;border-right:1px solid #8a977c}.window-menu>span:last-child{border:0}#simDetail{font-size:10px;color:#4b5b43;background:none;padding:0 7px}
.empty-menu{padding-left:8px}.habitat-viewport{position:relative;width:100%;aspect-ratio:1;overflow:hidden;border:2px solid #4e5a43;background:#443729}.empty-box canvas{height:100%;width:100%;position:absolute;inset:0}
.box-frame{width:min(100%,max(220px,calc(100dvh - 338px)))}.activity-label{top:8px;max-width:55%;font-size:10px}.box-label{font-size:10px;bottom:10px}.zoom-tools{border:2px solid #8c997c;box-shadow:2px 2px #1c2c21;background:#354739}.zoom-tools button{background:#a1ad8d;color:#2c412f;box-shadow:inset 1px 1px #ced0ad}
@media(min-width:900px){.box-frame{width:min(100%,calc(100dvh - 152px))}}
@media(orientation:landscape) and (max-height:600px){.box-frame{width:min(100%,calc(100dvh - 128px))}}
@media(max-width:380px){.window-menu>span,#simDetail{padding-inline:4px}.window-title{font-size:10px;letter-spacing:0}.window-menu{font-size:10px}}

.window-caption{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.window-controls{display:flex;gap:3px;flex:none;margin-left:8px}.window-controls button{display:grid;place-items:center;width:22px;height:22px;padding:0;line-height:1;background:#b8bda2;color:#34483b;border:2px solid #d5d7bd;border-right-color:#475e4e;border-bottom-color:#475e4e;font-size:16px}.window-controls button:active{border-color:#475e4e #d5d7bd #d5d7bd #475e4e}.box-frame.minimized>.habitat-viewport{display:none}.box-frame.minimized{align-self:start}
.box-frame:fullscreen,.box-frame.maximized{width:100%;height:100%;max-width:none;background:#252f25;display:flex;flex-direction:column;align-items:center;padding:6px}.box-frame:fullscreen>.window-title,.box-frame:fullscreen>.window-menu,.box-frame.maximized>.window-title,.box-frame.maximized>.window-menu{width:100%;flex:none}.box-frame:fullscreen>.habitat-viewport,.box-frame.maximized>.habitat-viewport{width:min(100%,calc(100dvh - 80px));flex:none}.box-frame.maximized{position:fixed;inset:0;z-index:50}

/* One application window contains the complete observation and its actions. */
#game{padding-top:12px}.play-view{display:block;padding:0;overflow:auto;flex:1;min-height:0}.play-view .box-frame{width:100%;max-width:100%;margin:0 auto;aspect-ratio:auto;align-self:auto}.window-toolbar{display:flex;align-items:center;gap:10px;min-height:30px;padding:0 7px;background:#b8bda2;color:#334436;border-bottom:1px solid #849174}.species-menu{margin-right:auto;white-space:nowrap}.window-toolbar #dayLabel{font-size:10px;white-space:nowrap}.window-toolbar #soundBtn{width:28px;min-width:28px;min-height:28px;height:28px;padding:2px;color:#465a40}.window-toolbar #soundBtn .pixel-icon{transform:scale(.75)}.window-toolbar #soundBtn::after{display:none}.window-content{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;padding-top:4px}.window-story{display:flex;flex-direction:column;gap:7px;padding:3px}.window-story .record{max-height:none;background:#303c2e;border:2px solid #53644d;border-right-color:#b5bc9c;border-bottom-color:#b5bc9c;box-shadow:inset 1px 1px #1f2d22;margin:0}.window-story .actions{margin:0}.window-story .action,.window-story .field-button,.window-story .next-button{border:2px solid #d0d2b3;border-right-color:#4a5d47;border-bottom-color:#4a5d47;background:#b5bba0;color:#30442f;box-shadow:inset 1px 1px #c9cdb0}.window-story .action:active:not(:disabled),.window-story .field-button:active,.window-story .next-button:active:not(:disabled){border-color:#4a5d47 #d0d2b3 #d0d2b3 #4a5d47}#startBtn:disabled,.window-story .action:disabled,.window-story .next-button:disabled{background:#929d81;color:#64745b;opacity:1;box-shadow:none}.window-story .bottom-bar{grid-template-columns:40px 40px 1fr;height:40px}.window-story .field-button .pixel-icon{transform:none}.window-story .record-head{color:#b7c19f;border-bottom:1px solid #4d6147;padding-bottom:5px}
.window-controls button{position:relative;display:grid;place-items:center}.window-glyph{display:block;position:relative;width:10px;height:10px;flex:none}.glyph-min::before{content:'';position:absolute;left:0;top:6px;width:10px;height:2px;background:currentColor}.glyph-max{border:2px solid currentColor}.glyph-close::before{content:'';position:absolute;top:0;left:0;width:2px;height:2px;background:currentColor;box-shadow:8px 0,2px 2px,6px 2px,4px 4px,2px 6px,6px 6px,0 8px,8px 8px}
.box-frame.minimized>.window-content{display:none}.box-frame:fullscreen,.box-frame.maximized{display:flex;overflow:auto;align-items:stretch}.box-frame:fullscreen>.window-content,.box-frame.maximized>.window-content{width:100%;align-self:center}.box-frame:fullscreen .habitat-viewport,.box-frame.maximized .habitat-viewport{width:100%}
@media(min-width:900px){.window-content{grid-template-columns:minmax(0,1.45fr) minmax(280px,1fr);align-items:start}.window-story{height:100%;min-height:0}.window-story .record{flex:1;overflow:auto}.window-story .actions,.window-story .bottom-bar,.window-story .record{grid-column:auto}.play-view .box-frame{max-width:1100px}.window-content>.habitat-viewport{max-height:none}.box-frame:fullscreen>.window-content,.box-frame.maximized>.window-content{max-width:min(1400px,calc((100dvh - 125px)*1.7));margin:auto}}
@media(orientation:landscape) and (max-height:600px){.window-content{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.window-story .actions,.window-story .bottom-bar,.window-story .record{grid-column:auto}.play-view{overflow:auto}}
@media(max-width:380px){.window-toolbar{gap:5px;padding-inline:4px}.window-toolbar #dayLabel{font-size:10px}.species-menu{font-size:10px}.window-story .action{font-size:10px}}

/* Desktop dialogs retain the same chrome as the observation application. */
body{background:#273e34;background-image:repeating-conic-gradient(#2a4238 0 25%,#273e34 0 50%);background-size:4px 4px}#game{background:transparent}
.application-card{flex:none!important;position:relative;width:min(100%,480px);margin:auto;display:flex!important;flex-direction:column!important;align-items:center;justify-content:flex-start!important;gap:0;padding:3px 3px 18px!important;background:#7f8974;border:3px solid #c0c4aa;border-right-color:#344738;border-bottom-color:#344738;box-shadow:6px 6px #16271f;max-height:calc(100dvh - 36px);overflow:auto}.application-card[hidden]{display:none!important}.application-card>.window-title,.application-card>.window-menu{width:100%;flex:none}.application-card h1{font-size:26px!important;line-height:1.2;letter-spacing:2px;margin:18px 0 4px!important;color:#edf0d0}.application-card .zh{font-size:12px!important;color:#293f2c}.application-card .intro-copy{font-size:10px;margin:10px 8px!important;color:#263e2b}.application-card .empty-box{width:min(78%,260px,32dvh)!important;margin:6px 0 8px 14px;box-shadow:-8px -6px #596d59,4px 4px #314733}.application-card .title-links{margin:8px 0 0!important;padding:0 12px;gap:10px;width:100%;justify-content:center}.application-card .title-links button,.application-card .primary{background:#bcc4a5;color:#31452e;border:2px solid #e0dfc3;border-right-color:#455c42;border-bottom-color:#455c42;box-shadow:none}.application-card>p,.application-card>h2{padding-inline:12px;color:#263d2c}.launch-menu a{padding:0 8px;text-decoration:none;border-right:1px solid #889776}.application-card .faint{margin-top:16px}.application-card .end-actions{gap:10px}
dialog{background:#7f8974;border:3px solid #c0c4aa;border-right-color:#344738;border-bottom-color:#344738;padding:3px;box-shadow:6px 6px #13261b}dialog header{background:#526e67;padding:3px 6px;border-bottom:2px solid #344c41;min-height:30px}dialog h2{font-size:12px}dialog header button{min-width:24px;min-height:24px;height:24px;border:2px solid #d1d3b6;border-right-color:#43583f;border-bottom-color:#43583f;background:#b8bea2;color:#34482f}dialog header .icon-button{background:#b8bea2;padding:0;min-width:24px;min-height:24px;height:24px;color:#34482f}dialog header .pixel-icon{transform:scale(.65)}#drawerTabs{padding:4px 7px;gap:12px;background:#bbc3a5;border-bottom:2px solid #53674c}#drawerTabs button{color:#43583e;font-size:10px;min-height:24px}#drawerTabs button[aria-pressed=true]{color:#263b29;border-bottom-color:#526a45}#drawerContent{margin:4px;padding:8px;background:#2e3b2c;border:2px solid #506348;border-right-color:#c1c8a9;border-bottom-color:#c1c8a9}dialog footer{padding:4px;margin:0;background:#b4bda0;border:0}dialog footer button{background:#b7c09f;color:#334a30;border:2px solid #d6d9ba;border-bottom-color:#4f6647;border-right-color:#4f6647}#pageNumber{color:#344c31}.specimen-id,.specimen-date{color:#a9b794;font-size:10px;text-align:center}.catalog-art.specimen-mount{position:relative;height:160px;margin:8px 15px;background:#b4b89c;border:2px solid #67765a;box-shadow:inset 2px 2px #859072}.specimen-mount .isopod{transform:rotate(-90deg) scale(var(--mount-scale,2))}.specimen-pin{position:absolute;top:50%;left:50%;width:4px;height:4px;background:#d3d5c1;box-shadow:2px 2px #28362a,-1px -1px #f0efda;transform:translate(-50%,-50%);z-index:2}.specimen-names{padding:8px 5px}.specimen-names h3{font-size:18px}.anonymous-note{border:1px solid #607451;padding:0 10px 10px;margin:8px 0}.summary-label{background:#465b3e;color:#bec9a9;font-size:10px;padding:4px;margin:0 -10px 8px}.anonymous-note p{font-size:12px;line-height:1.8!important}.journal-paper{clip-path:none;box-shadow:none;background:#303e2d;color:#c3cbaa;border:1px solid #647757;margin:0;padding:12px;min-height:160px}.journal-paper::before{display:none}.journal-paper .entry-date{padding:4px;border-bottom:1px solid #637854;color:#b8c49f}.journal-paper .pencil-mark{color:#93aa7d}.ending-note{padding:15px;min-height:180px}
/* A fixed viewport reserves room for the entire observation and its controls. */
html,body{height:100%;overflow:hidden}#game{height:100dvh;padding:6px 8px max(6px,env(safe-area-inset-bottom));min-height:0}.play-view{overflow:hidden;height:100%;min-height:0}.play-view .box-frame{height:100%;max-height:100%;display:flex;flex-direction:column;overflow:hidden}.box-frame>.window-title,.box-frame>.window-toolbar,.box-frame>.window-menu{flex:none}.window-content{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:4px;overflow:hidden}.window-content>.habitat-viewport{width:var(--scene-size,220px)!important;height:var(--scene-size,220px)!important;aspect-ratio:1;flex:none;min-height:0;max-width:100%;align-self:center}.window-story{width:100%;height:auto!important;flex:none;gap:4px;padding:2px}.window-story .record{flex:none;overflow:visible;padding:6px 8px}.window-story .record p{font-size:12px;line-height:1.5;margin-top:4px}.window-story .record-head{font-size:10px;padding-bottom:3px}.window-story .bottom-bar{display:flex;height:30px;flex:none}.window-story .next-button{width:100%;font-size:10px}.window-story .action{min-height:36px;padding:5px 3px;font-size:11px}.window-toolbar{gap:6px}.window-toolbar #catalogBtn{width:26px;min-width:26px;height:26px;min-height:26px;padding:2px;background:none;border:0;box-shadow:none;color:#465a40}.window-toolbar #catalogBtn .pixel-icon{transform:scale(.7)}.window-toolbar #dayLabel{font-size:9px}.window-toolbar .species-menu{font-size:10px}.box-frame.minimized{height:auto}.box-frame.minimized>.window-content{display:none}
.launch-card{width:min(100%,400px)!important;padding-bottom:6px!important;overflow:hidden!important}.launch-close{display:grid;place-items:center;width:22px;height:22px;margin-left:8px;background:#b9c2a3;border:2px solid #d7dcbe;border-right-color:#4a6248;border-bottom-color:#4a6248;color:#344c34}.launch-card .empty-box{width:min(100%,calc(100dvh - 130px))!important;margin:4px 0!important;box-shadow:none!important;border:0;padding:0}.launch-card .title-links{margin:0!important;padding:0 4px!important;gap:5px}.launch-card .title-links button{flex:1;min-height:36px;padding:5px}.launch-card .window-title{flex:none}#drawerTabs{gap:10px}#drawerTabs button{white-space:nowrap}.zoom-tools button{height:24px;min-width:24px}.zoom-tools{gap:3px}
@media(min-width:900px),(orientation:landscape){.window-content{flex-direction:row;align-items:center}.window-story{width:40%;align-self:stretch;display:flex;justify-content:flex-end;min-width:0}.window-story .record{flex:1;overflow:hidden}.window-story .actions{grid-column:auto}.window-story .bottom-bar{grid-column:auto}.window-content>.habitat-viewport{max-width:59%}}
@media(max-height:650px){.window-story .record p{font-size:11px;line-height:1.4}.window-story .action{font-size:10px;min-height:32px}.window-title{height:25px}.window-toolbar{min-height:26px}.window-menu{min-height:24px}.window-story .record{padding:4px 6px}.window-story .bottom-bar{height:28px}}

/* Draw confirmation and endings use the same framed result modules. */
#arrivalCard,#endCard{gap:6px;padding-bottom:6px!important;width:min(100%,460px);max-height:calc(100dvh - 20px)}.result-panel{width:calc(100% - 10px);flex:none;border:2px solid #52674b;border-right-color:#c4ccac;border-bottom-color:#c4ccac;background:#334330;color:#d4d9b9;text-align:center}.panel-caption{padding:4px 7px;background:#536c4d;border-bottom:1px solid #273e2c;color:#c5cfaf;text-align:left;font-size:10px}.result-panel h2{font-size:20px;margin:5px 8px 10px;font-weight:400;color:#d4d9b9}#arrivalSpecimens{min-height:72px;height:80px;padding:0 6px;gap:0;flex-wrap:nowrap}#arrivalSpecimens .isopod{width:64px!important;height:64px!important}.prose-panel p{padding:0;margin:10px 12px;line-height:1.8;text-align:left;white-space:pre-line}#endSpecimen{height:68px;display:flex;align-items:center;justify-content:center;gap:8px}#endSpecimen .isopod{transform:none}.archive-status{display:flex;align-items:center;justify-content:space-between;width:calc(100% - 10px);padding:3px 8px;background:#b2bd9e;color:#3b5137;min-height:30px;font-size:10px}#endingCount{margin:0;font-size:10px}.archive-status #catalogBtn{min-width:26px;min-height:26px;height:26px;padding:0;background:none;border:0;box-shadow:none;color:#3c5536}.archive-status #catalogBtn .pixel-icon{transform:scale(.75)}.dialog-actions{width:calc(100% - 10px);display:flex}.dialog-actions .primary{width:100%;margin:0!important;padding:8px!important}#endCard #endingBody{margin:10px 12px;max-width:none}.afterword{background:#3a4a34}.afterword p{color:#bac9a7}
@media(max-height:650px){#arrivalCard,#endCard{gap:4px}.prose-panel p,#endCard #endingBody{font-size:11px;line-height:1.5;margin:7px 9px}.result-panel h2{font-size:18px;margin:4px 8px 7px}#endSpecimen{height:52px}#arrivalSpecimens{height:66px;min-height:66px}.dialog-actions .primary{padding:6px!important}.panel-caption{padding:3px 6px}}
#arrivalSpecimens .isopod{width:18%!important;max-width:64px;height:auto!important;aspect-ratio:1}

/* Credits retain the terminal frame and scroll within the drawer. */
.reference-page{overflow-wrap:anywhere}.reference-page h3:first-child{margin-top:4px}.reference-page blockquote{margin:24px 0 0;padding:0 0 0 12px;border-left:2px solid #82916b;color:#aebb98}.reference-page a:focus-visible{outline:2px solid #cbd2ae;outline-offset:3px}

/* Seven stable specimens remain visible on narrow arrival / ending cards. */
#arrivalSpecimens,#endSpecimen{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:0;width:100%;justify-items:center}#arrivalSpecimens .isopod,#endSpecimen .isopod{width:100%!important;max-width:56px;height:auto!important;aspect-ratio:1;min-width:0}

/* Compact observation controls; fixed drawer chrome keeps paging targets still. */
#drawer{height:min(720px,calc(100dvh - 24px));max-height:calc(100dvh - 24px)}
#drawerContent{flex:1;min-height:0;overflow-y:auto;scrollbar-gutter:stable}
#drawerTabs[hidden],#sourcesBtn[hidden]{display:none!important}
.species-card{content-visibility:visible;min-height:100%}
.species-card.unseen{text-align:initial;padding:0;display:block}
.specimen-id,.specimen-date{min-height:18px}
.specimen-names{min-height:148px}
.anonymous-note{min-height:110px}
.ending-note{min-height:100%;display:flex;flex-direction:column}
.ending-note h3{min-height:28px}.ending-note .last-line{margin-top:auto!important;padding-top:24px}
.ending-space{min-height:160px}
.status-row{display:flex;align-items:center;justify-content:space-between;gap:6px;flex-wrap:wrap;padding:3px 6px}
.status-row .instruments{display:flex;gap:6px;align-items:center;font-size:10px;padding:0;min-height:0;white-space:nowrap}
.time-sound{display:flex;align-items:center;gap:4px;margin-left:auto;white-space:nowrap}
#dayLabel{font-size:10px;margin:0}#soundBtn{position:static;width:28px;min-width:28px;height:26px;min-height:26px;padding:0;border:0;background:none;color:#465a40}
#soundBtn::after{display:none}#soundBtn .pixel-icon{transform:none}
.window-story .bottom-bar{gap:4px;height:34px}.window-story .next-button{flex:1;min-width:0;width:auto}
#journalBtn{display:grid;place-items:center;width:36px;min-width:36px;padding:0;height:34px;min-height:34px}
#journalBtn .pixel-icon{transform:none}
.habitat-library{position:absolute;bottom:8px;left:8px;z-index:5}
.habitat-library,.scope-switch-frame,#boxFrame .zoom-tools{background:#314330;padding:4px;border:2px solid #607354;box-shadow:none;gap:4px}
.habitat-library #catalogBtn,.scope-switch-frame :is(#scopeToggle,#scopeCenter),#boxFrame .zoom-tools button{display:grid;place-items:center;width:32px;min-width:32px;height:32px;min-height:32px;padding:0;border:2px solid #bed0a5;border-right-color:#637653;border-bottom-color:#637653;background:#97a785;color:#30492e;box-shadow:none;border-radius:0}
.habitat-library .pixel-icon,.scope-switch-frame .pixel-icon,#boxFrame .zoom-tools .pixel-icon{transform:none}
#boxFrame .zoom-tools{bottom:8px;right:8px}#zoomLevel{font-size:12px;min-width:28px;text-align:center}
#arrivalCard{padding-top:6px!important}
@media(max-width:430px){.status-row{gap:2px;padding:2px 4px}.status-row .instruments{font-size:9px;gap:4px}#dayLabel{font-size:9px}.time-sound{gap:2px}#soundBtn{width:24px;min-width:24px}}

/* Smaller centered habitat controls and a separate, content-sized notebook. */
.habitat-library,.scope-switch-frame,#boxFrame .zoom-tools{padding:3px;gap:3px}
.habitat-library #catalogBtn,.scope-switch-frame :is(#scopeToggle,#scopeCenter),#boxFrame .zoom-tools button{width:26px;min-width:26px;height:26px;min-height:26px}
#boxFrame .zoom-tools .pixel-icon{min-width:0}
#zoomLevel{font-size:11px;min-width:24px}
.status-row{min-height:24px;padding:1px 6px;line-height:1.2}
.status-row .instruments{font-size:11px;gap:5px;line-height:1.2}
#dayLabel{font-size:11px}.time-sound{gap:8px}
#soundBtn{width:18px;min-width:18px;height:20px;min-height:20px}
#drawer[data-mode="journal"]{height:fit-content;width:min(430px,calc(100% - 24px));margin:auto}
#drawer[data-mode="journal"] #drawerContent{flex:0 1 auto;scrollbar-gutter:auto}
#drawer[data-mode="journal"] .journal-paper{min-height:150px}
#actions{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}
@media(max-width:430px){.status-row{padding:1px 4px;gap:2px}.status-row .instruments{font-size:10px;gap:4px}#dayLabel{font-size:10px}.time-sound{gap:7px}}

#endCard .dialog-actions{gap:6px}#endCard .dialog-actions .primary{flex:1;width:auto;min-width:0}#endCard .ending-date{display:flex;gap:10px;align-items:center}#endCard #endingTitle{font-size:12px;min-width:0;line-height:1.4}

/* Mobile: keep rapid game input from becoming browser double-tap zoom. */
#game,#game *{touch-action:manipulation}
#game #habitat{touch-action:none}


/* Epilogue specimens and collected exuviae are separate archival modules. */
.specimen-result-panel #endSpecimen{border:0}
.molt-result-panel{overflow:hidden}
.end-molts-body{min-height:72px;display:flex;align-items:center;justify-content:center;padding:4px 8px}
.end-molts{display:block;margin:0 auto;max-width:100%;image-rendering:pixelated;opacity:1}
@media(max-height:650px){
 .end-molts-body{min-height:56px;padding-block:2px}
}

/* Interaction discovery is presented as a quiet continuation of the observation, never as tutorial chrome. */
.interaction-cue{min-height:22px;padding:3px 8px 2px;border-left:2px solid #758061;color:#9da88b;font-size:11px;line-height:1.55;letter-spacing:.02em;background:rgba(44,54,39,.46)}

.launch-card .window-title span{min-width:0;overflow-wrap:anywhere}


/* 2026-09 aquatic polish: habitat chooser stays inside the preview image.
   Keep the launch preview intrinsically square: the generic .empty-box rule above
   resets aspect-ratio to auto, so a percentage-height child otherwise collapses. */
.launch-card .empty-box{padding:0!important;aspect-ratio:1!important;height:auto!important;min-height:0}
.launch-card .empty-box>.habitat-viewport{position:relative!important;width:100%!important;height:100%!important;aspect-ratio:auto!important;overflow:hidden!important}
/* Shared left/right navigation control: one text glyph, no image asset. */
.pixel-nav-button{appearance:none;-webkit-appearance:none;display:grid!important;place-items:center!important;width:32px!important;min-width:32px!important;max-width:32px!important;height:32px!important;min-height:32px!important;margin:0!important;padding:0!important;border:2px solid #d5d9b9!important;border-right-color:#425841!important;border-bottom-color:#425841!important;border-radius:0!important;background:#b6bea0!important;color:#304630!important;box-shadow:1px 1px #203022!important;font-size:10px!important;font-weight:400!important;line-height:1!important;text-align:center!important}
.pixel-nav-button:hover:not(:disabled){background:#c0c7aa!important}
.pixel-nav-button:active:not(:disabled){border-color:#425841 #d5d9b9 #d5d9b9 #425841!important;box-shadow:none!important;transform:translate(1px,1px)}
.pixel-nav-button:disabled{opacity:.45}
.launch-card .title-habitat-cycle{position:absolute!important;z-index:18!important;bottom:8px!important;top:auto!important}
.launch-card .title-habitat-cycle.prev{left:8px!important;right:auto!important}
.launch-card .title-habitat-cycle.next{right:8px!important;left:auto!important}
@media(max-width:430px){.pixel-nav-button{width:30px!important;min-width:30px!important;max-width:30px!important;height:30px!important;min-height:30px!important}.launch-card .title-habitat-cycle{bottom:6px!important}.launch-card .title-habitat-cycle.prev{left:6px!important}.launch-card .title-habitat-cycle.next{right:6px!important}}

/* Archive mount label: a small museum card belongs to the specimen frame, not the prose below it. */
.specimen-tag{position:absolute;right:8px;bottom:8px;z-index:4;width:max-content;max-width:calc(100% - 16px);padding:4px 5px 5px;background:repeating-linear-gradient(0deg,rgba(75,70,49,.045) 0 1px,transparent 1px 4px),repeating-linear-gradient(90deg,rgba(255,255,235,.04) 0 1px,transparent 1px 7px),#c9c3a1;color:#454733;border:1px solid #ddd8b7;border-right-color:#77765b;border-bottom-color:#77765b;box-shadow:inset 1px 1px #e4dfbd,inset -1px -1px #aaa47f,2px 2px #586048;text-align:left;pointer-events:none;clip-path:polygon(0 0,100% 0,100% calc(100% - 3px),calc(100% - 3px) calc(100% - 3px),calc(100% - 3px) 100%,0 100%)}
.specimen-tag::before{content:'';display:block;height:1px;margin:0 0 3px;background:#77775c;box-shadow:0 3px rgba(255,255,230,.12);opacity:.58}
.specimen-tag::after{content:'';position:absolute;inset:2px;border:1px dotted rgba(92,91,67,.16);pointer-events:none}
.specimen-tag-row{display:grid;grid-template-columns:max-content max-content;column-gap:4px;align-items:start;padding:1px 0;border-top:1px dotted #8a896b;font-size:7px;line-height:1.28}
.specimen-tag-row:first-of-type{border-top:0}
.specimen-tag-label{color:#727359;white-space:nowrap}
.specimen-tag-value{font-weight:400;color:#40432f;overflow-wrap:anywhere;min-width:0}
.species-card[data-language="en"] .specimen-tag-row{font-size:6px}
.species-card[data-language="ja"] .specimen-tag-row{grid-template-columns:24px max-content;font-size:6px}
.species-card[data-language="ja"] .specimen-tag-value,.species-card[data-language="zh"] .specimen-tag-value,.species-card[data-language="en"] .specimen-tag-value,.species-card[data-language="isopod"] .specimen-tag-value{white-space:nowrap;overflow-wrap:normal}
@media(max-width:390px){.specimen-tag{right:6px;bottom:6px;width:max-content;max-width:calc(100% - 12px);padding:3px 4px 4px}.specimen-tag-row{font-size:6px;column-gap:3px}.species-card[data-language="ja"] .specimen-tag-row{grid-template-columns:24px max-content}}


/* Groundwater cave: light is generated on a small pixel canvas.
   The DOM aperture retains the torch control coordinates and accessibility state. */
.habitat-viewport.groundwater-observation{isolation:isolate}
.cave-observer-mask{
 --beam-x:50%;
 --beam-y:54%;
 position:absolute;
 left:var(--beam-x);
 top:var(--beam-y);
 z-index:3;
 width:34%;
 aspect-ratio:1;
 border-radius:50%;
 transform:translate3d(-50%,-50%,0);
 pointer-events:none;
 background:none;
 will-change:transform,left,top;
}
.cave-observer-mask[data-lights-out="true"]{
 width:1px;
 aspect-ratio:1;
 left:50%;
 top:50%;
 background:transparent;
}
.habitat-viewport.groundwater-observation .species-status,
.habitat-viewport.groundwater-observation .habitat-library,
.habitat-viewport.groundwater-observation .zoom-tools{z-index:6}
@media(prefers-reduced-motion:reduce){
 .cave-observer-mask{will-change:auto}
}

.cave-light{position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none;image-rendering:pixelated}
/* Light is painted on a small, nearest-neighbour canvas; this element retains control state. */
.cave-observer-mask,.cave-observer-mask[data-lights-out="true"]{background:none;box-shadow:none}

/* Cave controls retain the game's bevels and palette, with dedicated torch symbols. */
.groundwater-observation #habitat{cursor:grab}
#boxFrame .groundwater-observation #zoomReset{touch-action:none;cursor:move;width:34px;min-width:34px}
.groundwater-observation #zoomLevel{min-width:34px;font-size:10px}
.zoom-tools .torch-stick{display:block;position:relative;width:24px;height:24px;min-width:0;background:#34482f;box-shadow:inset 2px 2px #526647,inset -2px -2px #b9c3a0;clip-path:polygon(6px 0,18px 0,18px 2px,22px 2px,22px 6px,24px 6px,24px 18px,22px 18px,22px 22px,18px 22px,18px 24px,6px 24px,6px 22px,2px 22px,2px 18px,0 18px,0 6px,2px 6px,2px 2px,6px 2px)}
.torch-stick:before,.torch-stick:after{content:"";position:absolute;background:#849777}
.torch-stick:before{left:11px;top:3px;width:2px;height:18px}
.torch-stick:after{left:3px;top:11px;width:18px;height:2px}
.zoom-tools .torch-stick-knob{min-width:0;position:absolute;z-index:1;left:7px;top:7px;width:10px;height:10px;background:#a8b58f;box-shadow:inset 2px 2px #d3d9b7,inset -2px -2px #526647,2px 2px #34482f;transform:translate(var(--stick-x,0px),var(--stick-y,0px))}
.cave-observer-mask[data-lights-out="true"]{width:1px!important;background:none!important}
#arrivalSpecimens.cave-samples,#endSpecimen.cave-samples{grid-template-columns:repeat(4,minmax(0,1fr))}

/* Illustrated torch; generous invisible hit areas around small embedded controls. */
#boxFrame .groundwater-observation .zoom-tools{display:block;width:44px;height:114px;padding:0;left:11px;right:auto;bottom:10px;border:0;background:url('./assets/torch-control.svg?v=b259134ca6558a88cce77ebf1f96042785982de5') center/44px 114px no-repeat;box-shadow:none;image-rendering:pixelated}
#boxFrame .groundwater-observation .zoom-tools:before,#boxFrame .groundwater-observation .zoom-tools:after{content:none}
#boxFrame .groundwater-observation .zoom-tools button{position:absolute;left:0;display:grid;place-items:center;width:44px;min-width:44px;height:26px;min-height:26px;padding:0;border:0;background:none;color:#bdc9a5;box-shadow:none}
#boxFrame .groundwater-observation #zoomIn{top:37px}
#boxFrame .groundwater-observation #zoomReset{top:61px;width:44px;min-width:44px;height:26px;min-height:26px;touch-action:none;cursor:move}
#boxFrame .groundwater-observation #zoomOut{top:85px}
#boxFrame .groundwater-observation #zoomIn .pixel-icon,#boxFrame .groundwater-observation #zoomOut .pixel-icon{transform:scale(.5);filter:drop-shadow(0 2px #344b30)}
#boxFrame .groundwater-observation .torch-stick{width:14px;height:16px;background:#3e5638;box-shadow:inset 2px 2px #2d422d,inset -1px -1px #8a9d75;clip-path:polygon(3px 0,11px 0,11px 2px,14px 2px,14px 14px,11px 14px,11px 16px,3px 16px,3px 14px,0 14px,0 2px,3px 2px)}
#boxFrame .groundwater-observation .torch-stick:before,#boxFrame .groundwater-observation .torch-stick:after{content:none}
#boxFrame .groundwater-observation .torch-stick-knob{left:4px;top:5px;width:6px;height:6px;background:#97a782;box-shadow:inset 1px 1px #c1cbaa,inset -1px -1px #506747;transform:translate(calc(var(--stick-x,0px)*.5),calc(var(--stick-y,0px)*.5))}
#boxFrame .groundwater-observation .zoom-tools button:hover{color:#dedfc0}
#boxFrame .groundwater-observation .zoom-tools button:focus-visible{outline:1px dashed #c1cbaa;outline-offset:-5px}
#boxFrame .groundwater-observation #zoomLevel{display:none}
.reference-more{margin-top:12px}
.reference-more:not(.reference-more + .reference-more){margin-top:24px;padding-top:18px;border-top:1px solid #4f6241}

/* Override the shared compact zoom sizing only for the illustrated torch. */
#boxFrame .groundwater-observation .zoom-tools{padding:0!important;border-width:0!important;left:11px!important}
#boxFrame .groundwater-observation .zoom-tools button{width:44px!important;min-width:44px!important;height:26px!important;min-height:26px!important;border-width:0!important}

/* Small vertical instrument wheels: only the tread moves, with no idle animation. */
.petri-tools{position:absolute;z-index:6;left:8px;bottom:8px;display:flex;align-items:center;gap:5px;max-width:calc(100% - 60px);color:#d2d3b8}
.scope-switch-frame{flex:none}
.petri-tools #scopePanel{display:flex;align-items:center;gap:5px;background:none;border:0;padding:0;box-shadow:none;width:max-content;max-width:100%}
.scope-dials{display:flex;gap:5px}.scope-knob{width:24px}
.scope-dial,.petri-tools .scope-reset{position:relative;display:grid;place-items:center;width:24px;min-width:24px;height:50px;min-height:50px;padding:0;border:0;border-radius:0;background:url('./assets/scope-wheel.svg?v=b259134ca6558a88cce77ebf1f96042785982de5') center/24px 50px no-repeat;color:#c5ceab;box-shadow:none;image-rendering:pixelated;touch-action:none}
.scope-dial{cursor:ns-resize;user-select:none}
.wheel-well{position:relative;display:grid;place-items:center;overflow:hidden;width:18px;height:36px;background:#1c2d23;border:0;clip-path:polygon(2px 0,16px 0,16px 2px,18px 2px,18px 34px,16px 34px,16px 36px,2px 36px,2px 34px,0 34px,0 2px,2px 2px);pointer-events:none}
.wheel-tread{position:absolute;inset:-130px 0;background:url('./assets/scope-tread.svg?v=b259134ca6558a88cce77ebf1f96042785982de5') 0 0/18px 5px repeat-y;transform:translateY(var(--wheel-travel,0px));transition:transform 110ms steps(5,end)}
.wheel-well:after{content:"";position:absolute;inset:0;border-top:3px solid #17291f99;border-bottom:3px solid #17291f99;box-shadow:inset 0 3px #20362766,inset 0 -3px #20362766;pointer-events:none}
.wheel-symbol{position:relative;z-index:1;display:grid;place-items:center;width:14px;height:14px;background:#819573;border-top:1px solid #b2bf96;border-bottom:1px solid #2c462e;color:#2b452d}
.wheel-symbol .pixel-icon{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.5);transform-origin:center;pointer-events:none}
.wheel-scale{display:none;position:absolute;left:50%;top:-5px;width:20px;height:3px;transform:translateX(-50%);background:repeating-linear-gradient(to right,#6e805f 0 2px,transparent 2px 6px)}
[data-control="power"] .wheel-scale{display:block}.wheel-scale i{position:absolute;left:calc(var(--wheel-stop,0)*6px);width:2px;height:3px;background:#d2d3af}
.scope-dial[data-control="power"] .wheel-tread{transition:transform 220ms steps(13,end)}
.scope-dial.is-turning:not([data-control="power"]) .wheel-tread{transition:none}.scope-dial:hover .wheel-symbol{color:#182f20}.scope-dial.is-turning .wheel-symbol{background:#9cae89}
.petri-tools button:focus-visible{outline:2px solid #ece1ad;outline-offset:2px}
.petri-tools .scope-reset{height:24px;min-height:24px;background-size:24px 24px;cursor:pointer;flex:none;background-image:url('./assets/scope-reset.svg?v=b259134ca6558a88cce77ebf1f96042785982de5');color:#2b452d}
.scope-reset .pixel-icon{transform:scale(.5)}.scope-reset:active .pixel-icon{transform:translateY(1px) scale(.5)}.scope-reset:focus-visible{border-color:#c5ceab}
@media(prefers-reduced-motion:reduce){.wheel-tread,.scope-dial[data-control="power"] .wheel-tread{transition:none}}


/* Let short name blocks release their spare space on narrow archive pages. */
@media(max-width:600px){
 .species-card{min-height:0}
 .specimen-names{min-height:0;padding-bottom:8px}
}

#arrivalSpecimens.seaweed-samples,#endSpecimen.seaweed-samples{display:flex;justify-content:center;gap:clamp(18px,6vw,44px)}
.seaweed-samples>.isopod{flex:0 1 96px}

/* Explicit flat edges avoid native beveled corner raster artifacts at fractional zoom. */
.launch-card .title-links button{appearance:none;-webkit-appearance:none;border:0;border-radius:0;position:relative;box-shadow:inset 2px 2px #e0dfc3,inset -2px -2px #455c42;isolation:isolate}
.specimen-scale{position:absolute;top:7px;left:7px;z-index:3;display:flex;flex-direction:column;align-items:flex-start;gap:2px;color:#454d39;font-size:6px;line-height:1.3;text-align:left;background:#b4b89ce8;padding:2px;max-width:45%}
.specimen-scale-bar{display:block;height:5px;border:solid #454d39;border-width:0 1px 1px;margin:1px 0}
.specimen-size-note{position:absolute;left:7px;bottom:9px;z-index:4;max-width:38%;padding:5px 5px 4px;background:#d4cba6;color:#53503a;box-shadow:1px 2px #72745b;font-size:7px;line-height:1.45;text-align:left;white-space:pre-line;transform:rotate(-3deg)}
.specimen-size-note::before{content:'';position:absolute;width:16px;height:5px;top:-2px;left:10px;background:#e5ddbdad;border-left:1px solid #c1b98d80;border-right:1px solid #c1b98d80}
.oversized-specimen .specimen-mount{margin-top:25px;margin-bottom:28px}

.oversized-specimen .specimen-mount .isopod{transform:rotate(-82deg) scale(var(--mount-scale,2));transform-origin:center}

.giant-specimen .specimen-mount{margin-top:45px;margin-bottom:48px}

/* Arrival cards show one centered portrait per taxon outside the enclosure. */
.arrival-specimen-row{position:relative;width:100%}
#arrivalSpecimens.arrival-samples{display:flex;align-items:center;justify-content:center;gap:clamp(14px,5vw,30px);padding:0 38px}
#arrivalSpecimens.arrival-samples>.isopod{flex:0 1 72px;width:72px!important;max-width:72px;min-width:0}
#game .arrival-specimen-row>.pixel-nav-button{position:absolute;top:50%;transform:translateY(-50%);z-index:1;width:28px;height:28px;padding:0}
#arrivalPrev{left:6px}#arrivalNext{right:6px}

#game .arrival-specimen-row>button[hidden]{display:none!important}
#game .arrival-specimen-row>button:active:not(:disabled){transform:translate(1px,calc(-50% + 1px))}
