*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }

:root {
  --green:#77ff44; --green-mid:#1f9900;
  --bg:#000000; --bar-bg:#77ff44; --bar-text:#000000;
  --font:'VT323',monospace;
  --glow:0 0 4px rgba(119,255,68,0.65),0 0 9px rgba(119,255,68,0.2);
  --scanline-opacity:0.13;
  --map-bright:#aaff88; --map-mid:#77ff44; --map-dim:#2a5d1c; --map-bg:#000000;
  color-scheme: dark;
}
body.theme-amber  { --green:#ffb000; --green-mid:#7a5000; --bar-bg:#ffb000; --glow:0 0 4px rgba(255,176,0,0.65),0 0 9px rgba(255,176,0,0.2); --map-bright:#ffca54; --map-mid:#ffb000; --map-dim:#543a00; }
body.theme-white  { --green:#ffffff; --green-mid:#888888; --bar-bg:#ffffff; --bar-text:#000000; --glow:none; --scanline-opacity:0.07; --map-bright:#ffffff; --map-mid:#ffffff; --map-dim:#555555; }
body.theme-red    { --green:#ff3030; --green-mid:#991010; --bar-bg:#ff3030; --glow:0 0 4px rgba(255,48,48,0.65),0 0 9px rgba(255,48,48,0.2); --map-bright:#ff7474; --map-mid:#ff3030; --map-dim:#540f0f; }
body.theme-orange { --green:#ff6600; --green-mid:#993300; --bar-bg:#ff6600; --glow:0 0 4px rgba(255,102,0,0.65),0 0 9px rgba(255,102,0,0.2); --map-bright:#ff9854; --map-mid:#ff6600; --map-dim:#542100; }
body.theme-yellow { --green:#ffff00; --green-mid:#999900; --bar-bg:#ffff00; --glow:0 0 4px rgba(255,255,0,0.65),0 0 9px rgba(255,255,0,0.2); --map-bright:#ffff54; --map-mid:#ffff00; --map-dim:#545400; }
body.theme-cyan   { --green:#00ffff; --green-mid:#009999; --bar-bg:#00ffff; --glow:0 0 4px rgba(0,255,255,0.65),0 0 9px rgba(0,255,255,0.2); --map-bright:#54ffff; --map-mid:#00ffff; --map-dim:#005454; }
body.theme-blue   { --green:#4488ff; --green-mid:#224488; --bar-bg:#4488ff; --glow:0 0 4px rgba(68,136,255,0.65),0 0 9px rgba(68,136,255,0.2); --map-bright:#81afff; --map-mid:#4488ff; --map-dim:#162c54; }
body.theme-indigo { --green:#4433ff; --green-mid:#221199; --bar-bg:#4433ff; --glow:0 0 4px rgba(68,51,255,0.65),0 0 9px rgba(68,51,255,0.2); --map-bright:#8176ff; --map-mid:#4433ff; --map-dim:#161054; }
body.theme-violet { --green:#9933ff; --green-mid:#551199; --bar-bg:#9933ff; --glow:0 0 4px rgba(153,51,255,0.65),0 0 9px rgba(153,51,255,0.2); --map-bright:#ba76ff; --map-mid:#9933ff; --map-dim:#321054; }
body.theme-purple { --green:#8800ff; --green-mid:#4a0099; --bar-bg:#8800ff; --glow:0 0 4px rgba(136,0,255,0.65),0 0 9px rgba(136,0,255,0.2); --map-bright:#af54ff; --map-mid:#8800ff; --map-dim:#2c0054; }
body.theme-pink   { --green:#ff69b4; --green-mid:#993370; --bar-bg:#ff69b4; --glow:0 0 4px rgba(255,105,180,0.65),0 0 9px rgba(255,105,180,0.2); --map-bright:#ff9acc; --map-mid:#ff69b4; --map-dim:#54223b; }
body.theme-inverse{ --green:#000000; --green-mid:#444444; --bg:#ffffff; --bar-bg:#000000; --bar-text:#ffffff; --glow:none; --scanline-opacity:0.05; --map-bright:#000000; --map-mid:#444444; --map-dim:#999999; --map-bg:#ffffff; }

html { background:var(--bg,#000000); } html,body { width:100%; height:100%; background:var(--bg,#000000); color:var(--green); font-family:var(--font); font-size:19px; line-height:1.45; overflow:hidden; }
body.theme-inverse { background-color:#ffffff; }
body { text-shadow:var(--glow); }

#crt { position:fixed; inset:0; display:flex; flex-direction:column; overflow:hidden; }
#crt::before { content:''; position:fixed; inset:0; background:repeating-linear-gradient(to bottom,transparent 0px,transparent 2px,rgba(0,0,0,var(--scanline-opacity)) 2px,rgba(0,0,0,var(--scanline-opacity)) 4px); pointer-events:none; z-index:1000; }
#crt::after  { content:''; position:fixed; inset:0; background:radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,0.6) 100%); pointer-events:none; z-index:1001; }

#statusbar { flex-shrink:0; background:var(--bar-bg); color:var(--bar-text); text-shadow:none; font-family:var(--font); font-size:18px; padding:2px 10px; display:flex; justify-content:space-between; align-items:center; white-space:nowrap; overflow:hidden; user-select:none; cursor:pointer; }
#statusbar:hover { opacity:0.88; }

#terminal-body { flex:1; overflow-y:auto; overflow-x:hidden; padding:10px 16px 8px 16px; position:relative; scrollbar-width:none; -ms-overflow-style:none; }
#terminal-body::-webkit-scrollbar { display:none; }

.screen { display:none; }
.screen.active { display:block; }

.boot-line { display:block; opacity:0; white-space:pre; font-size:19px; color:var(--green); }
.boot-line.visible { opacity:1; }

.pine-hero { text-align:center; padding:8px 0 10px 0; border-bottom:1px solid var(--green-mid); margin-bottom:8px; }
.pine-hero .show-title { font-size:clamp(24px,6.5vw,42px); line-height:1.1; letter-spacing:2px; color:var(--green); }
.pine-hero .venue-line { font-size:18px; margin-top:5px; color:var(--green); letter-spacing:0.5px; }
.pine-hero .date-line  { font-size:18px; color:var(--green); margin-top:3px; letter-spacing:1px; }

#menu-list { margin-top:4px; }
.menu-header { display:flex; justify-content:space-between; background:var(--bar-bg); color:var(--bar-text); text-shadow:none; padding:2px 10px; font-size:18px; margin-bottom:2px; user-select:none; }
.menu-item { display:flex; align-items:baseline; padding:4px 10px; cursor:pointer; font-size:21px; color:var(--green); transition:background 0.04s,color 0.04s; user-select:none; }
.menu-item:hover,.menu-item:focus { background:var(--green); color:var(--bg); text-shadow:none; outline:none; }
.menu-item:hover .menu-sep,.menu-item:focus .menu-sep { color:var(--bg); }
.menu-key { font-family:var(--font); font-size:21px; min-width:2ch; display:inline-block; }
.menu-sep  { display:inline-block; padding:0 10px; color:var(--green-mid); }

.content-header { background:var(--bar-bg); color:var(--bar-text); text-shadow:none; padding:2px 10px; font-size:18px; margin-bottom:12px; display:flex; justify-content:space-between; user-select:none; cursor:pointer; }
.content-header:hover { opacity:0.88; }
.content-body { font-size:21px; line-height:1.65; color:var(--green); max-width:70ch; }
.content-body p { margin-bottom:10px; }
.content-divider { border:none; border-top:1px solid var(--green-mid); margin:14px 0; }
.content-section-label { font-size:18px; color:var(--green); letter-spacing:1px; margin-bottom:8px; }

/* COMPOSE */
.compose-field { display:flex; align-items:flex-start; margin-bottom:8px; gap:8px; }
.compose-label { color:var(--green); min-width:12ch; padding-top:2px; flex-shrink:0; font-size:19px; }
.compose-input { background:transparent; border:none; border-bottom:1px solid var(--green-mid); color:var(--green); font-family:var(--font); font-size:19px; flex:1; outline:none; text-shadow:var(--glow); padding:0 4px 2px 4px; caret-color:var(--green); }
.compose-input::placeholder { color:var(--green); opacity:0.6; }
.compose-select option { background:#000000; color:var(--green); font-family:var(--font); }
/* Custom CRT dropdown */
.crt-select { position:relative; flex:1; }
.crt-select-display { border-bottom:1px solid var(--green-mid); color:var(--green); font-family:var(--font); font-size:19px; padding:0 4px 2px 4px; cursor:pointer; user-select:none; display:flex; justify-content:space-between; align-items:baseline; gap:8px; }
.crt-select-display:hover { color:var(--green); opacity:0.85; }
.crt-select-arrow { font-size:14px; flex-shrink:0; }
.crt-select-list { display:none; position:absolute; left:0; right:0; top:100%; background:var(--bg); border:1px solid var(--green-mid); z-index:200; margin-top:2px; }
.crt-select-list.open { display:block; }
.crt-select-option { padding:3px 8px; font-family:var(--font); font-size:19px; color:var(--green); cursor:pointer; user-select:none; white-space:nowrap; }
.crt-select-option:hover,.crt-select-option.selected { background:var(--green); color:var(--bg); text-shadow:none; }
.compose-textarea { background:rgba(0,0,0,0.15); border:1px solid var(--green-mid); color:var(--green); font-family:var(--font); font-size:19px; width:100%; min-height:120px; outline:none; text-shadow:var(--glow); padding:6px 8px; caret-color:var(--green); resize:vertical; margin-top:4px; }
.compose-textarea::placeholder { color:var(--green); opacity:0.6; }
.compose-textarea-sm { min-height:80px; }
.compose-divider { border:none; border-top:1px solid var(--green-mid); margin:8px 0; }
.compose-send-btn { background:var(--green); color:var(--bg); font-family:var(--font); font-size:21px; border:none; padding:6px 24px; cursor:pointer; margin-top:12px; letter-spacing:2px; text-shadow:none; display:block; }
.compose-send-btn:hover { opacity:0.85; }
.compose-charcount { font-size:15px; color:var(--green-mid); text-align:right; margin-top:2px; font-family:var(--font); }
.compose-extra { display:none; }
.compose-extra.visible { display:block; }
.compose-section-label { font-size:16px; color:var(--green-mid); letter-spacing:1px; margin:10px 0 6px 0; border-top:1px solid var(--green-mid); padding-top:8px; }

/* FOSSIL FACT */
.fossil-fact-box { border:1px solid var(--green-mid); padding:10px 14px; font-size:21px; line-height:1.6; color:var(--green); background:rgba(0,0,0,0.15); margin-bottom:12px; }

/* HELP */
.help-item { display:flex; align-items:baseline; padding:4px 8px; cursor:pointer; font-size:21px; color:var(--green); transition:background 0.04s,color 0.04s; user-select:none; }
.help-item:hover,.help-item:focus { background:var(--green); color:var(--bg); text-shadow:none; outline:none; }
.help-item:hover .help-sep,.help-item:focus .help-sep { color:var(--bg); }
.help-item-nohover:hover,.help-item-nohover:focus { background:transparent !important; color:var(--green) !important; text-shadow:var(--glow) !important; outline:none; }
.help-item-nohover:hover .help-sep,.help-item-nohover:focus .help-sep { color:var(--green-mid) !important; }
.help-key { min-width:4ch; display:inline-block; font-family:var(--font); font-size:21px; }
.help-sep { display:inline-block; padding:0 8px; color:var(--green-mid); font-size:21px; }
.help-label { font-size:21px; }
.help-section-divider { border:none; border-top:1px solid var(--green-mid); margin:8px 0 4px 0; }
.help-section-label { font-size:16px; color:var(--green); padding:2px 8px 4px 8px; letter-spacing:1px; }

/* TICKET */
.ticket-wrap { max-width:60ch; }
.ticket-box { border:2px solid var(--green); padding:0; font-family:var(--font); color:var(--green); background:var(--bg); margin-bottom:12px; }
.ticket-header { background:var(--green); color:var(--bg); text-shadow:none; text-align:center; padding:6px 10px; font-size:13px; letter-spacing:2px; }
.ticket-body { padding:14px 18px; }
.ticket-title { font-size:clamp(22px,5vw,34px); letter-spacing:2px; line-height:1.1; margin-bottom:8px; text-align:center; }
.ticket-row { font-size:19px; margin-bottom:4px; display:flex; gap:8px; }
.ticket-row .tk-label { min-width:10ch; flex-shrink:0; }
.ticket-divider { border:none; border-top:1px dashed var(--green); margin:12px 0; }
.ticket-barcode { font-size:13px; letter-spacing:4px; text-align:center; margin:8px 0 4px 0; word-break:break-all; }
.ticket-stub { border-top:2px dashed var(--green); padding:8px 18px; display:flex; justify-content:space-between; font-size:16px; align-items:center; }
.ticket-admit { font-size:22px; letter-spacing:1px; }
.ticket-print-hint { font-size:17px; margin-top:10px; }

/* SVG MAP */
.map-container { margin:12px 0; max-width:100%; overflow:hidden; }
.map-container svg { width:100%; height:auto; max-width:580px; display:block; }
.map-label { font-family:'VT323',monospace; font-size:14px; fill:var(--green); }
.map-label-sm { font-family:'VT323',monospace; font-size:11px; fill:var(--green); opacity:0.8; }
.map-road { stroke:var(--green); stroke-width:1.5; fill:none; opacity:0.6; }
.map-road-major { stroke:var(--green); stroke-width:2.5; fill:none; opacity:0.85; }
.map-park { stroke:var(--green); stroke-width:1; fill:var(--green); fill-opacity:0.06; stroke-dasharray:4,3; }
.map-building { stroke:var(--green); stroke-width:1.5; fill:var(--green); fill-opacity:0.12; }
.map-highlight { stroke:var(--green); stroke-width:2; fill:var(--green); fill-opacity:0.25; }
.map-dot { fill:var(--green); }
.map-dot-pulse { fill:none; stroke:var(--green); stroke-width:1.5; }
.map-water { stroke:var(--green); stroke-width:1; fill:var(--green); fill-opacity:0.08; stroke-dasharray:2,2; }
.map-toggle { display:inline-block; cursor:pointer; color:var(--green); font-family:var(--font); font-size:18px; letter-spacing:1px; padding:2px 8px; margin:8px 0 4px 0; user-select:none; border:1px solid var(--green-mid); }
.map-toggle:hover,.map-toggle:focus { background:var(--green); color:var(--bg); text-shadow:none; outline:none; }

/* LOCATION TWO-COLUMN LAYOUT */
.content-body:has(.location-grid) { max-width:none; }
.location-grid { display:flex; gap:24px; align-items:flex-start; margin-top:4px; }
.location-grid-map { flex:0 0 460px; min-width:0; }
.location-grid-map .map-container { margin-top:0; }
.location-grid-map .map-container svg { max-width:100%; }
.location-grid-text { flex:1 1 0; min-width:0; max-width:60ch; }
@media (max-width:760px) {
  .location-grid { flex-direction:column; gap:8px; }
  .location-grid-map { flex:1 1 auto; width:100%; }
  .location-grid-text { max-width:none; }
}

/* LINKS */
a, a:visited { color:inherit; text-decoration:underline; text-decoration-color:var(--green-mid); text-underline-offset:2px; }
a:hover, a:focus { text-decoration-color:var(--green); outline:none; }

/* COPYRIGHT */
#copyright-bar { flex-shrink:0; text-align:center; font-size:16px; color:var(--bar-text); background:var(--bar-bg); text-shadow:none; padding:1px 10px; user-select:none; letter-spacing:1px; }

/* NAV */
#keybar-nav   { flex-shrink:0; background:var(--bg); border-top:1px solid var(--green-mid); padding:3px 8px 2px 8px; display:flex; flex-wrap:wrap; gap:2px 8px; user-select:none; }
#keybar-theme { flex-shrink:0; background:var(--bg); padding:2px 8px 5px 8px; display:flex; flex-wrap:wrap; gap:2px 8px; align-items:center; user-select:none; }
.key-cmd { display:inline-flex; align-items:center; gap:0; cursor:pointer; font-size:17px; padding:1px 2px; }
.key-cmd:hover { opacity:0.8; }
.kc-key   { background:var(--green); color:var(--bg); text-shadow:none; padding:0 5px; font-family:var(--font); font-size:17px; min-width:20px; text-align:center; display:inline-block; }
.kc-label { color:var(--green); font-size:17px; padding-left:3px; font-family:var(--font); }

.theme-label { color:var(--green); font-size:17px; font-family:var(--font); padding-right:4px; }
.theme-swatch { display:inline-flex; align-items:center; gap:4px; cursor:pointer; padding:1px 4px; font-size:17px; font-family:var(--font); }
.theme-swatch:hover { opacity:0.8; }
.swatch-dot { width:10px; height:10px; border-radius:50%; display:inline-block; flex-shrink:0; }
.swatch-green .swatch-dot { background:#77ff44; box-shadow:0 0 4px #77ff44; }
.swatch-amber .swatch-dot { background:#ffb000; box-shadow:0 0 4px #ffb000; }
.swatch-white .swatch-dot { background:#ffffff; }
.swatch-white .swatch-label { color:#ffffff; font-family:var(--font); font-size:17px; }
.swatch-green .swatch-label { color:#77ff44; text-shadow:0 0 4px rgba(119,255,68,0.65); font-family:var(--font); font-size:17px; }
.swatch-amber .swatch-label { color:#ffb000; text-shadow:0 0 4px rgba(255,176,0,0.65); font-family:var(--font); font-size:17px; }
.theme-swatch.active .swatch-label::before { content:'['; }
.theme-swatch.active .swatch-label::after  { content:']'; }

/* ESCAPE MODE */
body.escape-mode { --green:#cc1111; --green-mid:#6b0000; --bar-bg:#1a0000; --bar-text:#cc1111; --glow:0 0 4px rgba(204,17,17,0.65),0 0 9px rgba(204,17,17,0.2); --map-bright:#dc4646; --map-mid:#cc1111; --map-dim:#430505; }
body.escape-mode #statusbar,
body.escape-mode #copyright-bar,
body.escape-mode #cmdline-bar,
body.escape-mode #keybar-nav,
body.escape-mode #keybar-theme,
body.escape-mode .menu-item,
body.escape-mode .menu-header,
body.escape-mode .pine-hero,
body.escape-mode .content-header,
body.escape-mode .content-body,
body.escape-mode .help-item,
body.escape-mode .help-section-label,
body.escape-mode .boot-line,
body.escape-mode .fossil-fact-box,
body.escape-mode .ticket-box,
body.escape-mode .compose-field,
body.escape-mode .compose-textarea,
body.escape-mode .compose-send-btn,
body.escape-mode .key-cmd,
body.escape-mode .theme-swatch,
body.escape-mode .theme-label { animation: dark-pulse 2.8s ease-in-out infinite; }
body.escape-mode .cursor,
body.escape-mode #cmdline-cursor { animation: dark-pulse 2.8s ease-in-out infinite !important; }
body.escape-mode .swatch-dot { background:#cc1111 !important; box-shadow:0 0 4px #cc1111 !important; }
body.escape-mode .swatch-label,
body.escape-mode .theme-label,
body.escape-mode .kc-label { color:#cc1111 !important; text-shadow:0 0 4px rgba(204,17,17,0.65) !important; }
body.escape-mode .kc-key { background:#cc1111 !important; color:#000 !important; }
body.escape-mode .theme-chip { color:#cc1111 !important; text-shadow:0 0 4px rgba(204,17,17,0.65) !important; }

/* Inverse mode: all swatches go black */
body.theme-inverse .swatch-green .swatch-dot,
body.theme-inverse .swatch-amber .swatch-dot,
body.theme-inverse .swatch-white .swatch-dot { background:#000000; box-shadow:none; }
body.theme-inverse .swatch-green .swatch-label,
body.theme-inverse .swatch-amber .swatch-label,
body.theme-inverse .swatch-white .swatch-label { color:#000000; text-shadow:none; }

.cursor { display:inline-block; width:11px; height:1em; background:var(--green); vertical-align:text-bottom; animation:blink 1s step-end infinite; box-shadow:0 0 5px var(--green); }

/* COMMAND LINE BAR */
#cmdline-bar { flex-shrink:0; background:var(--bg); border-top:1px solid var(--green-mid); padding:2px 10px 3px 10px; display:flex; align-items:center; gap:4px; cursor:text; }
#cmdline-prompt { color:var(--green); font-family:var(--font); font-size:18px; text-shadow:var(--glow); flex-shrink:0; user-select:none; }
#cmdline-display { color:var(--green); font-family:var(--font); font-size:18px; text-shadow:var(--glow); flex-shrink:0; white-space:pre; letter-spacing:1px; }
#cmdline-cursor { display:inline-block; width:10px; height:1em; background:var(--green); vertical-align:text-bottom; animation:blink 1s step-end infinite; box-shadow:0 0 5px var(--green); flex-shrink:0; }
#cmdline-input { position:absolute; left:-9999px; opacity:0; width:1px; height:1px; }

@keyframes blink { 0%,100%{opacity:1} 50%{opacity:0} }
@keyframes dark-pulse {
  0%   { opacity: 1;    text-shadow: 0 0 4px rgba(204,17,17,0.5),  0 0 12px rgba(204,17,17,0.15); }
  40%  { opacity: 0.62; text-shadow: 0 0 2px rgba(204,17,17,0.2); }
  55%  { opacity: 0.68; text-shadow: 0 0 3px rgba(204,17,17,0.25); }
  75%  { opacity: 0.96; text-shadow: 0 0 8px rgba(255,30,30,0.75), 0 0 22px rgba(255,30,30,0.35); }
  85%  { opacity: 1;    text-shadow: 0 0 14px rgba(255,40,40,0.95),0 0 32px rgba(255,40,40,0.55); }
  100% { opacity: 1;    text-shadow: 0 0 4px rgba(204,17,17,0.5),  0 0 12px rgba(204,17,17,0.15); }
}
@keyframes flicker { 0%{opacity:1} 3%{opacity:0.78} 5%{opacity:1} 35%{opacity:1} 37%{opacity:0.85} 39%{opacity:1} 100%{opacity:1} }
#crt.flicker-anim { animation:flicker 0.3s linear; }

@keyframes degauss-wave {
  0%  { transform:scale(1) skew(0,0); filter:hue-rotate(0deg) saturate(1) blur(0px); opacity:1; }
  15% { transform:scale(1.04) skew(3deg,-2deg); filter:hue-rotate(90deg) saturate(8) blur(2px); opacity:0.9; }
  30% { transform:scale(0.97) skew(-4deg,3deg); filter:hue-rotate(180deg) saturate(12) blur(3px); opacity:0.85; }
  50% { transform:scale(1.02) skew(2deg,-1deg); filter:hue-rotate(270deg) saturate(6) blur(1px); opacity:0.95; }
  70% { transform:scale(0.99) skew(-1deg,1deg); filter:hue-rotate(320deg) saturate(3) blur(0.5px); opacity:1; }
  85% { transform:scale(1.005) skew(0.5deg,0); filter:hue-rotate(350deg) saturate(1.5); opacity:1; }
  100%{ transform:scale(1) skew(0,0); filter:hue-rotate(360deg) saturate(1); opacity:1; }
}
#crt.degauss-anim { animation:degauss-wave 0.9s ease-out; }

#konami-overlay { display:none; position:fixed; inset:0; background:var(--bg); z-index:4000; align-items:center; justify-content:center; overflow:hidden; }
#konami-overlay.active { display:flex; }
#konami-text { font-family:var(--font); font-size:clamp(28px,8vw,60px); color:var(--green); text-shadow:var(--glow); text-align:center; letter-spacing:4px; line-height:1.3; white-space:pre-wrap; }

#screensaver { display:none; position:fixed; inset:0; background:var(--bg); z-index:2500; flex-direction:column; align-items:center; justify-content:center; overflow:hidden; }
#screensaver.active { display:flex; }
#screensaver-text  { font-family:var(--font); font-size:20px; color:var(--green); text-shadow:var(--glow); text-align:center; max-width:60ch; padding:20px; line-height:1.8; transition:opacity 0.8s; }
#screensaver-label { font-family:var(--font); font-size:16px; color:var(--green); text-shadow:var(--glow); margin-top:30px; animation:blink 1.5s step-end infinite; }

#quit-overlay { display:none; position:fixed; inset:0; background:var(--bg); z-index:2000; align-items:center; justify-content:center; flex-direction:column; font-size:24px; text-align:center; padding:20px; gap:14px; color:var(--green); }
#quit-overlay.visible { display:flex; }

/* ESCAPE MODE clock */
#escape-clock { display:none; position:fixed; z-index:3500; background:#000; padding:8px 18px; font-family:'VT323',monospace; font-size:52px; color:#cc0000; text-shadow:0 0 8px #ff0000,0 0 20px rgba(255,0,0,0.5); letter-spacing:6px; line-height:1; pointer-events:none; }
#escape-clock.active { display:block; }
#escape-clock.safe { color:#77ff44; text-shadow:0 0 8px #77ff44,0 0 20px rgba(119,255,68,0.5); }
#escape-fall-layer { display:none; position:fixed; inset:0; pointer-events:none; z-index:3000; overflow:hidden; }
#escape-fall-layer.active { display:block; }
.fall-char { position:fixed; font-family:'VT323',monospace; color:var(--green); text-shadow:var(--glow); pointer-events:none; will-change:transform; }

/* PRINT */
@media print {
  body { background:#000 !important; color:#77ff44 !important; }
  #crt::before,#crt::after { display:none !important; }
  #konami-overlay,#screensaver,#quit-overlay { display:none !important; }
}
body.printing-ticket #crt > *:not(#terminal-body),
body.printing-ticket #terminal-body > .screen:not(.active) { display:none !important; }
@media print {
  body.printing-ticket { background:#fff !important; color:#000 !important; overflow:visible !important; }
  body.printing-ticket #crt { position:static !important; height:auto !important; overflow:visible !important; }
  body.printing-ticket #terminal-body { overflow:visible !important; padding:10px !important; }
  body.printing-ticket .content-header { background:#000 !important; color:#fff !important; }
  body.printing-ticket .ticket-box { border:2px solid #000 !important; color:#000 !important; background:#fff !important; }
  body.printing-ticket .ticket-header { background:#000 !important; color:#fff !important; }
  body.printing-ticket .ticket-stub { border-top:2px dashed #000 !important; }
  body.printing-ticket .ticket-divider { border-top:1px dashed #000 !important; }
  body.printing-ticket .ticket-barcode,
  body.printing-ticket .ticket-body,
  body.printing-ticket .ticket-row,
  body.printing-ticket .ticket-title,
  body.printing-ticket .ticket-admit { color:#000 !important; text-shadow:none !important; }
  body.printing-ticket .ticket-print-hint,
  body.printing-ticket #keybar-nav,
  body.printing-ticket #keybar-theme,
  body.printing-ticket #copyright-bar,
  body.printing-ticket #statusbar { display:none !important; }
  body.printing-ticket #crt::before,
  body.printing-ticket #crt::after { display:none !important; }
}

@media (max-width:500px) {
  html,body { font-size:17px; }
  .pine-hero .show-title { font-size:24px; }
  .menu-item,.help-item { font-size:18px; }
  .menu-key,.help-key { font-size:18px; }
  .key-cmd,.kc-key,.kc-label { font-size:15px; }
  #statusbar { font-size:14px; }
  .pine-hero .venue-line,.pine-hero .date-line { font-size:16px; }
  .swatch-label,.theme-label { font-size:15px; }
  .content-body { font-size:19px; }
}
