@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600;9..40,700&family=Instrument+Serif:ital@0;1&display=swap";*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--primary: #779850;--background: #f7f3eb;--serif: "Instrument Serif", Georgia, serif;--sans: "DM Sans", sans-serif;--mono: "DM Mono", monospace;--cream: #f7f2e8;--text: #17211f;--text-secondary: #626b64;--white: #ffffff;--line: rgba(255, 255, 255, .14);--muted: var(--text-secondary);--primary-light: rgba(119, 152, 80, .16);--ink-muted: var(--text-secondary)}@theme{ --color-primary: #779850; }*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--background);color:var(--text);font-family:var(--sans);font-size:16px}body .site-shell .hobby-grid{display:grid!important;grid-auto-flow:dense!important;grid-auto-columns:auto!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;grid-auto-rows:96px!important;overflow:visible!important;overscroll-behavior-inline:auto!important;scroll-snap-type:none!important;gap:20px!important;padding:0!important;border:0!important}body .site-shell .hobby-card{height:auto!important;min-height:0!important;justify-content:initial!important;padding:0!important;transition:none!important;transform:none!important;box-shadow:none!important}body .site-shell .hobby-card:nth-child(1),body .site-shell .hobby-card:nth-child(5),body .site-shell .hobby-card:nth-child(9){grid-row:span 4}body .site-shell .hobby-card:hover{transform:none!important;box-shadow:none!important}body .site-shell .hobby-card:hover .hobby-icon{transform:none!important}@media (max-width: 900px){body .site-shell .hobby-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:100px!important}}@media (max-width: 560px){body .site-shell .hobby-grid{grid-template-columns:1fr!important;grid-auto-rows:90px!important}body .site-shell .hobby-card,body .site-shell .hobby-card:nth-child(n){grid-row:span 3}body .site-shell .hobby-card:nth-child(1),body .site-shell .hobby-card:nth-child(5),body .site-shell .hobby-card:nth-child(9){grid-row:span 4}}.hobby-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;grid-auto-flow:dense!important;grid-auto-rows:96px!important;gap:20px!important;overflow:visible!important;padding:0!important}.hobby-card{height:auto!important;min-height:0!important;grid-row:span 3;display:grid!important;grid-template-rows:minmax(135px,1fr) auto!important;padding:0!important;overflow:hidden;justify-content:initial!important}.hobby-card:nth-child(1),.hobby-card:nth-child(5),.hobby-card:nth-child(9){grid-row:span 4}.hobby-card:nth-child(2),.hobby-card:nth-child(4),.hobby-card:nth-child(7){grid-row:span 3}.hobby-card .hobby-icon{position:absolute!important;z-index:2!important;top:auto!important;bottom:76px;left:18px;width:43px!important;height:43px!important;margin:0!important;background:var(--cream);color:var(--ink);border-color:var(--ink)!important}.hobby-card>div:last-child{position:relative!important;z-index:1!important;grid-row:2;display:block!important;padding:29px 17px 15px!important;color:var(--ink)!important;background:var(--cream)}.hobby-card h3{font-size:22px!important;line-height:1;margin:5px 0 6px!important;color:var(--ink)!important}.hobby-card p{font-size:12px!important;line-height:1.4;margin:0!important;color:var(--text-secondary)!important}@media (max-width: 900px){.hobby-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:100px!important}}@media (max-width: 560px){.hobby-grid{grid-template-columns:1fr!important;grid-auto-rows:90px!important}.hobby-card,.hobby-card:nth-child(n){grid-row:span 3}.hobby-card:nth-child(1),.hobby-card:nth-child(5),.hobby-card:nth-child(9){grid-row:span 4}}.hobby-grid{display:grid!important;grid-auto-flow:row!important;grid-auto-columns:auto!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;overflow:visible!important;scroll-snap-type:none!important;gap:20px!important;padding:0!important}.hobby-card{height:330px;min-height:0!important;display:grid!important;grid-template-rows:190px 1fr!important;justify-content:initial!important;padding:0!important;overflow:hidden;border:1px solid var(--line)!important;background:var(--cream);color:var(--ink)!important;box-shadow:none!important;transform:none!important}.hobby-card:hover{transform:translateY(-5px)!important;box-shadow:5px 5px 0 var(--ink)!important}.hobby-card-image{position:relative!important;grid-row:1;width:100%;height:100%;z-index:0!important;filter:none!important}.hobby-card-overlay{display:none!important}.hobby-card .hobby-icon{position:absolute!important;z-index:2!important;top:164px;left:18px;width:47px!important;height:47px!important;margin:0!important;background:var(--cream);color:var(--ink);border-color:var(--ink)!important}.hobby-card>div:last-child{position:relative!important;z-index:1!important;grid-row:2;display:block!important;padding:34px 18px 17px!important;color:var(--ink)!important}.hobby-card>div:last-child span{display:block;order:initial!important;color:#779850!important;font:500 10px var(--mono)!important;letter-spacing:.08em!important}.hobby-card h3{font-size:23px!important;line-height:1;margin:5px 0 6px!important;color:var(--ink)!important}.hobby-card p{font-size:12px!important;line-height:1.4;margin:0!important;color:#626b64!important}.hobby-card:hover .hobby-icon{transform:rotate(8deg) scale(1.04)}@media (max-width: 900px){.hobby-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}@media (max-width: 560px){.hobby-grid{grid-template-columns:1fr!important}.hobby-card{height:315px}}.hobby-grid{display:grid!important;grid-auto-flow:column!important;grid-auto-columns:minmax(260px,31vw)!important;grid-template-columns:none!important;overflow-x:auto!important;overscroll-behavior-inline:contain;scroll-snap-type:inline mandatory;gap:17px!important;padding:4px 2px 18px!important;border:0!important;scrollbar-width:thin;scrollbar-color:var(--ink) transparent}.hobby-card{scroll-snap-align:start;min-height:350px!important;border:1px solid var(--line)!important;display:flex!important;flex-direction:column!important;justify-content:flex-end!important;padding:24px!important;isolation:isolate;transition:transform .3s,box-shadow .3s}.hobby-card:hover{transform:translateY(-7px);box-shadow:7px 7px 0 var(--ink)}.hobby-card-image{z-index:-2!important}.hobby-card-overlay{z-index:-1!important;background:linear-gradient(0deg,#0a120feb,#0a120f0a 70%)!important}.hobby-card .hobby-icon{width:46px!important;height:46px!important;margin-bottom:15px!important}.hobby-card>div:last-child{display:grid!important;grid-template-columns:1fr!important;gap:2px!important}.hobby-card>div:last-child span{order:-1;font:500 10px var(--mono);letter-spacing:.08em}.hobby-card h3{font-size:27px!important;letter-spacing:-.04em;margin:0!important}.hobby-card p{font-size:13px!important;margin:0!important}.hobby-card:hover .hobby-icon{transform:rotate(10deg) scale(1.05)}@media (max-width: 780px){.hobby-grid{grid-auto-columns:minmax(240px,79vw)!important;gap:13px!important}.hobby-card{min-height:315px!important}}.visible{visibility:visible}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.hobby-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:28px;padding:20px 0}.hobby-card{position:relative;overflow:hidden;display:flex;flex-direction:column;min-height:360px;border:1.5px solid var(--line);background:var(--cream);border-radius:8px;box-shadow:0 8px 24px #17221f14;transition:transform .35s cubic-bezier(.34,1.56,.64,1),box-shadow .35s ease,border-color .35s ease}.hobby-card:hover{transform:translateY(-12px);border-color:var(--primary);box-shadow:0 20px 48px #77985026}.hobby-card--accent{transform:none}.hobby-card--accent:hover{transform:translateY(-12px)}.hobby-card__media{position:relative;flex:0 0 200px;width:100%;overflow:hidden}.hobby-card-image{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.34,1.56,.64,1),filter .4s ease}.hobby-card:hover .hobby-card-image{transform:scale(1.1);filter:saturate(1.12) brightness(1.05)}.hobby-card-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#17221f00,#17221f59 85%,#17221f80);z-index:1;pointer-events:none;transition:background .35s ease}.hobby-card:hover .hobby-card-overlay{background:linear-gradient(180deg,#17221f00,#17221f73 85%,#17221f99)}.hobby-card .hobby-icon{position:absolute;z-index:2;top:14px;left:14px;width:50px;height:50px;margin:0;border:1.5px solid rgba(255,255,255,.9);background:#f7f3ebf2;color:var(--primary);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:transform .4s cubic-bezier(.34,1.56,.64,1),background .35s ease}.hobby-card:hover .hobby-icon{transform:rotate(12deg) scale(1.08);background:#f7f3eb;border-color:var(--primary)}.hobby-card__content{position:relative;z-index:2;padding:22px 20px 24px;gap:10px;background:var(--cream);flex:1;display:flex;flex-direction:column;justify-content:space-between}.hobby-card__index{display:inline-flex;width:-moz-fit-content;width:fit-content;align-items:center;gap:5px;padding:6px 10px;background:#77985014;color:var(--primary);font:600 9px var(--mono);letter-spacing:.1em;text-transform:uppercase;border-radius:4px;transition:background .3s ease}.hobby-card:hover .hobby-card__index{background:#77985026}.hobby-card__content h3{margin:4px 0 2px;font-size:26px;font-weight:600;line-height:1.1;letter-spacing:-.02em;color:var(--ink);font-family:var(--serif)}.hobby-card__content p{margin:0;font-size:13px;font-weight:400;line-height:1.5;color:var(--text-secondary);transition:color .3s ease}.hobby-card:hover .hobby-card__content p{color:var(--text)}@media (max-width: 900px){.hobby-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px}}@media (max-width: 640px){.hobby-grid{grid-template-columns:1fr;gap:20px}.hobby-card{min-height:340px}.hobby-card__content{padding:18px 16px 20px}.hobby-card__content h3{font-size:22px}.hobby-card__media{flex:0 0 180px}}.site-shell{overflow:hidden;position:relative;background:var(--background);color:var(--text)}.grain{position:fixed;top:0;right:0;bottom:0;left:0;opacity:.22;pointer-events:none;z-index:4;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='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.18'/%3E%3C/svg%3E")}.topbar{height:74px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(24px,5vw,76px);position:absolute;top:0;z-index:10;width:100%;border-bottom:1px solid var(--line)}.monogram{font-weight:700;font-size:23px;letter-spacing:-1.5px;text-decoration:none;color:#000}.monogram span{color:var(--primary)}.nav-links{display:flex;gap:27px}.nav-links button,.nav-links a{font:500 12px var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);border:0;background:none;padding:7px 0;cursor:pointer;transition:color .2s;text-decoration:none}.nav-links button:hover,.nav-links a:hover,.nav-links button.active{color:var(--primary)}.nav-links button.active{border-bottom:1px solid var(--primary)}.top-contact,.text-link{display:flex;align-items:center;gap:5px;color:var(--text);font:500 13px var(--mono);text-decoration:none}.menu-button{display:none;background:none;border:0;color:var(--text)}.modal-open{overflow:hidden}.cv-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:grid;place-items:center;padding:28px;background:#141c1ab8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:modal-fade-in .25s ease-out}.cv-modal{width:min(100%,980px);height:min(88vh,900px);display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(255,255,255,.28);border-radius:14px;background:var(--cream);box-shadow:0 24px 80px #00000061;animation:cv-modal-rise .3s cubic-bezier(.2,.8,.2,1)}.cv-modal-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 18px;border-bottom:1px solid var(--line)}.cv-modal-title,.cv-modal-actions{display:flex;align-items:center;gap:10px}.cv-file-icon{display:grid;width:34px;height:34px;place-items:center;color:var(--cream);background:var(--primary);border-radius:8px}.cv-modal-title p{margin:0 0 2px;color:var(--text-secondary);font:500 10px var(--mono);letter-spacing:.08em;text-transform:uppercase}.cv-modal-title h2{margin:0;font-size:16px}.cv-modal-actions a,.cv-modal-actions button{display:inline-flex;align-items:center;gap:5px;min-height:34px;padding:0 10px;color:var(--text);border:1px solid var(--line);border-radius:7px;background:transparent;font:500 11px var(--mono);text-decoration:none;cursor:pointer;transition:color .2s,border-color .2s,background .2s}.cv-modal-actions a:hover,.cv-modal-actions button:hover{color:var(--primary);border-color:var(--primary);background:#b9432d0d}.cv-modal iframe{width:100%;flex:1;border:0;background:#fff}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes cv-modal-rise{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.hero{min-height:80vh;padding:160px clamp(24px,6vw,120px) 80px;position:relative}.hero-with-cv{display:flex;justify-content:space-between;align-items:center;gap:48px}.hero-copy{max-width:620px;flex:1;position:relative;z-index:2}.hero-monogram-art{position:relative;display:grid;width:min(35vw,500px);min-width:360px;aspect-ratio:1;flex:0 1 500px;place-items:center}.hero-monogram-art:before,.hero-monogram-art:after{position:absolute;border-radius:50%;content:""}.hero-monogram-art:before{z-index:0;width:72%;aspect-ratio:1;background:radial-gradient(circle,rgba(188,213,136,.36) 0 42%,rgba(188,213,136,.08) 66%,transparent 72%);filter:blur(7px)}.hero-monogram-art:after{z-index:3;width:76%;aspect-ratio:1;border:1px dashed rgba(83,113,48,.45);animation:monogram-turn 30s linear infinite}.orbit-core{position:absolute;z-index:1;width:59%;aspect-ratio:1;overflow:hidden;border:1px solid rgba(255,255,255,.5);border-radius:50%;background:radial-gradient(circle at 31% 25%,rgba(255,255,237,.82) 0 3%,transparent 16%),radial-gradient(circle at 38% 32%,#dfeaba 0,#aac87a 38%,#6d9148 72%,#3e612e);box-shadow:inset -24px -26px 38px #26481d47,inset 14px 14px 24px #ffffff38,0 20px 34px #4a652d2e}.core-grid{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.28;background-image:linear-gradient(rgba(255,255,235,.4) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,235,.4) 1px,transparent 1px);background-size:18% 18%;transform:rotate(-18deg) scale(1.3)}.core-shine{position:absolute;top:11%;left:16%;width:39%;height:15%;border-radius:50%;background:#ffffeb57;filter:blur(8px);transform:rotate(-26deg)}.core-node{position:absolute;width:8px;height:8px;border:2px solid rgba(255,255,235,.8);border-radius:50%;background:var(--primary);box-shadow:0 0 0 5px #ffffeb24}.core-node-one{top:28%;left:31%}.core-node-two{right:24%;bottom:29%}.core-node-three{right:30%;top:35%}.skill-orbit{position:absolute;z-index:4;top:12%;right:12%;bottom:12%;left:12%;animation:skill-orbit 24s linear infinite;animation-delay:var(--delay)}.skill-orbit-tag{position:absolute;top:0;left:50%;padding:7px 10px;border:1px solid rgba(77,107,48,.28);border-radius:999px;background:#fffdf7db;box-shadow:0 5px 14px #31442314;color:var(--ink);font:500 clamp(9px,.9vw,11px) var(--mono);letter-spacing:.025em;white-space:nowrap;transform:translate(-50%,-50%);animation:skill-orbit-counter 24s linear infinite;animation-delay:var(--delay)}.skill-react{--delay: 0s}.skill-typescript{--delay: -4s}.skill-css{--delay: -8s}.skill-javascript{--delay: -12s}.skill-redux{--delay: -16s}.skill-storybook{--delay: -20s}@keyframes monogram-turn{to{transform:rotate(360deg)}}@keyframes skill-orbit{to{transform:rotate(360deg)}}@keyframes skill-orbit-counter{to{transform:translate(-50%,-50%) rotate(-360deg)}}@media (min-width: 781px) and (max-width: 1100px){.hero-with-cv{gap:28px}.hero-monogram-art{width:345px;min-width:345px}}.eyebrow{font:500 12px var(--mono);letter-spacing:.09em;text-transform:uppercase;display:flex;align-items:center;gap:7px;margin:0 0 25px;color:var(--muted)}.eyebrow svg{color:var(--primary)}.hero h1,.section h2,.contact-section h2{font-size:clamp(52px,6.5vw,102px);line-height:.88;letter-spacing:-.055em;font-weight:500;margin:0;color:var(--ink)}.hero h1 em,.section h2 em,.contact-section h2 em{font-family:var(--serif);font-weight:400}.hero-intro{font-size:17px;line-height:1.6;max-width:560px;margin:26px 0 32px;color:var(--ink)}.hero-actions{display:flex;align-items:center;gap:24px}.button{border:0;cursor:pointer;padding:14px 22px;display:flex;gap:12px;align-items:center;font:500 12px var(--mono);transition:all .25s ease;border-radius:2px}.button-dark{background:var(--primary);color:var(--white);transform:translateY(-2px);box-shadow:0 6px 16px #75984f4d}.stat-divider{width:1px;height:28px;background:var(--line)}.section{padding:115px clamp(24px,9vw,150px);position:relative;border-top:1px solid var(--line)}.section-label{font:500 11px var(--mono);text-transform:uppercase;letter-spacing:.08em;display:flex;align-items:center;gap:11px;margin-bottom:54px;color:var(--text-secondary)}.section-label span:first-child{color:var(--primary)}.section-label i{height:1px;background:var(--line);width:100%;max-width:126px}.about-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:11vw;align-items:start}.section h2{font-size:clamp(46px,5.2vw,76px)}.about-grid>div>p{line-height:1.65;color:var(--text-secondary);margin:0 0 18px}.stats{display:flex;border-top:1px solid #cfc8bb;margin-top:42px;padding-top:20px;gap:28px}.stats strong{font:500 36px var(--serif);display:block}.stats strong span{color:var(--primary)}.stats small{font:11px var(--mono);text-transform:uppercase;color:var(--text-secondary);white-space:nowrap}.work-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:60px}.work-heading p{max-width:265px;color:var(--text-secondary);line-height:1.5;margin:0}.project-list{border-top:1px solid var(--line)}.project-card{display:grid;grid-template-columns:86px 1fr 54px;gap:10px;cursor:pointer;border-bottom:1px solid var(--line);padding:24px 0;transition:padding .25s,border-color .25s}.project-card:hover,.project-card.expanded{padding-left:17px;padding-right:17px;border-color:var(--ink)}.project-number,.project-type{font:11px var(--mono);text-transform:uppercase;letter-spacing:.07em;color:var(--text-secondary)}.project-main h3{font-size:clamp(28px,3.5vw,46px);letter-spacing:-.045em;line-height:1;margin:7px 0 0}.project-main p,.project-stack{max-height:0;overflow:hidden;opacity:0;margin:0;transition:all .3s}.project-card.expanded .project-main p{max-height:100px;opacity:1;margin:15px 0 13px;max-width:570px;line-height:1.5}.project-card.expanded .project-stack{max-height:60px;opacity:1;display:flex;gap:7px;flex-wrap:wrap}.project-stack span{font:10px var(--mono);border:1px solid rgba(23,34,31,.4);padding:5px 7px}.project-arrow{justify-self:end;align-self:center;width:40px;height:40px;border-radius:50%;border:1px solid #7d8981;background:none;color:inherit;display:grid;place-items:center;transition:transform .25s}.project-card:hover .project-arrow,.project-card.expanded .project-arrow{transform:rotate(-45deg);border-color:var(--ink)}.experience-layout{display:grid;grid-template-columns:1fr 1fr;gap:11vw}.timeline{border-left:1px solid var(--line);padding-left:31px}.timeline-item{position:relative;padding-bottom:51px}.timeline-item:last-child{padding-bottom:0}.timeline-dot{width:11px;height:11px;border:2px solid var(--cream);background:var(--primary);position:absolute;left:-37px;top:4px;border-radius:50%}.period{font:11px var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--primary);margin:0 0 10px}.timeline h3{font-size:20px;letter-spacing:-.03em;margin:0 0 5px}.company{font-size:14px;margin:0;color:var(--text-secondary)}.company span{color:var(--text-secondary)}.summary{line-height:1.55;color:var(--text-secondary);margin:16px 0 10px}.timeline ul{padding-left:17px;margin:0;color:var(--text-secondary);font-size:14px;line-height:1.5}.timeline li{margin-bottom:5px}.skills-heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:54px}.rotating-star{font-size:82px;line-height:1;animation:spin 14s linear infinite;color:var(--primary)}.skill-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.skill-card{position:relative;min-height:190px;overflow:hidden;padding:23px;border:1px solid var(--line);background:#fffdf773;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}.skill-card:after{position:absolute;width:180px;height:180px;right:-80px;bottom:-95px;border-radius:50%;background:#75984f1f;content:"";transition:transform .45s ease,background .3s ease}.skill-card:nth-child(2):after{background:#6089ae1f}.skill-card:nth-child(3):after{background:#d9bc7226}.skill-card:nth-child(4):after{background:#b95f4f1a}.skill-card:hover{z-index:1;border-color:var(--primary);box-shadow:7px 7px #17221fdb;transform:translate(-4px,-4px)}.skill-card:hover:after{background:#75984f33;transform:scale(1.35)}.skill-card-header{position:relative;z-index:1;display:flex;align-items:center;gap:10px}.skill-card-header>span{color:var(--primary);font:500 11px var(--mono);letter-spacing:.07em}.skill-card h3{margin:0;color:var(--ink);font:500 14px var(--mono);text-transform:uppercase}.skill-card-header i{margin-left:auto;color:var(--primary);font-size:19px;font-style:normal;transition:transform .5s ease}.skill-card:hover .skill-card-header i{transform:rotate(90deg)}.skill-list{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:8px;margin-top:52px}.skill-list span{padding:7px 9px;border:1px solid rgba(23,34,31,.17);border-radius:999px;background:#fffdf7b8;color:var(--ink);font:500 12px var(--mono);transition:color .2s,background .2s,transform .2s}.skill-card:hover .skill-list span{color:var(--primary);background:#fffdf7f0}.skill-list span:hover{transform:translateY(-2px)}.hobbies-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:55px}.hobbies-heading p{max-width:275px;line-height:1.6;color:var(--text-secondary);margin:0}.hobby-grid{display:grid;grid-template-columns:repeat(3,1fr);border-left:1px solid var(--line);border-top:1px solid var(--line)}.hobby-card{display:grid;grid-template-columns:52px 1fr;gap:13px;padding:23px 18px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:transform .25s,box-shadow .25s}.hobby-card:hover{transform:translate(-4px,-4px);box-shadow:5px 5px 0 var(--ink)}.hobby-icon{width:45px;height:45px;border:1px solid var(--ink);border-radius:50%;display:grid;place-items:center;transition:transform .35s}.hobby-card:hover .hobby-icon{transform:rotate(20deg)}.hobby-card span{font:10px var(--mono);color:var(--primary)}.hobby-card h3{font-size:19px;letter-spacing:-.03em;margin:3px 0}.hobby-card p{font-size:12px;color:var(--text-secondary);margin:0;line-height:1.4}.interest-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.interest-card{display:flex;align-items:center;gap:17px;min-height:142px;padding:20px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background .25s ease}.interest-card:hover{background:#75984f14}.interest-media{position:relative;flex:0 0 72px;width:72px;height:72px}.interest-media img{width:100%;height:100%;border-radius:50%;-o-object-fit:cover;object-fit:cover;filter:saturate(.82);transition:filter .25s ease,transform .35s ease}.interest-card:hover .interest-media img{filter:saturate(1.05);transform:scale(1.05)}.interest-media span{position:absolute;right:-4px;bottom:-4px;display:grid;width:25px;height:25px;place-items:center;border:2px solid var(--cream);border-radius:50%;background:var(--primary);color:var(--white);font:500 8px var(--mono)}.interest-copy{min-width:0}.interest-copy svg{margin-bottom:7px;color:var(--primary)}.interest-copy h3{margin:0 0 4px;color:var(--ink);font-size:20px;letter-spacing:-.035em}.interest-copy p{margin:0;color:var(--text-secondary);font-size:12px;line-height:1.45}@media (max-width: 980px){.interest-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 560px){.interest-grid{grid-template-columns:1fr}.interest-card{min-height:126px;padding:17px}}.contact-section{padding:122px clamp(24px,9vw,150px) 29px;color:var(--ink);position:relative;overflow:hidden;border-top:1px solid var(--line)}.contact-section>*{position:relative;z-index:1}.contact-section h2{margin-bottom:40px}.contact-email{font-size:clamp(17px,2.2vw,28px);display:inline-flex;align-items:center;gap:9px;color:var(--ink);text-decoration:none;border-bottom:2px solid var(--ink);padding-bottom:5px}.contact-footer{border-top:1px solid rgba(23,34,31,.4);margin-top:100px;padding-top:18px;display:flex;justify-content:space-between;font:11px var(--mono);text-transform:uppercase;letter-spacing:.06em}.contact-footer div{display:flex;gap:18px}.contact-footer a{color:var(--ink)}.contact-orb{position:absolute;width:620px;height:620px;border:1px solid rgba(23,34,31,.2);border-radius:50%;right:-85px;top:-270px}.contact-orb:after{content:"";position:absolute;width:420px;height:420px;border:1px dashed rgba(23,34,31,.2);border-radius:50%;top:98px;left:98px}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 780px){.topbar{height:62px}.top-contact{display:none}.menu-button{display:block;z-index:12}.nav-links{display:none}.nav-links.open{display:flex;position:absolute;top:0;left:0;width:100%;height:100vh;background:var(--cream);flex-direction:column;align-items:center;justify-content:center;gap:28px}.nav-links button,.nav-links a{font-size:19px}.cv-modal-backdrop{padding:12px}.cv-modal{height:min(92vh,900px);border-radius:10px}.cv-modal-header{padding:11px 12px}.cv-modal-actions a{font-size:0;gap:0}.cv-modal-actions a svg{width:17px;height:17px}.hero{min-height:720px;padding-top:130px;align-items:flex-start}.hero h1{font-size:clamp(56px,15.5vw,83px)}.hero-intro{font-size:16px;max-width:355px}.hero{flex-direction:column;align-items:flex-start;padding-top:130px;gap:40px}.hero-with-cv{flex-direction:column;align-items:flex-start;padding-top:120px;gap:36px}.hero-copy{max-width:100%}.hero-monogram-art{width:min(78vw,380px);min-width:0;align-self:center}.section{padding-top:76px;padding-bottom:76px}.section-label{margin-bottom:36px}.about-grid,.experience-layout{grid-template-columns:1fr;gap:36px}.work-heading,.hobbies-heading{display:block;margin-bottom:40px}.work-heading p,.hobbies-heading p{margin-top:22px}.project-card{grid-template-columns:42px 1fr 34px}.project-main h3{font-size:33px}.project-card:hover,.project-card.expanded{padding-left:8px;padding-right:8px}.skill-grid{grid-template-columns:1fr}.skill-card{min-height:172px;padding:19px}.skill-list{margin-top:38px}.hobby-grid{grid-template-columns:1fr 1fr}.contact-section{padding-top:82px}.contact-footer{margin-top:70px}.contact-footer span{max-width:160px}.contact-orb{right:-300px}.stats{gap:14px}.stats strong{font-size:30px}.stats small{font-size:9px}.hero-actions{gap:18px}.button{padding:13px 15px}}@media (prefers-reduced-motion: reduce){.hero-monogram-art:after,.skill-orbit,.skill-orbit-tag{animation:none}}.project-visit{display:flex;align-items:center;gap:5px;width:-moz-max-content;width:max-content;max-height:0;overflow:hidden;opacity:0;margin:0;color:var(--ink);font:500 11px var(--mono);text-transform:uppercase;letter-spacing:.04em;text-decoration:none;border-bottom:1px solid var(--ink);transition:all .3s}.project-card.expanded .project-visit{max-height:35px;opacity:1;margin-top:16px;padding-bottom:3px}.project-category{font:500 14px var(--mono);text-transform:uppercase;letter-spacing:.08em;margin:0 0 14px;color:#779850}.personal-work-heading{margin-top:100px;display:grid;grid-template-columns:1fr 1fr;gap:11vw;align-items:end}.personal-work-heading p:last-child{margin:0;max-width:390px;line-height:1.6;color:var(--text-secondary)}.personal-project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:27px}.personal-project-card{border:1px solid var(--line);overflow:hidden}.project-preview{height:225px;display:block;position:relative;overflow:hidden;background:var(--surface);text-decoration:none;color:var(--ink)}.project-preview img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:top;object-position:top;display:block;transition:transform .45s ease}.project-preview:hover img{transform:scale(1.04)}.project-preview span{position:absolute;right:12px;bottom:12px;display:flex;align-items:center;gap:4px;background:var(--cream);padding:7px 9px;font:500 10px var(--mono);text-transform:uppercase;letter-spacing:.04em;opacity:0;transition:opacity .2s}.project-preview:hover span{opacity:1}.personal-project-copy{padding:20px}.personal-project-copy>div:first-child{display:flex;justify-content:space-between;align-items:center}.personal-project-copy h3{font-size:27px;letter-spacing:-.04em;margin:12px 0 8px}.personal-project-copy>p{font-size:14px;line-height:1.5;color:var(--text-secondary);margin:0 0 15px}.personal-project-copy .project-stack{display:flex;max-height:none;opacity:1;flex-wrap:wrap;gap:5px}.personal-project-copy .project-stack span{font-size:9px}.project-visit.always-visible{max-height:35px;opacity:1;margin-top:17px;padding-bottom:3px}@media (max-width: 980px){.personal-project-grid{grid-template-columns:1fr 1fr}.personal-project-card:last-child{grid-column:span 2}}@media (max-width: 620px){.personal-work-heading{display:block;margin-top:70px}.personal-work-heading p:last-child{margin-top:15px}.personal-project-grid{grid-template-columns:1fr}.personal-project-card:last-child{grid-column:auto}.project-preview{height:205px}}.hobby-photo-strip{display:grid;grid-template-columns:1.25fr .8fr 1fr;gap:14px;margin-top:55px}.hobby-photo-strip figure{height:210px;position:relative;overflow:hidden;margin:0}.hobby-photo-strip img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;filter:grayscale(20%);transition:transform .5s,filter .5s}.hobby-photo-strip figure:hover img{transform:scale(1.05);filter:grayscale(0)}.hobby-photo-strip figcaption{position:absolute;left:12px;bottom:10px;padding:6px 8px;background:var(--cream);font:500 10px var(--mono);text-transform:uppercase;letter-spacing:.06em}@media (max-width: 780px){.professional-project-grid{grid-template-columns:1fr}.hobby-photo-strip{grid-template-columns:1fr 1fr}.hobby-photo-strip figure{height:160px}.hobby-photo-strip figure:first-child{grid-column:span 2}}.professional-project-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.professional-project-card{border:1px solid var(--line);cursor:pointer;transition:transform .25s,box-shadow .25s}.professional-project-card:hover{transform:translateY(-4px);box-shadow:5px 5px 0 var(--ink)}.professional-preview{border-bottom:1px solid var(--line);position:relative;display:flex;align-items:center;padding:20px;background:repeating-linear-gradient(45deg,transparent 0 10px,rgba(23,34,31,.035) 10px 11px)}.professional-preview:before,.professional-preview:after{content:"";position:absolute;border:1px solid var(--line)}.professional-preview:before{width:42%;height:54%;left:15%;top:20%}.professional-preview:after{width:24%;height:30%;right:13%;bottom:18%}.professional-preview span{font:500 10px/1.45 var(--mono);letter-spacing:.07em;text-transform:uppercase;color:#768078;position:relative;z-index:1}.professional-preview b{position:absolute;right:18px;top:14px;font:400 44px var(--serif);color:#c4c7bf}.professional-project-copy{padding:23px}.professional-project-copy h3{font-size:30px;letter-spacing:-.04em;margin:10px 0}.professional-project-copy>p{color:#59625b;line-height:1.52;margin:0;max-height:0;opacity:0;overflow:hidden;transition:all .3s}.professional-project-card.expanded .professional-project-copy>p{max-height:130px;opacity:1;margin-bottom:16px}.professional-project-copy .project-stack{display:flex;max-height:none;opacity:1;gap:5px;flex-wrap:wrap}.professional-project-copy .project-stack span,.personal-project-copy .project-stack span{transition:transform .2s,background .2s,color .2s;cursor:default}.professional-project-copy .project-stack span:hover,.personal-project-copy .project-stack span:hover{transform:translateY(-3px);background:var(--primary);color:var(--cream)}.project-detail{display:flex;align-items:center;gap:5px;border:0;border-bottom:1px solid var(--ink);padding:0 0 3px;margin-top:18px;background:none;color:var(--ink);font:500 11px var(--mono);text-transform:uppercase;letter-spacing:.04em;cursor:pointer}.professional-project-card.expanded .project-detail svg{transform:rotate(180deg)}.hobby-card{position:relative;overflow:hidden;min-height:170px;color:var(--white)}.hobby-card-image,.hobby-card-overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.hobby-card-image{-o-object-fit:cover;object-fit:cover;transition:transform .5s}.hobby-card-overlay{background:linear-gradient(90deg,#0c1511c7,#0c151138)}.hobby-card:hover .hobby-card-image{transform:scale(1.07)}.hobby-card>*:not(.hobby-card-image):not(.hobby-card-overlay){position:relative;z-index:1}.hobby-card .hobby-icon{border-color:#ffffffe6}.hobby-card span,.hobby-card p,.hobby-card h3{color:var(--white)}@keyframes rise-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.hero-copy{animation:rise-in .7s both}.hero-art{animation:rise-in .85s .12s both}@supports (animation-timeline: view()){.section{animation:rise-in linear both;animation-timeline:view();animation-range:entry 0% cover 22%}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}@media (max-width: 780px){.professional-project-grid{grid-template-columns:1fr}.hobby-grid{grid-template-columns:1fr 1fr}.hobby-card{min-height:155px}}.hover\:underline:hover,.group:hover .group-hover\:underline{text-decoration-line:underline}
