@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;700;800&display=swap');
:root{--ink:#181718;--paper:#e9e4da;--orange:#ff4a17;--line:rgba(24,23,24,.2)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,Arial,sans-serif}a{color:inherit}
.brand{text-decoration:none;font-size:15px;font-weight:800;letter-spacing:-.06em}.brand span{color:var(--orange);font-size:8px;vertical-align:top;margin-left:2px}.hero-nav{display:flex;flex-wrap:wrap;gap:12px 25px;margin-top:24px;pointer-events:auto}.hero-nav a,.eyebrow,.section-number,.card-meta,.scroll-cue,.interaction-hint,.site-footer{font:10px/1.4 'DM Mono',monospace;letter-spacing:.08em}.hero-nav a{text-decoration:none;position:relative}.hero-nav a::after{content:"";position:absolute;left:0;bottom:-5px;width:100%;height:1px;background:var(--orange);transform:scaleX(0);transform-origin:right;transition:transform .25s}.hero-nav a:hover::after,.hero-nav a:focus-visible::after{transform:scaleX(1);transform-origin:left}
.hero{position:relative;height:100svh;min-height:600px;overflow:hidden;border-bottom:1px solid var(--line)}canvas{position:absolute;inset:0;width:100%;height:100%;cursor:grab;touch-action:none}canvas:active{cursor:grabbing}.cat-drag-zone{display:none}.grain{pointer-events:none;position:absolute;inset:0;z-index:2;opacity:.14;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");mix-blend-mode:multiply}.hero-copy{position:absolute;z-index:3;left:7vw;top:50%;transform:translateY(-47%);pointer-events:none}.eyebrow{color:var(--orange);margin:0 0 17px}h1{margin:0;font-size:clamp(44px,5vw,80px);letter-spacing:-.095em;line-height:.84;font-weight:800}h1 em{font-style:normal;color:var(--orange)}.lead{margin:27px 0 0;font-size:12px;line-height:1.9;font-weight:500}.interaction-hint{position:absolute;z-index:3;right:34px;top:50%;margin:0;writing-mode:vertical-rl;display:flex;gap:12px;align-items:center;color:#504d48}.interaction-hint span{width:44px;height:1px;background:#504d48;display:inline-block}.scroll-cue{position:absolute;z-index:4;bottom:26px;left:34px;text-decoration:none;display:flex;gap:12px;align-items:center}.scroll-cue span{color:var(--orange);font-size:14px}
.section{padding:120px clamp(24px,7vw,110px) 140px}.section-heading{display:grid;grid-template-columns:minmax(100px,18%) 1fr;border-top:1px solid var(--ink);padding-top:18px;margin-bottom:65px}.section-number{margin:0;color:var(--orange)}.section-heading h2{margin:0;font-size:clamp(40px,6vw,82px);letter-spacing:-.075em;line-height:.95}.skill-table-wrap{margin-left:18%;overflow-x:auto;border-top:1px solid var(--ink);scrollbar-color:var(--orange) transparent}.skill-table{width:100%;min-width:900px;border-collapse:collapse;table-layout:fixed}.skill-table th,.skill-table td{padding:22px 18px;text-align:left;vertical-align:top;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.skill-table th:last-child,.skill-table td:last-child{border-right:0}.skill-table thead th{color:var(--orange);font:500 10px/1.4 'DM Mono',monospace;letter-spacing:.06em}.skill-table tbody th{width:145px;color:var(--orange);font:500 11px/1.6 'DM Mono',monospace;letter-spacing:.04em}.skill-table th:first-child{width:145px}.skill-table th:last-child{width:190px}.skill-table td{font-size:14px;line-height:2}.skill-table small{display:inline-block;margin-left:10px;color:#68635d;font-size:11px}
.profile{background:#dcd5ca}.profile-content{margin-left:18%}.profile-body{max-width:880px}.profile-body p{margin:0 0 1.7em;font-size:15px;line-height:2}.profile-highlights{display:grid;grid-template-columns:repeat(3,1fr);margin:40px 0 0;border-top:1px solid var(--line)}.profile-highlights div{padding:20px 20px 0 0}.profile-highlights div+div{padding-left:20px;border-left:1px solid var(--line)}.profile-highlights dt{color:var(--orange);font:500 10px/1.4 'DM Mono',monospace;letter-spacing:.08em}.profile-highlights dd{margin:12px 0 0;font-size:clamp(18px,2vw,28px);font-weight:700;letter-spacing:-.04em}
.portfolio{background:var(--ink);color:var(--paper)}.portfolio .section-heading{border-color:var(--paper)}.work-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:60px 24px}.work-card{text-decoration:none;display:block}.card-visual{aspect-ratio:16/9;padding:25px;display:flex;align-items:center;justify-content:space-between;overflow:hidden;transition:transform .35s cubic-bezier(.2,.7,.2,1),filter .35s}.work-card:hover .card-visual{transform:translateY(-7px);filter:brightness(1.08)}.card-visual span:first-child{font-size:clamp(44px,6vw,90px);font-weight:800;letter-spacing:-.1em}.card-visual span:last-child{font:500 clamp(30px,4.5vw,68px)/1 'DM Mono',monospace;letter-spacing:-.08em;opacity:.2}.cat-visual{background:#ff5a1f;color:#211714}.solo-visual{background:#d9ff43;color:#181718}.team-visual{background:#786cff;color:#f2eee5}.card-meta{display:flex;justify-content:space-between;margin-top:17px;color:#aaa59b}.work-card h3{font-size:clamp(22px,2.4vw,34px);letter-spacing:-.055em;margin:10px 0 0}.site-footer{padding:28px 34px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-top:1px solid var(--line)}.site-footer p{margin:0}.site-footer>a:last-child{justify-self:end;text-decoration:none}
.skill-table{min-width:720px}.skill-table th:last-child{width:auto}.skill-table .experience-note{display:block;margin:8px 0 0}
.survey-visual{background:#69d8cf;color:#181718}
.hourglass-visual{background:#f2c879;color:#211714}.hourglass-visual span:last-child{font-size:clamp(24px,3.4vw,48px)}
.ai-visual{background:#ff8fb1;color:#211714}
.search-visual{background:#b97852;color:#211714}.search-visual span:last-child{font-size:clamp(24px,3.4vw,48px)}
.ripple-visual{background:#78b7ff;color:#14233b}.ripple-visual span:last-child{font-size:clamp(24px,3.4vw,48px)}
.hero .eyebrow,.hero-nav a,.interaction-hint{font-size:16px}.hero .lead{font-size:18px}
.scroll-cue{font-size:16px;font-weight:500;gap:14px}.scroll-cue span{font-size:24px;line-height:1;animation:scroll-down 1.2s ease-in-out infinite}@keyframes scroll-down{0%,100%{transform:translateY(-3px)}50%{transform:translateY(7px)}}
.hero-nav a{display:inline-flex;align-items:center;isolation:isolate;overflow:hidden;padding:10px 16px;border:2px solid var(--ink);background:rgba(233,228,218,.72);font-family:Manrope,Arial,sans-serif;font-size:18px;font-weight:800;letter-spacing:.04em;cursor:pointer;transition:color .25s,background-color .25s,border-color .25s,transform .25s cubic-bezier(.2,.9,.25,1.4),box-shadow .25s}.hero-nav a::before{content:"↗";margin-right:8px;font-size:.8em;transition:transform .25s cubic-bezier(.2,.9,.25,1.4)}.hero-nav a::after{content:"";display:block;position:absolute;inset:-60% -30%;width:auto;height:auto;background:linear-gradient(110deg,transparent 38%,rgba(255,255,255,.7) 50%,transparent 62%);transform:translateX(-85%);transition:transform .55s ease;pointer-events:none}.hero-nav a:hover,.hero-nav a:focus-visible{color:var(--paper);background:var(--orange);border-color:var(--ink);transform:translate(-2px,-5px) rotate(-1.5deg) scale(1.04);box-shadow:7px 7px 0 var(--ink)}.hero-nav a:nth-child(even):hover,.hero-nav a:nth-child(even):focus-visible{transform:translate(2px,-5px) rotate(1.5deg) scale(1.04)}.hero-nav a:hover::before,.hero-nav a:focus-visible::before{transform:translate(3px,-3px) rotate(12deg)}.hero-nav a:hover::after,.hero-nav a:focus-visible::after{transform:translateX(85%)}.hero-nav a:active{transform:translate(3px,3px) scale(.98);box-shadow:2px 2px 0 var(--ink)}.hero-nav a:focus-visible{outline:3px solid var(--ink);outline-offset:4px}
@media(max-width:900px){.work-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){canvas{touch-action:pan-y}.cat-drag-zone{display:block;position:absolute;z-index:1;left:27%;top:7%;width:60%;height:32%;border-radius:45%;cursor:grab;touch-action:none}.cat-drag-zone.is-dragging{cursor:grabbing}.brand{flex-shrink:0}nav{gap:10px}.hero-nav a{font-size:16px}.hero-copy{left:20px;right:20px;top:39%;bottom:auto;transform:none}h1{font-size:clamp(38px,11vw,46px);line-height:.92;letter-spacing:-.075em}.hero .lead{font-size:16px;margin-top:18px;max-width:90%}.interaction-hint{right:12px;top:14%}.scroll-cue{left:20px;bottom:20px}.section{padding:80px 20px 95px}.section-heading{grid-template-columns:55px 1fr;margin-bottom:45px}.skill-table-wrap{margin-left:0;margin-right:-20px}.profile-content{margin-left:0;grid-template-columns:1fr;gap:32px}.profile-body p{font-size:14px;line-height:1.9}.profile-highlights{grid-template-columns:1fr;margin-top:10px}.profile-highlights div{padding:18px 0}.profile-highlights div+div{padding-left:0;border-left:0;border-top:1px solid var(--line)}.work-grid{grid-template-columns:1fr;gap:48px}.card-visual{padding:18px}.card-meta{font-size:8px}.site-footer{padding:24px 20px;grid-template-columns:1fr 1fr}.site-footer p{display:none}}
@media(max-width:700px){.hero-nav{gap:10px;margin-top:18px}.hero-nav a{font-size:16px;padding:8px 12px}}
@media(max-width:700px){.skill-table-wrap{margin:0;overflow:visible;border-top:0}.skill-table{display:block;width:100%;min-width:0}.skill-table thead{display:none}.skill-table tbody{display:grid;gap:16px}.skill-table tbody tr{display:block;padding:0 18px 18px;border:1px solid var(--line);border-top:3px solid var(--orange);background:rgba(255,255,255,.22)}.skill-table tbody th,.skill-table tbody td{display:block;width:auto;padding:0;border:0}.skill-table tbody th{padding-top:14px;padding-bottom:10px;font-size:12px;line-height:1.5}.skill-table tbody td{font-size:14px;line-height:1.8;overflow-wrap:anywhere}.skill-table small,.skill-table .experience-note{display:block;margin:10px 0 0;line-height:1.7}}
@media(hover:none) and (pointer:coarse){.hero-nav a{-webkit-tap-highlight-color:transparent}.hero-nav a::before{display:none}.hero-nav a:hover,.hero-nav a:nth-child(even):hover{color:var(--ink);background:rgba(233,228,218,.72);border-color:var(--ink);transform:none;box-shadow:none}.hero-nav a:hover::after{transform:translateX(-85%)}.hero-nav a.is-tapped,.hero-nav a:nth-child(even).is-tapped{color:var(--paper);background:var(--orange);border-color:var(--ink);transform:translate(-2px,-5px) rotate(-1.5deg) scale(1.04);box-shadow:7px 7px 0 var(--ink)}.hero-nav a:nth-child(even).is-tapped{transform:translate(2px,-5px) rotate(1.5deg) scale(1.04)}.hero-nav a.is-tapped::after{transform:translateX(85%)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.card-visual,.hero-nav a,.hero-nav a::after{transition:none}.scroll-cue span{animation:none}}
