/* Phosphor terminal details, shared by every project. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.developer-card [hidden]{display:none!important}
.developer-card{position:relative;background:linear-gradient(135deg,#171e17,#101611 70%);border-radius:9px;border-color:#67854c75;box-shadow:0 32px 90px #0006,0 0 70px #a9ee5a08}
.developer-card:focus-within{transform:none!important}
.developer-card::before{content:'';position:absolute;inset:0;z-index:4;pointer-events:none;border-radius:inherit;background:repeating-linear-gradient(0deg,transparent 0 3px,#0000000a 3px 4px);opacity:.6}
.code-tab{padding:12px 18px;gap:15px;border-bottom-color:#374d2c;background:#b6f27604}
.terminal-views{display:flex;gap:15px}
.terminal-view{border:0;background:none;color:#909d89;font:.8rem var(--mono);padding:8px 0;position:relative}
.terminal-view[aria-pressed=true]{color:var(--accent)}
.terminal-view::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .3s}
.terminal-view[aria-pressed=true]::after{transform:scaleX(1)}
.terminal-local{font:.65rem var(--mono);color:#869a79;letter-spacing:.06em;margin-left:auto}
.terminal-output{height:256px;overflow:auto;overscroll-behavior:contain;padding:22px 23px 10px;font:.8rem/1.85 var(--mono);scrollbar-color:#425831 #121713;scrollbar-width:thin}
.terminal-output p{margin:0 0 9px;white-space:pre-wrap;overflow-wrap:anywhere}
.terminal-command{color:#c1cbba}
.terminal-command>span{color:#8aa176;margin-right:7px}
.terminal-name{font-size:1.18rem;letter-spacing:-.05em;color:#e5f9d5;line-height:1.5;padding-top:6px;text-shadow:0 0 16px #bfff6012}
.terminal-mark{color:var(--accent);margin-left:4px}
.terminal-summary{color:#b4c3a7}
.terminal-hint{color:#91a087;font-size:.75rem;padding-top:8px}
.terminal-hint span{color:var(--accent)}
.terminal-prompt{display:flex;align-items:center;gap:10px;margin:0 20px 15px;padding:9px 0;border-bottom:1px solid #495e37;transition:border-color .2s}
.terminal-prompt:focus-within{border-color:var(--accent)}
.terminal-prompt label{color:var(--accent);font:1rem var(--mono)}
.terminal-prompt input{font:.8rem/1.5 var(--mono);background:transparent;color:#e2f5d0;border:0;padding:5px 0;width:100%;min-width:0;caret-color:var(--accent)}
.terminal-prompt input::placeholder{color:#829574}
.terminal-prompt input:focus-visible{outline:0}
.terminal-prompt button{border:1px solid #40542f;border-radius:4px;background:#202b19;color:var(--accent);min-width:36px;min-height:34px}
.terminal-prompt button:hover{background:#304020}
.terminal-shortcuts{display:flex;gap:8px;flex-wrap:wrap;padding:0 20px 20px}
.terminal-shortcuts button{background:#192314;border:1px solid #405132;border-radius:4px;padding:5px 10px;font:.75rem var(--mono);color:#b8caaa;transition:border-color .2s,color .2s,background .2s}
.terminal-shortcuts button:hover{border-color:#86a35c;color:var(--accent);background:#23301a}
.terminal-shortcuts button span{margin-left:6px}
.terminal-result{padding:12px 0;border-top:1px solid #304027;margin-top:10px;color:#b4c5a8}
.terminal-result .terminal-command{font-size:.75rem;margin-bottom:8px}
.terminal-result a{display:block;color:#d0f86c;text-decoration:underline;text-underline-offset:4px;margin:5px 0;overflow-wrap:anywhere}
.terminal-result .terminal-result-note{font-size:.75rem;color:#98ab8a}
.hero-atmosphere::before{background-size:44px 44px;opacity:.8}
.eyebrow::before{content:'// ';color:#8caf62}
.hero-top .eyebrow::before{content:'> ';color:var(--accent)}
.project{border-radius:9px;border-color:#45503b}
.project-image-button,.project[data-accent=blue] .project-image-button,.project[data-accent=purple] .project-image-button{background:radial-gradient(ellipse at 50% 25%,#31472a,#1c2b1c 62%,#131d16 100%)}
.project[data-accent=blue] .project-image-button{background:radial-gradient(ellipse at 50% 25%,#30372c,#1b211b 70%)}
.project[data-accent=purple] .project-image-button{background:radial-gradient(ellipse at 50% 25%,#263e29,#132218 70%)}
.project-window{background:#0d170f52;border-bottom:1px solid #8faa6325;color:#b4c5a4;opacity:1;font-size:.7rem}
.window-dots{color:#84a968}
.project-image-button img{border-color:#acc78d40;box-shadow:0 18px 35px #0005,0 0 0 5px #13201238}
.project-index{color:#b4d291b3}
.project-meta{font-family:var(--mono);color:#aab49e}
.contact-path{border-radius:8px;border-color:#455337}
.path-number{font-size:.7rem;line-height:1.9;display:block;letter-spacing:.04em}
.contact-path p{max-width:none}
@media(max-width:1100px){.terminal-output{padding-inline:18px;font-size:.75rem}.terminal-local{display:none}.terminal-name{font-size:1.05rem}}
@media(max-width:800px){.terminal-output{height:250px;font-size:.8rem}.developer-card::before{opacity:.35}.terminal-name{font-size:1.15rem}}
@media(max-width:520px){.terminal-output{padding-inline:16px;font-size:.75rem;height:255px}.terminal-prompt{margin-inline:16px}.terminal-shortcuts{padding-inline:16px}.terminal-name{font-size:1.05rem}.terminal-views{gap:16px}.code-tab{padding-inline:16px}.path-number{font-size:.75rem}.project-window{font-size:.75rem}.hero-top .eyebrow{letter-spacing:.065em}}
@media(prefers-reduced-motion:no-preference){.terminal-welcome{animation:terminal-enter .65s ease-out both}.terminal-welcome .terminal-name{animation:terminal-enter .7s .3s both}.terminal-welcome .terminal-summary{animation:terminal-enter .7s .45s both}.terminal-welcome .terminal-hint{animation:terminal-enter .7s .6s both}.terminal-mark{animation:terminal-caret .85s step-end 4}.terminal-result{animation:terminal-enter .25s ease-out}}
@keyframes terminal-enter{from{opacity:0;translate:0 6px}to{opacity:1;translate:0 0}}
@keyframes terminal-caret{0%,100%{opacity:1}50%{opacity:0}}

/* Keep capture and caption in separate layout boxes at every breakpoint. */
.project .project-image-button{display:flex;align-items:stretch;padding:0;aspect-ratio:auto}
.project .project-window{position:relative;inset:auto;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;min-height:44px;flex-shrink:0;padding:10px 18px;font-size:.75rem;z-index:2}
.project-window>span:nth-child(2){overflow-wrap:anywhere;line-height:1.6;text-align:center}
.project-image-stage{display:flex;align-items:center;justify-content:center;position:relative;width:100%;height:290px;min-height:0;padding:24px;overflow:hidden}
.project .project-image-stage img{width:100%;height:100%;max-height:none;min-height:0;object-fit:contain;box-shadow:none;border:0}
.featured .project-image-stage{height:350px;flex:1}
.project-image-stage.image-missing{color:var(--accent);font:500 1.8rem var(--heading)}
.project-index{pointer-events:none}
.project h3{overflow-wrap:anywhere}

/* A readable terminal: the newest response starts at the top. */
.developer-card{transform:none;box-shadow:0 25px 70px #0005,0 0 0 1px #d0f86c08}
.developer-card::before{display:none}
.code-tab{padding-block:12px;background:#192116}
.terminal-view{font-size:.875rem}
.terminal-local{font-size:.75rem}
.terminal-output{height:304px;padding:24px;font-size:.875rem;line-height:1.75;background:linear-gradient(140deg,#121b13,#111712)}
.terminal-output:focus-visible{outline-offset:-3px}
.terminal-name{font:500 1.5rem/1.4 var(--heading);letter-spacing:-.025em;padding-top:7px;color:#edfae3}
.terminal-summary{font-size:.875rem;color:#c5d2b8;line-height:1.8}
.terminal-hint{font-size:.8rem;line-height:1.8;color:#a4b496}
.terminal-prompt{margin:12px 20px;padding:8px 10px;background:#1c2919;border:1px solid #526940;border-radius:6px}
.terminal-prompt:focus-within{outline:2px solid #d0f86c35;outline-offset:2px}
.terminal-prompt input{font-size:.875rem;min-height:34px}
.terminal-prompt button{min-height:38px;min-width:42px;border-radius:5px;background:#2c3d20}
.terminal-shortcuts{gap:8px;padding-bottom:16px}
.terminal-shortcuts button{font:.8rem var(--body);padding:7px 11px;min-height:36px;transition:color .2s,background .2s,border-color .2s}
.terminal-shortcuts button[aria-pressed=true]{background:var(--accent);color:#18200f;border-color:var(--accent)}
.terminal-result{border:0;padding:0;margin:0}
.terminal-result .terminal-command{font-size:.8rem;color:#a7bb91;padding-bottom:13px;border-bottom:1px solid #405135;margin-bottom:16px}
.terminal-result .terminal-result-note{font-size:.8rem;line-height:1.7;color:#a8ba98}
.terminal-result a{padding:10px 13px;border:1px solid #3d5130;border-radius:5px;background:#1d2a17;color:#dcebcb;text-decoration:none;font:500 .875rem/1.5 var(--body);transition:background .2s,border-color .2s;display:flex;align-items:center;gap:12px;justify-content:space-between}
.terminal-result a:hover{background:#2c4021;border-color:#7a9954;color:#e7ffcd}
.terminal-result a small{display:block;font:.75rem/1.6 var(--mono);color:#aabd98;font-weight:400;margin-top:3px}
.terminal-help-command{display:flex;align-items:center;justify-content:space-between;gap:14px;background:transparent;color:#c8d8bb;border:0;border-bottom:1px solid #34462c;width:100%;padding:9px 0;text-align:left;font:.8rem var(--body)}
.terminal-help-command strong{font:500 .8rem var(--mono);color:var(--accent)}
.terminal-help-command:hover{background:#263720}
.terminal-input-help{font:.75rem/1.6 var(--body);color:#a4b295;margin:0;padding:0 20px 16px;display:flex;justify-content:space-between;gap:12px}
.terminal-input-help button{color:#b9c8a6;background:none;border:0;padding:0;font:inherit;text-decoration:underline;text-underline-offset:3px}
.terminal-result h3{font:500 1rem var(--heading);color:#e5f5d6;margin:16px 0 8px}
.terminal-result .terminal-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}
.terminal-tags span{font:.75rem/1.6 var(--mono);border:1px solid #425437;border-radius:3px;padding:3px 7px;color:#cbdcbd;background:#1b2717}
@media(max-width:1100px){.terminal-output{padding:20px;font-size:.875rem}.terminal-name{font-size:1.35rem}}
@media(max-width:800px){.project.featured .project-image-button{aspect-ratio:auto}.project .project-image-stage{height:280px;flex:none}.terminal-output{height:300px}}
@media(max-width:520px){.project .project-image-stage{height:220px;padding:22px 18px}.project .project-window{padding:10px 14px;gap:10px}.terminal-output{padding:18px 16px;font-size:.875rem;height:310px}.terminal-name{font-size:1.3rem}.terminal-prompt{margin-inline:14px}.terminal-shortcuts{padding-inline:14px;gap:6px}.terminal-shortcuts button{padding-inline:10px}.terminal-input-help{padding-inline:16px;font-size:.75rem}.terminal-result a{padding:10px}.code-tab{gap:10px}}
