@font-face{font-family:'Samaritan Magda';src:url('/video-test/samaritan-font.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
:root{--sam-bg:#f8f8f8;--sam-ink:#121212;--sam-red:#fb0010;--sam-line-extra:9px;--sam-mono:'Samaritan Magda','Courier New','PingFang SC','Microsoft YaHei',monospace}
.samaritan-gate{margin:0;background:var(--sam-bg);color:var(--sam-ink);font-family:var(--sam-mono)}
.sam-screen{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;width:100%;height:100dvh;box-sizing:border-box;background:var(--sam-bg) url('/video-test/samaritan-grid.svg') center/cover no-repeat;color:var(--sam-ink);font-family:var(--sam-mono);text-shadow:none!important}
.sam-auth{position:relative;width:min(1050px,calc(100vw - 44px));text-align:center}
.sam-readout{display:flex;flex-direction:column;align-items:center;text-align:center;width:100%}
.sam-word{font-family:var(--sam-mono);font-size:clamp(21px,2.175vw,34.5px);font-weight:400;line-height:1.35;letter-spacing:.02em;white-space:nowrap;min-height:46.5px;color:var(--sam-ink);max-width:calc(100vw - 38px)}
.sam-line{height:3px;max-width:calc(100vw - 44px);width:52.5px;background:var(--sam-ink);margin:0 auto 19.5px;transition:width .17s ease}
.sam-triangle{width:0;height:0;border-left:12px solid transparent;border-right:12px solid transparent;border-bottom:22.5px solid var(--sam-red);animation:sam-breathe 2.6s ease-in-out infinite}
.sam-running .sam-triangle{opacity:0;animation:none}
@keyframes sam-breathe{0%,100%{opacity:.22}50%{opacity:1}}
.sam-form{position:absolute;top:calc(100% + clamp(76px,14vh,150px));left:50%;transform:translateX(-50%);width:min(260px,calc(100vw - 96px));margin:0;text-align:center}
.sam-form input{box-sizing:border-box;width:100%;height:52px;padding:9px 3px;border:0;border-bottom:1px solid #dedede;border-radius:0;background:transparent;color:var(--sam-ink);font:19.5px var(--sam-mono);letter-spacing:.04em;text-align:center;box-shadow:none}
.sam-form input::placeholder{color:#aaa}.sam-form input:focus{outline:0;border-bottom-color:var(--sam-ink)}
.sam-form [role=status]{color:#bf0010;font:18px/1.7 var(--sam-mono);min-height:42px;text-align:center;margin:21px 0 0}
.sam-sr{position:absolute!important;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.sam-error{width:min(780px,calc(100vw - 44px));text-align:center}.sam-error p{font:19.5px/1.7 var(--sam-mono);color:#777}.sam-error a,.sam-screen button{background:transparent;border:0;border-bottom:1px solid #aaa;border-radius:0;padding:12px 15px;color:#222;font:18px var(--sam-mono);cursor:pointer;text-shadow:none}
html.stream,html.stream body.stream{background:#f8f8f8!important;color:#121212}
html.stream #modal-overlay:has(.sam-screen){background:transparent!important}
html.stream #modal-parent:has(.sam-screen){background:transparent!important;border:0!important;box-shadow:none!important;max-width:none!important;padding:0!important;width:100%}
.sam-screen .modal-video-connect-options{position:relative;margin-top:45px;justify-content:center;gap:36px;background:transparent}
.sam-screen .modal-video-connect-debug{font:16.5px/1.5 var(--sam-mono);white-space:pre-wrap;overflow:auto;max-height:25vh;max-width:1050px;text-align:left;background:#fff;color:#555;border:1px solid #ddd;padding:21px}
.sam-screen>div{width:min(1170px,calc(100vw - 36px));text-align:center}.sam-screen p{color:#777;text-shadow:none;font:19.5px/1.7 var(--sam-mono)}
/* A dedicated rail leaves the desktop itself unobscured. Pointer mapping uses
   the renderer's actual bounding rectangle, including this reserved margin. */
html.stream .video-stream{left:calc((100vw - 54px)/2)!important;max-width:calc(100vw - 54px)!important;width:calc(100vw - 54px)!important;min-width:0!important;min-height:0!important;max-height:100dvh!important;height:100dvh!important;object-fit:contain}
html.stream .strainar-desktop-controls{left:auto!important;right:5px!important;bottom:14px!important;z-index:4000}
html.stream .strainar-desktop-controls button{writing-mode:vertical-rl;text-orientation:upright;width:44px;min-height:92px;padding:10px 12px!important;border:1px solid #ddd!important;border-radius:4px!important;background:#f8f8f8!important;color:#666!important;font:12px 'PingFang SC','Microsoft YaHei',sans-serif;box-shadow:none!important}
@media(max-width:540px){.sam-word{font-size:clamp(16.5px,5.025vw,25.5px)}}
@media(prefers-reduced-motion:reduce){.sam-triangle{animation:none}.sam-line{transition:none}}

.sam-screen [hidden]{display:none!important}
html.stream body:has(#modal-overlay:not(.modal-disabled) .sam-screen) #strainar-clipboard,html.stream body:has(#modal-overlay:not(.modal-disabled) .sam-screen) .strainar-desktop-controls,html.stream body:has(#modal-overlay:not(.modal-disabled) .sam-screen) #sidebar-root{visibility:hidden}
/* The upstream theme loader reorders its stylesheet. Keep the connection
   stage light even when that theme finishes loading after these rules. */
html.stream .sam-screen{position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important;max-width:none!important;padding:0!important;border:0!important;border-radius:0!important;background:#f8f8f8 url('/video-test/samaritan-grid.svg') center/cover no-repeat!important;color:#121212!important;box-shadow:none!important}
html.stream .sam-screen button{background:transparent!important;color:#222!important;border:0!important;border-bottom:1px solid #aaa!important;box-shadow:none!important}
html.stream .sam-screen p{color:#777!important;text-shadow:none!important}

@media(max-height:520px){.sam-form{top:calc(100% + clamp(12px,4vh,24px))}.sam-form input{height:44px}.sam-form [role=status]{margin-top:8px;min-height:28px}}

/* Keep the authorization focal group slightly above the viewport midpoint. */
.sam-auth > #readout{transform:translateY(-24px)}
/* Theme filters create containing blocks and clip fixed connection screens. */
html.stream #modal-overlay:has(.sam-screen){backdrop-filter:none!important;-webkit-backdrop-filter:none!important;filter:none!important}
html.stream #modal-parent:has(.sam-screen){position:static!important;transform:none!important;filter:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;margin:0!important;max-height:none!important;overflow:visible!important}
#samaritan-startup{z-index:5500}
html.stream body:has(#samaritan-startup) #strainar-clipboard,html.stream body:has(#samaritan-startup) .strainar-desktop-controls,html.stream body:has(#samaritan-startup) #sidebar-root{visibility:hidden}
/* Reference composition: full-height dark circuitry, a 8:1 console at 48.4% height.
   The authorization screen keeps its separate typography and input placement. */
html.stream #samaritan-startup.sam-screen{--sam-side-gap:max(0px,calc((100vw - 54px - 177.777778dvh)/2));background:radial-gradient(ellipse at 50% 48%,#fff 8%,#f4f4f4 37%,#c8c8c8 75%,#858585 110%)!important;overflow:hidden;opacity:1;transition:opacity .45s ease}
#samaritan-startup > .sam-desktop-stage{position:absolute;left:calc((100vw - 54px)/2);top:50%;transform:translate(-50%,-50%);width:min(calc(100vw - 54px),177.777778dvh);height:min(100dvh,calc((100vw - 54px)*.5625));overflow:visible;background:radial-gradient(ellipse at 50% 48%,#fff 8%,#f4f4f4 37%,#c8c8c8 75%,#858585 110%)}
#samaritan-startup .sam-desktop-stage::after{content:'';position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0,transparent 2px,rgba(0,0,0,.025) 2px,rgba(0,0,0,.025) 3px);z-index:2}
#samaritan-startup .sam-boot{position:absolute;top:48.4%;left:50%;width:44.8%;transform:translate(-50%,-50%);text-align:left;z-index:1}
.sam-boot-rail{position:absolute;top:0;height:100%;width:var(--sam-side-gap);background:#020403;overflow:hidden;pointer-events:none;z-index:3}
.sam-rail-black{fill:#020403}
.sam-circuit{animation:sam-circuit-in 1s ease both;fill:none;stroke:#777b78;stroke-width:1.4;opacity:.53}
.sam-circuit-block{fill:#777b78;stroke:none;opacity:.6}
.sam-boot-rail.left{left:0}
.sam-boot-rail.right{right:0;width:calc(var(--sam-side-gap) + 54px);transform:scaleX(-1)}
.sam-terminal{container-type:inline-size;width:100%;box-sizing:border-box;text-align:left;border:1px solid #aaa;background:#777;animation:sam-terminal-in .7s .35s both;font-family:var(--sam-mono);box-shadow:0 0 2px #777}
.sam-terminal-head{height:3.1cqw;box-sizing:border-box;display:flex;align-items:center;gap:2.2cqw;padding:0 1.25cqw;background:linear-gradient(#999,#777);color:#111;font:2.65cqw/1 var(--sam-mono);letter-spacing:.015em;border-bottom:1px solid #ddd;white-space:nowrap}
.sam-terminal-version{font-size:1.55cqw;letter-spacing:.015em;color:#434343}
.sam-terminal-ticks{margin-left:auto;font-size:1.6cqw;letter-spacing:.1em;color:#b1b1b1}
.sam-terminal-body{box-sizing:border-box;background:#030504;color:#f5f5f5;height:6.15cqw;padding:0 1.4cqw;font:3.7cqw/1 var(--sam-mono);letter-spacing:.015em;display:flex;align-items:center;white-space:nowrap;border-bottom:1px solid #e1e1df;text-shadow:0 0 1px #ddd}
.sam-boot-cursor{animation:sam-cursor 1s steps(1) infinite;color:#fff}
.sam-terminal-track{height:2.7cqw;margin:0;background:repeating-linear-gradient(0deg,#777 0,#777 1px,#838383 1px,#838383 2px);overflow:hidden;position:relative}
.sam-terminal-track::after{content:'';display:block;position:absolute;left:3.5%;top:0;width:1px;height:100%;background:#ddd;animation:sam-track 3.5s linear infinite}
.sam-boot-help{position:absolute;top:calc(100% + 28px);width:100%;text-align:center;color:#555;font:14px/1.6 var(--sam-mono)}
.sam-boot-help button{margin-top:12px}
@keyframes sam-rail-left{from{transform:translateX(240%);opacity:0}to{transform:translateX(0);opacity:1}}
@keyframes sam-rail-right{from{transform:translateX(-240%) scaleX(-1);opacity:0}to{transform:translateX(0) scaleX(-1);opacity:1}}
@keyframes sam-terminal-in{from{opacity:0;clip-path:inset(0 50%)}to{opacity:1;clip-path:inset(0 0)}}
@keyframes sam-cursor{50%{opacity:0}}
@keyframes sam-track{from{left:3.5%}to{left:96.5%}}
@media(max-width:600px){#samaritan-startup .sam-boot{width:68%}.sam-boot-help{font-size:12px;top:calc(100% + 10px)}}
@media(prefers-reduced-motion:reduce){#samaritan-startup *,#samaritan-startup *::after{animation:none!important}}

.sam-form input{display:block;width:calc(6ch + .24em);padding-left:0;padding-right:0;margin-inline:auto}
.sam-form input::placeholder{font-size:12px;letter-spacing:.02em}

/* Circuit panels occupy the future desktop gutters, edge-to-edge. SVG slice
   crops the artwork without changing the proportions of its lines. */
html.stream #samaritan-startup.sam-reveal{opacity:0!important}
@keyframes sam-circuit-in{from{opacity:.08}to{opacity:.53}}
@media(prefers-reduced-motion:reduce){html.stream #samaritan-startup{transition:none!important}}
