#captain-launch{position:fixed;left:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:9998;display:flex;align-items:center;gap:9px;border:2px solid white;border-radius:40px;background:#07354b;color:white;padding:5px 17px 5px 5px;font:700 15px/1.2 Arial,sans-serif;box-shadow:0 4px 18px #001d3040;cursor:pointer}
.captain-thumb{position:relative;display:block;overflow:hidden;width:46px;height:46px;border-radius:50%;background:#163c48;flex-shrink:0}.captain-thumb img{position:absolute!important;width:350%!important;max-width:none!important;height:auto!important;left:-113%;top:-12px}
#captain-dialog{box-sizing:border-box;width:min(440px,calc(100vw - 24px));max-width:calc(100vw - 24px);height:min(660px,calc(100dvh - 32px));max-height:calc(100dvh - 32px);padding:0;border:1px solid #2cb9c5;border-radius:18px;background:#f6fbfc;color:#123c50;font:16px/1.5 Arial,sans-serif;box-shadow:0 16px 60px #0006}
#captain-dialog[open]{display:flex;flex-direction:column}#captain-dialog::backdrop{background:#001e35a6}#captain-dialog header{display:flex;justify-content:space-between;gap:12px;padding:16px;background:#07354b;color:white}#captain-dialog h2{font-size:22px;margin:0;color:white}#captain-dialog header p{font-size:12px;margin:4px 0 0}#captain-close{align-self:start;background:transparent;color:white;border:0;font-size:30px;cursor:pointer;min-width:44px;min-height:44px}
#captain-messages{flex:1;overflow:auto;min-height:80px;padding:14px;overscroll-behavior:contain}.captain-answer,.captain-question{padding:12px;border-radius:12px;background:white;border:1px solid #d6e6ea;margin:0 0 12px;overflow-wrap:anywhere;white-space:pre-line}.captain-question{background:#d8f3f4;margin-left:26px}.captain-answer p,.captain-question p{margin:0}.captain-answer a{display:block;margin-top:10px;color:#006f86;text-decoration:underline}
#captain-form{padding:12px 16px;border-top:1px solid #d6e6ea}#captain-form label{display:block;font-weight:bold;font-size:13px;margin-bottom:4px}#captain-form select,#captain-form input{box-sizing:border-box;min-width:0;width:100%;font:16px Arial,sans-serif;border:1px solid #99b5c0;border-radius:7px;background:white;color:#123c50;padding:10px}#captain-form select{margin-bottom:10px}.captain-input{display:flex;gap:8px}#captain-form button,#captain-crew{background:#007b96;color:white;border:0;border-radius:7px;padding:10px 14px;cursor:pointer;min-height:44px}#captain-status{font-size:13px;margin:6px 0 0}#captain-dialog footer{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:8px 16px 14px}#captain-dialog footer a{font-size:13px;color:#006680}#captain-dialog :focus-visible,#captain-launch:focus-visible{outline:3px solid #efa92c;outline-offset:3px}
@media(max-width:480px){#captain-launch{left:8px;bottom:calc(12px + env(safe-area-inset-bottom));font-size:12px;padding-right:10px;gap:5px}.captain-thumb{width:36px;height:36px}.captain-thumb img{top:-9px}#captain-dialog{height:calc(100dvh - 24px)}}

/* Constrain the answer pane explicitly; keep form controls outside its scroll area. */
#captain-dialog[open]{display:grid!important;grid-template-rows:auto minmax(0,1fr) auto auto;overflow:hidden!important;height:min(720px,calc(100dvh - 24px));max-height:calc(100dvh - 24px);overscroll-behavior:none}
#captain-dialog>header,#captain-dialog>footer,#captain-form{min-height:0}
#captain-messages{box-sizing:border-box;min-height:0!important;height:100%;max-height:100%;overflow-y:scroll!important;overflow-x:hidden!important;overscroll-behavior-y:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#007b96 #d6e6ea}
#captain-messages::-webkit-scrollbar{width:9px}
#captain-messages::-webkit-scrollbar-thumb{background:#007b96;border-radius:8px}
#captain-messages::-webkit-scrollbar-track{background:#d6e6ea}
@media(max-height:560px){#captain-dialog[open]{grid-template-rows:auto minmax(90px,1fr) auto;overflow-y:auto!important}#captain-dialog header{padding:8px 12px}#captain-dialog header p{display:none}#captain-form{padding:8px 12px}#captain-dialog footer{padding:6px 12px}}

/* v0.5.81: visual viewport follows Android/iOS keyboards, unlike layout vh. */
@media(max-width:767px){
 #captain-dialog[open]{position:fixed!important;inset:auto!important;left:8px!important;top:calc(var(--h2oh-visible-top,0px) + 8px)!important;margin:0!important;width:calc(100% - 16px)!important;max-width:none!important;height:calc(var(--h2oh-visible-height,100dvh) - 16px)!important;max-height:calc(var(--h2oh-visible-height,100dvh) - 16px)!important;grid-template-rows:auto minmax(0,1fr) auto auto!important;overflow:hidden!important}
 #captain-dialog header{padding:10px 12px}
 #captain-dialog h2{font-size:20px;line-height:1.25}
 #captain-messages{padding:10px}
 #captain-form{padding:8px 12px}
 #captain-dialog footer{padding:6px 12px 10px;gap:8px}
 #captain-form input,#captain-form select{min-height:44px;font-size:16px}
 html.h2oh-mobile-keyboard #captain-dialog header p,
 html.h2oh-mobile-keyboard #captain-dialog footer{display:none!important}
 html.h2oh-mobile-keyboard #captain-dialog[open]{grid-template-rows:auto minmax(0,1fr) auto!important}
 html.h2oh-mobile-keyboard #captain-form select{margin-bottom:6px}
}

#captain-voice{display:flex;gap:14px;align-items:center;padding:14px 18px;background:#eaf7f9;border-bottom:1px solid #c6dfe5;flex:none}#captain-voice p{font-size:13px;line-height:1.45;margin:4px 0}#captain-voice button{margin:6px 4px 0 0;min-height:44px;padding:8px 12px;border-radius:20px;background:#064c68;color:#fff;border:0;cursor:pointer}#captain-voice button[hidden]{display:none!important}#captain-voice button:disabled{opacity:.6}#captain-voice button:focus-visible{outline:3px solid #e2b124;outline-offset:2px}.captain-voice-portrait{position:relative;flex:0 0 76px;width:76px;height:76px;border-radius:50%;border:3px solid #0c94a8;box-shadow:0 0 0 calc(var(--voice-level,0)*12px) #16adc530;transition:box-shadow .1s}.captain-voice-portrait img{width:100%;height:100%;object-fit:cover;border-radius:50%}.is-talking .captain-voice-portrait{transform:scale(calc(1 + var(--voice-level,0)*.025))}#captain-voice-status{color:#064c68;font-weight:600}#captain-voice audio{max-width:100%}@media(prefers-reduced-motion:reduce){.captain-voice-portrait{transition:none!important;transform:none!important;box-shadow:none!important}}@media(max-width:480px){#captain-voice{padding:10px;gap:10px}.captain-voice-portrait{flex-basis:54px;width:54px;height:54px}#captain-voice p{font-size:12px}} 
#captain-dialog{overflow-y:auto}#captain-transcript{padding:12px 16px;border-top:1px solid #c6dfe5;flex:none;max-height:40dvh;overflow-y:auto;overscroll-behavior:contain}#captain-transcript[hidden],#captain-transcript form[hidden]{display:none!important}#captain-transcript summary{font-weight:700;cursor:pointer;min-height:32px}#captain-transcript p,#captain-transcript label{font-size:12px;line-height:1.45}#captain-transcript label{display:block;font-weight:700;margin-top:8px}#captain-transcript textarea,#captain-transcript input{box-sizing:border-box;width:100%;min-width:0;padding:9px;border:1px solid #99b5c0;border-radius:6px;background:white;color:#123c50;font-size:16px}#captain-transcript button{min-height:44px;margin-top:8px;padding:8px 12px;background:#007b96;color:white;border:0;border-radius:7px;cursor:pointer}#captain-transcript textarea{white-space:pre-wrap}#captain-dialog:has(#captain-transcript[open]) #captain-messages{flex:0 0 130px}#captain-transcript-status{overflow-wrap:anywhere}

/* v0.5.95: all sections remain reachable with voice, fleet and transcripts. */
#captain-dialog[open],html.h2oh-mobile-keyboard #captain-dialog[open]{display:flex!important;flex-direction:column!important;overflow-y:auto!important;overscroll-behavior:contain}
#captain-dialog>header,#captain-dialog>footer,#captain-dialog>form,#captain-dialog>section,#captain-dialog>details{flex:0 0 auto}
#captain-messages{flex:1 0 180px!important;height:auto!important;min-height:180px!important;max-height:320px!important;overflow-y:auto!important}
.captain-voice-portrait{overflow:hidden}.captain-voice-portrait img{position:absolute!important;width:350%!important;max-width:none!important;height:auto!important;left:-113%;top:-20px;border-radius:0}
#captain-fleet{padding:12px 16px;border-bottom:1px solid #c6dfe5}#captain-fleet summary{cursor:pointer;font-weight:bold;min-height:32px}#captain-fleet p{font-size:13px}.captain-fleet-photos{display:grid;gap:12px;grid-template-columns:1fr}.captain-fleet-photos a{display:block;color:#064c68;font-weight:bold;background:white;border:1px solid #c6dfe5;border-radius:8px;overflow:hidden}.captain-fleet-photos img{display:block;width:100%;height:auto}.captain-fleet-photos span{display:block;padding:8px 12px}
@media(max-width:480px){.captain-voice-portrait img{top:-14px}#captain-voice{align-items:flex-start}}

/* Immersive scene: the website and its widgets stay behind the modal. */
#captain-dialog[open],html.h2oh-mobile-keyboard #captain-dialog[open]{position:fixed!important;inset:0!important;top:var(--h2oh-visible-top,0px)!important;left:0!important;width:100vw!important;max-width:none!important;height:var(--h2oh-visible-height,100dvh)!important;max-height:none!important;margin:0!important;border:0!important;border-radius:0!important;padding:0!important;display:block!important;overflow:hidden!important;background:#061c25;color:white;isolation:isolate}
#captain-dialog:fullscreen{width:100vw!important;height:100dvh!important;top:0!important}#captain-dialog::backdrop{background:#061c25}
#captain-scene{position:absolute;inset:0;z-index:-2;background:#123443 url('images/captain-ship-scene.png') center center/cover no-repeat}
#captain-scene:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#00121cdb,transparent 45%,transparent 85%,#00121c50)}
#captain-dialog>header{position:absolute;right:max(16px,env(safe-area-inset-right));top:max(12px,env(safe-area-inset-top));padding:0;background:transparent;z-index:10}
#captain-dialog>header>div,#captain-dialog>footer,#captain-fleet,.captain-voice-portrait,#captain-voice>div>p:first-child{display:none!important}
#captain-close{border-radius:50%;background:#001b30b8;width:48px;height:48px;font-size:32px}
#captain-voice{position:absolute;bottom:calc(72px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(680px,calc(100% - 32px));display:block;border:0;padding:10px 14px;border-radius:16px;background:#001e30df;color:white;text-align:center;box-sizing:border-box;max-height:45%;overflow:auto}
#captain-voice button,#captain-scene-tools button,#captain-controls-toggle{background:#032b3ddd;color:white;border:1px solid #b5e5e580;border-radius:24px;min-height:44px;padding:9px 16px;cursor:pointer;font:600 14px/1.25 Arial,sans-serif}
#captain-voice-status{color:#fff}#captain-voice-disclosure{max-width:570px;margin:4px auto 10px!important}#captain-dialog.captain-connected #captain-voice-disclosure{display:none}
#captain-scene-tools{position:absolute;bottom:calc(16px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;gap:10px;justify-content:center;white-space:nowrap}
#captain-controls-toggle{position:absolute;left:max(16px,env(safe-area-inset-left));top:max(14px,env(safe-area-inset-top));z-index:10}
#captain-messages{position:absolute;left:50%;transform:translateX(-50%);bottom:calc(236px + env(safe-area-inset-bottom));width:min(760px,calc(100% - 32px));height:auto!important;min-height:0!important;max-height:28%!important;overflow:auto!important;padding:0!important;pointer-events:auto;scrollbar-width:thin}
#captain-messages>*{display:none}#captain-messages>:last-child{display:block;background:#001e30df;border:0;color:white;border-radius:14px;text-align:center;padding:12px 18px;margin:0;font-size:17px;line-height:1.45}#captain-messages a{color:#a3f5ff}
#captain-form{display:none;position:absolute;left:50%;transform:translateX(-50%);bottom:calc(72px + env(safe-area-inset-bottom));width:min(680px,calc(100% - 32px));box-sizing:border-box;background:#001e30ed;color:white;border:1px solid #b5e5e580;border-radius:16px;padding:14px;max-height:45%;overflow:auto}
#captain-dialog.captain-typing #captain-form{display:block}#captain-dialog.captain-typing #captain-voice{display:none}#captain-form>label:first-child,#captain-yacht{display:none!important}
#captain-transcript{display:none!important;position:absolute;inset:80px max(16px,calc((100vw - 720px)/2)) calc(76px + env(safe-area-inset-bottom));max-height:none!important;padding:20px;background:#f6fbfc;color:#123c50;border:1px solid #bfdce6;border-radius:16px;box-shadow:0 10px 50px #0008;overflow:auto}
#captain-dialog.captain-show-transcript #captain-transcript{display:block!important}#captain-dialog.captain-show-transcript #captain-voice,#captain-dialog.captain-show-transcript #captain-messages{display:none!important}
#captain-dialog.captain-hide-controls #captain-voice,#captain-dialog.captain-hide-controls #captain-scene-tools,#captain-dialog.captain-hide-controls #captain-messages,#captain-dialog.captain-hide-controls #captain-form,#captain-dialog.captain-hide-controls #captain-transcript{visibility:hidden;pointer-events:none}
#captain-resume-sound{font-size:12px!important}#captain-voice-status:empty{display:none}
@media(max-width:767px){#captain-scene{background-position:47% center}#captain-messages>:last-child{font-size:15px}#captain-messages{bottom:calc(235px + env(safe-area-inset-bottom))}#captain-transcript{inset:72px 12px calc(76px + env(safe-area-inset-bottom))}#captain-voice{padding:10px}#captain-dialog header p{display:none}}
@media(max-height:500px){#captain-voice{bottom:62px;max-height:38%;width:60%}#captain-voice-disclosure{font-size:11px!important}#captain-messages{bottom:auto;top:18px;width:65%;max-height:24%!important}#captain-form{bottom:62px;max-height:40%}}

/* v0.5.98: session controls remain available above every conversation overlay. */
#captain-session-bar{position:absolute;z-index:11;top:calc(70px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);width:min(680px,calc(100% - 32px));box-sizing:border-box;text-align:center;background:#001e30ed;border-radius:14px;padding:6px 12px;max-height:24%;overflow:auto}
#captain-session-bar:has(#captain-voice-status:empty):not(:has(button:not([hidden]))){display:none}
#captain-session-bar button{min-height:44px;margin:3px;padding:8px 12px;border:1px solid #b5e5e580;border-radius:24px;background:#032b3d;color:white;font:600 13px Arial,sans-serif;cursor:pointer}
#captain-session-bar button[hidden]{display:none!important}#captain-session-bar p{font-size:13px;margin:5px;line-height:1.4}
#captain-dialog.captain-show-transcript #captain-transcript{top:calc(190px + env(safe-area-inset-top))}
#captain-form-guide{background:transparent!important;text-decoration:underline;padding:4px!important;font-size:12px;margin-top:5px}
#captain-dialog.captain-hide-controls:not(.captain-typing):not(.captain-show-transcript) #captain-session-bar{visibility:visible}
@media(max-height:500px){#captain-session-bar{top:10px;width:calc(100% - 240px);max-height:28%;}#captain-session-bar button{font-size:12px;padding:6px 9px}#captain-messages{top:34%;max-height:20%!important}#captain-dialog.captain-show-transcript #captain-transcript{top:32%;bottom:60px}}

/* v0.5.98 — lazy-loaded animated quarterdeck; conversation survives WebGL failure. */
#captain-scene.is-3d{background:#98d9e8}#captain-scene canvas{display:block;width:100%;height:100%;max-width:none;pointer-events:none}#captain-scene.is-3d:after{pointer-events:none;background:linear-gradient(0deg,#00121cd9,transparent 42%)}
#captain-scene-status{position:absolute;top:76px;left:50%;transform:translateX(-50%);padding:8px 14px;background:#002333dd;border-radius:14px;color:white;z-index:8;font-size:13px;text-align:center;width:min(500px,75%)}#captain-scene-status[hidden]{display:none}
#captain-close{display:flex!important;align-items:center;justify-content:center;padding:0!important;line-height:1!important;min-width:48px!important;max-width:48px!important;min-height:48px!important;max-height:48px!important;border-radius:50%!important}
#captain-session-bar{left:auto;right:16px;transform:none;top:78px;width:235px;max-height:30%}
@media(max-width:767px){#captain-session-bar{top:70px;right:10px;width:calc(100% - 20px);max-height:18%;padding:2px 6px}#captain-session-bar button{min-height:44px;margin:2px}#captain-session-bar p{font-size:12px}#captain-messages{max-height:20%!important}}
@media(max-height:500px){#captain-session-bar{top:68px;right:12px;width:200px;max-height:38%}#captain-messages{width:52%;left:32%}}
