:root{--card:#fff;--ring:#a1a1a1;--input:#e5e5e5;--muted:#f5f5f5;--accent:#f5f5f5;--border:#e5e5e5;--radius:0rem;--chart-1:#737373;--chart-2:#737373;--chart-3:#737373;--chart-4:#737373;--chart-5:#737373;--popover:#fff;--primary:#737373;--sidebar:#fafafa;--font-mono:Geist Mono, monospace;--font-sans:Geist Mono, monospace;--secondary:#f5f5f5;--background:#fff;--font-serif:Geist Mono, monospace;--foreground:#0a0a0a;--destructive:#e7000b;--shadow-blur:0px;--shadow-color:#000;--sidebar-ring:#a1a1a1;--shadow-spread:0px;--shadow-opacity:0;--sidebar-accent:#f5f5f5;--sidebar-border:#e5e5e5;--card-foreground:#0a0a0a;--shadow-offset-x:0px;--shadow-offset-y:1px;--sidebar-primary:#171717;--muted-foreground:#717171;--accent-foreground:#171717;--popover-foreground:#0a0a0a;--primary-foreground:#fafafa;--sidebar-foreground:#0a0a0a;--secondary-foreground:#171717;--destructive-foreground:#f5f5f5;--sidebar-accent-foreground:#171717;--sidebar-primary-foreground:#fafafa;--bg:var(--background);--surface:var(--secondary);--surface-strong:var(--primary);--text:var(--muted-foreground);--text-strong:var(--foreground);--text-inverse:var(--primary-foreground);--grid-line:#0a0a0a0a;--coral:var(--primary);--shadow:0 var(--shadow-offset-y) var(--shadow-blur) var(--shadow-spread) hsl(0 0% 0%/var(--shadow-opacity));--sans:var(--font-sans);color:var(--text);background:var(--bg);font-family:var(--sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:linear-gradient(90deg, var(--grid-line) 1px, transparent 1px) 50% 0 / 72px 72px, var(--bg);min-width:320px;min-height:100svh;margin:0}body,button,input,textarea,select{font-family:var(--sans)}button:focus-visible,a:focus-visible{outline:3px solid var(--ring);outline-offset:3px}img{max-width:100%}#root{min-height:100svh}.dark{--card:#191919;--ring:#737373;--input:#525252;--muted:#262626;--accent:#404040;--border:#383838;--chart-1:#737373;--chart-2:#737373;--chart-3:#737373;--chart-4:#737373;--chart-5:#737373;--popover:#262626;--primary:#737373;--sidebar:#171717;--secondary:#262626;--background:#0a0a0a;--foreground:#fafafa;--destructive:#ff6467;--sidebar-ring:#525252;--sidebar-accent:#262626;--sidebar-border:#fff;--card-foreground:#fafafa;--sidebar-primary:#fafafa;--muted-foreground:#a1a1a1;--accent-foreground:#fafafa;--popover-foreground:#fafafa;--primary-foreground:#fafafa;--sidebar-foreground:#fafafa;--secondary-foreground:#fafafa;--destructive-foreground:#262626;--sidebar-accent-foreground:#fafafa;--sidebar-primary-foreground:#171717}:root{--sidebar-color-text:var(--sidebar-foreground);--sidebar-color-text-hover:var(--muted-foreground);--sidebar-color-bg:var(--sidebar);--sidebar-color-bg-btn:var(--sidebar-primary);--sidebar-fs-main:clamp(1.25rem, calc(1rem + 1.5vw), 3rem);--sidebar-p-block:1rem;--sidebar-p-inline:2rem}.site-shell{width:min(1180px,100% - 32px);min-height:100svh;margin:0 auto}.site-shell.scroll-shell,.site-shell.home-shell{width:100%}.site-header{z-index:10;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-bottom:1px solid var(--border);background:#ffffffdb;justify-content:space-between;align-items:center;gap:24px;padding:22px 32px;display:flex;position:fixed;top:0;left:0;right:0}.home-shell .site-header{color:var(--text-inverse);background:linear-gradient(#00000085,#0000);border-bottom:0;padding:24px 32px}button,.button{font:inherit;border:0}.brand,.menu-button,.sidebar-top button,.sidebar-menu button,.menu-scrim{cursor:pointer}.brand{color:var(--text-strong);background:0 0;align-items:center;gap:10px;font-size:15px;font-weight:750;display:inline-flex}.home-shell .brand{color:var(--text-inverse)}.brand-mark{width:34px;height:34px;color:var(--text-inverse);border-radius:var(--radius);box-shadow:var(--shadow);background:0 0;place-items:center;display:inline-grid;overflow:hidden}.brand-mark img{object-fit:contain;width:100%;height:100%;display:block}.menu-button{min-height:38px;color:var(--text-strong);background:var(--surface);border-radius:var(--radius);align-items:center;gap:10px;padding:0 14px;font-size:14px;font-weight:760;display:inline-flex}.menu-icon{gap:3px;display:grid}.menu-icon span{background:currentColor;border-radius:999px;width:18px;height:2px;display:block}.home-shell .menu-button{color:var(--text-inverse);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#00000057}.menu-scrim{z-index:40;background:#00000075;position:fixed;inset:0}.sidebar{z-index:50;width:320px;max-width:88vw;height:100dvh;padding:var(--sidebar-p-block) var(--sidebar-p-inline);color:var(--sidebar-color-text);background-color:var(--sidebar-color-bg);border-left:1px solid var(--sidebar-border);border-radius:var(--radius);position:fixed;top:0;right:0}.sidebar-wrapper{flex-direction:column;width:100%;height:100%;display:flex}.sidebar-top{justify-content:space-between;align-items:center;gap:18px;display:flex}.sidebar-top span{text-transform:uppercase;font-size:14px;font-weight:820}.sidebar-top button{min-height:36px;color:var(--sidebar-primary-foreground);background:var(--sidebar-color-bg-btn);border-radius:var(--radius);padding:0 12px;font-size:13px;font-weight:760}.sidebar-menu{margin-top:calc(var(--sidebar-p-block) * 6);gap:.75rem;display:grid}.menu-link{min-height:auto;color:var(--sidebar-color-text);text-align:left;font-size:var(--sidebar-fs-main);text-transform:uppercase;background:0 0;border-radius:0;padding:0;font-weight:820;line-height:1.05;transition:color .25s cubic-bezier(.6,0,.05,1),padding-right .25s cubic-bezier(.6,0,.05,1)}.menu-link:hover,.menu-link.active{padding-right:var(--sidebar-p-block);color:var(--sidebar-color-text-hover)}main{will-change:opacity, transform;padding:46px 0 80px}.scroll-book{gap:0;padding:0;display:grid}.book-page{scroll-snap-align:start;width:min(1180px,100% - 32px);min-height:100svh;margin:0 auto;padding:112px 0 96px;scroll-margin-top:0}.page-reveal{will-change:opacity, transform}.book-page-home{width:100%;margin:0;padding:0}.home-shell main{padding:0}.home-photo{background:linear-gradient(#00000029,#00000080),url(/DSC03896.JPG) 50%/cover no-repeat;border-radius:0;place-items:center;min-height:100svh;display:grid;position:relative;overflow:hidden}.home-photo-content{z-index:1;text-align:center;place-items:center;width:min(100%,920px);padding:56px 24px;display:grid;position:relative}.home-photo h1{color:var(--text-inverse);letter-spacing:0;text-shadow:0 18px 42px #0000006b;margin:0;font-size:clamp(52px,9vw,116px);font-weight:840;line-height:.95}.scroll-cue{z-index:1;color:var(--text-inverse);letter-spacing:0;text-transform:uppercase;justify-items:center;gap:10px;font-size:12px;font-weight:760;display:inline-grid;position:absolute;bottom:34px;left:50%;transform:translate(-50%)}.scroll-arrow{background:currentColor;width:1px;height:20px;animation:1.45s ease-in-out infinite scroll-cue-line;display:block;position:relative}.scroll-arrow:after{content:"";border-bottom:1px solid;border-right:1px solid;width:8px;height:8px;position:absolute;bottom:0;right:-4px;transform:rotate(45deg)}.animated-name{text-align:center;white-space:nowrap;width:100%;display:block}.animated-name.is-scrambling{grid-template-columns:repeat(var(--name-length), .72em);grid-template-rows:1fr;justify-content:center;align-items:center;display:grid}.animated-name-letter{text-align:center;place-items:center;display:inline-grid}@keyframes scroll-cue-line{0%,to{opacity:.55;transform:translateY(0)}50%{opacity:1;transform:translateY(5px)}}.page-hero h1{color:var(--text-strong);letter-spacing:0;margin:0;font-size:clamp(56px,8vw,104px);font-weight:820;line-height:.94}.page-hero p{max-width:610px;color:var(--text);margin:26px 0 0;font-size:20px;line-height:1.65}.button{border-radius:var(--radius);cursor:pointer;justify-content:center;align-items:center;min-height:48px;padding:0 20px;font-size:15px;font-weight:760;text-decoration:none;transition:transform .18s,box-shadow .18s,background .18s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button.primary{color:var(--text-inverse);background:var(--primary);box-shadow:var(--shadow)}.button.secondary{color:var(--text-strong);background:var(--surface)}.page-hero{border-bottom:1px solid var(--border);padding:52px 0 54px}.content-grid,.timeline,.split-section,.skill-cloud{margin-top:28px}.content-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.feature-card,.timeline-item,.split-section>div{border:1px solid var(--border);border-radius:var(--radius);background:var(--card)}.feature-card{min-height:230px;padding:26px}.feature-card span,.timeline-item>span{color:var(--coral);font-size:13px;font-weight:820}.feature-card h2,.timeline-item h2,.split-section h2{color:var(--text-strong);margin:20px 0 12px;font-size:25px;font-weight:800;line-height:1.15}.feature-card p,.timeline-item p,.split-section p{color:var(--text);margin:0;line-height:1.65}.card-link{color:var(--text-strong);margin-top:22px;font-size:14px;font-weight:760;text-decoration:none;display:inline-flex}.timeline{gap:14px;display:grid}.timeline-item{grid-template-columns:120px 1fr;gap:28px;padding:26px;display:grid}.timeline-item h2{margin-top:0}.split-section{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.split-section>div{padding:30px}.split-section h2{margin-top:0}.skill-cloud{flex-wrap:wrap;gap:10px;display:flex}.skill-cloud span{min-height:44px;color:var(--text-strong);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);align-items:center;padding:0 16px;font-size:15px;font-weight:760;display:inline-flex}.contact-button{margin-top:42px}.contact-modal-backdrop{z-index:60;background:#00000085;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.contact-modal{width:min(100%,520px);color:var(--text);background:var(--card);border:1px solid var(--border);padding:30px;box-shadow:0 24px 80px #0000003d}.contact-modal-header{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.contact-modal-header span{color:var(--coral);text-transform:uppercase;font-size:12px;font-weight:820}.contact-modal h2{color:var(--text-strong);margin:10px 0 0;font-size:clamp(28px,6vw,42px);line-height:1}.contact-modal p{margin:28px 0 16px;line-height:1.6}.contact-modal-close{min-width:40px;min-height:40px;color:var(--text-inverse);background:var(--primary);cursor:pointer}.contact-email-row{align-items:center;gap:10px;display:flex}.contact-email{overflow-wrap:anywhere;min-width:0;color:var(--text-strong);font-size:clamp(17px,4vw,22px);font-weight:760}.copy-email-control{width:38px;height:38px;color:var(--text-inverse);background:var(--primary);cursor:pointer;flex:none;place-items:center;padding:0;display:inline-grid}.copy-email-icon{grid-area:1/1;width:19px;height:19px}.copy-status{min-height:18px;margin-top:8px;font-size:13px;display:block}@media (width<=900px){.site-shell:not(.home-shell){width:min(100% - 22px,720px)}.site-shell.scroll-shell,.site-shell.scroll-shell:not(.home-shell){width:100%}.site-header{flex-direction:row;align-items:center;padding:18px}.home-shell .site-header{padding:18px}main{padding-top:30px}.scroll-book{padding:0}.book-page{width:min(100% - 22px,720px);padding:96px 0 72px}.book-page-home{width:100%;padding:0}.home-photo{min-height:100svh}.page-hero h1{font-size:58px}.page-hero p{font-size:18px}.content-grid,.split-section{grid-template-columns:1fr}.timeline-item{grid-template-columns:1fr;align-items:flex-start}}@media (width<=520px){.site-shell:not(.home-shell){width:calc(100% - 18px)}.site-shell.scroll-shell,.site-shell.scroll-shell:not(.home-shell){width:100%}.brand{font-size:14px}.menu-button{justify-content:center;width:42px;padding:0;font-size:0}.home-photo{min-height:100svh}.book-page{width:calc(100% - 18px);padding:88px 0 64px}.book-page-home{width:100%;padding:0}.home-photo h1,.page-hero h1{font-size:45px}.button,.contact-button{width:100%}.contact-modal{padding:20px}.contact-modal-backdrop{padding:12px}.contact-email-row{gap:8px}.contact-email{text-underline-offset:3px;flex:1;font-size:14px;text-decoration-thickness:1px}.copy-email-control{width:34px;height:34px}.copy-email-icon{width:17px;height:17px}.feature-card,.timeline-item,.split-section>div{padding:22px}}
