@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&family=Fredoka:wght@600;700&family=JetBrains+Mono:wght@400;500&display=swap";:root{--bg:#fbfbfd;--surface:#fff;--surface-2:#f5f5f7;--border:#e5e5e7;--text:#1d1d1f;--text-muted:#6e6e73;--text-faint:#86868b;--accent:#0071e3;--accent-dim:#0058b0;--font-display:"Inter", -apple-system, "Segoe UI", sans-serif;--font-body:"Inter", -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "Courier New", monospace}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;overflow-x:hidden}a{color:inherit;text-decoration:none}img,video{max-width:100%;display:block}button{cursor:pointer;font-family:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.mono{font-family:var(--font-mono)}.container{width:100%;max-width:1180px;margin:0 auto;padding:0 28px}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.inspiration-widget{z-index:150;flex-direction:column;align-items:flex-end;gap:12px;display:flex;position:fixed;bottom:24px;right:24px}.inspiration-button{font-family:"Fredoka", var(--font-display);color:#fff;background:var(--accent);border:none;border-radius:980px;padding:13px 22px;font-size:14px;font-weight:600;transition:transform .2s cubic-bezier(.2,.8,.2,1),background .2s;box-shadow:0 10px 28px #0071e359}.inspiration-button:hover{background:var(--accent-dim);transform:translateY(-2px)}.inspiration-button:active{transform:translateY(0)}.inspiration-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;max-width:300px;padding:18px 34px 18px 20px;animation:.35s cubic-bezier(.2,.8,.2,1) inspirationRise;position:relative;box-shadow:0 20px 50px #00000024}.inspiration-close{background:var(--surface-2);width:22px;height:22px;color:var(--text-muted);border:none;border-radius:50%;justify-content:center;align-items:center;font-size:10px;display:flex;position:absolute;top:10px;right:10px}.inspiration-close:hover{background:var(--border);color:var(--text)}@keyframes inspirationRise{0%{opacity:0;transform:translateY(10px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.inspiration-text{color:var(--text);margin-bottom:8px;font-size:14px;font-weight:400;line-height:1.5}.inspiration-author{color:var(--text-faint);font-size:12px}@media (width<=640px){.inspiration-widget{align-items:stretch;bottom:16px;left:16px;right:16px}.inspiration-card{max-width:none}.inspiration-button{align-self:flex-end}}@media (prefers-reduced-motion:reduce){.inspiration-card{animation:none}}.nav{z-index:100;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--border);background:#fbfbfdcc;position:fixed;top:0;left:0;right:0}.nav-inner{justify-content:space-between;align-items:center;height:52px;display:flex}.nav-logo{color:var(--text);letter-spacing:-.01em;background:0 0;border:none;font-size:13px;font-weight:500}.nav-links{gap:28px;display:flex}.nav-link{color:var(--text-muted);letter-spacing:-.005em;background:0 0;border:none;font-size:12px;font-weight:400;transition:color .2s}.nav-link:hover,.nav-link.is-active{color:var(--text)}@media (width<=640px){.nav-links{gap:16px}}section{padding:140px 0 60px}.section-head{text-align:center;opacity:0;max-width:560px;margin:0 auto 64px;transition:opacity .7s cubic-bezier(.2,.8,.2,1),transform .7s cubic-bezier(.2,.8,.2,1);transform:translateY(14px)}.section-head.is-visible{opacity:1;transform:translateY(0)}.section-title{font-family:var(--font-display);letter-spacing:-.02em;color:var(--text);font-size:clamp(28px,4vw,40px);font-weight:500}.section-subtitle{color:var(--text-muted);margin-top:10px;font-size:16px;font-weight:300}.hero{padding-top:160px;padding-bottom:60px}.hero-inner{text-align:center;max-width:680px}.hero-eyebrow{color:var(--text-muted);letter-spacing:.01em;margin-bottom:22px;font-size:13px;font-weight:400}.hero-title{font-family:var(--font-display);letter-spacing:-.02em;color:var(--text);margin-bottom:22px;font-size:clamp(44px,8vw,88px);font-weight:300;line-height:1.05}.hero-title-walk{font-family:"Fredoka", var(--font-display);color:var(--accent);font-weight:700;display:inline-block}.walk-letter{opacity:0;animation:.65s cubic-bezier(.34,1.56,.64,1) forwards walkIn;display:inline-block}@keyframes walkIn{0%{opacity:0;transform:translate(-26px)translateY(12px)rotate(-10deg)}55%{opacity:1;transform:translate(3px)translateY(-8px)rotate(5deg)}80%{transform:translate(-2px)translateY(2px)rotate(-2deg)}to{opacity:1;transform:translate(0)translateY(0)rotate(0)}}@media (prefers-reduced-motion:reduce){.walk-letter{opacity:1;animation:none;transform:none}}.hero-sub{color:var(--text-muted);max-width:480px;margin:0 auto 36px;font-size:18px;font-weight:300;line-height:1.6}.hero-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-bottom:72px;display:flex}.btn{border:1px solid var(--border);border-radius:980px;padding:11px 22px;font-size:14px;font-weight:400;transition:all .2s}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover{background:var(--accent-dim);border-color:var(--accent-dim)}.btn-ghost{color:var(--text);background:0 0}.btn-ghost:hover{border-color:var(--text-muted)}.hero-visual-frame{aspect-ratio:16/9;background:var(--surface-2);cursor:pointer;border:none;border-radius:20px;width:100%;padding:0;transition:transform .3s cubic-bezier(.2,.8,.2,1);display:block;position:relative;overflow:hidden}.hero-visual-frame:hover{transform:translateY(-4px)}.hero-visual-video{object-fit:cover;width:100%;height:100%;display:block}.hero-visual-label{color:#fff;background:#00000073;border-radius:980px;padding:6px 14px;font-size:13px;font-weight:400;position:absolute;bottom:16px;left:20px}.work-group{margin-bottom:72px}.work-group:last-child{margin-bottom:0}.work-group-label{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint);margin-bottom:24px;font-size:14px;font-weight:500}.work-grid{grid-template-columns:repeat(2,1fr);gap:28px;display:grid}@media (width<=800px){.work-grid{grid-template-columns:1fr}}.project-card{opacity:0;transition:opacity .7s cubic-bezier(.2,.8,.2,1),transform .7s cubic-bezier(.2,.8,.2,1);transform:translateY(20px)}.project-card.is-visible{opacity:1;transform:translateY(0)}.project-card-face,.project-card-link{transition:transform .35s cubic-bezier(.2,.8,.2,1);display:block}.project-card:hover .project-card-face,.project-card:hover .project-card-link{transform:translateY(-4px)}.project-frame{aspect-ratio:4/3;background:var(--surface-2);border-radius:16px;margin-bottom:18px;position:relative;overflow:hidden}.project-frame img,.project-frame video{object-fit:cover;width:100%;height:100%}.project-frame.is-vertical{aspect-ratio:9/16;max-width:320px;margin-left:auto;margin-right:auto}.expand-indicator{color:#fff;z-index:2;pointer-events:none;opacity:0;background:#00000080;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;font-size:14px;transition:opacity .2s;display:flex;position:absolute;top:12px;right:12px}.project-card-button:hover .expand-indicator{opacity:1}.project-frame.is-placeholder:after{content:"";background:linear-gradient(115deg,#0000 20%,#ffffff80 45%,#0000 70%) 0 0/200% 100%;animation:3.2s ease-in-out infinite shimmerSweep;position:absolute;inset:0}@keyframes shimmerSweep{0%{background-position:150% 0}to{background-position:-50% 0}}.project-meta-top{justify-content:space-between;align-items:baseline;margin-bottom:6px;display:flex}.project-title{font-family:var(--font-display);letter-spacing:-.01em;color:var(--text);font-size:19px;font-weight:500}.project-year{color:var(--text-faint);font-size:13px}.project-type{color:var(--text-muted);margin-bottom:10px;font-size:13px}.project-blurb{color:var(--text-muted);font-size:14px;font-weight:300;line-height:1.6}.project-view-link{color:var(--accent);margin-top:12px;font-size:13px;font-weight:500;display:inline-block}.project-card-button{cursor:pointer;text-align:left;background:0 0;border:none;width:100%;padding:0}.lightbox-backdrop{z-index:300;-webkit-backdrop-filter:blur(28px)saturate(140%);background:#1212148c;justify-content:center;align-items:center;padding:40px 20px;animation:.3s backdropFade;display:flex;position:fixed;inset:0}@keyframes backdropFade{0%{opacity:0}to{opacity:1}}.lightbox-video{border-radius:16px;max-width:min(90vw,1100px);max-height:85vh;animation:.35s cubic-bezier(.2,.8,.2,1) lightboxIn;box-shadow:0 30px 80px #00000073}@keyframes lightboxIn{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.lightbox-video.is-vertical{width:auto;max-height:85vh}.lightbox-image{object-fit:contain;border-radius:12px;max-width:min(92vw,1300px);max-height:88vh;animation:.35s cubic-bezier(.2,.8,.2,1) lightboxIn;box-shadow:0 30px 80px #00000073}.lightbox-close{color:#fff;z-index:1;background:#ffffff26;border:none;border-radius:50%;width:40px;height:40px;font-size:16px;position:absolute;top:24px;right:24px}.lightbox-close:hover{background:#ffffff47}@media (prefers-reduced-motion:reduce){.lightbox-backdrop,.lightbox-video,.lightbox-image{animation:none}}.modal-backdrop{z-index:200;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#1d1d1f80;justify-content:center;align-items:flex-start;padding:40px 20px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-panel{background:var(--bg);border-radius:20px;width:100%;max-width:1160px;padding:48px 40px 60px;animation:.35s cubic-bezier(.2,.8,.2,1) modalRise;position:relative}@keyframes modalRise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.modal-close{border:1px solid var(--border);background:var(--surface);width:36px;height:36px;color:var(--text);border-radius:50%;font-size:14px;position:absolute;top:20px;right:20px}.modal-close:hover{background:var(--surface-2)}.modal-header{max-width:620px;margin-bottom:48px}.modal-meta{color:var(--text-faint);margin-bottom:10px;font-size:13px}.modal-title{font-family:var(--font-display);letter-spacing:-.02em;color:var(--text);margin-bottom:14px;font-size:clamp(26px,4vw,36px);font-weight:500}.modal-blurb{color:var(--text-muted);font-size:16px;font-weight:300;line-height:1.6}.modal-section{margin-bottom:48px}.modal-section-title{letter-spacing:.03em;color:var(--text);text-transform:uppercase;border-bottom:1px solid var(--border);margin-bottom:18px;padding-bottom:10px;font-size:13px;font-weight:500}.modal-image-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;display:grid}.modal-image-frame{background:var(--surface-2);cursor:zoom-in;border:none;border-radius:12px;width:100%;padding:0;display:block;position:relative;overflow:hidden}.modal-image-frame img{width:100%;height:auto;transition:transform .3s cubic-bezier(.2,.8,.2,1);display:block}.modal-image-frame:hover img{transform:scale(1.03)}.modal-image-expand{color:#fff;opacity:0;background:#00000080;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;font-size:14px;transition:opacity .2s;display:flex;position:absolute;top:10px;right:10px}.modal-image-frame:hover .modal-image-expand{opacity:1}@media (width<=640px){.modal-panel{padding:36px 20px 48px}}.about-body{text-align:center;opacity:0;max-width:620px;margin:0 auto;transition:opacity .7s cubic-bezier(.2,.8,.2,1),transform .7s cubic-bezier(.2,.8,.2,1);transform:translateY(14px)}.about-body.is-visible{opacity:1;transform:translateY(0)}.about-body p{color:var(--text-muted);margin-bottom:22px;font-size:19px;font-weight:300;line-height:1.7}.about-body p:last-child{color:var(--text)}.skills-grid{grid-template-columns:repeat(4,1fr);gap:40px;max-width:880px;margin:0 auto;display:grid}@media (width<=800px){.skills-grid{grid-template-columns:repeat(2,1fr)}}.skills-col{text-align:center;opacity:0;transition:opacity .5s,transform .5s;transform:translateY(14px)}.skills-grid.is-visible .skills-col{opacity:1;transform:translateY(0)}.skills-label{color:var(--text);margin-bottom:14px;font-size:13px;font-weight:500}.skills-list{list-style:none}.skills-list li{color:var(--text-muted);padding:5px 0;font-size:13px;font-weight:300;line-height:1.4}.contact{padding-bottom:100px}.contact-body{text-align:center;opacity:0;margin-bottom:64px;transition:opacity .7s cubic-bezier(.2,.8,.2,1),transform .7s cubic-bezier(.2,.8,.2,1);transform:translateY(14px)}.contact-body.is-visible{opacity:1;transform:translateY(0)}.contact-email{font-family:var(--font-display);letter-spacing:-.02em;color:var(--accent);margin-bottom:20px;font-size:clamp(28px,5vw,46px);font-weight:300;display:inline-block}.contact-links{color:var(--text-muted);justify-content:center;gap:24px;font-size:13px;display:flex}.contact-links a:hover{color:var(--text)}.contact-footer{color:var(--text-faint);border-top:1px solid var(--border);justify-content:center;gap:24px;max-width:680px;margin:0 auto;padding-top:24px;font-size:12px;display:flex}@media (prefers-reduced-motion:reduce){.project-frame.is-placeholder:after{animation:none;display:none}.section-head,.project-card,.project-card-face,.project-card-link,.about-body,.skills-col,.contact-body{opacity:1!important;transition:none!important;transform:none!important}}
