/* Fieldwork arcade layer. Silkscreen by Jason Kottke, SIL Open Font Licence. */
@font-face{font-family:'Silkscreen';src:url('/silkscreen.woff2') format('woff2');font-display:swap}
.px{font-family:'Silkscreen',ui-monospace,monospace;letter-spacing:.06em;font-weight:400}
.sprite{display:block;image-rendering:pixelated}
@keyframes arc-rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes arc-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@keyframes arc-hop{0%,100%{transform:translateY(0)}40%{transform:translateY(-14px)}70%{transform:translateY(-4px)}}

/* crew characters */
.crew-char{position:relative;transition:transform .5s}
.crew-f.f1{position:absolute;inset:0;opacity:0}
.crew-char.blink .f0{opacity:0}.crew-char.blink .f1{opacity:1}
.crew-char.hop{animation:arc-hop .42s steps(4) both}
.crew-char.look .crew-f{transform:scaleX(-1)}
.bubble{position:absolute;z-index:4;background:#fff;color:#151515;border:2px solid #151515;border-radius:3px;padding:5px 8px;font-size:9px;white-space:nowrap;box-shadow:3px 3px 0 #151515;opacity:0;transform:translateY(6px);transition:opacity .35s,transform .35s;pointer-events:none}
.bubble:after{content:'';position:absolute;left:12px;bottom:-8px;border:6px solid transparent;border-top-color:#151515}
.bubble.in{opacity:1;transform:none}.bubble.out{opacity:0;transform:translateY(-4px)}

/* home queue */
.crew-stage{position:absolute;left:0;right:0;z-index:1;pointer-events:none;display:flex;justify-content:center;animation:arc-rise 1s cubic-bezier(.2,.7,.2,1) .35s backwards}
.crew-line{display:flex;align-items:flex-end;gap:20px}
.crew-line .crew-char:nth-child(odd){animation:arc-bob 2.4s steps(2) infinite}
.crew-line .crew-char:nth-child(even){animation:arc-bob 2.4s steps(2) 1.2s infinite}
.crew-line .crew-char.hop{animation:arc-hop .42s steps(4) both}
.crew-rope{margin:0 -6px 0 6px}
.crew-stage.rush .crew-char:not([data-c=bouncer]){transform:translateX(160px);opacity:0;transition:transform .9s cubic-bezier(.5,0,.7,.3),opacity .9s}
.crew-stage.rush [data-c=bouncer]{transform:translateY(-2px)}

/* search run */
.progress{padding-bottom:84px!important}
.arcade-run{position:absolute;left:0;right:0;bottom:0;height:78px;pointer-events:none}
.run-track{position:absolute;left:0;right:0;bottom:20px;height:2px;background:linear-gradient(90deg,#ff6b61,#ffa94d,#ffd84d,#6fd48a,#58aaff,#9c7cff,#ff6fb0)}
.run-pellets i{position:absolute;bottom:18px;width:6px;height:6px;background:#1b1b1b;transition:opacity .4s,transform .4s}
.run-pellets i:nth-child(5n+1){background:#ff6b61}.run-pellets i:nth-child(5n+2){background:#ffa94d}.run-pellets i:nth-child(5n+3){background:#6fd48a}.run-pellets i:nth-child(5n+4){background:#58aaff}.run-pellets i:nth-child(5n){background:#9c7cff}
.run-pellets i.eaten{opacity:0;transform:scale(.2) translateY(-6px)}
.run-crew{position:absolute;bottom:22px;left:18px;display:flex;gap:10px;align-items:flex-end;transition:left 1.4s cubic-bezier(.3,.7,.3,1)}
.arcade-run.walking .crew-char{animation:arc-bob .5s steps(2) infinite}
.arcade-run.walking .crew-char:nth-child(even){animation-delay:.25s}
.run-crew.hop{animation:arc-hop .42s steps(4)}

/* achievements */
.achievement{position:fixed;left:50%;top:86px;z-index:300;display:flex;gap:12px;align-items:center;background:#111;color:#fff;border-radius:12px;padding:11px 16px 11px 12px;box-shadow:0 18px 50px rgba(0,0,0,.25),0 0 0 2px #111;opacity:0;transform:translate(-50%,10px);transition:opacity .45s,transform .45s cubic-bezier(.2,.7,.2,1);pointer-events:none}
.achievement:before{content:'';position:absolute;inset:-2px;border-radius:13px;padding:2px;background:linear-gradient(90deg,#ff6b61,#ffd84d,#6fd48a,#58aaff,#9c7cff,#ff6fb0);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}
.achievement.in{opacity:1;transform:translate(-50%,0)}.achievement.out{opacity:0;transform:translate(-50%,-6px)}
.achievement b{display:block;font-size:12px;color:#ffd84d}.achievement small{display:block;font-size:11px;color:#b9b9b2;margin-top:2px}
.confetti{position:fixed;inset:0;pointer-events:none;z-index:299;overflow:hidden}
.confetti i{position:absolute;top:-12px;width:7px;height:7px;animation:arc-fall 2.4s steps(12) forwards}
@keyframes arc-fall{to{transform:translate(var(--x),105vh);opacity:.2}}

/* LCD counter */
.research-reading strong{font-family:'Silkscreen',monospace!important;letter-spacing:.02em!important;background:none!important;-webkit-text-fill-color:currentColor!important;color:#8dfca8!important;text-shadow:0 0 12px rgba(120,255,160,.5);animation:none!important}
.research-reading>div{display:inline-flex;align-items:baseline;background:#121412;border-radius:11px;padding:10px 16px 12px;box-shadow:inset 0 0 0 2px #2a2e2a,inset 0 0 24px rgba(80,255,140,.1)}
#targetNumber{color:#5fbf7b!important;font-family:'Silkscreen',monospace!important}
.console-label{font-family:'Silkscreen',monospace!important;letter-spacing:.1em!important}

/* stamps, badges, scoreboard */
.stamp{font-size:9.5px;padding:5px 8px;border:2px solid;border-radius:4px;transform:rotate(-4deg);display:inline-block;white-space:nowrap;animation:arc-rise .5s both}
.stamp.ok{color:#147a45;border-color:#147a45;background:#effaf2}.stamp.maybe{color:#4b55c4;border-color:#4b55c4;background:#f1f2ff}
.person-head{align-items:center}.person-head>.stamp{margin-left:14px;flex:0 0 auto}
.avatar.px-avatar{background:#f5f6f2!important;overflow:hidden}
.alt-av{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:#f5f6f2;border:1px solid #e6e8e2;margin-right:10px;flex:0 0 auto}
.alt{justify-content:flex-start!important}.alt .alt-email{margin-left:auto}
.scoreboard{margin:18px 0 6px;border:1px solid #dedfd8;border-radius:18px;background:linear-gradient(125deg,#fdfdfa,#f5f7f4 80%,#f7f4f8);padding:16px 22px 10px;position:relative;overflow:hidden;animation:arc-rise .6s both}
.scoreboard:before{content:'';position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,#ff6b61,#ffd84d,#6fd48a,#58aaff,#9c7cff)}
.sb-head{display:flex;justify-content:space-between;font-size:10px;color:#7b8277;margin-bottom:6px}
.scoreboard table{width:100%;border-collapse:collapse;font-size:12px}
.scoreboard td{padding:8px 6px;border-bottom:1px dashed #e4e4de}.scoreboard tr:last-child td{border:0}
.scoreboard tr{cursor:pointer;transition:background .2s}.scoreboard tr:hover td{background:rgba(0,0,0,.025)}
.scoreboard .rk{width:48px;color:#9a9a93}.scoreboard .dim{color:#7b8277}.scoreboard .st{text-align:right}.scoreboard .stamp{transform:none;font-size:8px;padding:3px 6px;animation:none}
.notice-bouncer{float:right;display:flex;align-items:flex-end;gap:8px;margin:-4px -4px 4px 14px}
.notice-bouncer em{font-style:normal;font-size:9px;background:#151515;color:#ffd84d;padding:4px 6px;border-radius:3px;margin-bottom:22px}

/* theme toggle */
.theme-toggle{display:inline-flex;align-items:center;gap:7px}.theme-toggle .sprite{flex:0 0 auto}
html.theme-fade,html.theme-fade *{transition:background-color .5s,color .5s,border-color .5s,box-shadow .5s!important}

/* ================= DARK ARCADE ================= */
html[data-theme=dark]{color-scheme:dark;--bg:#0b0c10;--paper:#15171c;--ink:#ecebe6;--muted:#9a9a95;--faint:#6d6d69;--line:#262930;--soft:#1b1d22}
html[data-theme=dark] body{background:#0b0c10;color:#ecebe6}
html[data-theme=dark] .noise{opacity:.35}
/* scanlines sit BEHIND content so text stays crisp */
html[data-theme=dark] .shell:before{content:'';position:fixed;inset:0;pointer-events:none;z-index:0;background:repeating-linear-gradient(0deg,transparent 0 2px,rgba(255,255,255,.018) 2px 3px)}
html[data-theme=dark] main,html[data-theme=dark] header{position:relative;z-index:1}
html[data-theme=dark] h1{background:linear-gradient(180deg,#fff 30%,#b9b9c9);-webkit-background-clip:text;background-clip:text;color:transparent}
html[data-theme=dark] .kicker,html[data-theme=dark] .results-kicker,html[data-theme=dark] .console-label{color:#9aa0b0}
html[data-theme=dark] .horizon-grid{background-image:linear-gradient(rgba(156,124,255,.35) 1px,transparent 1px),linear-gradient(90deg,rgba(88,170,255,.3) 1px,transparent 1px)!important}
html[data-theme=dark] .horizon-line{opacity:1!important}
html[data-theme=dark] .navbtn{color:#a6a6a0}html[data-theme=dark] .navbtn:hover{background:#1c1e24;color:#fff}
html[data-theme=dark] .brand{color:#ecebe6}html[data-theme=dark] .beta-note{color:#7c7c77;border-color:#2c2f36}
html[data-theme=dark] .brandmark,html[data-theme=dark] .brandmark:before{background:#000}
html[data-theme=dark] .searchbox{background:rgba(21,23,28,.96);border-color:#2a2d35;box-shadow:0 20px 60px rgba(0,0,0,.5),0 0 0 1px rgba(156,124,255,.12)}
html[data-theme=dark] .search-main input{color:#f1f0ea}html[data-theme=dark] .search-icon{color:#8f8f8a}
html[data-theme=dark] .findbtn{background:#f1f0ea;color:#111}html[data-theme=dark] .findbtn:hover{background:#fff}
html[data-theme=dark] .constraints{border-color:#262930}
html[data-theme=dark] .filter-pill{background:#1b1d22;border-color:#2c2f36;color:#c9c9c3}html[data-theme=dark] .filter-pill:hover{background:#23262c;color:#fff}
html[data-theme=dark] .filter-pill.location{background:#f1f0ea;color:#111;border-color:#f1f0ea}
html[data-theme=dark] .popover,html[data-theme=dark] .settings-panel,html[data-theme=dark] .modal{background:#15171c!important;border-color:#2a2d35!important;color:#ecebe6}
html[data-theme=dark] .field-input,html[data-theme=dark] .segmented button,html[data-theme=dark] .setting input,html[data-theme=dark] .setting textarea,html[data-theme=dark] .setting select,html[data-theme=dark] select{background:#1b1d22!important;border-color:#2c2f36!important;color:#ecebe6!important}
html[data-theme=dark] .segmented button.selected,html[data-theme=dark] .popover-done,html[data-theme=dark] .profile-save{background:#f1f0ea!important;color:#111!important}
html[data-theme=dark] .choice{color:#c9c9c3}html[data-theme=dark] .choice:hover,html[data-theme=dark] .choice.selected{background:#1f2127;color:#fff}html[data-theme=dark] .choice.selected:after{color:#fff}
html[data-theme=dark] .round-budget-note,html[data-theme=dark] .search-target-row,html[data-theme=dark] .profile-indicator{color:#9a9a95}
html[data-theme=dark] .results{background-image:linear-gradient(rgba(156,124,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(88,170,255,.05) 1px,transparent 1px)}
html[data-theme=dark] .results:before{background:linear-gradient(#0b0c10,transparent 180px,#0b0c10 95%)}
html[data-theme=dark] .results-title h2{color:#f4f3ee}html[data-theme=dark] .results-title p{color:#9a9a95}
html[data-theme=dark] .newsearch,html[data-theme=dark] .mini,html[data-theme=dark] .feedback{background:#1b1d22;border-color:#2c2f36;color:#d7d7d1}
html[data-theme=dark] .mini.primary{background:#f1f0ea;color:#111;border-color:#f1f0ea}
html[data-theme=dark] .research-console,html[data-theme=dark] .scoreboard{background:linear-gradient(125deg,#15171c 15%,#131519 80%,#17141c);border-color:#2a2d35}
html[data-theme=dark] .research-continue label,html[data-theme=dark] .console-caption,html[data-theme=dark] .research-continue small{color:#9aa0a0}
html[data-theme=dark] .progress{background:#15171c;border-color:#2a2d35}html[data-theme=dark] .progress-status{color:#f1f0ea}html[data-theme=dark] .progress-detail{color:#8f8f8a}
html[data-theme=dark] .retro-counter{border-color:#2c2f36;color:#8dfca8}
html[data-theme=dark] .run-pellets i:nth-child(n){box-shadow:0 0 8px currentColor}
html[data-theme=dark] .person{background:rgba(21,23,28,.96);border-color:#262930;box-shadow:0 8px 30px rgba(0,0,0,.35)}
html[data-theme=dark] .person:hover{border-color:#3a3550;box-shadow:0 12px 40px rgba(0,0,0,.45),0 0 0 1px rgba(156,124,255,.15)}
html[data-theme=dark] .person-head,html[data-theme=dark] .contact,html[data-theme=dark] .more-people,html[data-theme=dark] .feedbackbar{border-color:#262930!important}
html[data-theme=dark] .who h3,html[data-theme=dark] .email,html[data-theme=dark] .alt-who strong,html[data-theme=dark] .linkish,html[data-theme=dark] .score strong{color:#f1f0ea}
html[data-theme=dark] .role,html[data-theme=dark] .reason,html[data-theme=dark] .contact-note,html[data-theme=dark] .alt-who span,html[data-theme=dark] .reason-notes,html[data-theme=dark] .evidence span{color:#a3a39d}
html[data-theme=dark] .avatar,html[data-theme=dark] .avatar.px-avatar,html[data-theme=dark] .alt-av{background:#1b1d22!important;border-color:#2c2f36}
html[data-theme=dark] .alt{border-color:#23262c}
html[data-theme=dark] .tabs{border-color:#262930}html[data-theme=dark] .tab{color:#a3a39d}html[data-theme=dark] .tab.active{background:#1f2a22;color:#b8f5c8;box-shadow:inset 0 -2px #6fd48a}
html[data-theme=dark] .notice{background:#1a1712;border-color:#3a3020;color:#e8d9b8}
html[data-theme=dark] .stamp.ok{color:#6fd48a;border-color:#6fd48a;background:rgba(111,212,138,.08)}html[data-theme=dark] .stamp.maybe{color:#9ea5ff;border-color:#9ea5ff;background:rgba(158,165,255,.08)}
html[data-theme=dark] .verified{color:#6fd48a}html[data-theme=dark] .verified.unknown{color:#e0b76a}html[data-theme=dark] .verified.likely{color:#9ea5ff}
html[data-theme=dark] .scoreboard td{border-color:#262930}html[data-theme=dark] .scoreboard tr:hover td{background:rgba(255,255,255,.03)}html[data-theme=dark] .sb-head,html[data-theme=dark] .scoreboard .dim{color:#8f93a0}
html[data-theme=dark] .toast{background:#f1f0ea;color:#111}
html[data-theme=dark] .progress-log,html[data-theme=dark] .quiet,html[data-theme=dark] .connection-copy{color:#8f8f8a}
html[data-theme=dark] a{color:inherit}
html[data-theme=dark] .bubble{box-shadow:3px 3px 0 #9c7cff}

/* secret CRT mode */
html.crt body{filter:saturate(1.15) contrast(1.05)}
html.crt .shell:before{content:'';position:fixed;inset:0;pointer-events:none;z-index:201;background:radial-gradient(ellipse at center,transparent 60%,rgba(0,0,0,.35));}
html.crt .shell:after{content:'';position:fixed;inset:0;pointer-events:none;z-index:200;background:repeating-linear-gradient(0deg,transparent 0 2px,rgba(0,0,0,.28) 2px 3px)}

@media(max-width:760px){.crew-line{gap:10px;transform:scale(.8);transform-origin:bottom center}.scoreboard td:nth-child(4){display:none}.achievement{top:70px;max-width:92vw}}
@media(prefers-reduced-motion:reduce){.crew-char,.crew-line .crew-char,.arcade-run .crew-char,.stamp,.scoreboard,.crew-stage{animation:none!important;transition:none!important}.confetti{display:none}}
/* dark: characters keep a crisp light outline plus a soft neon glow so they stay readable */
html[data-theme=dark] .crew-char .sprite,html[data-theme=dark] .crew-rope .sprite,html[data-theme=dark] .notice-bouncer .sprite{filter:drop-shadow(1px 0 0 #d9d4ff) drop-shadow(-1px 0 0 #d9d4ff) drop-shadow(0 1px 0 #d9d4ff) drop-shadow(0 -1px 0 #d9d4ff) drop-shadow(0 0 8px rgba(156,124,255,.55))}
html[data-theme=dark] .theme-toggle .sprite{filter:drop-shadow(0 0 4px rgba(255,216,77,.6))}

.bubble.side:after{left:-8px;top:7px;bottom:auto;border:6px solid transparent;border-right-color:#151515;border-top-color:transparent}
.arcade-run .bubble{z-index:5}

/* dark readability */
html[data-theme=dark] .evidence span,html[data-theme=dark] .signal-type{background:#1f2229!important;border:1px solid #333743!important;color:#d6d6d0!important}
html[data-theme=dark] .evidence .video-yes{color:#7ee39a!important;border-color:#2f5a3c!important;background:#16241b!important}
html[data-theme=dark] .signal-row,html[data-theme=dark] .signal-row span,html[data-theme=dark] .reason-notes{color:#c4c4be!important}
html[data-theme=dark] .signal-row a{color:#e8e7e1}
html[data-theme=dark] .reason,html[data-theme=dark] .contact-note,html[data-theme=dark] .role,html[data-theme=dark] .alt-who span,html[data-theme=dark] .small{color:#bdbdb7!important}
html[data-theme=dark] .eyebrow,html[data-theme=dark] .score .label{color:#9aa0ad!important}
html[data-theme=dark] .findbtn,html[data-theme=dark] .filter-pill.location,html[data-theme=dark] .mini,html[data-theme=dark] .newsearch{text-shadow:none}
html.crt .shell:after{z-index:0}
/* v2 crew spacing */
.crew-line{gap:14px}.crew-line [data-c=bouncer]{margin-left:18px}
.run-crew{gap:6px}
/* sky: UFO flyby, and stars in dark mode */
.crew-sky{position:absolute;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.crew-sky .star{position:absolute;opacity:0}
html[data-theme=dark] .crew-sky .star{animation:arc-twinkle 3.2s steps(3) infinite}
@keyframes arc-twinkle{0%,100%{opacity:.15}50%{opacity:.9}}
.crew-sky .ufo{position:absolute;top:15%;left:-80px;opacity:0}
.crew-sky .ufo.fly{animation:arc-ufo 9s cubic-bezier(.4,0,.6,1) forwards}
@keyframes arc-ufo{0%{left:-80px;opacity:0;transform:translateY(0)}8%{opacity:1}25%{transform:translateY(-10px)}50%{transform:translateY(6px)}75%{transform:translateY(-6px)}92%{opacity:1}100%{left:calc(100% + 40px);opacity:0;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.crew-sky .ufo{display:none}}

/* 3.7.1 polish */
.hero .kicker .stripes{display:none}
h1{padding-bottom:.14em;margin-bottom:calc(34px - .14em)}
.search-main input:focus,.search-main input:focus-visible{outline:none!important;box-shadow:none!important}
.hero .inline-error{position:relative;z-index:3;text-align:center;font-size:13px;font-weight:560;color:#a8551f;background:rgba(255,248,236,.92);border:1px solid #f0d6b4;border-radius:12px;padding:10px 14px;margin:14px auto 0;max-width:640px}
html[data-theme=dark] .hero .inline-error{color:#ffc58a;background:rgba(40,28,14,.92);border-color:#5a3d1d}
/* history */
.hist-top{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:12px;font-size:13px;color:#666}
.hist-top b{font-size:14px;color:inherit}
.hist-list{display:grid;gap:6px;max-height:60vh;overflow:auto}
.hist-row{display:grid;grid-template-columns:118px 1fr auto;grid-template-rows:auto auto;gap:2px 14px;text-align:left;border:1px solid #e6e6e1;background:#fbfbf9;border-radius:12px;padding:10px 12px;font:inherit;color:inherit;cursor:pointer;transition:border-color .2s,background .2s}
.hist-row:hover{border-color:#bfc7ff;background:#fff}
.hist-when{grid-row:1/3;font-size:11.5px;color:#8a8a84;align-self:center}
.hist-q{font-size:13.5px;font-weight:600;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hist-n{font-size:12px;color:#6b6b66}.hist-n b{color:#147a45}
.hist-meta{grid-column:3;grid-row:1/3;align-self:center;font-size:11.5px;color:#8a8a84;white-space:nowrap}
html[data-theme=dark] .hist-row{background:#1a1c21;border-color:#2c2f36}html[data-theme=dark] .hist-row:hover{border-color:#5b4fa8;background:#1f2128}
html[data-theme=dark] .hist-top,html[data-theme=dark] .hist-n{color:#b5b5af}html[data-theme=dark] .hist-n b{color:#7ee39a}

/* scenes */
.crew-stage .crew-char{pointer-events:auto;cursor:pointer}
.crew-stage.busy .crew-char{animation:none!important}
.fx{position:absolute;left:0;top:0;pointer-events:none;z-index:3;will-change:transform}
.fx-in{display:block}
.fx.flip .fx-in{transform:scaleX(-1)}
.fx.walking .sprite{animation:arc-bob .5s steps(2) infinite}
.fx.flame .sprite{animation:arc-flick .14s steps(2) infinite;transform-origin:50% 0}
@keyframes arc-flick{50%{transform:scaleY(.72)}}
.fx.dizzy .fx-in{animation:arc-spin 1s steps(8) infinite}
@keyframes arc-spin{to{transform:rotate(360deg)}}
.fx.floaty{animation:arc-float 2.2s ease-out forwards}.fx.floaty.slow{animation-duration:3.2s}
@keyframes arc-float{to{transform:translate(10px,-60px);opacity:0}}
.fx.beam{width:60px;background:linear-gradient(180deg,rgba(168,216,255,.9),rgba(168,216,255,.12));clip-path:polygon(38% 0,62% 0,100% 100%,0 100%);opacity:0}
.flash-layer{position:absolute;inset:0;background:#fff;pointer-events:none;z-index:5;opacity:0}
.hero.disco .horizon-line{animation:arc-disco .35s steps(2) infinite!important}
@keyframes arc-disco{50%{filter:hue-rotate(160deg) brightness(1.7)}}
.crew-char.asleep .crew-f{transform:rotate(-9deg);transform-origin:50% 100%}
.crew-char.toast .sprite{filter:brightness(.25) sepia(.4)!important}
html[data-theme=dark] .fx .sprite{filter:drop-shadow(1px 0 0 #d9d4ff) drop-shadow(-1px 0 0 #d9d4ff) drop-shadow(0 1px 0 #d9d4ff) drop-shadow(0 -1px 0 #d9d4ff) drop-shadow(0 0 8px rgba(156,124,255,.5))}
html[data-theme=dark] .fx.flame .sprite,html[data-theme=dark] .fx.flick .sprite{filter:drop-shadow(0 0 10px rgba(255,170,60,.8))}

/* roaming: the stage must not form its own layer, so each character can go in front of or behind the page */
.crew-stage{z-index:auto!important;animation:none!important}
.crew-stage .crew-char{z-index:3;animation-name:arc-bob}
.crew-stage .crew-line{animation:arc-rise 1s cubic-bezier(.2,.7,.2,1) .35s backwards}
.crew-char.facing-left .crew-f{transform:scaleX(-1)}
.crew-char.stepping .sprite{animation:arc-bob .34s steps(2) infinite}
.crew-stage .bubble{z-index:8}
.fx{z-index:7}

.best-guess{margin-top:8px;padding:8px 10px;border:1px dashed #d9c49a;border-radius:10px;background:#fffaf0;font-size:12px}
.best-guess span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#967332;font-weight:650}
.best-guess small{display:block;color:#8a7a5a;margin-top:3px;font-size:10.5px}
html[data-theme=dark] .best-guess{background:#1f1a10;border-color:#5a4a2a}html[data-theme=dark] .best-guess small{color:#c4b28a}

/* 3.8 crew world: characters live on every screen */
body{overflow-x:hidden}
main,header{position:relative}main{z-index:1}header{z-index:20}
#crewStage{display:none!important}.run-crew{display:none!important}
.crew-layer{position:absolute;left:0;top:0;width:100%;pointer-events:none;overflow:clip}
.actor{position:absolute;left:0;top:0;pointer-events:auto;cursor:pointer;will-change:transform}
.actor .a-in{transform-origin:50% 100%;transition:none}
.actor .crew-f.f1{position:absolute;inset:0;opacity:0}.actor.blink .f0{opacity:0}.actor.blink .f1{opacity:1}
.actor.stepping .sprite{animation:arc-bob .34s steps(2) infinite}
.actor.hop .sprite{animation:arc-hop .42s steps(4)}
.actor.toast .sprite{filter:brightness(.25) sepia(.4)!important}
.a-say{position:absolute;left:50%;bottom:calc(100% + 10px);transform:translate(-30%,6px);background:#fff;color:#151515;border:2px solid #151515;border-radius:3px;padding:5px 8px;font-size:9px;white-space:nowrap;box-shadow:3px 3px 0 #151515;opacity:0;transition:opacity .35s,transform .35s;pointer-events:none}
.a-say:after{content:'';position:absolute;left:20%;bottom:-8px;border:6px solid transparent;border-top-color:#151515}
.a-say.in{opacity:1;transform:translate(-30%,0)}.a-say.out{opacity:0;transform:translate(-30%,-4px)}
.cfx{position:absolute;pointer-events:none;will-change:transform}
.cfx.flip svg{transform:scaleX(-1)}
.cfx.flame svg,.cfx.flick svg{animation:arc-flick .14s steps(2) infinite;transform-origin:50% 100%}
.cfx.dizzy{animation:arc-spin 1s steps(8) infinite}
.cfx.floaty{animation:arc-float 2.2s ease-out forwards}.cfx.floaty.slow{animation-duration:3.2s}
.cfx.beam{width:60px;background:linear-gradient(180deg,rgba(168,216,255,.9),rgba(168,216,255,.12));clip-path:polygon(38% 0,62% 0,100% 100%,0 100%);opacity:0}
.cfx.flash{position:fixed;inset:0;background:#fff;opacity:0;z-index:1}
.cfx.fishline{width:2px;background:#8a8a84}
.cfx.say-fx{left:0;top:0;background:#fff;color:#151515;border:2px solid #151515;border-radius:3px;padding:5px 8px;font-size:9px;white-space:nowrap;box-shadow:3px 3px 0 #151515;opacity:0;transition:opacity .35s}
.cfx.say-fx.in{opacity:1}
html[data-theme=dark] .actor .sprite,html[data-theme=dark] .cfx .sprite{filter:drop-shadow(1px 0 0 #d9d4ff) drop-shadow(-1px 0 0 #d9d4ff) drop-shadow(0 1px 0 #d9d4ff) drop-shadow(0 -1px 0 #d9d4ff) drop-shadow(0 0 8px rgba(156,124,255,.5))}
html[data-theme=dark] .a-say,html[data-theme=dark] .cfx.say-fx{box-shadow:3px 3px 0 #9c7cff}
html[data-theme=dark] .cfx.flame .sprite,html[data-theme=dark] .cfx.flick .sprite{filter:drop-shadow(0 0 10px rgba(255,170,60,.8))}
@media(prefers-reduced-motion:reduce){.actor .sprite,.cfx{animation:none!important}}

/* 3.8.1 arcade motion: two-frame walk cycle, no smoothing */
.actor.stepping .sprite{animation:arc-walk .25s steps(1) infinite}
@keyframes arc-walk{0%{transform:translateY(0)}50%{transform:translateY(-3px)}}
.actor.hop .sprite{animation:arc-hop .42s steps(3)}
.cfx.dizzy{animation:arc-spin 1s steps(4) infinite}
.cfx.floaty{animation:arc-float 2.2s steps(10) forwards}

/* long links and words wrap instead of spilling into the next column */
.reason,.signal-row,.signal-row span,.contact-note,.reason-notes,.who h3,.role,.email,.alt-who span{overflow-wrap:anywhere;word-break:break-word}
.bodygrid>div{min-width:0}

html[data-theme=dark] .modal textarea{background:#15171b!important;color:#ecebe6!important;border-color:#2c2f36!important}
html[data-theme=dark] .draft-bar{background:#2c2f36}
.modal textarea{color:#222}
/* crew world: builds, ledges, thoughts */
.cfx.build{display:flex;flex-direction:column;align-items:center;--ledge:#c4c4bd}
.cfx.build .ledge{display:block;width:calc(100% + 18px);height:3px;margin-top:0;background:repeating-linear-gradient(90deg,var(--ledge) 0 6px,transparent 6px 9px)}
.cfx.build .scaffold{display:none}
.cfx.build .statue-fig .sprite{filter:grayscale(1) brightness(1.12) contrast(.9)}
.cfx.build.party>.sprite{animation:party-lights .5s steps(2) infinite}
@keyframes party-lights{50%{filter:hue-rotate(170deg) brightness(1.25)}}
html[data-theme=dark] .cfx.build{--ledge:#4a4d56}
.cfx.thought{animation:crew-thought 1.4s ease-out forwards}
@keyframes crew-thought{0%{opacity:0;transform:translateY(6px)}22%{opacity:1;transform:none}78%{opacity:1;transform:translateY(-2px)}100%{opacity:0;transform:translateY(-8px)}}

.cfx.laser{width:16px;height:3px;background:#fff;transform-origin:0 50%;--c:#ff4d5a;box-shadow:0 0 0 1px var(--c),0 0 8px 2px var(--c)}.cfx.laser.blue{--c:#3f9bff}
.cfx.saber{width:3px;height:30px;background:#fff;transform-origin:50% 100%;transition:transform 90ms steps(2),opacity .3s;--c:#ff4d5a;box-shadow:0 0 0 1px var(--c),0 0 8px 3px var(--c)}
.cfx.saber.blue{--c:#3f9bff}.cfx.saber.green{--c:#3fd27a}.cfx.saber.purple{--c:#a477ff}.cfx.saber.yellow{--c:#ffd84d}
.cfx.hammering{transform-origin:50% 100%;transition:transform 80ms steps(2)}
.cfx.stolen{transform:rotate(-8deg)}
.cfx.crack.on-dark .sprite{filter:invert(1)!important}
.cfx.perch{height:3px;background:repeating-linear-gradient(90deg,var(--ledge,#c4c4bd) 0 6px,transparent 6px 9px)}
html[data-theme=dark] .cfx.perch{--ledge:#4a4d56}
.setup-row{display:flex;gap:7px;flex-wrap:wrap}.setup-pill{height:34px}
.modal .setting input,.modal .setting textarea{width:100%;border:1px solid #dfdfda;background:#f7f7f5;border-radius:12px;padding:11px 12px;color:#252522;font-size:13px}.modal .setting label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#8a8a84;font-weight:700;margin:0 0 7px}
html[data-theme=dark] .modal .setting input,html[data-theme=dark] .modal .setting textarea{background:#15171b!important;color:#ecebe6!important;border-color:#2c2f36!important}
.modal textarea#suProfile,.modal textarea#suWhat{min-height:110px}

.cfx.portrait{transform:scale(.8);transform-origin:0 0}
.cfx.kitestring{height:1px;background:#8a8a84;transform-origin:0 0}html[data-theme=dark] .cfx.kitestring{background:#9aa0ad}
.cfx.zipline{height:2px;background:#6b6b66;transform-origin:0 0}html[data-theme=dark] .cfx.zipline{background:#9aa0ad}
.cfx.bubble{opacity:.8}

.cfx.firebox{display:flex;align-items:flex-end;gap:0;pointer-events:auto;cursor:pointer;z-index:2}
.cfx.firebox .blaze-f{display:block;margin-right:-4px;animation:blaze .4s steps(2) infinite;transform-origin:50% 100%}
@keyframes blaze{50%{transform:scaleX(-1) scaleY(1.12)}}
.cfx.scorch{width:80px;height:20px;border-radius:50%;background:radial-gradient(ellipse,rgba(60,35,20,.35),rgba(60,35,20,0) 70%);pointer-events:none}
.powercut{position:fixed;inset:0;z-index:44;pointer-events:none;background:rgba(6,8,16,.66);opacity:0}
.cfx.laser.fat{height:6px}
.cfx.ice{border:2px solid rgba(160,215,255,.95);background:rgba(190,230,255,.45);box-shadow:inset 0 0 10px rgba(255,255,255,.7);border-radius:3px}

.flood{position:fixed;left:0;right:0;bottom:0;height:0;z-index:44;pointer-events:none;background:linear-gradient(rgba(90,170,255,.32),rgba(40,110,220,.5));border-top:3px solid rgba(170,215,255,.9)}
.cfx.wind{height:2px;background:rgba(140,140,140,.55)}
.cfx.stink{border-radius:50%;background:radial-gradient(circle,rgba(120,200,60,.5),rgba(120,200,60,0) 70%)}
.cfx.confetti{width:6px;height:6px}
.cfx.puddle{width:70px;height:8px;border-radius:50%;background:rgba(80,160,255,.45)}
.cfx.spin .sprite{animation:fanspin .15s steps(2) infinite}@keyframes fanspin{50%{transform:scaleX(-1)}}
#crewBtn.stolen{transform:rotate(-8deg);cursor:pointer}
#shootDay{position:fixed;inset:0;z-index:80;image-rendering:pixelated}

.play-hud{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:60;display:flex;gap:14px;align-items:center;padding:10px 16px;border-radius:14px;background:rgba(14,15,22,.86);color:#fff;font-size:11px;letter-spacing:.06em;pointer-events:none;box-shadow:0 10px 30px rgba(0,0,0,.25);backdrop-filter:blur(8px)}
.play-hud b{font-weight:400;color:#ffd84d}.play-hud .hearts{color:#ff5a52}.play-hud .hearts i{color:rgba(255,255,255,.2);font-style:normal}.play-hud em{font-style:normal;color:rgba(255,255,255,.55)}
.actor.you .a-in{filter:drop-shadow(0 0 0 #ffd84d) drop-shadow(0 3px 6px rgba(255,216,77,.55))}
.actor.you::after{content:'';position:absolute;left:50%;top:-12px;width:0;height:0;margin-left:-5px;border:5px solid transparent;border-top-color:#ffd84d;animation:youbob .8s steps(2) infinite}
@keyframes youbob{50%{transform:translateY(-3px)}}
.cfx.slash{width:34px;height:4px;background:#fff;border-radius:2px;box-shadow:0 0 0 1px rgba(255,120,60,.8),0 0 8px 2px rgba(255,140,60,.55)}
.cfx.burn{width:16px;height:16px;border-radius:50%;background:radial-gradient(circle,rgba(40,25,15,.55),rgba(40,25,15,0) 70%)}
.cfx.ship-tag{background:#fff;color:#111;font-size:9px;padding:4px 6px;border-radius:4px;opacity:0;transition:opacity .4s}.cfx.ship-tag.in{opacity:1}

.cfx.ghostly{opacity:.6;filter:grayscale(1) brightness(1.6)}
.cfx.debris{border-radius:1px;box-shadow:0 0 0 1px rgba(0,0,0,.15)}
.play-hud{white-space:nowrap;max-width:calc(100vw - 24px)}

.actor.inship .a-in{clip-path:inset(0 0 50% 0)}
.cfx.saber.green{transition:none;--c:#5dff8f}
.cfx.saber.ghost{opacity:.28;box-shadow:0 0 6px 2px var(--c)}
.cfx.laser.slow{width:20px;height:6px;border-radius:3px;background:#fff;box-shadow:0 0 0 2px var(--c),0 0 12px 4px var(--c)}

/* legends: rare cameos */
.leg-say{position:absolute;left:50%;bottom:calc(100% + 10px);transform:translate(-50%,0);background:#fff;color:#151515;border:2px solid #151515;border-radius:3px;padding:5px 8px;font-size:9px;white-space:nowrap;box-shadow:3px 3px 0 #151515;pointer-events:none;z-index:2}
.leg-flash{inset:0;background:#fff;pointer-events:none;z-index:60;opacity:0}
.leg-drop{position:absolute;width:5px;height:5px;pointer-events:none}
.leg-flake{position:absolute;width:4px;height:4px;background:#fff;pointer-events:none;opacity:.85}
.leg-water{position:absolute;overflow:hidden;pointer-events:none}
.leg-in{position:absolute;left:0;top:0}
.leg-rope{position:absolute;height:3px;background:#b8a174;box-shadow:0 1px 0 #5e3a22;pointer-events:none}
.leg-far{opacity:.75;filter:saturate(.7)}
.cfx.flipx .sprite{transform:scaleX(-1)}
.cfx .lf[hidden]{display:none}
.laser.green{--c:#4fc37a}
