/* JR Media overrides (loaded after theme.css) */
:root { --tt-main-color: #6f7f45; --tt-link-color: #8a9a58; --tt-link-hover-color: #a9b978; }
body.tt-lightmode-on { --tt-main-color: #5f6e38; --tt-link-color: #5f6e38; --tt-link-hover-color: #4a5729; }
.ph-caption-description { color: #fff; opacity: 1; text-shadow: none; font-weight: 500; }
.tt-ptr-prel-image { max-height: 96px; opacity: 1; }
/* project cards + pages */
.proj-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.proj-grid-lg { grid-template-columns:1fr 1fr; }
@media (max-width:800px){ .proj-grid, .proj-grid-lg { grid-template-columns:1fr; } }
.pc { display:block; border:1px solid var(--tt-border-color); border-radius:12px; overflow:hidden; background:rgba(255,255,255,.015); transition:transform .4s, border-color .3s; }
.pc:hover { transform:translateY(-4px); border-color:var(--tt-main-color); }
.pc-cover { position:relative; aspect-ratio:16/9; overflow:hidden; background:#0f0f0d; }
.pc-cover img { width:100%; height:100%; object-fit:cover; }
.pc-cat { position:absolute; top:12px; left:12px; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--tt-main-color); background:rgba(0,0,0,.55); padding:5px 10px; border-radius:6px; }
.pc-body { padding:22px 24px 26px; }
.pc-title { font-family:"Big Shoulders Display",sans-serif; font-size:30px; font-weight:700; text-transform:uppercase; letter-spacing:.01em; margin:0 0 8px; }
.pc-blurb { color:var(--tt-text-muted-color); font-size:15px; line-height:1.6; margin:0 0 16px; }
.pc-tags, .proj-tags { display:flex; flex-wrap:wrap; gap:7px; }
.proj-tags { margin-top:24px; }
.pc-tag { font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--tt-main-color); border:1px solid var(--tt-border-color); border-radius:5px; padding:5px 9px; }
.stat-row { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:48px; border-top:1px solid var(--tt-border-color); padding-top:32px; }
@media (max-width:700px){ .stat-row { grid-template-columns:1fr 1fr; } }
.stat-n { font-family:"Big Shoulders Display",sans-serif; font-size:clamp(34px,4vw,52px); font-weight:700; color:var(--tt-main-color); line-height:1; }
.stat-l { color:var(--tt-text-muted-color); font-size:13px; letter-spacing:.06em; text-transform:uppercase; margin-top:8px; }
.proj-section { max-width:1000px; }
.proj-body { font-size:18px; line-height:1.7; color:var(--tt-text-color); margin-top:24px; }
.proj-body p { margin:0 0 1.1em; max-width:68ch; }
.diagram-wrap { margin:40px 0 8px; padding:clamp(18px,3vw,40px); border:1px solid var(--tt-border-color); border-radius:14px; background:rgba(138,154,88,.03); }
.feat-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:36px; }
@media (max-width:800px){ .feat-cards { grid-template-columns:1fr; } }
.feat-card { border:1px solid var(--tt-border-color); border-left:2px solid var(--tt-main-color); border-radius:10px; padding:24px 22px; background:rgba(255,255,255,.015); }
.feat-card h4 { font-family:"Big Shoulders Display",sans-serif; font-size:19px; font-weight:600; text-transform:uppercase; letter-spacing:.03em; margin:0 0 10px; }
.feat-card p { color:var(--tt-text-muted-color); font-size:14px; line-height:1.6; margin:0; }
.tt-diagram text { dominant-baseline:middle; }
/* terminal 404 */
.term { max-width:760px; border:1px solid var(--tt-border-color); border-radius:12px; overflow:hidden; background:#0b0b0a; box-shadow:0 30px 80px rgba(0,0,0,.5); }
.term-bar { display:flex; align-items:center; gap:7px; padding:11px 14px; background:#161614; border-bottom:1px solid var(--tt-border-color); }
.term-bar span { width:11px; height:11px; border-radius:50%; background:#3a3a36; }
.term-bar span:first-child { background:#c3554a; } .term-bar span:nth-child(2) { background:#c9a13b; } .term-bar span:nth-child(3) { background:var(--tt-main-color); }
.term-bar em { margin-left:10px; font-style:normal; font-family:"IBM Plex Mono",monospace; font-size:12px; color:var(--tt-text-muted-color); }
.term-body { margin:0; padding:22px 24px 26px; font-family:"IBM Plex Mono",monospace; font-size:15px; line-height:1.9; color:var(--tt-text-color); white-space:pre-wrap; }
.term-line { display:block; opacity:0; transform:translateY(3px); transition:opacity .25s, transform .25s; }
.term-line.on { opacity:1; transform:none; }
.term-line b { color:var(--tt-main-color); font-weight:600; }
.term-line i { font-style:normal; color:#e8e6dd; }
.term-err { color:#d9776a; }
.term-out a { color:var(--tt-main-color); border-bottom:1px solid transparent; }
.term-out a:hover { border-bottom-color:var(--tt-main-color); }
.term-line .typed-cursor { display:inline-block; width:.6em; height:1.05em; background:var(--tt-main-color); vertical-align:-3px; animation:typedblink 1s steps(1) infinite; }
.term-hint { margin-top:26px; color:var(--tt-text-muted-color); }
body.tt-lightmode-on .term { background:#f4f3ef; } body.tt-lightmode-on .term-bar { background:#e8e6df; } body.tt-lightmode-on .term-body { color:#1a1a18; } body.tt-lightmode-on .term-line i { color:#1a1a18; }

/* typed hero line */
.tt-typed { font-family:"IBM Plex Mono", ui-monospace, Menlo, monospace !important; letter-spacing:.06em !important; text-transform:none !important; font-size:15px !important; min-height:1.6em; }
.tt-typed .typed-cursor { display:inline-block; width:.6em; height:1.05em; background:var(--tt-main-color); margin-left:4px; vertical-align:-2px; animation:typedblink 1s steps(1) infinite; }
.tt-typed.typed-static .typed-cursor { display:none; }
.ph-mask .tt-typed .typed-cursor { background:#111; }
@keyframes typedblink { 50% { opacity:0; } }

/* timeline + photo */
.timeline { display:grid; grid-template-columns:repeat(7,1fr); gap:0; margin-top:56px; position:relative; }
.timeline::before { content:""; position:absolute; left:0; right:0; top:7px; height:1px; background:var(--tt-border-color); }
.tl { position:relative; padding:0 12px 0 0; }
.tl-dot { width:15px; height:15px; border-radius:50%; background:var(--tt-bg-color); border:2px solid var(--tt-main-color); margin-bottom:12px; position:relative; }
.tl:last-child .tl-dot { background:var(--tt-main-color); }
.tl-y { color:var(--tt-main-color); font-size:12px; letter-spacing:.12em; text-transform:uppercase; font-weight:600; }
.tl-t { font-family:"Big Shoulders Display",sans-serif; font-size:19px; font-weight:600; text-transform:uppercase; letter-spacing:.02em; margin:4px 0 4px; line-height:1.1; }
.tl-d { color:var(--tt-text-muted-color); font-size:12.5px; line-height:1.45; }
@media (max-width:1000px){ .timeline { grid-template-columns:repeat(4,1fr); row-gap:26px; } .timeline::before { display:none; } }
@media (max-width:560px){ .timeline { grid-template-columns:1fr 1fr; } }
.about-photo { margin-top:34px; width:min(320px,100%); aspect-ratio:4/5; overflow:hidden; border-radius:12px; border:1px solid var(--tt-border-color); }
.about-photo img { width:100%; height:100%; object-fit:cover; display:block; }
.about-copy p { max-width:68ch; }

/* badges */
.badges-head { display:flex; justify-content:space-between; align-items:baseline; margin-top:52px; padding-top:22px; border-top:1px solid var(--tt-border-color); font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--tt-text-muted-color); }
.badges { display:grid; grid-template-columns:repeat(6,1fr); gap:14px; margin-top:22px; }
@media (max-width:1000px){ .badges { grid-template-columns:repeat(3,1fr); } }
@media (max-width:560px){ .badges { grid-template-columns:repeat(2,1fr); } }
.badge { display:block; text-align:center; border:1px solid var(--tt-border-color); border-radius:12px; padding:18px 12px 16px; background:rgba(0,0,0,.25); transition:transform .3s, border-color .3s; }
.badge:hover { transform:translateY(-3px); border-color:var(--tt-main-color); }
.badge-img { width:96px; height:96px; margin:0 auto 12px; }
.badge-img img, .badge-img svg { width:100%; height:100%; object-fit:contain; display:block; }
.badge-name { font-size:13px; font-weight:600; line-height:1.3; min-height:2.6em; }
.badge-meta { color:var(--tt-text-muted-color); font-size:11px; margin-top:6px; }
.badges-compact .badge { padding:14px 10px 12px; }
.badges-compact .badge-img { width:76px; height:76px; }
.badges-compact .badge-name { font-size:12px; }

.ph-image img, .tt-stp-item-image img, .tt-ppli-preview-image img { object-position: var(--hero-pos, 50% 50%); }

/* motif band, about, resume */
.motif-band { position:relative; }
.motif-band::before { content:""; position:absolute; inset:0; background:url(assets/img/covers/band.svg) center/cover no-repeat; opacity:.55; pointer-events:none; }
.motif-band > * { position:relative; }
.about-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:34px; }
.about-copy { margin-top:26px; color:var(--tt-text-muted-color); font-size:16px; line-height:1.75; }
.about-copy p { max-width:62ch; margin:0 0 1em; }
.what-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:56px; }
@media (max-width:900px){ .what-grid { grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .what-grid { grid-template-columns:1fr; } }
.what { border:1px solid var(--tt-border-color); border-top:2px solid var(--tt-main-color); border-radius:10px; padding:22px 20px; background:rgba(0,0,0,.25); }
.what h4 { font-family:"Big Shoulders Display",sans-serif; font-size:20px; font-weight:600; text-transform:uppercase; letter-spacing:.03em; margin:0 0 8px; }
.what p { color:var(--tt-text-muted-color); font-size:14px; line-height:1.6; margin:0; }
.feat-cards-4 { grid-template-columns:repeat(2,1fr); }
@media (max-width:800px){ .feat-cards-4 { grid-template-columns:1fr; } }
.resume-side { text-align:left; }
.rs-contact { color:var(--tt-text-muted-color); font-size:15px; line-height:1.8; }
.rx-list { border-top:1px solid var(--tt-border-color); }
.rx { display:grid; grid-template-columns:180px 1fr; gap:24px; padding:28px 0; border-bottom:1px solid var(--tt-border-color); }
@media (max-width:700px){ .rx { grid-template-columns:1fr; gap:6px; } }
.rx-when { color:var(--tt-main-color); font-size:13px; letter-spacing:.1em; text-transform:uppercase; padding-top:6px; }
.rx-main h4 { font-family:"Big Shoulders Display",sans-serif; font-size:26px; font-weight:700; text-transform:uppercase; letter-spacing:.02em; margin:0 0 4px; }
.rx-org { color:var(--tt-text-muted-color); font-size:14px; margin-bottom:12px; }
.rx-main ul { margin:0; padding-left:18px; }
.rx-main li { margin:0 0 6px; line-height:1.6; font-size:15px; max-width:70ch; }
.skills { display:grid; grid-template-columns:1fr 1fr; gap:22px 40px; margin-top:8px; }
@media (max-width:700px){ .skills { grid-template-columns:1fr; } }
.skill-group h4 { font-family:"Big Shoulders Display",sans-serif; font-size:19px; font-weight:600; text-transform:uppercase; letter-spacing:.03em; margin:0 0 10px; }
.rs-langs { color:var(--tt-text-muted-color); margin-top:30px; font-size:15px; }
@media print {
  @page { size: letter; margin: 0.5in 0.55in; }
  #tt-header, .tt-scroll-down, .tt-scroll-to-top, #magic-cursor, #tt-page-transition, #tt-footer, .tt-style-switch, .print-btn, .resume-side .tt-btn, .ph-social, .ph-mask, .cta-print-hide, .ph-image { display:none !important; }
  html, body { background:#fff !important; color:#111 !important; font-size:12.5px !important; }
  * { color:#111 !important; text-shadow:none !important; background:none !important; -webkit-text-fill-color:#111 !important; box-shadow:none !important; }
  #tt-content-wrap, main, #body-inner { margin:0 !important; padding:0 !important; }
  #page-header { height:auto !important; min-height:0 !important; padding:0 !important; margin:0 0 6px !important; }
  .page-header-inner, .ph-caption-inner { padding:0 !important; }
  .ph-caption { text-align:left !important; }
  .ph-caption-title { font-size:11px !important; letter-spacing:.25em !important; line-height:1 !important; margin:4px 0 0 !important; font-family:Poppins,sans-serif !important; font-weight:600 !important; }
  .ph-caption-subtitle { font-size:34px !important; letter-spacing:0 !important; margin:0 !important; font-family:'Big Shoulders Display',sans-serif !important; font-weight:700 !important; text-transform:uppercase !important; }
  .ph-caption-description { font-size:10px !important; letter-spacing:.12em !important; margin:6px 0 0 !important; }
  .tt-section { padding:8px 0 !important; }
  .tt-section-inner, .tt-wrap { padding:0 !important; max-width:none !important; }
  .tt-heading { margin:0 0 6px !important; break-after:avoid; }
  .tt-section { break-inside:avoid; }
  .tt-heading-title { font-size:20px !important; line-height:1.1 !important; }
  .text-xlg { font-size:13px !important; line-height:1.5 !important; }
  .resume-side { margin-top:6px !important; }
  .rs-contact { font-size:11.5px !important; }
  .feat-cards, .feat-cards-4 { display:grid !important; grid-template-columns:1fr 1fr !important; gap:6px !important; margin-top:6px !important; }
  .feat-card { padding:7px 9px !important; border:1px solid #ccc !important; border-left:2px solid #5f6e38 !important; border-radius:4px !important; break-inside:avoid; }
  .feat-card h4 { font-size:12px !important; margin:0 0 2px !important; }
  .feat-card p { font-size:10.5px !important; line-height:1.35 !important; }
  .rx-list { border-top:1px solid #ccc !important; }
  .rx { grid-template-columns:120px 1fr !important; gap:10px !important; padding:7px 0 !important; border-bottom:1px solid #ddd !important; break-inside:avoid; }
  .rx-when { font-size:9.5px !important; padding-top:3px !important; color:#5f6e38 !important; -webkit-text-fill-color:#5f6e38 !important; }
  .rx-main h4 { font-size:15px !important; margin:0 !important; }
  .rx-org { font-size:10.5px !important; margin:0 0 3px !important; }
  .rx-main ul { padding-left:14px !important; }
  .rx-main li { font-size:10.5px !important; line-height:1.35 !important; margin:0 0 1px !important; max-width:none !important; }
  .skills { grid-template-columns:1fr 1fr !important; gap:6px 18px !important; margin:0 !important; }
  .skill-group h4 { font-size:11.5px !important; margin:0 0 3px !important; }
  .pc-tags { gap:3px !important; }
  .pc-tag { font-size:8.5px !important; padding:1px 4px !important; border:1px solid #bbb !important; border-radius:3px !important; letter-spacing:.04em !important; }
  .rs-langs { margin-top:8px !important; font-size:10.5px !important; }
  .badges { grid-template-columns:repeat(6,1fr) !important; gap:5px !important; margin-top:4px !important; }
  .badge { padding:5px 3px !important; border:1px solid #ddd !important; border-radius:4px !important; break-inside:avoid; }
  .badge-img { width:44px !important; height:44px !important; margin-bottom:4px !important; }
  .badge-name { font-size:8px !important; min-height:0 !important; line-height:1.2 !important; }
  .badge-meta { font-size:7.5px !important; margin-top:2px !important; }
  .tt-anim-fadeinup, .tt-text-reveal, .tt-anim-zoomin, [class*="tt-anim"] { opacity:1 !important; transform:none !important; visibility:visible !important; }
  a { text-decoration:none !important; }
}
