/*
Theme Name:   ZT Terminal
Theme URI:    https://zachthomas.net
Description:  Terminal-style block theme for zachthomas.net. Pairs with the ZT Core plugin for projects, resume, live app cards, contact and booking. System fonts only, dark by default with a light mode.
Author:       Zach Thomas
Version:      1.0.0
Requires at least: 6.4
Requires PHP: 7.4
License:      GNU General Public License v2 or later
Text Domain:  zt-theme
*/

:root{
  --zt-bg:var(--wp--preset--color--bg);--zt-bg-alt:var(--wp--preset--color--bg-alt);--zt-panel:var(--wp--preset--color--panel);--zt-line:var(--wp--preset--color--line);
  --zt-text:var(--wp--preset--color--text);--zt-muted:var(--wp--preset--color--muted);--zt-heading:var(--wp--preset--color--heading);
  --zt-blue:var(--wp--preset--color--blue);--zt-green:var(--wp--preset--color--green);
  --zt-mono:var(--wp--preset--font-family--mono);--zt-sans:var(--wp--preset--font-family--sans);
  color-scheme:dark;
}
/* light mode: re-point the palette presets */
:root[data-theme="light"]{
  --wp--preset--color--bg:#f6f8fc;--wp--preset--color--bg-alt:#ffffff;--wp--preset--color--panel:#ffffff;--wp--preset--color--line:#d8e0ee;
  --wp--preset--color--text:#33415a;--wp--preset--color--muted:#5f6f89;--wp--preset--color--heading:#0c1626;--wp--preset--color--blue:#215b9d;--wp--preset--color--green:#1b7e5a;color-scheme:light;
}
@media (prefers-color-scheme:light){:root:not([data-theme="dark"]){
  --wp--preset--color--bg:#f6f8fc;--wp--preset--color--bg-alt:#ffffff;--wp--preset--color--panel:#ffffff;--wp--preset--color--line:#d8e0ee;
  --wp--preset--color--text:#33415a;--wp--preset--color--muted:#5f6f89;--wp--preset--color--heading:#0c1626;--wp--preset--color--blue:#215b9d;--wp--preset--color--green:#1b7e5a;color-scheme:light;}}

html{scroll-behavior:smooth;scroll-padding-top:72px;-webkit-font-smoothing:antialiased}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.zt-cursor,.zt-brand a:after{animation:none!important}}
::selection{background:var(--wp--preset--color--green);color:#06130d}
.wp-site-blocks>*+*{margin-block-start:0}

/* header */
.zt-nav{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--wp--preset--color--bg) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--wp--preset--color--line);padding:12px 1rem}
.admin-bar .zt-nav{top:32px}
.zt-brand,.zt-brand a{font:700 1rem var(--zt-mono);color:var(--wp--preset--color--heading)!important;text-transform:lowercase;letter-spacing:0;margin:0}
.zt-brand a:before{content:"~/";color:var(--wp--preset--color--green)}
.zt-brand a:after{content:"_";color:var(--wp--preset--color--green);animation:ztblink 1.1s steps(1) infinite}
@keyframes ztblink{50%{opacity:0}}
.zt-nav .wp-block-navigation{font:500 .8125rem var(--zt-mono)}
.zt-nav .wp-block-navigation-item a{color:var(--wp--preset--color--text)}
.zt-nav .wp-block-navigation-item a:before{content:"./";color:var(--wp--preset--color--green)}
.zt-nav .wp-block-navigation-item a:hover,.zt-nav .current-menu-item>a{color:var(--wp--preset--color--green)}
.zt-nav .wp-block-navigation__responsive-container.is-menu-open{background:var(--wp--preset--color--bg-alt);color:var(--wp--preset--color--text)}
.zt-themebtn{background:none;border:1px solid var(--wp--preset--color--line);color:var(--wp--preset--color--text);border-radius:6px;width:32px;height:32px;cursor:pointer;font-size:15px;line-height:1}
.zt-themebtn:hover{border-color:var(--wp--preset--color--green);color:var(--wp--preset--color--green)}

/* sections */
.zt-section{padding-block:5rem}
.zt-alt{background:var(--wp--preset--color--bg-alt);border-block:1px solid var(--wp--preset--color--line)}
.zt-h{font-size:1.625rem}
.zt-h .zt-n{color:var(--wp--preset--color--green);font-size:.875rem;margin-right:.6rem;vertical-align:middle}
.zt-facts{list-style:none;margin:0;padding:1.4rem;background:var(--wp--preset--color--panel);border:1px solid var(--wp--preset--color--line);border-radius:10px;font:.8125rem/1.6 var(--zt-mono)}
.zt-facts li{padding:.5rem 0;border-bottom:1px dashed var(--wp--preset--color--line);margin:0}
.zt-facts li:last-child{border:0}
.zt-facts b{display:block;color:var(--wp--preset--color--green);font-weight:500;font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em}
.zt-hero{padding-block:4.5rem 3.5rem;background:radial-gradient(900px 400px at 85% -10%,color-mix(in srgb,var(--wp--preset--color--blue) 18%,transparent),transparent),radial-gradient(700px 360px at 0% 100%,color-mix(in srgb,var(--wp--preset--color--green) 12%,transparent),transparent)}
.zt-term{background:var(--wp--preset--color--panel);border:1px solid var(--wp--preset--color--line);border-radius:12px;box-shadow:0 24px 60px -24px rgba(0,0,0,.5);overflow:hidden;max-width:820px}
.zt-term-bar{display:flex;align-items:center;gap:7px;padding:10px 14px;background:var(--wp--preset--color--bg-alt);border-bottom:1px solid var(--wp--preset--color--line)}
.zt-term-bar i{width:11px;height:11px;border-radius:50%;background:var(--wp--preset--color--line)}
.zt-term-bar i:nth-child(1){background:#ff5f56}.zt-term-bar i:nth-child(2){background:#ffbd2e}.zt-term-bar i:nth-child(3){background:#27c93f}
.zt-term-bar span{margin-left:10px;font:.75rem var(--zt-mono);color:var(--wp--preset--color--muted)}
.zt-term-body{padding:1.75rem clamp(1.1rem,4vw,2.25rem) 2rem}
.zt-term-body p{margin:0 0 .4rem;font:.875rem var(--zt-mono);color:var(--wp--preset--color--muted)}
.zt-term-body h1{margin:.25rem 0 1.25rem;font-size:clamp(2.1rem,6vw,3.5rem)}
.zt-p{color:var(--wp--preset--color--green)}
.zt-term-body .zt-roleline{font-size:clamp(1rem,2.6vw,1.375rem);color:var(--wp--preset--color--green);margin:.4rem 0 1.1rem;min-height:1.5em}
.zt-cursor{color:var(--wp--preset--color--green);animation:ztblink 1.1s steps(1) infinite}
.zt-term-body .zt-sub{font:1.0625rem/1.7 var(--zt-sans);color:var(--wp--preset--color--text);max-width:60ch;margin-bottom:0}

/* outline button variant */
.wp-block-button.is-style-outline .wp-block-button__link{background:transparent;color:var(--wp--preset--color--text);border:1px solid var(--wp--preset--color--line)}
.wp-block-button.is-style-outline .wp-block-button__link:hover{border-color:var(--wp--preset--color--green);color:var(--wp--preset--color--green)}
.wp-block-button__link:hover{border:1px solid var(--wp--preset--color--green)}
.wp-block-button__link{border:1px solid var(--wp--preset--color--green)}

/* pages & posts */
.zt-page-title:before{content:"$ ";color:var(--wp--preset--color--green)}
.zt-meta{font:.75rem var(--zt-mono);color:var(--wp--preset--color--muted);gap:.9rem}
.zt-meta a{color:var(--wp--preset--color--muted)}
.zt-post-card{background:var(--wp--preset--color--panel);border:1px solid var(--wp--preset--color--line);border-radius:10px;padding:1.4rem;transition:border-color .2s}
.zt-post-card:hover{border-color:var(--wp--preset--color--green)}
.zt-post-card .wp-block-post-title a{color:var(--wp--preset--color--heading)}
.zt-post-card .wp-block-post-featured-image img{border-radius:6px}
.wp-block-post-content :where(h2,h3){margin-top:2.2rem}
.wp-block-post-content pre{position:relative;overflow-x:auto}
.zt-copy{position:absolute;top:8px;right:8px;font:.6875rem var(--zt-mono);padding:3px 9px;border:1px solid var(--wp--preset--color--line);border-radius:5px;background:var(--wp--preset--color--bg-alt);color:var(--wp--preset--color--muted);cursor:pointer}
.zt-copy:hover{color:var(--wp--preset--color--green);border-color:var(--wp--preset--color--green)}
.wp-block-search__input,.wp-block-post-comments-form input:not([type=submit]),.wp-block-post-comments-form textarea{background:var(--wp--preset--color--panel);color:var(--wp--preset--color--text);border:1px solid var(--wp--preset--color--line);border-radius:6px;padding:.6rem .8rem}
.wp-block-query-pagination{font:.8125rem var(--zt-mono)}

/* footer */
.zt-foot{border-top:1px solid var(--wp--preset--color--line);padding-block:1.75rem;font:.75rem var(--zt-mono);color:var(--wp--preset--color--muted)}
.zt-foot a{color:var(--wp--preset--color--muted)}.zt-foot a:hover{color:var(--wp--preset--color--green)}

@media (max-width:781px){.admin-bar .zt-nav{top:46px}.zt-section{padding-block:3.5rem}}
.zt-hero .zt-term{margin-left:0!important;margin-right:auto!important}
