*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #FAFAFA;--text: #1A1A1A;--text-light: #666;--accent: #000;--border: #E5E5E5;--spacing: clamp(4rem, 8vw, 6rem)}html{scroll-behavior:smooth;height:100vh;height:100svh}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1{font-size:clamp(2.5rem,8vw,5rem);font-weight:600;line-height:1.1;letter-spacing:-.03em;color:var(--accent)}h2{font-size:clamp(1.5rem,4vw,2.5rem);font-weight:600;line-height:1.2;letter-spacing:-.02em;color:var(--accent);margin-bottom:1.5rem}h3{font-size:clamp(1.125rem,2.5vw,1.5rem);font-weight:600;line-height:1.3;color:var(--accent);margin-bottom:1rem}p{font-size:clamp(1rem,2vw,1.125rem);line-height:1.7;color:var(--text-light);max-width:65ch}a{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}button{-webkit-tap-highlight-color:transparent}.portfolio{overflow-x:hidden;scroll-snap-type:y mandatory;overflow-y:scroll;height:100vh;height:100svh}.container{max-width:1200px;margin:0 auto;padding:0 clamp(1.5rem,5vw,3rem);padding-left:max(clamp(1.5rem,5vw,3rem),env(safe-area-inset-left));padding-right:max(clamp(1.5rem,5vw,3rem),env(safe-area-inset-right))}section{padding:var(--spacing) 0;scroll-snap-align:start;min-height:100vh;min-height:100svh;display:flex;align-items:center}.hero{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}.headline{font-size:clamp(1.25rem,3vw,1.75rem);color:var(--text);margin:1.5rem 0 .5rem;font-weight:400}.subline{font-size:clamp(1rem,2vw,1.125rem);color:var(--text-light);font-weight:400}.scroll-indicator{position:absolute;bottom:3rem;left:50%;transform:translate(-50%);opacity:.3;display:none}.scroll-line{width:1px;height:60px;background:var(--text);animation:scrollPulse 2s ease-in-out infinite}@keyframes scrollPulse{0%,to{opacity:.2;transform:scaleY(1)}50%{opacity:1;transform:scaleY(1.2)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.portfolio{scroll-snap-type:none}}.positioning{border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:var(--spacing) 0}.positioning p{font-size:clamp(1.125rem,2.5vw,1.5rem);line-height:1.6;max-width:800px;margin:0 auto;color:var(--text)}.work{padding:var(--spacing) 0;display:block}.work h2{text-align:center}.projects-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.5rem,3vw,2.5rem);margin-top:3rem}@media(max-width:900px){.projects-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.projects-grid{grid-template-columns:1fr}}.project-card{cursor:pointer;border:1px solid var(--border);border-radius:8px;overflow:hidden;transition:transform .3s ease,box-shadow .3s ease;background:#fff;will-change:transform}.project-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px #00000014}@media(max-width:900px){.project-card-second{display:none}}.project-visual{height:200px;position:relative;overflow:hidden}.project-image{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .3s ease}.project-card:hover .project-image{transform:scale(1.05)}.project-overlay{position:absolute;inset:0;background:#0000000d;pointer-events:none}.project-content{padding:1.5rem}.project-tagline{font-size:.875rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-light);margin-bottom:.5rem}.project-impact{font-size:.9375rem;color:var(--text-light);margin-bottom:1rem}.project-cta{font-size:.9375rem;color:var(--accent);font-weight:500;opacity:0;transition:opacity .3s ease}.project-card:hover .project-cta{opacity:1}.impact{border-top:1px solid var(--border);padding:var(--spacing) 0;background:linear-gradient(to bottom,transparent,#F5F5F5,transparent)}.impact-content{max-width:700px;margin:0 auto;text-align:center}.impact-content p{font-size:clamp(1.0625rem,2.25vw,1.25rem);line-height:1.7;margin:1.5rem auto;color:var(--text);max-width:600px}.impact-cta{font-size:1rem;color:var(--text-light);margin-top:1rem}.contact{padding:var(--spacing) 0;text-align:center}.contact-options{display:flex;flex-direction:column;gap:1.5rem;align-items:center;margin-top:2rem}.contact-email,.contact-calendly{font-size:clamp(1rem,2.25vw,1.125rem);padding:1rem 2rem;border-radius:6px;transition:all .3s ease;display:inline-block;min-width:240px;text-align:center}.contact-email{color:var(--accent);border:1px solid var(--border)}.contact-email:hover{background:#f5f5f5}.contact-calendly{background:var(--accent);color:#fff;font-weight:500}.contact-calendly:hover{background:#333;transform:translateY(-2px);box-shadow:0 8px 20px #00000026}.contact-footer{font-size:.875rem;color:var(--text-light);margin-top:3rem}.more-projects-card{background:linear-gradient(135deg,#f5f5f5,#e5e5e5)!important;border:2px dashed var(--border)!important;display:flex;align-items:center;justify-content:center}.more-projects-content{text-align:center;padding:2rem}.more-projects-count{font-size:clamp(3rem,8vw,5rem);font-weight:700;color:var(--accent);line-height:1;margin-bottom:.5rem}.count-desktop{display:inline}.count-mobile{display:none}@media(max-width:900px){.count-desktop{display:none}.count-mobile{display:inline}}.more-projects-text{font-size:clamp(1.125rem,2.5vw,1.5rem);font-weight:600;color:var(--text);margin-bottom:1rem}.more-projects-card .project-cta{opacity:1;margin-top:1rem}.modal-backdrop{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:999}.modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)!important;width:90%;max-width:700px;max-height:85vh;overflow-y:auto;background:#fff;border-radius:12px;box-shadow:0 25px 50px #00000040;z-index:1000;will-change:transform,opacity;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column}.modal-content{position:relative;flex:1}.modal-close{position:sticky;top:1.5rem;width:48px;height:48px;float:right;margin-right:1.5rem;margin-top:1.5rem;margin-bottom:-72px;border:1px solid rgba(0,0,0,.1);background:#000c;color:#fff;border-radius:50%;cursor:pointer;z-index:1001;display:flex;align-items:center;justify-content:center;transition:all .2s ease;box-shadow:0 2px 8px #0003;-webkit-tap-highlight-color:transparent}.modal-close:hover{background:#000000f2;transform:scale(1.1);box-shadow:0 4px 12px #0000004d}.modal-close svg{color:#fff;stroke:#fff}.modal-header{height:200px;position:relative;overflow:hidden;border-radius:12px 12px 0 0;clear:both}.modal-header-overlay{position:absolute;inset:0;background:#0000001a}.modal-body{padding:2.5rem;color:var(--text);background:#fff}.modal-title-section{margin-bottom:2.5rem}.modal-title-section h2{color:var(--text);font-size:1.75rem;margin-bottom:.5rem}.modal-tagline{font-size:.9375rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-light);margin-top:.5rem}.modal-section{margin-bottom:2.5rem}.modal-section:last-child{margin-bottom:0}.modal-section h3{color:var(--text);font-size:1.125rem;font-weight:600;margin-bottom:1rem}.modal-section p{color:var(--text);line-height:1.7}.outcomes-list{list-style:none;padding:0}.outcomes-list li{padding:.75rem 0 .75rem 1.5rem;position:relative;color:var(--text-light);border-bottom:1px solid var(--border)}.outcomes-list li:last-child{border-bottom:none}.outcomes-list li:before{content:"→";position:absolute;left:0;color:var(--accent)}.tech-tags{display:flex;flex-wrap:wrap;gap:.75rem}.tech-tag{padding:.5rem 1rem;background:#f5f5f5;border:1px solid var(--border);border-radius:6px;font-size:.875rem;color:var(--text)}.all-projects-modal{max-width:1000px;max-height:90vh}.all-projects-header{padding:2.5rem 2.5rem 1.5rem;text-align:center;border-bottom:1px solid var(--border);clear:both}.all-projects-header h2{margin-bottom:.5rem;text-align:center}.all-projects-header p{color:var(--text-light);font-size:.9375rem;margin:0 auto;text-align:center;max-width:100%}.all-projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:1.5rem;padding:2rem 2.5rem}.all-projects-card{background:#fff;border:1px solid var(--border);border-radius:8px;overflow:hidden;cursor:pointer;transition:all .3s ease}.all-projects-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px #00000014;border-color:var(--accent)}.project-visual-small{height:140px;position:relative;overflow:hidden}.project-visual-small .project-image{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.all-projects-card-content{padding:1.25rem}.all-projects-card-content h3{font-size:1.125rem;margin-bottom:.5rem}.project-tagline-small{font-size:.8125rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-light);margin-bottom:.5rem}.project-impact-small{font-size:.875rem;color:var(--text-light);margin:0}.scroll-nav{position:fixed;right:2rem;right:max(2rem,env(safe-area-inset-right));top:50%;transform:translateY(-50%);z-index:100;display:flex;flex-direction:column;gap:1rem}.scroll-nav-dot{width:10px;height:10px;border-radius:50%;background:var(--border);border:none;cursor:pointer;transition:all .3s ease;padding:0}.scroll-nav-dot:hover{background:var(--text-light);transform:scale(1.3)}.scroll-nav-dot.active{background:var(--accent);transform:scale(1.5)}@media(max-width:640px){:root{--spacing: clamp(3rem, 8vw, 4rem)}.contact-options{width:100%;gap:1rem}.contact-email,.contact-calendly{width:100%;padding:.875rem 1.5rem;min-width:unset}.contact-footer{margin-top:2rem}.modal{width:95%;max-height:90vh}.modal-body{padding:2rem 1.5rem}.modal-close{top:1rem;margin-right:1rem;margin-top:1rem;margin-bottom:-60px}.project-cta{opacity:1}.all-projects-header{padding:2rem 1.5rem 1rem}.all-projects-grid{grid-template-columns:1fr;padding:1.5rem;gap:1rem}.more-projects-count{font-size:clamp(2.5rem,10vw,4rem)}.scroll-nav{display:none}}@media(max-width:896px)and (max-height:500px)and (orientation:landscape){section{min-height:auto;padding:3rem 0}.hero{min-height:auto;padding:3rem 0}h1{font-size:clamp(2rem,6vw,3rem)}.headline{font-size:clamp(1rem,2.5vw,1.25rem);margin:1rem 0 .25rem}.subline{font-size:clamp(.875rem,1.5vw,1rem)}.modal{max-height:95vh}}@media(max-width:374px){:root{--spacing: clamp(2.5rem, 8vw, 3rem)}h1{font-size:clamp(2rem,8vw,3rem)}h2{font-size:clamp(1.25rem,4vw,2rem)}.headline{font-size:clamp(1.125rem,3vw,1.5rem)}.subline{font-size:clamp(.9375rem,2vw,1rem)}.container{padding-left:1.25rem;padding-right:1.25rem}.contact-email,.contact-calendly{font-size:.9375rem;padding:.75rem 1.25rem}.modal-body{padding:1.5rem 1.25rem}.all-projects-grid{padding:1.25rem}.more-projects-count{font-size:clamp(2rem,10vw,3rem)}}#root{min-height:100vh}
