@import url(https://fonts.googleapis.com/css2?family=VT323&family=Share+Tech+Mono&family=IBM+Plex+Mono:wght@400;500;600&display=swap);#root,body,html{min-height:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button,input,textarea{font:inherit}:root{--bg-room:#0a0906;--crt-case:#1c1712;--crt-case-light:#2b2319;--screen-black:#0d0f09;--amber:#ffb000;--amber-dim:#a86f00;--amber-bright:#ffd166;--amber-glow:#ffb0008c;--green-ok:#7bd88f;--font-display:"VT323",monospace;--font-mono:"IBM Plex Mono","Share Tech Mono",monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(ellipse at 50% 0,#17130d 0,#0a0906 70%);background:radial-gradient(ellipse at 50% 0,#17130d 0,var(--bg-room) 70%);color:#ffb000;color:var(--amber);font-family:IBM Plex Mono,Share Tech Mono,monospace;font-family:var(--font-mono);margin:0;min-height:100vh;padding:clamp(10px,3vw,40px)}.monitor{background:linear-gradient(160deg,#2b2319,#1c1712 60%);background:linear-gradient(160deg,var(--crt-case-light),var(--crt-case) 60%);border-radius:22px;box-shadow:0 30px 60px -20px #000c,inset 0 2px 2px #ffffff0f,inset 0 -6px 12px #00000080;margin:0 auto;max-width:1180px;padding:clamp(14px,2.4vw,34px);width:100%}.monitor-brand{align-items:center;color:#8a7a5e;display:flex;font-family:VT323,monospace;font-family:var(--font-display);font-size:15px;justify-content:space-between;letter-spacing:3px;padding:0 6px 12px;text-transform:uppercase}.power-led{align-items:center;display:inline-flex;gap:8px}.led-dot{background:#7bd88f;background:var(--green-ok);border-radius:50%;box-shadow:0 0 6px #7bd88f,0 0 2px #7bd88f;box-shadow:0 0 6px var(--green-ok),0 0 2px var(--green-ok);height:8px;width:8px}.led-dot.off{background:#4a3a2a;box-shadow:none}.screen-frame{background:#050503;border-radius:14px;box-shadow:inset 0 0 0 2px #000,inset 0 0 40px #000000e6;padding:clamp(6px,1.2vw,16px)}.screen{background:#0d0f09;background:var(--screen-black);border-radius:8px;min-height:560px;overflow:clip;position:relative;transform-origin:center}.screen.powering-on{animation:powerOn .5s cubic-bezier(.2,1,.3,1) forwards}.screen.powering-off{animation:powerOff .5s cubic-bezier(.7,0,.9,1) forwards}@keyframes powerOn{0%{opacity:0;transform:scaleY(.001) scaleX(.02)}40%{opacity:1;transform:scaleY(.02) scaleX(1)}to{opacity:1;transform:scale(1)}}@keyframes powerOff{0%{opacity:1;transform:scale(1)}60%{opacity:1;transform:scaleY(.02)}to{opacity:0;transform:scaleY(.001) scaleX(.02)}}.screen:after,.screen:before{content:"";inset:0;pointer-events:none;position:absolute}.screen:before{background:repeating-linear-gradient(180deg,#0000 0,#0000 1px,#00000059 2px,#00000059 3px);z-index:30}.screen:after{background:radial-gradient(ellipse at 50% 40%,#ffb0000d,#0000008c 85%);z-index:29}.flicker{animation:flicker 7s infinite}@keyframes flicker{0%,96%,to{opacity:1}97%{opacity:.92}98%{opacity:1}98.5%{opacity:.88}99%{opacity:1}}.screen-content{padding:clamp(18px,3vw,44px);position:relative;text-shadow:0 0 6px #ffb0008c,0 0 1px #ffb0008c;text-shadow:0 0 6px var(--amber-glow),0 0 1px var(--amber-glow);z-index:5}h1,h2,h3{font-family:VT323,monospace;font-family:var(--font-display);font-weight:400;letter-spacing:1px;margin:0}a{color:#ffd166;color:var(--amber-bright)}::selection{background:#ffb000;background:var(--amber);color:#000}:focus-visible{outline:2px solid #ffd166;outline:2px solid var(--amber-bright);outline-offset:3px}.prompt:before{color:#a86f00;color:var(--amber-dim);content:"> "}.resume-link{appearance:none;background:none;border:0;color:#ffd166;color:var(--amber-bright);cursor:pointer;display:inline;font:inherit;line-height:inherit;padding:0;text-align:left;text-decoration:underline}.admin-page{margin:0 auto;padding:48px 0;width:min(100% - 40px,720px)}.admin-page h1{margin-bottom:24px}.admin-form{grid-gap:10px;display:grid;gap:10px;max-width:480px}.admin-form label{color:#a86f00;color:var(--amber-dim);font-size:12px}.admin-form input{background:#0000;border:1px solid #a86f00;border:1px solid var(--amber-dim);color:#ffb000;color:var(--amber);font:13.5px IBM Plex Mono,Share Tech Mono,monospace;font:13.5px var(--font-mono);margin-bottom:12px;padding:10px}.admin-signout{margin-top:24px}.admin-messages{margin-top:48px}.admin-messages h2{color:#ffd166;color:var(--amber-bright);font-size:24px;margin-bottom:18px}.message-browser{grid-gap:18px;display:grid;gap:18px;grid-template-columns:minmax(180px,.8fr) minmax(0,1.4fr)}.message-list{border:1px solid #a86f00;border:1px solid var(--amber-dim);max-height:420px;overflow-y:auto}.message-list-item{grid-gap:5px;appearance:none;background:#0000;border:0;border-bottom:1px solid #a86f0073;color:#ffb000;color:var(--amber);cursor:pointer;display:grid;gap:5px;padding:12px;text-align:left;width:100%}.message-list-item:last-child{border-bottom:0}.message-list-item.selected,.message-list-item:hover{background:#ffb0001f;color:#ffd166;color:var(--amber-bright)}.message-list-item span,.message-meta{color:#a86f00;color:var(--amber-dim);font-size:12px}.message-detail{border:1px solid #a86f00;border:1px solid var(--amber-dim);min-height:220px;padding:18px}.message-detail h3{color:#ffd166;color:var(--amber-bright);font-size:26px;margin-bottom:14px}.message-body{line-height:1.7;white-space:pre-wrap}@media (max-width:620px){.message-browser{grid-template-columns:1fr}}.cursor{animation:blink 1s steps(1) infinite;background:#ffb000;background:var(--amber);display:inline-block;height:1em;margin-left:2px;vertical-align:text-bottom;width:.55em}@keyframes blink{50%{opacity:0}}.boot-sequence{font-size:clamp(12px,1.6vw,15px);line-height:1.7;margin:0;min-height:420px;white-space:pre-wrap}.site.visible{animation:fadeIn .6s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.site-nav{background:#0d0f09fa;border-bottom:1px dashed #a86f00;border-bottom:1px dashed var(--amber-dim);box-shadow:0 8px 14px #00000059;display:flex;flex-wrap:wrap;gap:4px 26px;margin-bottom:30px;padding:10px 0 18px;position:sticky;top:0;z-index:40}.site-nav a{color:#ffb000;color:var(--amber);opacity:.75;text-decoration:none;transition:opacity .15s,text-shadow .15s}.site-nav a:focus-visible,.site-nav a:hover{opacity:1;text-shadow:0 0 8px #ffb000;text-shadow:0 0 8px var(--amber)}.site-nav a:before{color:#a86f00;color:var(--amber-dim);content:"[ "}.site-nav a:after{color:#a86f00;color:var(--amber-dim);content:" ]"}section{border-bottom:1px dashed #ffb00040;padding:44px 0;scroll-margin-top:76px}section:last-of-type{border-bottom:none}.hero{padding:10px 0 46px}.eyebrow{color:#a86f00;color:var(--amber-dim);font-size:14px;letter-spacing:4px;margin-bottom:10px}.hero h1{color:#ffd166;color:var(--amber-bright);font-size:clamp(48px,9vw,92px);line-height:.95;text-shadow:0 0 14px #ffb0008c,0 0 2px #ffb0008c;text-shadow:0 0 14px var(--amber-glow),0 0 2px var(--amber-glow)}.role-line{font-size:clamp(16px,2.4vw,22px);margin-top:18px}.subtext{color:#e2c98f;font-size:14.5px;line-height:1.8;margin-top:22px;max-width:60ch}.cta-row{display:flex;flex-wrap:wrap;gap:16px;margin-top:30px}.btn{background:#ffb0000d;border:1px solid #ffb000;border:1px solid var(--amber);color:#ffb000;color:var(--amber);cursor:pointer;display:inline-block;font:13px IBM Plex Mono,Share Tech Mono,monospace;font:13px var(--font-mono);letter-spacing:1px;padding:11px 20px;text-decoration:none;transition:background .15s,color .15s,box-shadow .15s}.btn:focus-visible,.btn:hover{background:#ffb000;background:var(--amber);box-shadow:0 0 18px #ffb0008c;box-shadow:0 0 18px var(--amber-glow);color:#0d0900}.btn.ghost{border-color:#a86f00;border-color:var(--amber-dim);color:#a86f00;color:var(--amber-dim)}.btn.ghost:hover{background:#a86f00;background:var(--amber-dim);color:#0d0900}.section-head{align-items:baseline;display:flex;gap:14px;margin-bottom:26px}.section-head .tag{background:#ffb000;background:var(--amber);color:#0d0f09;color:var(--screen-black);font-size:12px;letter-spacing:1px;padding:2px 8px}.section-head h2{color:#ffd166;color:var(--amber-bright);font-size:clamp(24px,4vw,32px)}.about-box{background:#ffb00008;border:1px solid #a86f00;border:1px solid var(--amber-dim);font-size:14.5px;line-height:1.85;max-width:78ch;padding:22px 24px}.about-box p{margin:0 0 14px}.about-box p:last-child{margin-bottom:0}.neofetch{grid-gap:36px;align-items:start;display:grid;gap:36px;grid-template-columns:auto 1fr}.ascii-machine{color:#a86f00;color:var(--amber-dim);font:11px/1.25 IBM Plex Mono,Share Tech Mono,monospace;font:11px/1.25 var(--font-mono);-webkit-user-select:none;user-select:none;white-space:pre}.specs dl{font-size:13.5px;margin:0}.spec-row{grid-gap:14px;display:grid;gap:14px;grid-template-columns:130px 1fr;margin-bottom:14px}.specs dt{color:#a86f00;color:var(--amber-dim)}.specs dd{color:#ffb000;color:var(--amber);margin:0}.skill-list{margin-top:26px}.skill-row{align-items:center;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:9px}.skill-row .name{flex-shrink:0;font-size:13px;width:110px}.meter{display:inline-flex;gap:2px;letter-spacing:2px}.meter .blk{color:#ffb000;color:var(--amber)}.meter .blk.dim{color:#3b2e18}.listing-head,.proj summary{display:grid;grid-template-columns:70px 1fr 110px 130px}.listing-head{border-bottom:1px solid #a86f00;border-bottom:1px solid var(--amber-dim);color:#a86f00;color:var(--amber-dim);font-size:12px;padding:8px 14px}.proj{border-bottom:1px solid #ffb00026}.proj summary{align-items:center;cursor:pointer;font-size:13.5px;padding:14px}.proj summary::-webkit-details-marker{display:none}.proj summary:focus-visible,.proj summary:hover{background:#ffb0000f}.arrow,.perm,.size{color:#a86f00;color:var(--amber-dim);font-size:12px}.fname{color:#ffd166;color:var(--amber-bright)}.fname:before{content:"📁 ";filter:grayscale(1) brightness(1.6) sepia(1) hue-rotate(-10deg)}.proj[open] .fname:before{content:"📂 "}.arrow{text-align:right}.proj[open] .arrow:after{content:"[-]"}.proj:not([open]) .arrow:after{content:"[+]"}.proj-body{font-size:13.5px;line-height:1.8;max-width:70ch;padding:0 14px 22px 84px}.proj-body .links,.proj-body .tags{display:flex;flex-wrap:wrap;gap:8px}.proj-body .tags{margin-top:12px}.proj-body .tags span{border:1px solid #a86f00;border:1px solid var(--amber-dim);color:#a86f00;color:var(--amber-dim);font-size:11.5px;padding:2px 8px}.proj-body .links{gap:18px;margin-top:14px}.proj-body .links a{font-size:13px}.log-entry{grid-gap:20px;border-bottom:1px solid #ffb0001f;display:grid;font-size:13.5px;gap:20px;grid-template-columns:150px 1fr;padding:16px 0}.log-entry:last-child{border-bottom:none}.ts{color:#a86f00;color:var(--amber-dim)}.role{color:#ffd166;color:var(--amber-bright);font-size:15.5px;margin-bottom:4px}.org{color:#e2c98f;margin-bottom:8px}.log-entry ul{line-height:1.8;margin:0;padding-left:18px}.contact-wrap{grid-gap:40px;display:grid;gap:40px;grid-template-columns:1fr 1fr}.field{margin-bottom:18px}.field label{color:#a86f00;color:var(--amber-dim);display:block;font-size:12px;margin-bottom:6px}.field input,.field textarea{background:#0000;border:1px solid #a86f00;border:1px solid var(--amber-dim);color:#ffb000;color:var(--amber);font:13.5px IBM Plex Mono,Share Tech Mono,monospace;font:13.5px var(--font-mono);padding:10px;width:100%}.field input:focus,.field textarea:focus{border-color:#ffb000;border-color:var(--amber);box-shadow:0 0 10px #ffb00040;outline:none}.contact-direct{font-size:13.5px;line-height:2}.comment{color:#7a6647;font-size:13px}footer{color:#a86f00;color:var(--amber-dim);display:flex;flex-wrap:wrap;font-size:11.5px;gap:8px;justify-content:space-between;margin-top:20px;padding-top:16px}footer strong{color:#7bd88f;color:var(--green-ok);font-weight:400}@media (prefers-reduced-motion:reduce){.cursor,.flicker{animation:none}html{scroll-behavior:auto}}@media (max-width:760px){.neofetch{grid-template-columns:1fr}.ascii-machine,.listing-head{display:none}.proj summary{grid-template-areas:"name arrow" "perm size";grid-template-columns:1fr auto}.proj-body{padding-left:14px}.contact-wrap,.log-entry{grid-template-columns:1fr}.site-nav{gap:4px 14px}}
/*# sourceMappingURL=main.d4e52133.css.map*/