@charset "UTF-8";:root{--bg: #F5F2EA;--bg-2: #EDE9DF;--bg-card: #ffffff;--bg-card-hover: #F9F7F2;--bg-elevated: #E2DDD4;--primary: #556B4E;--primary-light: #7C8A6B;--primary-dim: rgba(85, 107, 78, .1);--primary-glow: rgba(85, 107, 78, .22);--secondary: #44573F;--secondary-dim: rgba(68, 87, 63, .1);--accent: #7C8A6B;--text-1: #1F2937;--text-2: #6b7280;--text-3: #9ca3af;--border: rgba(0, 0, 0, .09);--border-accent: rgba(85, 107, 78, .28);--font-sans: "Inter", system-ui, -apple-system, sans-serif;--font-display: "Plus Jakarta Sans", var(--font-sans);--section-py: 140px;--section-py-sm: 80px;--container-max: 1200px;--container-px: 24px;--r-xs: 4px;--r-sm: 8px;--r-md: 10px;--r-lg: 16px;--r-xl: 24px;--r-btn: 10px;--r-full: 9999px;--t-fast: .15s cubic-bezier(.4, 0, .2, 1);--t-base: .25s cubic-bezier(.4, 0, .2, 1);--t-slow: .4s cubic-bezier(.4, 0, .2, 1);--t-spring: .45s cubic-bezier(.34, 1.56, .64, 1);--z-nav: 100;--z-overlay: 200}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:hidden}body{background-color:var(--bg);color:var(--text-1);font-family:var(--font-sans);font-size:1rem;line-height:1.65;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}img,video{max-width:100%;display:block}a{color:inherit;text-decoration:none}ul,ol{list-style:none}button{cursor:pointer;border:none;background:none;font-family:inherit}input,textarea,select{font-family:inherit;font-size:inherit}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:700;line-height:1.15;color:var(--text-1)}.display-1{font-size:clamp(2.75rem,7vw,5rem);font-weight:800;line-height:1.05;letter-spacing:-.03em}.display-2{font-size:clamp(2rem,5vw,3.25rem);font-weight:700;line-height:1.1;letter-spacing:-.02em}.display-3{font-size:clamp(1.375rem,3vw,2rem);font-weight:700;line-height:1.2;letter-spacing:-.015em}.text-gradient{background:linear-gradient(135deg,var(--primary-light) 0%,var(--primary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.container{max-width:var(--container-max);margin-inline:auto;padding-inline:var(--container-px)}.section{padding-block:var(--section-py)}@media(max-width:768px){.section{padding-block:var(--section-py-sm)}}.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 22px;border-radius:var(--r-btn);font-family:var(--font-sans);font-size:.9375rem;font-weight:600;letter-spacing:.01em;transition:all var(--t-base);cursor:pointer;white-space:nowrap;position:relative;overflow:hidden;border:1px solid transparent}.btn--primary{background:var(--primary);color:#fff;box-shadow:0 2px 12px var(--primary-glow)}.btn--primary:hover{background:var(--secondary);transform:translateY(-1px);box-shadow:0 6px 24px var(--primary-glow)}.btn--primary:active{transform:translateY(0);box-shadow:none}.btn--outline{background:transparent;color:var(--primary);border-color:var(--primary)}.btn--outline:hover{background:var(--primary-dim);border-color:var(--secondary);color:var(--secondary);transform:translateY(-1px)}.btn--ghost{background:transparent;color:var(--primary-light);padding-inline:0;border:none}.btn--ghost svg{transition:transform var(--t-base)}.btn--ghost:hover{color:var(--primary)}.btn--ghost:hover svg{transform:translate(4px)}.btn--lg{padding:14px 28px;font-size:1rem}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);transition:all var(--t-base)}.card:hover{border-color:var(--border-accent);background:var(--bg-card-hover);transform:translateY(-5px);box-shadow:0 20px 60px #00000014,0 0 0 1px var(--border-accent),inset 0 1px #fffc}.tag{display:inline-flex;align-items:center;padding:4px 12px;border-radius:var(--r-full);font-size:.8125rem;font-weight:500;letter-spacing:.02em;background:var(--bg-elevated);color:var(--text-2);border:1px solid var(--border)}.tag--primary{background:var(--primary-dim);color:var(--primary-light);border-color:var(--border-accent)}.tag--secondary{background:var(--secondary-dim);color:var(--secondary);border-color:#b8832a47}.section-cta{display:flex;justify-content:center;margin-top:48px}[appScrollReveal]{opacity:0;transform:translateY(18px);transition:opacity .5s ease,transform .5s ease}[appScrollReveal].revealed{opacity:1;transform:translateY(0)}[appScrollReveal]:nth-child(1){transition-delay:0s}[appScrollReveal]:nth-child(2){transition-delay:.04s}[appScrollReveal]:nth-child(3){transition-delay:.08s}[appScrollReveal]:nth-child(4){transition-delay:.12s}[appScrollReveal]:nth-child(5){transition-delay:.16s}[appScrollReveal]:nth-child(6){transition-delay:.2s}[appScrollReveal]:nth-child(7){transition-delay:.24s}[appScrollReveal]:nth-child(8){transition-delay:.28s}[appScrollReveal]:nth-child(9){transition-delay:.32s}[appScrollReveal]:nth-child(10){transition-delay:.36s}.form-group{display:flex;flex-direction:column;gap:8px}.form-label{font-size:.875rem;font-weight:500;color:var(--text-2)}.form-control{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text-1);font-size:.9375rem;padding:14px 16px;transition:all var(--t-fast);outline:none;width:100%}.form-control::placeholder{color:var(--text-3)}.form-control:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-dim);background:var(--bg-card-hover)}.form-control.ng-invalid.ng-touched{border-color:#f87171;box-shadow:0 0 0 3px #f871711a}.form-error{font-size:.8125rem;color:#f87171}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-14px)}}@keyframes spin-slow{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}@keyframes spin-slow-reverse{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(-360deg)}}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.3)}}@keyframes scroll-bounce{0%,to{transform:translateY(0);opacity:1}50%{transform:translateY(6px);opacity:.4}}@keyframes shimmer{0%{background-position:-200% center}to{background-position:200% center}}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:#3a3a3a;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#555}::selection{background:var(--primary-dim);color:var(--primary-light)}:focus-visible{outline:2px solid var(--primary);outline-offset:3px;border-radius:4px}.page-hero{padding:80px 0 72px;text-align:center;background:radial-gradient(ellipse 80% 60% at 50% 0%,var(--primary-dim),transparent 70%)}.page-hero .page-hero__eyebrow{display:inline-block;font-size:.8125rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--primary-light);margin-bottom:16px}.page-hero .page-hero__heading,.page-hero .display-1{margin-bottom:20px}.page-hero .page-hero__sub,.page-hero .page-hero__subtitle{font-size:1.125rem;color:var(--text-2);max-width:580px;margin:0 auto;line-height:1.7}.cta-simple{background:radial-gradient(ellipse 70% 80% at 50% 50%,var(--primary-dim),transparent)}.cta-simple .cta-simple__inner{text-align:center}.cta-simple .cta-simple__heading{margin-bottom:16px}.cta-simple .cta-simple__sub{font-size:1.0625rem;color:var(--text-2);margin-bottom:36px;max-width:500px;margin-left:auto;margin-right:auto}.cta-simple .cta-simple__actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}.work-section__header{text-align:center;margin-bottom:72px}.work-section__eyebrow{display:inline-block;font-size:.6875rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--primary-light);margin-bottom:20px}.work-section__eyebrow:before,.work-section__eyebrow:after{content:"\2014";margin-inline:8px;opacity:.45}.work-section__title{font-family:var(--font-display);font-size:clamp(2rem,4.5vw,2.75rem);font-weight:800;color:var(--text-1);letter-spacing:-.025em;line-height:1.1;margin-bottom:28px}.work-section__sub{font-size:1.0625rem;color:var(--text-2);max-width:500px;margin-inline:auto;line-height:1.7}.work-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}@media(max-width:640px){.work-grid{grid-template-columns:1fr}}.work-card{display:flex;flex-direction:column;padding:36px 32px;border-radius:14px;cursor:pointer;transition:border-color var(--t-base),box-shadow var(--t-base),transform var(--t-base)}.work-card:hover{border-color:var(--border-accent);transform:translateY(-4px);box-shadow:0 16px 48px #00000012}.work-card__header{margin-bottom:22px}.work-card__status{display:inline-flex;align-items:center;gap:7px;font-size:.75rem;font-weight:600;letter-spacing:.04em;padding:4px 12px;border-radius:20px}.work-card__status--active{background:#556b4e1f;color:#3d6b35;border:1px solid rgba(85,107,78,.25)}.work-card__status--active .work-card__status-dot{background:#4a8a3f}.work-card__status--progress{background:#b482281a;color:#9a6f1a;border:1px solid rgba(180,130,40,.22)}.work-card__status--progress .work-card__status-dot{background:#c4891e}.work-card__status--planning{background:#64646414;color:var(--text-2);border:1px solid var(--border)}.work-card__status--planning .work-card__status-dot{background:#888}.work-card__status--coming{background:#c19a3f14;color:#9a7a1e;border:1px solid rgba(193,154,63,.22)}.work-card__status--coming .work-card__status-dot{background:#c19a3f}.work-card__status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;flex-shrink:0}.work-card__title{font-family:var(--font-display);font-size:1.125rem;font-weight:700;color:var(--text-1);letter-spacing:-.015em;line-height:1.3;margin-bottom:12px}.work-card__desc{font-size:.9375rem;color:var(--text-2);line-height:1.7;flex:1;margin-bottom:24px}.work-card__tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto}.work-card--coming{border-style:dashed;opacity:.65;cursor:default;pointer-events:none}.work-card--coming .work-card__title{color:var(--text-2)}.section--sage{background:var(--primary)}.section--sage h1,.section--sage h2,.section--sage h3,.section--sage h4,.section--sage h5,.section--sage h6{color:#fff}.section--sage p{color:#ffffffd1}.section--sage .section-header__eyebrow{color:#ffffffa6}.section--sage .section-header__eyebrow:before{background:linear-gradient(90deg,#ffffffb3,#ffffff38)}.section--sage .section-header__title{color:#fff}.section--sage .section-header__subtitle{color:#fffc}.section--sage .text-gradient{background:linear-gradient(135deg,#d8e8cf,#afc4a3);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.section--sage .card{background:#ffffff21;border-color:#ffffff2e}.section--sage .card h2,.section--sage .card h3,.section--sage .card h4,.section--sage .card h5,.section--sage .card h6{color:#fff}.section--sage .card p{color:#fffc}.section--sage .card small,.section--sage .card span{color:#fff9}.section--sage .card:hover{background:#ffffff38;border-color:#ffffff61;box-shadow:0 20px 60px #00000024}.section--sage .tag,.section--sage .tag--primary,.section--sage .tag--secondary{background:#ffffff24;color:#ffffffe6;border-color:#fff3}.section--sage .btn--primary{background:#fff;color:var(--primary);-webkit-text-fill-color:var(--primary);box-shadow:0 4px 20px #00000029}.section--sage .btn--primary:hover{box-shadow:0 8px 32px #00000038}.section--sage .btn--outline{background:transparent;border-color:#ffffff4d;color:#ffffffe6}.section--sage .btn--outline:hover{background:#ffffff1f;border-color:#ffffff8c;color:#fff}.section--sage .btn--ghost{color:#ffffffd9}.section--sage .btn--ghost:hover{color:#fff}.section--sage .skill-group__category,.section--sage .process-step__number{color:#ffffff73}.section--dark{background:#1a2018;border-top:none}.section--dark h1,.section--dark h2,.section--dark h3,.section--dark h4,.section--dark h5,.section--dark h6{color:#eef2ec}.section--dark p{color:#eef2ecb3}.section--dark .text-gradient{background:linear-gradient(135deg,#a8c99b,#d8e8cf);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.section--dark .cta-section__eyebrow{color:#7c8a6be6}.section--dark .btn--primary{background:var(--primary);color:#fff;-webkit-text-fill-color:#fff}.section--dark .btn--primary:hover{background:var(--secondary)}.section--dark .btn--outline{border-color:#ffffff38;color:#ffffffd9;background:transparent}.section--dark .btn--outline:hover{border-color:#ffffff73;background:#ffffff14;color:#fff}
