*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f5f2ec;--bg2: #ede9e1;--ink: #1a1814;--ink2: #3d3a34;--muted: #8a8478;--border: #d4cfc5;--accent: #b5400e;--accent2: #7a2e08;--surface: #ffffff;--warn: #c9973a}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:DM Sans,sans-serif;font-weight:300;font-size:16px;line-height:1.7;overflow-x:hidden;cursor:none}.cursor{position:fixed;top:0;left:0;width:8px;height:8px;background:var(--accent);border-radius:50%;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);transition:width .15s,height .15s}.cursor-ring{position:fixed;top:0;left:0;width:30px;height:30px;border:1.5px solid var(--accent);border-radius:50%;pointer-events:none;z-index:9998;transform:translate(-50%,-50%);opacity:.4;transition:width .2s,height .2s}.page{max-width:1080px;margin:0 auto;padding:0 48px}nav{position:fixed;top:0;left:0;right:0;z-index:100;background:var(--bg);border-bottom:1px solid var(--border);padding:18px 48px;display:flex;justify-content:space-between;align-items:center}.nav-logo{font-family:Saira,serif;font-size:1.25rem;color:var(--ink);text-decoration:none;letter-spacing:.01em}.nav-links{display:flex;gap:32px}.nav-links a{font-family:IBM Plex Mono,monospace;font-size:.65rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);text-decoration:none;transition:color .2s}.nav-links a:hover{color:var(--accent)}#hero{padding-top:110px;padding-bottom:96px;border-bottom:1px solid var(--border);display:grid;grid-template-columns:1.1fr .9fr;gap:80px;align-items:center}.hero-eyebrow{font-family:IBM Plex Mono,monospace;font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:24px;display:flex;align-items:center;gap:12px;animation:fadeUp .7s ease both}.hero-eyebrow:before{content:"";width:24px;height:1px;background:var(--accent)}h1{font-family:Saira,serif;font-size:clamp(2.8rem,5vw,4.4rem);font-weight:400;line-height:1.1;letter-spacing:-.01em;animation:fadeUp .7s .1s ease both}h1 em{font-style:italic;color:var(--accent)}.hero-sub{margin-top:28px;font-size:1.05rem;color:var(--ink2);line-height:1.8;max-width:520px;animation:fadeUp .7s .2s ease both}.hero-cta{margin-top:44px;display:flex;gap:16px;flex-wrap:wrap;animation:fadeUp .7s .3s ease both}.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 26px;text-decoration:none;font-family:IBM Plex Mono,monospace;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;transition:all .22s}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent2);transform:translateY(-2px)}.btn-ghost{border:1.5px solid var(--border);color:var(--muted)}.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.hero-aside{animation:fadeUp .7s .25s ease both}.not-box{border:1.5px solid var(--border);background:var(--surface);padding:32px}.not-box-title{font-family:IBM Plex Mono,monospace;font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-bottom:18px;display:flex;align-items:center;gap:8px}.not-box-title:before{content:"✕";font-size:.7rem}.not-list{list-style:none;display:flex;flex-direction:column;gap:12px}.not-list li{font-size:.9rem;color:var(--muted);line-height:1.5;padding-left:16px;position:relative}.not-list li:before{content:"–";position:absolute;left:0;color:var(--border)}.hero-fit-note{margin-top:20px;background:var(--bg2);border-left:3px solid var(--warn);padding:16px 20px;font-size:.88rem;color:var(--ink2);line-height:1.6}section{padding:88px 0}.section-label{font-family:IBM Plex Mono,monospace;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:16px;display:inline-flex;align-items:center;gap:10px}.section-label:after{content:"";width:40px;height:1px;background:var(--accent)}h2{font-family:Saira,serif;font-size:clamp(2rem,3.5vw,2.9rem);font-weight:400;line-height:1.15;margin-bottom:52px}h2 em{font-style:italic;color:var(--accent)}#about{border-bottom:1px solid var(--border)}.about-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:80px;align-items:start}.about-body p{color:var(--ink2);margin-bottom:20px;font-size:1rem}.about-body p:first-child{color:var(--ink);font-size:1.08rem}.principle-list{list-style:none;display:flex;flex-direction:column}.principle-item{padding:20px 0;border-bottom:1px solid var(--border)}.principle-item:last-child{border-bottom:none}.principle-title{font-family:Saira,serif;font-size:1rem;font-weight:500;margin-bottom:6px}.principle-desc{font-size:.88rem;color:var(--muted);line-height:1.6}.rrl-box{margin-top:36px;background:var(--surface);border:1.5px solid var(--border);padding:28px 32px}.rrl-box-label{font-family:IBM Plex Mono,monospace;font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-bottom:14px}.rrl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:16px}.rrl-item{padding:14px 16px;background:var(--bg2);border-top:2px solid transparent}.rrl-item.r1{border-color:#4a8c6f}.rrl-item.r2{border-color:var(--accent)}.rrl-item.r3{border-color:var(--warn)}.rrl-name{font-family:Saira,serif;font-size:.95rem;font-style:italic;margin-bottom:4px}.rrl-desc{font-size:.78rem;color:var(--muted);line-height:1.5}#portfolio{background:var(--bg2);border-bottom:1px solid var(--border)}.work-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border)}.work-card{background:var(--bg2);padding:32px 28px;transition:background .25s}.work-card:hover{background:var(--surface)}.work-num{font-family:IBM Plex Mono,monospace;font-size:.6rem;letter-spacing:.16em;color:var(--accent);margin-bottom:18px}.work-card h3{font-family:Saira,serif;font-size:1.18rem;font-weight:400;margin-bottom:12px;line-height:1.3}.work-card p{font-size:.88rem;color:var(--muted);line-height:1.7;margin-bottom:20px}.tag-row{display:flex;flex-wrap:wrap;gap:6px}.tag{font-family:IBM Plex Mono,monospace;font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;padding:3px 8px;border:1px solid var(--border);color:var(--muted);transition:all .2s}.work-card:hover .tag{border-color:var(--accent);color:var(--accent)}#skills{border-bottom:1px solid var(--border)}.skills-outer{display:grid;grid-template-columns:1fr 1fr;gap:64px}.skill-block h3{font-family:Saira,serif;font-size:1.15rem;font-weight:400;padding-bottom:14px;border-bottom:1px solid var(--border);margin-bottom:24px}.skill-rows{display:flex;flex-direction:column;gap:14px}.skill-row{display:flex;align-items:center;gap:12px;font-size:.9rem}.skill-row span:first-child{flex:1;color:var(--ink2)}.sbar{width:88px;height:2px;background:var(--border);flex-shrink:0}.sbar-fill{height:100%;background:var(--accent);width:0;transition:width 1.1s ease}.tools-wrap{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.tool-chip{font-family:IBM Plex Mono,monospace;font-size:.62rem;letter-spacing:.1em;padding:5px 12px;background:var(--bg2);border:1px solid var(--border);color:var(--ink2)}#roles{background:var(--bg2);border-bottom:1px solid var(--border)}.roles-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border)}.role-card{background:var(--bg2);padding:28px 24px;transition:background .25s}.role-card:hover{background:var(--surface)}.role-when{font-family:IBM Plex Mono,monospace;font-size:.62rem;letter-spacing:.12em;color:var(--warn);margin-bottom:12px;line-height:1.5}.role-card h3{font-family:Saira,serif;font-size:1.08rem;font-weight:400;margin-bottom:10px}.role-card p{font-size:.86rem;color:var(--muted);line-height:1.6}#contact{border-bottom:1px solid var(--border)}.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:80px}.contact-left p{font-size:1rem;color:var(--ink2);margin-bottom:32px;line-height:1.8}.contact-links{display:flex;flex-direction:column}.clink{display:flex;align-items:center;gap:16px;padding:18px 0;border-bottom:1px solid var(--border);text-decoration:none;color:var(--muted);font-size:.9rem;transition:color .2s}.clink:first-child{border-top:1px solid var(--border)}.clink:hover{color:var(--accent)}.clink-icon{width:34px;height:34px;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-family:IBM Plex Mono,monospace;font-size:.75rem;flex-shrink:0;transition:border-color .2s}.clink:hover .clink-icon{border-color:var(--accent)}.form-field{margin-bottom:20px}.form-field label{display:block;font-family:IBM Plex Mono,monospace;font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}.form-field input,.form-field textarea{width:100%;background:var(--surface);border:1.5px solid var(--border);color:var(--ink);padding:12px 14px;font-family:DM Sans,sans-serif;font-size:.95rem;font-weight:300;outline:none;transition:border-color .2s;resize:vertical}.form-field input:focus,.form-field textarea:focus{border-color:var(--accent)}.form-field input::placeholder,.form-field textarea::placeholder{color:var(--border)}.form-field textarea{min-height:110px}#form-ok{display:none;margin-top:14px;font-family:IBM Plex Mono,monospace;font-size:.65rem;letter-spacing:.12em;color:#4a8c6f}footer{padding:32px 0;display:flex;justify-content:space-between;align-items:center}footer p{font-family:IBM Plex Mono,monospace;font-size:.62rem;letter-spacing:.1em;color:var(--muted)}footer span{color:var(--accent)}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.reveal{opacity:0;transform:translateY(24px);transition:opacity .65s ease,transform .65s ease}.reveal.in{opacity:1;transform:translateY(0)}@media(max-width:920px){.page{padding:0 24px}nav{padding:16px 24px}.nav-links{display:none}#hero{grid-template-columns:1fr;gap:48px;padding-top:90px}.about-grid{grid-template-columns:1fr;gap:48px}.work-grid{grid-template-columns:1fr 1fr}.skills-outer{grid-template-columns:1fr;gap:40px}.roles-grid{grid-template-columns:1fr 1fr}.contact-grid{grid-template-columns:1fr;gap:48px}.rrl-grid{grid-template-columns:1fr}}@media(max-width:580px){.work-grid,.roles-grid{grid-template-columns:1fr}}
