@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=Geist:wght@400;500;600;700&display=swap";:root{color-scheme:dark;font-family:Geist,system-ui,sans-serif;color:#edf4f1;background:#0c1415;font-synthesis:none;--bg: #0c1415;--panel: #121e1f;--text: #edf4f1;--muted: #a4b6b3;--accent: #83e7c7;--border: #2b3b3c;--mono: "IBM Plex Mono", monospace}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-width:280px}button,select,input{font:inherit}button,select{cursor:pointer}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:5px}h1,h2,h3,p{margin:0}p{color:var(--muted);line-height:1.65}h1,h2,h3{font-weight:600;letter-spacing:-.045em;text-wrap:balance}.shell{width:min(1160px,calc(100% - 96px));margin-inline:auto}.skip{position:absolute;left:24px;top:-80px;z-index:4;padding:12px;background:var(--bg)}.skip:focus{top:10px}.header{border-bottom:1px solid #263436}.header-inner,.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:73px}.brand{display:inline-flex;gap:12px;align-items:center;font-weight:600;letter-spacing:-.025em}.brand-mark{display:grid;place-items:center;width:37px;height:34px;border:1px solid #376057;border-radius:7px;color:var(--accent);background:#152b28;font:500 14px var(--mono);letter-spacing:-.15em;padding-right:2px}nav{display:flex;gap:clamp(16px,3.6vw,42px);color:#c1cfcb;font-size:.9rem}nav a{padding-block:10px}.hero{display:grid;grid-template-columns:1.12fr 1fr;align-items:center;gap:clamp(30px,5vw,74px);padding-block:66px 70px}.eyebrow{color:var(--accent);font:500 .75rem/1.4 var(--mono);text-transform:uppercase;letter-spacing:.13em}.signal{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px;vertical-align:1px;background:var(--accent);box-shadow:0 0 12px #83e7c77d}.hero h1{font-size:clamp(3.15rem,5.6vw,5.35rem);line-height:.99;margin-block:22px 24px;text-wrap:initial;letter-spacing:-.07em}.hero h1 em{color:var(--accent);display:inline-block;font-style:normal}.hero-intro{max-width:50ch;font-size:1.04rem}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.button{display:inline-flex;justify-content:center;align-items:center;gap:13px;min-height:46px;border:1px solid var(--border);border-radius:7px;padding:10px 16px;font-weight:600;font-size:.9rem}.primary{background:var(--accent);color:#0b231d;border-color:transparent}.primary:hover{color:#0b231d;background:#aff3df}.secondary{background:#141f20;color:var(--text)}.secondary:hover{color:var(--accent);border-color:#5b9989}.arrow{font-family:system-ui,sans-serif;flex:none}.orbit{height:clamp(320px,35vw,426px);position:relative;border:1px solid #2d4443;border-radius:13px;overflow:hidden;background-color:#101c1d;background-image:linear-gradient(#6cc9b10d 1px,transparent 1px),linear-gradient(90deg,#6cc9b10d 1px,transparent 1px);background-size:26px 26px;background-position:center}.orbit canvas{display:block;width:100%;height:100%}.orbit-corner{position:absolute;width:15px;height:15px;border:1px solid #6ab9a5;pointer-events:none}.top-left{left:17px;top:17px;border-right:0;border-bottom:0}.top-right{right:17px;top:17px;border-left:0;border-bottom:0}.bottom-left{left:17px;bottom:17px;border-right:0;border-top:0}.bottom-right{right:17px;bottom:17px;border-left:0;border-top:0}.section{padding-block:62px;scroll-margin-top:12px}.work-section{border-top:1px solid var(--border);padding-top:44px}.section-head{margin-bottom:28px}.section h2{font-size:clamp(2rem,3.8vw,3.3rem);line-height:1.08;margin-top:10px}.work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.work-card{position:relative;border:1px solid var(--border);background:#111b1c;border-radius:12px;overflow:hidden}.work-card:hover,.work-card:focus-within{border-color:#5b9989}.work-card-body{padding:22px 24px 26px}.work-card h3,.project-row h3{font-size:clamp(1.3rem,2.1vw,1.65rem)}.work-card h3 a{display:flex;align-items:center;justify-content:space-between;gap:12px}.work-card h3 a:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0}.work-card h3 a .arrow{color:var(--accent);font-size:1.2rem}.work-card-body p,.project-row p{margin-top:7px}.tags{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 0;padding:0;list-style:none}.tags li{border:1px solid var(--border);border-radius:4px;padding:5px 8px;font:.7rem var(--mono);color:#b6ceca}.work-art{height:216px;display:grid;place-items:center;position:relative;overflow:hidden;border-bottom:1px solid var(--border);background:radial-gradient(ellipse at 54% 70%,#23433e,#142121 68%)}.work-art:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:.55;background-image:linear-gradient(#81d9be17 1px,transparent 1px),linear-gradient(90deg,#81d9be17 1px,transparent 1px);background-size:21px 21px;-webkit-mask-image:radial-gradient(ellipse,black,transparent 82%);mask-image:radial-gradient(ellipse,black,transparent 82%)}.art-window{position:relative;border:1px solid #4b6c64;border-radius:8px;background:#132323;box-shadow:0 14px 22px #050d0d77;overflow:hidden}.log-window{width:min(300px,74%);transform:translate(-12%,-2%)}.art-title{display:flex;gap:13px;align-items:center;min-height:29px;border-bottom:1px solid #38514f;padding:6px 10px;color:#bcd8d1;font:.62rem var(--mono)}.window-dots{color:#72af9f;font-size:.5rem}.log-line{display:flex;align-items:center;gap:8px;padding:8px 10px;font:.66rem var(--mono);color:#bbd2cd;border-bottom:1px solid #253e3b}.log-line:last-child{border:0}.log-line span{color:#84a49c}.log-line i,.mini-window i{width:5px;height:5px;border-radius:50%;background:#83e7c7;display:inline-block}.log-line i.warning{background:#ebcd85}.mini-window{position:absolute;top:59%;left:58%;display:grid;gap:8px;padding:11px 12px;color:#d4e5e0;font:.65rem var(--mono)}.mini-window span{color:#a6d7ca}.tolkien-art{background:radial-gradient(ellipse at 55% 75%,#244647,#142020 69%)}.desktop-window{width:min(285px,73%);transform:translate(-9%,-4%)}.desktop-layout{display:grid;grid-template-columns:.75fr 1fr 1fr;gap:7px;padding:11px}.skeleton{background:#284542;border:1px solid #3b6159;border-radius:3px}.skeleton.short{width:37%;height:6px}.skeleton.sidebar{background:#213734}.skeleton.content-block{min-height:44px;background:linear-gradient(150deg,#527b71,#2a4946 55%,#243d3a)}.desktop-line{height:11px;margin:0 11px 11px}.mobile-window{position:absolute;top:31%;left:65%;width:62px;display:grid;gap:6px;padding:7px}.mobile-window .content-block{min-height:28px}.projects-section,.contact{background:#101a1b;border-block:1px solid var(--border)}.project-row{display:grid;grid-template-columns:.72fr 1.28fr;align-items:start;gap:28px;padding-block:22px}.project-row+.project-row{border-top:1px solid var(--border);margin-top:8px;padding-top:30px}.demo-box{display:grid;grid-template-columns:minmax(0,1fr) 196px;background:var(--bg);border:1px solid var(--border);border-radius:10px;overflow:hidden}.demo-controls{padding:16px;border-left:1px solid var(--border);display:grid;align-content:center;gap:14px}.demo-controls :is(.control,.reading-label){display:grid;grid-template-columns:1fr auto;gap:6px;font-size:.85rem}.demo-controls :is(.control,.reading-label) :is(select,input){grid-column:1 / -1}.demo-controls .button{font-size:.8rem;padding-inline:10px;text-align:center}select{width:100%;padding:8px;background:#1a292a;color:var(--text);border:1px solid #466361;border-radius:5px}input[type=range]{width:100%;margin-inline:0;accent-color:var(--accent)}output{color:var(--accent)}.reading-sample{padding:22px}.reading-sample h3{font-size:1.2em}.pattern-canvas{width:100%;height:100%;min-height:275px;display:block;background:radial-gradient(circle,#17352f,#101c1d 70%)}.split{display:grid;grid-template-columns:.8fr 1.2fr;gap:28px}.split p+p{margin-top:12px}.contact .split{align-items:center}.contact .actions{margin-top:0}.footer-inner{min-height:64px;color:var(--muted);font-size:.85rem}.detail{padding-block:42px 68px}.detail>.eyebrow{margin-top:44px}.detail h1{font-size:clamp(2.8rem,6vw,5.5rem);line-height:1.01;margin-block:10px 14px}.lead{font-size:1.2rem;max-width:55ch}.text-link{display:inline-flex;gap:8px;align-items:center;color:var(--accent)}.text-link:hover{text-decoration:underline}.detail-art{margin-block:30px}.detail-art .work-art{height:278px;border:1px solid var(--border);border-radius:10px}.detail-art p{font:.75rem var(--mono);margin-top:8px}.detail-body{max-width:72ch;display:grid;gap:25px;margin-top:34px}.detail-body h2{font-size:1.6rem;margin-bottom:8px}.diagnostic-flow{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;list-style-position:inside;padding:0}.diagnostic-flow li{padding:14px;border:1px solid var(--border);border-radius:6px}.diagnostic-flow li::marker{color:var(--accent)}.diagnostic-flow span{display:block;color:var(--muted);font-size:.9rem;margin-top:6px}.cv-work{padding-left:18px}.cv-work li+li{margin-top:12px}@media(max-width:940px){.shell{width:calc(100% - 60px)}.hero{gap:28px}.project-row{grid-template-columns:1fr}}@media(max-width:700px){.shell{width:calc(100% - 36px)}.header-inner{flex-wrap:wrap;padding-block:14px 7px;gap:3px 18px}nav{flex-basis:100%;justify-content:space-between}.hero{grid-template-columns:1fr;padding-block:43px 38px}.hero h1{max-width:13ch}.orbit{height:clamp(230px,60vw,350px)}.section{padding-block:39px}.work-grid,.split{grid-template-columns:1fr}.split{gap:16px}.work-art{height:186px}.work-card-body{padding:18px}.detail>.eyebrow{margin-top:32px}.diagnostic-flow{grid-template-columns:1fr}}@media(max-width:440px){.demo-box{grid-template-columns:1fr}.demo-controls{border-left:0;border-top:1px solid var(--border)}.pattern-canvas{height:235px;min-height:0}}@media print{:root{color-scheme:light;background:#fff;color:#000;--muted: #333;--accent: #23463d;--border: #ccc}.header,.footer,.detail>.text-link,.actions{display:none}.detail{padding:0}.detail>.eyebrow{margin-top:0}.tags li{color:#333}}
