@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#253b32;--muted:#7c877e;--accent:#52775b;--paper:#f4f4eb}*{box-sizing:border-box}body{margin:0;background:var(--paper);font-family:Manrope,Arial,sans-serif;color:var(--ink);overflow:hidden}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid #9bb35e;outline-offset:4px}header{height:100px;display:flex;align-items:center;padding:0 48px;gap:35px;position:relative;z-index:4}.logo{font-size:31px;letter-spacing:-1.8px;font-weight:800;text-decoration:none;color:var(--ink)}.logo>span:first-child{font-size:32px;color:#7b916b;padding-right:9px}.dot{color:#92a86e}.tagline{font-size:12px;color:var(--muted);border-left:1px solid #d4d8cb;padding-left:26px}header>button{margin-left:auto;border:1px solid #d5d9ce;border-radius:30px;padding:12px 20px;background:transparent;font-size:12px}main{height:calc(100dvh - 100px);position:relative;transition:margin-right .35s}main.open{margin-right:410px}.intro{position:absolute;left:48px;top:27px;z-index:2;pointer-events:none}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;display:flex;align-items:center;gap:8px}.eyebrow i,.legend i{width:6px;height:6px;border-radius:50%;background:#8ba66c}h1{font-size:clamp(28px,3vw,45px);line-height:1.16;letter-spacing:-1.8px;margin:20px 0 15px;font-weight:500}.intro p{font-size:12px;line-height:1.8;color:var(--muted)}.counter{position:absolute;right:48px;top:40px;display:flex;gap:12px;align-items:center;z-index:2}.counter b{font-size:43px;font-weight:400;letter-spacing:-3px}.counter span{font-size:9px;line-height:1.8;letter-spacing:1.4px;color:var(--muted)}#stage{position:absolute;inset:0 0 150px;touch-action:none}canvas{width:100%;height:100%;cursor:grab}canvas:active{cursor:grabbing}#loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#d5dfc7;font-size:13px}.marker{position:absolute;width:92px;height:78px;border:0;background:none;transform:translate(-50%,-80%);filter:drop-shadow(0 6px 4px #001e2077);transition:filter .2s;overflow:visible}.marker img{width:140px;height:100px;object-fit:contain;position:absolute;left:-24px;top:-14px}.marker::after{content:'';position:absolute;bottom:-4px;left:44px;width:7px;height:7px;background:#f1f1d6;border:2px solid #9db77b;border-radius:50%;box-shadow:0 0 0 5px #d9ecb12a}.marker:hover,.marker.selected{filter:drop-shadow(0 0 10px #e4f6a7)}.marker span{position:absolute;bottom:-30px;left:50%;transform:translateX(-50%);white-space:nowrap;background:#f8faec;padding:5px 10px;border-radius:5px;font-size:10px;opacity:0}.marker:hover span,.marker:focus-visible span{opacity:1}.tools{position:absolute;right:42px;top:38%;display:grid;gap:7px;padding:8px;border:1px solid #d9ddd0;border-radius:32px;background:#f8f8f1cc;z-index:2}.tools button{border:0;background:none;width:30px;height:30px;font-size:23px}.tools button[aria-pressed=true]{background:#dce7ce;border-radius:50%}.tools>span{height:1px;background:#ddd}.map-label{position:absolute;left:48px;top:53%;font-size:9px;letter-spacing:2px;writing-mode:vertical-rl;transform:rotate(180deg);color:#939d8e}.map-label span{padding:12px}.hint{position:absolute;bottom:155px;left:50%;transform:translateX(-50%);font-size:10px;color:#8b9587;white-space:nowrap}.hint span{margin:0 12px}.collection{position:absolute;bottom:49px;left:50%;transform:translateX(-50%);width:620px;max-width:calc(100% - 96px);z-index:2}.collection-head{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.7px;margin:0 3px 11px;color:#7c8876}#cards{display:flex;gap:9px}.card{display:flex;align-items:center;text-align:left;flex:1;min-width:0;background:#fafbf6;border:1px solid #dfe3d5;border-radius:13px;padding:9px 11px;gap:5px;transition:.2s}.card:hover{background:#e9efde;transform:translateY(-3px)}.card.active{border-color:#88a366;background:#e9efde}.card img{width:64px;height:53px;object-fit:contain;transform:scale(1.4)}.card strong{font-size:11px;font-weight:700;display:block}.card small{font-size:8px;color:#8a9584;display:block;margin-top:4px}.legend{position:absolute;bottom:17px;display:flex;gap:8px;align-items:center;justify-content:center;width:100%;font-size:9px;color:#8b9587}aside{position:fixed;right:0;top:100px;bottom:0;width:410px;background:#fafbf5;border-left:1px solid #e0e4d5;z-index:5;overflow:auto;box-shadow:-20px 0 60px #20352206}.panel-top{padding:18px 25px;display:flex;align-items:center;justify-content:space-between;font-size:9px;letter-spacing:1.5px}.panel-top button,#closeAbout{border:0;background:#ecf0e4;border-radius:50%;width:30px;height:30px}.portrait{height:190px;background:radial-gradient(ellipse,#e6edda,#f2f4e9);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.portrait img{height:240px;width:100%;object-fit:contain}.portrait span{position:absolute;bottom:12px;left:25px;font-size:9px;border:1px solid #cbd5bb;padding:5px 8px;border-radius:20px;background:#f4f7e9}.panel-body{padding:24px 26px}.panel-body h2{font-size:29px;letter-spacing:-1px;font-weight:500;margin:10px 0 6px}.panel-body>i{font-family:Georgia,serif;color:#8b947f;font-size:14px}.tabs{display:flex;gap:23px;margin-top:27px;border-bottom:1px solid #dde3d4}.tabs button{background:transparent;border:0;font-size:11px;padding:0 0 12px;color:#89947e}.tabs .active{border-bottom:2px solid #5f7e46;color:#30452b}.panel-body p{font-size:12px;line-height:1.9;color:#74806c}h3{font-size:9px;letter-spacing:1.6px;margin:23px 0 8px}.range-note,.small{font-size:10px!important;color:#97a08e;line-height:1.6}.video-empty{border:1px dashed #cad4bc;border-radius:10px;background:#eff2e7;text-align:center;padding:23px 12px}.video-empty b{display:block;font-size:12px;margin:8px}.video-empty button{border:0;background:transparent;text-decoration:underline;font-size:10px}iframe,video{width:100%;aspect-ratio:16/9;border:0;border-radius:9px}label{display:block;font-size:11px;margin:16px 0}input,textarea{display:block;width:100%;border:1px solid #cfd9c1;border-radius:6px;background:#fffef9;padding:11px;font:inherit;color:var(--ink);margin-top:7px}textarea{resize:vertical}.save{background:#35543c;border:0;border-radius:8px;padding:13px 18px;color:white;font-size:12px;width:100%}dialog{border:1px solid #d9e0cc;background:var(--paper);border-radius:18px;width:450px;padding:35px;color:var(--ink)}dialog::backdrop{background:#12261e70;backdrop-filter:blur(6px)}dialog h2{font-size:35px;font-weight:500;letter-spacing:-1.2px}dialog p{font-size:13px;line-height:1.8;color:#77836d}#closeAbout{position:absolute;right:18px;top:18px}[hidden]{display:none!important}@media(max-width:900px){header{padding:0 23px;height:80px}.tagline{display:none}main{height:calc(100dvh - 80px)}.intro{left:24px;top:15px}.intro p{font-size:10px}h1{font-size:29px}.counter{right:24px;top:22px}.counter b{font-size:30px}.counter span{font-size:8px}.map-label{left:20px}.tools{right:15px}.collection{max-width:calc(100% - 32px)}main.open{margin-right:0}aside{top:80px;width:360px}.hint{font-size:8px}.card{padding:8px}.card img{width:47px}.card strong{font-size:10px}}@media(max-width:550px){.intro h1{font-size:27px}.intro p{display:none}.counter{top:24px}.counter span{display:none}.counter b{font-size:25px}header .logo{font-size:27px}header>button{padding:9px 13px;font-size:10px}aside{width:100%;top:80px;left:0}.card{display:block;text-align:center}.card img{height:36px;width:65px}.card small{display:none}.card strong{font-size:9px;margin-top:7px}.collection{bottom:47px}.map-label{display:none}.hint{bottom:159px;max-width:70%;text-align:center;white-space:normal;line-height:1.8}.legend{font-size:8px}.tools{top:43%}.portrait{height:160px}}
/* Space globe direction */
:root{--ink:#edf3f4;--muted:#91a6b0;--accent:#83cda3;--paper:#050912}
body{background:radial-gradient(ellipse at 82% 84%,#20133355,transparent 50%),radial-gradient(ellipse at 18% 34%,#11233455,transparent 55%),#03070e}
#stars{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:-1}
header{height:82px;padding:0 36px}.logo{color:#f5f7f7}.logo>span:first-child{color:#9bdcb8}.dot{color:#9bdcb8}.tagline{border-color:#ffffff21;color:#91a6b0}header>button{border-color:#ffffff25;background:#07111b80;color:#d6e4e8}main{height:calc(100dvh - 82px)}
.intro{left:37px;top:23px}.intro .eyebrow{color:#9ab2bd}.eyebrow i,.legend i{background:#ebfff1;box-shadow:0 0 10px #c9ffe480}.intro h1{font-size:30px;letter-spacing:-1px;margin-top:14px}.intro p{font-size:11px;color:#8b9fa9}.counter{right:38px;top:22px}.counter span{color:#8b9fa9}.counter b{color:#e8f0f3}#stage{inset:0 0 92px}.map-label{color:#6a8290;left:35px;top:52%}
.tools{right:29px;border-color:#b7ccdc22;background:#09131dcc;backdrop-filter:blur(14px)}.tools>span{background:#b7ccdc22}.tools button{color:#c8dbe4}.tools button[aria-pressed=true]{background:#315c4f}.hint{bottom:125px;color:#8ca2af;text-shadow:0 1px 4px #000}.collection{bottom:38px;width:650px}.collection-head{color:#8fa6b3}.card{background:#0b1721e6;border-color:#c1d9e21f;backdrop-filter:blur(16px);padding:7px 11px;border-radius:10px}.card:hover{background:#17352f;border-color:#8bd4ad80}.card.active{background:#14352f;border-color:#93d7b3}.card small{color:#8aa2ad}.card strong{color:#e0ebee}.legend{bottom:10px;color:#839ba9}.legend i{background:white;box-shadow:0 0 8px #fff9}
.marker{width:105px;height:95px;filter:drop-shadow(0 3px 2px #0009)}.marker img{width:165px;height:120px;left:-30px;top:-15px}.marker::after{left:49px;bottom:-3px;width:8px;height:8px;background:white;border:1px solid white;box-shadow:0 0 0 5px #ffffff16,0 0 17px #ffffffa0}.marker:hover,.marker.selected{filter:drop-shadow(0 0 9px #ebffdbb0)}.marker.selected::after{box-shadow:0 0 0 7px #ffffff25,0 0 20px white}.marker span{background:#0b1929;border:1px solid #ffffff26;color:white;bottom:-30px}
aside{top:82px;background:#0a1520;border-color:#c2d6e51a;box-shadow:-20px 0 60px #0003}.panel-top{color:#9bb0bb}.panel-top button,#closeAbout{background:#1c2e3d;color:#dbe8ee}.portrait{background:radial-gradient(ellipse,#26453e,#10222c)}.portrait span{background:#142b30;color:#bfd3ce;border-color:#436653}.panel-body>i{color:#8da5b1}.tabs{border-color:#28404c}.tabs button{color:#8da5b1}.tabs .active{color:#c5f4d7;border-color:#98d1ae}.panel-body p{color:#a1b4be}.range-note,.small{color:#77919e}.video-empty{background:#101f2b;border-color:#395564}.video-empty button{color:#afdbbf}input,textarea{background:#101f2b;color:#e2edf0;border-color:#34505c}.save{background:#8bc9a5;color:#112e25;font-weight:700}dialog{background:#0a1520;color:#e2edf0;border-color:#314956}dialog p{color:#9db1bd}#status{color:#abdcb7}
@media(min-width:1400px){.intro h1{font-size:35px}}
@media(max-width:900px){header{height:76px;padding:0 23px}main{height:calc(100dvh - 76px)}.intro{left:24px;top:15px}.intro h1{font-size:25px}.counter{right:24px}.map-label{left:20px}.tools{right:15px}aside{top:76px}.collection{max-width:calc(100% - 32px)}.hint{bottom:132px}}
@media(max-width:550px){.intro h1{font-size:24px}.intro .eyebrow{font-size:8px}.card{padding:6px}.card img{height:40px}.card strong{font-size:9px}.collection{bottom:38px}.hint{bottom:139px}.marker{width:86px;height:78px}.marker img{width:140px;height:100px;left:-27px;top:-14px}.marker::after{left:40px}.counter{top:22px}aside{top:76px}}
#stars{z-index:0}main{z-index:1}
/* Atlas editor */
header{gap:22px}header>#manage{margin-left:auto;background:#14352f;border-color:#4e8b6b;color:#d6f4e3}header>#about{margin-left:0}button:disabled{cursor:default;opacity:.42}button.secondary,.secondary{border:1px solid #36525e;background:#112531;color:#c7dce4;border-radius:7px;padding:10px 12px;font-size:11px;cursor:pointer;text-align:center}.editor-actions{display:flex;gap:8px;align-items:center;margin:9px 0}.editor-actions>*{flex:1;min-width:0}#cancelChanges{width:100%;margin-top:9px}.coords{display:flex;gap:10px}.coords label{width:50%;margin:5px 0 12px}.editor-notice{font-size:10px;line-height:1.7;padding:11px 12px;background:#142b30;border:1px solid #2c4c44;border-radius:7px;color:#a7c6b7}.text-button{border:0;background:none;color:#c1a28f;text-decoration:underline;font-size:10px;padding:6px 0}input[type=file]{font-size:10px;padding:9px;max-width:100%}#status,#newStatus{font-size:11px;color:#addab8;line-height:1.7}#cards{overflow-x:auto;scrollbar-width:thin;padding:3px 2px 6px}#cards .card{flex:0 0 205px}#cards .card strong{overflow-wrap:anywhere}#cards .card small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}.collection{width:650px}.collection-head{margin-bottom:6px}.dialog-head{display:flex;align-items:center;gap:16px;justify-content:space-between}.dialog-head h2{font-size:26px;margin:8px 0 10px}.dialog-head>button{border:0;border-radius:50%;background:#1d303d;color:#d6e7eb;width:32px;height:32px;flex:none}dialog{max-height:85dvh;overflow:auto;width:540px;max-width:calc(100vw - 28px);padding:27px}#manager{width:640px}#animalList{margin:18px 0}.animal-row{display:flex;gap:12px;align-items:center;border-bottom:1px solid #233c47;padding:9px 0}.animal-row img{width:65px;height:48px;object-fit:contain}.animal-row span{font-size:12px;flex:1;overflow-wrap:anywhere}.animal-row button{border:1px solid #344e5b;background:#142632;border-radius:6px;font-size:10px;padding:8px;color:#bbd8c8}.animal-row button.delete{color:#d8a49a;border-color:#664740;background:#2e2424}.import-label{margin:0;display:flex;align-items:center;justify-content:center}.import-label input[hidden]{display:none!important}#newPreview{width:100%;height:170px;object-fit:contain;background:#112630;border-radius:8px}#cloudStatus{position:fixed;bottom:12px;right:18px;max-width:300px;font-size:9px;color:#82aa9c;z-index:8;background:#07111edb;border-radius:6px;padding:5px 8px;pointer-events:auto}#cloudStatus.error{color:#f5b7a3}#cloudStatus button{border:0;background:transparent;color:#edf7ed;font-size:10px;text-decoration:underline;margin-left:8px}#toast{position:fixed;left:50%;bottom:145px;transform:translateX(-50%);max-width:calc(100% - 32px);width:max-content;z-index:30;padding:12px 18px;border-radius:8px;border:1px solid #4c7664;background:#102a23f5;box-shadow:0 5px 35px #0007;font-size:12px;color:#d7efe2;line-height:1.6}#mapToolbar{position:fixed;bottom:40px;left:50%;transform:translateX(-50%);width:min(790px,calc(100% - 36px));z-index:12;border:1px solid #517767;background:#091b20f2;backdrop-filter:blur(15px);border-radius:12px;padding:14px 16px;box-shadow:0 8px 35px #0008}#mapInstructions{font-size:12px;line-height:1.6;margin:0 0 12px;color:#d5e7e2}.map-buttons{display:flex;flex-wrap:wrap;gap:7px}.map-buttons button{border:1px solid #375860;background:#132e36;color:#b5d1d3;font-size:10px;border-radius:5px;padding:9px 10px}.map-buttons button.active,.map-buttons #backToCard{background:#a0d4b6;color:#122d23;border-color:#a0d4b6}body.map-edit #panel,body.map-edit .intro,body.map-edit .counter,body.map-edit .collection,body.map-edit .hint,body.map-edit .legend{display:none!important}body.map-edit main.open{margin-right:0}body.map-edit #stage{bottom:115px}body.map-edit #rotate{opacity:.3}body.map-edit #toast{bottom:210px}body:has(#panel:not([hidden])) #cloudStatus{right:22px;bottom:5px}#edit .save{position:sticky;bottom:0;box-shadow:0 -7px 20px #0a1520}#edit>label:first-of-type{margin-top:13px}
@media(max-width:900px){header{gap:12px}.tagline{display:none}#cloudStatus{right:10px;bottom:5px;font-size:8px;max-width:220px}.legend{bottom:24px}.collection{bottom:53px}.hint{bottom:145px}}
@media(max-width:550px){header{gap:8px;padding:0 17px}header>.logo{font-size:24px}header>.logo>span:first-child{font-size:25px;padding-right:4px}header>#manage,header>#about{font-size:9px;padding:9px 11px}#cards .card{flex-basis:130px}#cards .card img{width:70px}#cards .card small{display:none}.collection{bottom:54px}.legend{font-size:7px;bottom:31px}.hint{bottom:154px}#cloudStatus{max-width:calc(100% - 25px)}#mapToolbar{bottom:35px;padding:12px}.map-buttons button{font-size:9px;padding:8px}#mapInstructions{font-size:10px}body.map-edit #stage{bottom:135px}.animal-row{gap:6px}.animal-row img{width:45px}.animal-row button{padding:7px;font-size:9px}dialog{padding:21px}.editor-actions{flex-wrap:wrap}#toast{bottom:165px;font-size:11px}#panel{padding-bottom:22px}}
#penRange{border-color:#9a764b;color:#ffe0af;background:#352a1f}#mapToolbar [data-mode=pen]{border-color:#997246;color:#f2d2a2}#mapToolbar [data-mode=pen].active{background:#f0cc91;color:#342515}#smoothPoint,#cornerPoint,#smoothPolygon{border-color:#735c3e;color:#f0d4a8}body.map-edit #mapToolbar{max-height:35dvh;overflow:auto}
.inat-box{border:1px solid #3a7356;border-radius:10px;padding:14px;background:linear-gradient(140deg,#14382a,#10252b);margin:12px 0 16px}.inat-title{color:#d6f1d6;font-size:13px;font-weight:700}.inat-box label{margin:12px 0}.inat-box .save{position:static!important;box-shadow:none!important}#inatStatus{font-size:11px;line-height:1.7;color:#e6d4ac;margin-bottom:0}#inatAttribution a,#rangeNote a{color:#a4d6b6;text-decoration:underline;overflow-wrap:anywhere}#inatAttribution a{font-size:11px}#manualRanges{border-top:1px solid #2e4850;padding-top:12px}#manualRanges summary{cursor:pointer;font-size:11px;color:#9eb3bb;margin-bottom:10px}#manualRanges[open] summary{color:#d1e8db}
.range-warning{color:#f0c289!important;background:#382b1d;border:1px solid #6d5232;padding:9px;border-radius:6px}

/* Keep the surrounding page quiet; retain the original globe markers and animal cards. */
header{position:fixed;inset:18px 18px auto auto;width:42px;height:42px;padding:0;z-index:6;pointer-events:none}
header .logo,header .tagline,header #about,.intro,.counter,.map-label,.hint,.legend,.tools{display:none!important}
header>#manage{pointer-events:auto;margin:0;width:42px;height:42px;padding:0;border:1px solid #ffffff18;background:#0c141a80;color:#aab5bd;font-size:22px;border-radius:50%;backdrop-filter:blur(12px)}
header>#manage:hover{color:white;border-color:#ffffff50}
main{height:100dvh}#stage{inset:0 0 140px}aside{top:0}
#cloudStatus{display:none}#cloudStatus.error,body:has(#edit:not([hidden])) #cloudStatus,body:has(#manager[open]) #cloudStatus{display:block}
body.map-edit .tools{display:grid!important}
body:has(#panel:not([hidden])) header{display:none}
@media(max-width:900px){main{height:100dvh}aside{top:0}}
@media(max-width:550px){header{inset:12px 12px auto auto}header>#manage{width:36px;height:36px;padding:0;font-size:21px}aside{top:0}}

/* Animal collection: muted mint scrollbar, soft white selection. */
#cards{scrollbar-width:thin;scrollbar-color:#628e7d #101e28;padding-bottom:10px}
#cards::-webkit-scrollbar{height:6px}
#cards::-webkit-scrollbar-track{background:#101e28;border-radius:999px}
#cards::-webkit-scrollbar-thumb{background:#628e7d;border-radius:999px;min-width:28px}
#cards::-webkit-scrollbar-thumb:hover{background:#87b19e}
#cards::-webkit-scrollbar-button{display:none;width:0;height:0}
#cards::-webkit-scrollbar-corner{background:transparent}
#cards .card:hover{background:#ffffff0b;border-color:#ffffff50}
#cards .card.active{background:#ffffff12;border-color:#f3f6f7b3;box-shadow:0 0 12px #ffffff0b}
#cards .card.active strong{color:#fff}
.marker:hover,.marker.selected{filter:drop-shadow(0 0 9px #ffffffb0)}
#cards .card:focus-visible,.marker:focus-visible{outline-color:#eef3f5}

/* Graphite navigation and a brighter white selection. */
#cards{scrollbar-color:#53616e #101c25}
#cards::-webkit-scrollbar-track{background:#101c25}
#cards::-webkit-scrollbar-thumb{background:#53616e}
#cards::-webkit-scrollbar-thumb:hover{background:#72818e}
#cards .card.active{background:#ffffff1c;border-color:#fff;box-shadow:0 0 0 1px #ffffff26,0 0 16px #ffffff16}
.marker:hover,.marker.selected{filter:drop-shadow(0 0 6px #fff) drop-shadow(0 0 12px #ffffff90)}
#stars{transition:opacity .2s}
body.near-map{background:#03070e}
body.near-map #stars{opacity:0;visibility:hidden}
/* Black Archive sidebar; the hero is the owner's PNG, never a stock photograph. */
#panel{background:#080a0c;border-left:1px solid #ffffff24;color:#f6f7f8;scrollbar-width:thin;scrollbar-color:#59616b #101316}
#panel .panel-top{position:relative;z-index:1;min-height:52px;padding:10px 22px;background:#830b1c;color:#fff;border-bottom:1px solid #ffffff18}
#panel #category{font-size:10px;font-weight:800;letter-spacing:2px;text-transform:uppercase}
#panel #close{width:32px;height:32px;border:1px solid #ffffff55;background:transparent;color:#fff;border-radius:0}
#panel .portrait{height:265px;background:radial-gradient(ellipse at 50% 65%,#252a2e,#101315 60%,#080a0c);overflow:hidden}
#panel .portrait img{width:100%;height:100%;object-fit:contain;padding:12px;transform:none;filter:drop-shadow(0 14px 12px #0007)}
#panel .portrait img.original-character{transform:scale(1.65)}
#panel .panel-body{padding:22px 24px 30px}
#panel .species-heading h2{font-family:Impact,'Arial Narrow',Manrope,sans-serif;font-size:38px;line-height:1.07;font-weight:800;letter-spacing:-1px;margin:0 0 8px;overflow-wrap:anywhere;color:#fff}
#panel #latin{display:block;font-family:Georgia,serif;font-size:17px;color:#c6cbd1;line-height:1.5}
#panel #region{display:block;border-top:1px solid #ffffff2b;margin-top:15px;padding-top:13px;font-size:10px;letter-spacing:1px;line-height:1.7;color:#d1d5da}
#panel .tabs{margin-top:23px;border-color:#ffffff25;gap:24px}
#panel .tabs button{font-size:12px;color:#9ca5ae}
#panel .tabs button.active{color:#fff;border-color:#fff}
#panel .panel-body p{color:#cbd0d6;font-size:13px;line-height:1.85;white-space:pre-line}
#panel .story-section{padding:18px 0;border-bottom:1px solid #ffffff25}
#panel .story-section:last-child{border:0;padding-bottom:0}
#panel .story-section h3{font-size:11px;font-weight:800;letter-spacing:2.4px;margin:0 0 14px;color:#f5f6f7}
#panel .story-section p{margin:0 0 10px}
#panel .range-note,#panel .small{color:#9ba4ad}
#panel .video-empty{border:1px dashed #454d55;border-radius:2px;background:#13171b;padding:24px 10px;color:#e5e8ec}
#panel .video-empty button{color:#e1e5eb}
#panel iframe,#panel video{border-radius:2px}
#panel input,#panel textarea{background:#14181c;border-color:#3a424a;color:#f1f3f5}
#panel input:focus,#panel textarea:focus{outline:1px solid #b7bec6;border-color:#b7bec6}
#panel .save{background:#850d22;color:#fff;font-weight:700}
#panel .editor-notice{background:#19191d;border-color:#454047;color:#d4cdd0}
#panel #edit .save{box-shadow:0 -7px 20px #080a0c}
#panel .inat-box{background:#10171a;border-color:#3c4e50}
.photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.photo-tile{display:block;aspect-ratio:4/3;overflow:hidden;border:1px solid #ffffff21;border-radius:2px;background:#161a1f;padding:0}
.photo-tile img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .2s}
.photo-tile:hover img{transform:scale(1.04)}
.photo-tile:focus-visible{outline-color:#fff}
.photo-edit-row{background:#111519;border:1px solid #353d45;border-radius:5px;padding:12px;margin:12px 0}
.photo-edit-head{display:flex;align-items:center;gap:7px}
.photo-edit-head img{width:76px;height:58px;object-fit:cover;margin-right:auto;border-radius:2px}
.photo-edit-head button.secondary{font-size:10px;padding:7px}
.photo-edit-row label{font-size:10px;margin:12px 0}
.photo-upload{border:1px dashed #545d67;padding:12px;border-radius:4px}
#photoViewer{width:min(960px,calc(100vw - 28px));max-height:94dvh;padding:0;background:#090c10;color:#f6f8fa;border:1px solid #ffffff40;border-radius:4px}
#photoViewer::backdrop{background:#000c;backdrop-filter:blur(8px)}
.photo-viewer-top{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;font-size:12px;color:#c0c7cf}
#closePhoto{width:32px;height:32px;border:1px solid #ffffff45;background:transparent;color:#fff;font-size:18px}
#fullPhoto{display:block;width:100%;height:65dvh;max-height:65dvh;object-fit:contain;background:#030507}
.photo-viewer-bottom{padding:14px 22px 20px}
#photoCaption{font-size:14px;color:#f1f4f7;line-height:1.7;white-space:pre-line;margin:10px 0}
#photoCredits p{font-size:12px;line-height:1.6;margin:5px 0;color:#b7c0c9}
#photoCredits a{color:#e4edf5;text-decoration:underline;overflow-wrap:anywhere}
.photo-nav{display:flex;justify-content:flex-end;gap:8px}
.photo-nav button{background:#1b232b;border:1px solid #54616e;color:#fff;font-size:18px;border-radius:3px;padding:6px 14px}
@media(max-width:550px){#panel .portrait{height:240px}#panel .species-heading h2{font-size:34px}#panel .panel-body{padding:20px}#fullPhoto{height:58dvh;max-height:58dvh}}

/* The globe continues behind the floating animal collection. */
#stage,body.map-edit #stage{inset:0}
body.near-map .collection{background:transparent;box-shadow:none;backdrop-filter:none}
body.near-map #cards{background:transparent;scrollbar-color:#647380 transparent}
body.near-map #cards::-webkit-scrollbar-track{background:transparent}
body.near-map #cards .card{background:transparent;border-color:transparent;backdrop-filter:none;box-shadow:none}
body.near-map #cards .card:hover{background:#ffffff0a;border-color:#ffffff70}
body.near-map #cards .card.active{background:#ffffff0a;border-color:#fff;box-shadow:0 0 0 1px #ffffff26,0 0 12px #ffffff12}
body.near-map #cards .card strong,body.near-map #cards .card small,body.near-map .collection-head{text-shadow:0 1px 4px #000,0 0 8px #0008}
#gpkgChoiceBox{margin:12px 0;padding:12px;border:1px solid #596775;border-radius:5px;background:#121a21}
#gpkgLayerChoice{display:block;width:100%;margin-top:7px;border:1px solid #586572;background:#0c1218;color:#f1f4f7;padding:10px;font:inherit;font-size:11px;border-radius:4px}
#gpkgChoiceBox button{margin-right:8px;margin-top:5px}

/* Avoid resizing/repainting the full globe on every frame of panel opening. */
main{transition:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Readable species titles and a soft gray stage for transparent characters. */
#panel .species-heading h2{font-family:Manrope,Arial,sans-serif;font-size:30px;font-weight:700;letter-spacing:0;line-height:1.3;text-shadow:none;font-stretch:normal}
#panel .portrait{background:radial-gradient(ellipse at 50% 55%,#62666a 0%,#4b5055 65%,#3f4449 100%)}
#panel .inat-title{color:#f1f3f5;font-weight:700;line-height:1.6}
#panel label{color:#e2e6eb;line-height:1.6}
#panel .small,#panel .range-note{color:#b9c1ca;line-height:1.8}
.animal-row .delete{white-space:normal;min-width:64px}

/* Characters share the globe drag gesture; images never start native dragging. */
.marker{touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab}.marker:active{cursor:grabbing}.marker img{pointer-events:auto;user-select:none;-webkit-user-drag:none}.marker span{pointer-events:none;user-select:none}

#cards{cursor:grab;user-select:none;touch-action:pan-x}#cards.dragging,#cards.dragging .card{cursor:grabbing}#cards img{user-select:none;-webkit-user-drag:none}#cards.dragging .card{transform:none}

/* Taxonomic colors, unrelated to conservation status. */
#panel .panel-top{background:#414b55}
#panel[data-category="mammal"] .panel-top{background:#3e5367}
#panel[data-category="bird"] .panel-top{background:#346963}
#panel[data-category="insect"] .panel-top{background:#566b50}
#panel[data-category="fish"] .panel-top{background:#57516e}

#photoCaption{white-space:pre-line}

#editorPhotos{margin:22px 0;border:1px solid #ffffff20;border-radius:12px;padding:0 14px}#editorPhotos>summary{padding:16px 0;cursor:pointer;color:#dbe2e7;font-size:12px;font-weight:700}#editorPhotos[open]{padding-bottom:14px}#editorPhotoCount{color:#aab7c0}#stage .marker{touch-action:none}

/* Mobile animal sheet: map first, details on demand. */
#sheetHeader{display:none}
@media(max-width:700px){
 #panel{left:0;right:0;top:auto;bottom:0;width:100%;height:calc(128px + env(safe-area-inset-bottom,0px));max-height:calc(100dvh - 24px);padding:0 0 env(safe-area-inset-bottom,0px);border:1px solid #ffffff24;border-bottom:0;border-radius:20px 20px 0 0;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 -12px 40px #0005;transition:height .28s ease}
 #panel[data-expanded="true"]{height:calc(100dvh - 64px)}
 #sheetHeader{display:block;flex:none;touch-action:none}
 #sheetGrip{display:flex;align-items:center;justify-content:center;width:100%;height:30px;border:0;background:transparent}
 #sheetGrip span{width:42px;height:4px;border-radius:4px;background:#77828d}
 .sheet-summary{display:flex;align-items:center;gap:10px;padding:0 14px 14px;min-height:84px}
 #sheetPortrait{width:62px;height:68px;object-fit:contain;flex:none}
 .sheet-names{flex:1;min-width:0}.sheet-names strong{display:block;font-size:14px;line-height:1.35;overflow-wrap:anywhere}.sheet-names i{display:block;font-size:10px;color:#aeb8c3;margin-top:4px;overflow-wrap:anywhere}
 #sheetMore{border:1px solid #ffffff30;border-radius:9px;background:#ffffff0c;color:#edf1f5;padding:10px 9px;font-size:11px;flex:none}
 #sheetClose{align-self:flex-start;border:0;background:none;color:#c2cbd3;min-width:30px;min-height:36px;font-size:17px}
 #panelContent{overflow-y:auto;overscroll-behavior:contain;min-height:0;flex:1;scrollbar-width:thin;scrollbar-color:#59616b transparent;-webkit-overflow-scrolling:touch}
 #panel[data-expanded="false"] #panelContent{display:none}
 #panel .panel-top{min-height:35px;padding:9px 20px}#panel .panel-top #close{display:none}
 #panel .portrait{height:190px}#panel .panel-body{padding:18px 20px 30px}
 body.animal-sheet .collection{bottom:calc(150px + env(safe-area-inset-bottom,0px))}body.animal-sheet .legend,body.animal-sheet .hint{display:none}body.animal-sheet #cloudStatus{bottom:calc(130px + env(safe-area-inset-bottom,0px))}
 main.open{margin-right:0}
}
@media(prefers-reduced-motion:reduce){#panel{transition:none}}

@media(max-width:700px){
 #panel{overflow:clip}
 #panel[data-dragging="true"]{transition:none}
 #panel[data-dragging="true"] #panelContent{display:block}
 #sheetGrip{height:38px;touch-action:none;user-select:none;-webkit-user-select:none;cursor:ns-resize}
 #sheetGrip span{pointer-events:none}
 .sheet-summary{min-height:76px}
}

/* Anchor the sheet to the browser's visible viewport, independently of map zoom. */
#panelViewport{display:contents}
@media(max-width:700px){
 html,body{overflow:clip;overscroll-behavior:none}
 #panelViewport{display:block;position:fixed;inset:0 auto auto 0;width:100%;height:100dvh;z-index:20;pointer-events:none;overflow:clip;isolation:isolate}
 #panelViewport #panel{position:absolute;inset:auto 0 0;width:100%;pointer-events:auto;max-height:calc(100% - 24px);margin:0;transform:none}
 #panelViewport #panel[data-expanded="true"]{height:calc(100% - 64px)}
}

.photo-nav button{display:inline-flex;align-items:center;justify-content:center;width:46px;height:38px;padding:0;flex:none}.photo-nav svg{display:block;flex:none;pointer-events:none}#prevPhoto svg{transform:rotate(180deg)}

/* Public pages have viewing controls only. Every write is also owner-checked by the server. */
#adminActions{display:none}body:not([data-editor="true"]) header,body:not([data-editor="true"]) [data-tab="edit"],body:not([data-editor="true"]) #edit,body:not([data-editor="true"]) #manager,body:not([data-editor="true"]) #newAnimal,body:not([data-editor="true"]) #cloudStatus,body:not([data-editor="true"]) #mapToolbar{display:none!important}
body[data-editor="true"] #adminActions{position:fixed;top:18px;left:18px;z-index:7;display:flex;align-items:center;gap:12px;flex-wrap:wrap;max-width:calc(100vw - 90px);padding:10px 12px;border:1px solid #ffffff24;border-radius:12px;background:#0c151eea;color:#dce6ee;font-size:11px}#publishAtlas{padding:10px 12px;border:0;border-radius:7px;background:#c5d8e4;color:#102330;font-size:11px;font-weight:700}#adminActions a{color:#c5d5e2;text-decoration:none}#publishStatus{color:#9eb4c5;font-size:10px;max-width:280px}body.map-edit #adminActions{display:none!important}
@media(max-width:700px){body[data-editor="true"] #adminActions{top:10px;left:10px;padding:7px;gap:8px;max-width:calc(100vw - 66px)}#publishAtlas{font-size:10px;padding:9px}#adminActions a{font-size:10px}#publishStatus{flex-basis:100%;font-size:9px}}

