/* Terminal Monastery tokens. Set data-theme="green" (default) or "amber" on <html> or any container. */
:root,[data-theme="green"]{
  --tm-phosphor:#7CFF8A;
  --tm-phosphor-dim:#2E7A3A;
  --tm-phosphor-faint:#174A22;
  --tm-bg:#03140A;
  --tm-bg-deep:#020302;
  --tm-ink-inverse:#000000;
  --tm-accent:#C8FFD0;
}
[data-theme="amber"]{
  --tm-phosphor:#FFB547;
  --tm-phosphor-dim:#8A5A1A;
  --tm-phosphor-faint:#4A3010;
  --tm-bg:#140C02;
  --tm-bg-deep:#030201;
  --tm-ink-inverse:#000000;
  --tm-accent:#FFE2B0;
}
:root{
  --tm-font-display:'VT323', monospace;
  --tm-font-mono:'IBM Plex Mono', ui-monospace, monospace;
  --tm-radius-screen:38px;
  --tm-border:2px;
  --tm-space-1:4px;
  --tm-space-2:8px;
  --tm-space-3:16px;
  --tm-space-4:24px;
  --tm-space-5:40px;
  --tm-size-xs:13px;
  --tm-size-sm:15px;
  --tm-size-md:18px;
  --tm-size-lg:22px;
  --tm-display-sm:28px;
  --tm-display-md:36px;
  --tm-display-lg:64px;
  --tm-glow:0 0 2px var(--tm-phosphor), 0 0 9px var(--tm-phosphor);
  --tm-scanline:rgba(0,0,0,.32);
}
.tm-crt{position:relative;border-radius:var(--tm-radius-screen);overflow:hidden;color:var(--tm-phosphor);
 background:radial-gradient(ellipse at center,var(--tm-bg) 0%,var(--tm-bg-deep) 100%);box-shadow:inset 0 0 160px rgba(0,0,0,.95),inset 0 0 40px rgba(0,0,0,.8)}
.tm-crt::before{content:'';position:absolute;inset:0;pointer-events:none;z-index:50;
 background:radial-gradient(ellipse at 50% 45%,rgba(255,255,255,.06),transparent 55%),radial-gradient(ellipse at center,transparent 62%,rgba(0,0,0,.75) 100%)}
.tm-scanlines::after{content:'';position:absolute;inset:0;pointer-events:none;z-index:51;background:repeating-linear-gradient(0deg,var(--tm-scanline) 0 1px,transparent 1px 3px)}
.tm-glow{text-shadow:var(--tm-glow)}
.tm-cursor-blink{display:inline-block;width:.62em;height:1.15em;background:var(--tm-phosphor);vertical-align:-.2em;box-shadow:0 0 12px var(--tm-phosphor);animation:tm-blink 1.06s steps(1) infinite}
@keyframes tm-blink{50%{opacity:0}}
.tm-flicker{animation:tm-flicker 4s infinite}
@keyframes tm-flicker{0%,100%{opacity:1}92%{opacity:1}93%{opacity:.86}94%{opacity:1}97%{opacity:.93}}
@media (prefers-reduced-motion:reduce){.tm-flicker{animation:none}.tm-cursor-blink{animation:none}}
@font-face{font-family:'VT323';src:url(fonts/VT323-Regular.woff2) format('woff2'),url(fonts/VT323-Regular.ttf) format('truetype');font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url(fonts/IBMPlexMono-Regular.woff2) format('woff2'),url(fonts/IBMPlexMono-Regular.ttf) format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url(fonts/IBMPlexMono-Medium.woff2) format('woff2'),url(fonts/IBMPlexMono-Medium.ttf) format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url(fonts/IBMPlexMono-Bold.woff2) format('woff2'),url(fonts/IBMPlexMono-Bold.ttf) format('truetype');font-weight:700;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url(fonts/IBMPlexMono-Italic.woff2) format('woff2'),url(fonts/IBMPlexMono-Italic.ttf) format('truetype');font-style:italic;font-display:swap}
.tm-display-lg{font:var(--tm-display-lg)/1 var(--tm-font-display)}
.tm-display-md{font:var(--tm-display-md)/1.1 var(--tm-font-display)}
.tm-display-sm{font:var(--tm-display-sm)/1.1 var(--tm-font-display);letter-spacing:1px}
.tm-body{font:400 var(--tm-size-md)/1.5 var(--tm-font-mono)}
.tm-body-sm{font:400 var(--tm-size-sm)/1.45 var(--tm-font-mono)}
.tm-caption{font:500 var(--tm-size-xs)/1.3 var(--tm-font-mono);letter-spacing:.5px;text-transform:uppercase}
.tm-prompt{font:400 var(--tm-size-md)/1.5 var(--tm-font-mono);color:var(--tm-phosphor-dim)}
.tm-dim{color:var(--tm-phosphor-dim);text-shadow:none}
.tm-screen{font:var(--tm-size-md)/1.5 var(--tm-font-mono);color:var(--tm-phosphor);text-shadow:var(--tm-glow)}
.tm-icon{width:1.2em;height:1.2em;vertical-align:-.25em;display:inline-block}
.tm-pane{position:relative;border:var(--tm-border) solid var(--tm-phosphor-dim);background:rgba(0,0,0,.25)}
.tm-pane__title{position:absolute;top:-.95em;left:16px;background:var(--tm-bg);padding:0 10px;font:var(--tm-display-sm)/1 var(--tm-font-display);letter-spacing:1px}
.tm-pane__body{padding:24px 20px}
.tm-titlebar{display:flex;align-items:center;gap:30px;border-bottom:var(--tm-border) solid var(--tm-phosphor-dim);padding:8px 0}
.tm-titlebar__brand{font:var(--tm-display-lg)/1 var(--tm-font-display)}
.tm-titlebar__keys{margin-left:auto;font-size:var(--tm-size-sm)}
.tm-tree,.tm-tree ul{list-style:none;margin:0;padding:0}.tm-tree ul{padding-left:1.4em}
.tm-tree li{white-space:nowrap;line-height:1.55}.tm-tree .tm-caret{color:var(--tm-phosphor-dim);text-shadow:none;display:inline-block;width:1.2em}
.tm-tree .tm-count{color:var(--tm-phosphor-dim);text-shadow:none;float:right}
.tm-selected{background:var(--tm-phosphor);color:var(--tm-ink-inverse);text-shadow:none;padding:0 4px}
.tm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px}
.tm-grid__item{text-align:center;padding:12px 6px;border:1px dashed transparent;font-size:var(--tm-size-sm)}
.tm-grid__item .tm-icon{width:44px;height:44px;display:block;margin:0 auto 8px}
.tm-grid__item.is-selected{border-color:var(--tm-phosphor)}
.tm-list{width:100%;border-collapse:collapse;font-size:var(--tm-size-sm)}.tm-list th{text-align:left;color:var(--tm-phosphor-dim);text-shadow:none;font-weight:500;border-bottom:1px solid var(--tm-phosphor-dim);padding:6px 10px}.tm-list td{padding:6px 10px}
.tm-terminal{white-space:pre-wrap;font:var(--tm-size-md)/1.5 var(--tm-font-mono)}.tm-terminal .tm-prompt{color:var(--tm-phosphor-dim);text-shadow:none}
.tm-preview__heading{font:var(--tm-display-md)/1.1 var(--tm-font-display);margin:.4em 0}
.tm-player__wave{letter-spacing:2px;font-size:var(--tm-size-lg)}.tm-player__wave .rest{color:var(--tm-phosphor-dim);text-shadow:none}
.tm-progress{display:inline-block;letter-spacing:0}
.tm-ascii-img{font:15px/1.2 var(--tm-font-mono);white-space:pre;margin:0}
.tm-drag-ghost{display:inline-flex;gap:10px;align-items:center;border:1.5px dashed var(--tm-phosphor);background:var(--tm-bg);padding:6px 12px;transform:rotate(-4deg);opacity:.93;box-shadow:0 10px 30px #000}
.tm-drop-target{outline:2px dashed var(--tm-phosphor);outline-offset:3px;background:rgba(255,255,255,.07)}
.tm-statusbar{display:flex;align-items:center;gap:36px;border-top:var(--tm-border) solid var(--tm-phosphor-dim);padding:10px 0;font-size:var(--tm-size-sm)}
.tm-statusbar__mode{background:var(--tm-phosphor);color:var(--tm-ink-inverse);text-shadow:none;padding:2px 10px}.tm-statusbar__spacer{flex:1}
.tm-badge{display:inline-block;border:1.5px solid var(--tm-phosphor);padding:0 6px;font:500 var(--tm-size-xs)/1.5 var(--tm-font-mono);letter-spacing:.5px}
.tm-btn{font:500 var(--tm-size-md) var(--tm-font-mono);color:var(--tm-phosphor);background:transparent;border:var(--tm-border) solid var(--tm-phosphor);padding:8px 18px;text-shadow:inherit;cursor:pointer}
.tm-btn--primary{background:var(--tm-phosphor);color:var(--tm-ink-inverse);text-shadow:none}
.tm-btn:focus-visible,.tm-input:focus-visible{outline:2px dashed var(--tm-accent);outline-offset:3px}
.tm-input{font:var(--tm-size-md) var(--tm-font-mono);color:var(--tm-phosphor);background:rgba(0,0,0,.4);border:var(--tm-border) solid var(--tm-phosphor-dim);padding:8px 12px;caret-color:var(--tm-phosphor)}
.tm-input::placeholder{color:var(--tm-phosphor-dim)}
