.credentials-section{background:#10171f;border-top:1px solid var(--border);margin-bottom:80px}.credentials-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.credential-card{padding:32px;border:1px solid var(--border);border-radius:12px;background:linear-gradient(135deg,#d4f77d06,#ffffff02)}.credential-top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:28px}.credential-icon{display:grid;place-items:center;width:52px;height:52px;color:var(--accent);background:#d4f77d0a;border:1px solid #d4f77d1a;border-radius:10px}.credential-type{border:1px solid #d4f77d30;border-radius:20px;color:var(--accent);padding:6px 12px;font-size:10px}.credential-issuer{color:var(--muted);font-size:10px;letter-spacing:1.4px;text-transform:uppercase;margin-bottom:12px}.credential-card h3{font-size:26px;font-weight:550;letter-spacing:-.6px;margin-bottom:14px}.credential-year{font-size:11px;color:var(--muted)}.credential-description{font-size:13px;line-height:1.8;color:var(--muted);margin-bottom:24px}.credential-links{display:flex;flex-wrap:wrap;gap:20px;padding-top:22px;margin-top:24px;border-top:1px solid var(--border)}.credential-links a{color:var(--accent);min-height:36px}@media(max-width:800px){.credentials-grid{grid-template-columns:1fr}.credentials-section{margin-bottom:55px}}@media(max-width:480px){.credential-card{padding:24px}.credential-card h3{font-size:23px}}.app-formation .credentials-section{border-top:0;background:transparent;margin-bottom:0}.credential-card{position:relative;overflow:hidden}.credential-card:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:linear-gradient(var(--accent),transparent)}.credential-year{color:var(--accent);margin-bottom:16px}@media(min-width:801px)and (min-height:650px){.app-formation .site-header{height:64px}.app-formation #main{display:flex}.app-formation .credentials-section{padding-block:28px;align-self:center}.app-formation .section-heading{margin-bottom:24px;padding-bottom:20px}.app-formation .section-heading h2{font-size:clamp(30px,4.5svh,44px)}.app-formation .credential-card{padding:28px}.app-formation .site-footer{min-height:48px;padding-block:10px}}.credential-links .button-primary{color:#172014}.credential-document-pending{display:grid;gap:8px}.credential-document-pending button:disabled{opacity:.5;cursor:default}.credential-document-pending small{color:var(--muted);font-size:11px}.credential-dialog{width:min(1100px,calc(100vw - 32px));height:min(900px,calc(100dvh - 40px));padding:0;margin:auto;border:1px solid var(--border);border-radius:14px;background:var(--surface);color:var(--text);overflow:hidden}.credential-dialog[open]{display:flex;flex-direction:column}.credential-dialog::backdrop{background:#060b12cc;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.diploma-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 24px;border-bottom:1px solid var(--border)}.diploma-toolbar p{color:var(--muted);font-size:11px;margin:0 0 4px}.diploma-toolbar h2{font-size:20px;margin:0}.diploma-actions{display:flex;gap:8px}.diploma-actions button,.diploma-actions a{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;min-width:44px;padding:10px;border:1px solid var(--border);border-radius:8px;background:transparent;color:var(--text);font:inherit;font-size:12px;text-decoration:none;cursor:pointer}.diploma-actions button:hover,.diploma-actions a:hover{color:var(--accent);border-color:var(--accent)}.diploma-actions button:disabled{opacity:.4;cursor:default}.credential-dialog iframe{flex:1;width:100%;min-height:0;border:0;background:#fff}.diploma-status,.diploma-fallback{margin:0;padding:10px 24px;font-size:12px;line-height:1.5}.diploma-status a,.diploma-fallback a{color:var(--accent)}@media(max-width:600px){.diploma-toolbar{padding:12px;gap:10px}.diploma-toolbar h2{font-size:16px}.diploma-actions span{display:none}}.credential-group+.credential-group{margin-top:40px;padding-top:28px;border-top:1px solid var(--border)}.credential-group-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.credential-group-heading h3{font-size:22px;margin:0}.credential-group-heading>span{color:var(--muted);font-size:12px}.credential-group-diplomas .credentials-grid{grid-template-columns:1fr}.credential-group-certificates .credentials-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.app-formation .credential-group-certificates .credential-card{display:flex;flex-direction:column;padding:22px}.credential-group-certificates .credential-top{margin-bottom:16px}.credential-group-certificates .credential-card h3{font-size:19px;line-height:1.4}.credential-group-certificates .credential-description{font-size:12px;margin-bottom:16px}.credential-group-certificates .credential-links{margin-top:auto;padding-top:18px}.credential-group-certificates .tech-tags{margin-bottom:18px}@media(max-width:1099px){.credential-group-certificates .credentials-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.credential-group-certificates .credentials-grid{grid-template-columns:1fr}}.contact-form-panel{margin-top:32px;padding:clamp(24px,4vw,48px);display:grid;grid-template-columns:1fr 1.4fr;gap:48px;background:var(--surface);border:1px solid var(--border);border-radius:16px}.contact-form-panel h3{font-size:30px;letter-spacing:-1px;font-weight:550}.contact-form-panel>div>p:not(.eyebrow){color:var(--muted);font-size:14px;line-height:1.8;max-width:330px}.contact-form{display:flex;flex-direction:column;gap:20px;min-width:0}.contact-field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.contact-form label{display:flex;flex-direction:column;gap:9px;font-size:13px;min-width:0}.contact-form input,.contact-form textarea{width:100%;background:#0b111880;border:1px solid #d7e5f025;color:var(--text);padding:12px 14px;border-radius:8px;font:inherit}.contact-form textarea{resize:vertical;min-height:130px}.contact-form input:focus-visible,.contact-form textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.contact-form small,.optional-label{color:var(--muted);font-size:11px;line-height:1.6}.contact-form input[aria-invalid=true],.contact-form textarea[aria-invalid=true]{border-color:#ffb1a5}.field-error,.form-feedback.error{color:#ffb1a5;font-size:12px}.form-feedback{margin:0;padding:14px;border:1px solid var(--border);border-radius:8px;font-size:13px;line-height:1.7}.form-feedback.success{color:var(--accent);border-color:#d4f77d30}.contact-form :disabled{cursor:wait;opacity:.65}@media(max-width:800px){.contact-form-panel{grid-template-columns:1fr;gap:20px}}@media(max-width:480px){.contact-field-row{grid-template-columns:1fr}}:root{--bg: #0c1117;--surface: #131b24;--text: #eef2f3;--muted: #9ba8b6;--accent: #d4f77d;--border: #ffffff14;--gutter: clamp(22px, 5vw, 100px)}html{scroll-behavior:smooth;scroll-padding-top:100px}body{background:var(--bg);color:var(--text)}button,input{font:inherit}button,a{touch-action:manipulation}a{text-decoration:none;color:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:5px}::selection{background:var(--accent);color:var(--bg)}.section-shell{padding-inline:var(--gutter);width:100%;margin-inline:auto}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:12px;left:20px;z-index:100;background:var(--accent);color:var(--bg);padding:14px;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.site-header{height:92px;display:flex;align-items:center;justify-content:space-between;padding-inline:var(--gutter);position:sticky;top:0;z-index:20;background:#0c1117ed;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:15px}.brand-mark{font-size:38px;font-weight:850;letter-spacing:-3px;line-height:1}.brand-mark span{color:var(--accent)}.brand-name{font-weight:650;font-size:14px}.brand-name>span{display:block;font-size:9px;color:var(--muted);letter-spacing:2.4px;margin-top:5px}.navigation{display:flex;align-items:center;gap:34px;font-size:13px;color:#bcc5ce}.navigation a:hover,.text-link:hover{color:var(--accent)}.navigation .nav-contact{display:flex;align-items:center;gap:20px;border:1px solid #ffffff28;border-radius:8px;padding:13px 18px;color:var(--text)}.menu-toggle{display:none}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:650;display:flex;gap:9px;align-items:center;margin:0 0 24px;color:var(--muted)}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);flex-shrink:0;box-shadow:0 0 14px #d4f77d25}.hero{position:relative;min-height:calc(100svh - 92px);display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:6%;padding-block:75px 100px;background:radial-gradient(ellipse at 83% 30%,#354d3020,transparent 55%)}h1,h2,h3,h4,p{margin-top:0}h1{font-size:clamp(64px,6.6vw,112px);letter-spacing:-.065em;font-weight:650;line-height:1.04;margin-bottom:28px}h1>span{color:var(--accent)}.hero-description{max-width:470px;font-size:16px;line-height:1.8;color:var(--muted)}.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:26px;margin:32px 0 44px}.button{display:inline-flex;align-items:center;justify-content:center;gap:24px;padding:16px 22px;font-size:12px;font-weight:750;border-radius:7px;min-height:50px;border:1px solid transparent;transition:background .2s,transform .2s}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--accent);color:#172014}.button-primary:hover{background:#e1ffa4}.button-secondary{background:var(--surface);border-color:var(--border);color:var(--text)}.text-link{display:inline-flex;align-items:center;gap:12px;font-size:12px}.hero-proof{display:flex;align-items:center;gap:18px}.proof-number{font-size:40px;letter-spacing:-2px;font-weight:600}.hero-proof p{font-size:11px;line-height:1.7;margin:0}.hero-proof p>span{display:block;color:var(--muted)}.proof-divider{height:32px;width:1px;background:#ffffff20;margin-inline:10px}.hero-art{position:relative;padding-bottom:26px;min-width:0}.dashboard{background:linear-gradient(135deg,#18232c,#111920);border:1px solid #ffffff1c;border-radius:14px;padding:25px;box-shadow:0 30px 80px #0005;transform:rotate(-2deg)}.dashboard-header{display:flex;justify-content:space-between;gap:12px;align-items:center;border-bottom:1px solid var(--border);padding-bottom:20px;font-size:11px}.dashboard-header>span:first-child{display:flex;align-items:center;gap:8px}.dashboard-label{font-size:8px;letter-spacing:1.2px;color:var(--muted)}.dashboard-title{display:flex;align-items:center;justify-content:space-between;padding-top:25px}.dashboard-title p{color:var(--muted);font-size:10px;margin-bottom:9px}.dashboard-title h2{font-size:clamp(19px,1.7vw,29px);letter-spacing:-.6px;margin-bottom:22px}.dashboard-title h2 span{color:var(--accent)}.dashboard-icon{font-size:26px;background:#d4f77d12;color:var(--accent);border-radius:8px;padding:6px 13px}.dashboard-metrics{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:4px 0 25px}.dashboard-metrics>div{padding:16px;background:#ffffff03;border:1px solid var(--border);border-radius:8px}.dashboard-metrics span{font-size:8px;letter-spacing:1px;color:var(--muted)}.dashboard-metrics strong{display:block;font-size:clamp(13px,1.25vw,20px);margin-block:12px 5px;font-weight:550}.dashboard-metrics small{font-size:9px;color:var(--muted)}.hero-chart{border:1px solid var(--border);border-radius:8px;padding:17px}.chart-heading{display:flex;justify-content:space-between;font-size:10px;gap:10px}.chart-key{font-size:8px;color:var(--muted)}.hero-chart svg{display:block;width:100%;height:auto;margin-block:15px 8px}.chart-axis{display:flex;justify-content:space-between;color:#899aa8;font-size:7px;letter-spacing:1px}.dashboard-footer{display:flex;align-items:center;gap:7px;font-size:9px;color:var(--muted);margin-top:18px}.dashboard-footer .status-dot{width:5px;height:5px}.floating-note{position:absolute;bottom:0;right:-12px;background:#202c29;border:1px solid #d4f77d30;border-radius:10px;padding:18px 22px;display:flex;align-items:center;gap:14px;box-shadow:0 12px 35px #0004;font-size:11px}.floating-note>span{color:var(--accent);font-size:25px}.floating-note small{display:block;margin-top:5px;color:var(--muted);font-size:9px}.scroll-cue{position:absolute;bottom:28px;left:var(--gutter);display:flex;gap:18px;align-items:center;color:var(--muted);font-size:18px}.scroll-cue span{font-size:8px;letter-spacing:2px}.tools-strip{display:flex;align-items:center;justify-content:space-between;gap:25px;flex-wrap:wrap;padding:27px var(--gutter);border-block:1px solid var(--border);background:#ffffff02}.tools-strip>span{font-size:9px;letter-spacing:1.8px;color:var(--muted)}.tools-strip strong{font-weight:550;color:#bac4ce;font-size:20px;letter-spacing:-.5px}.content-section{padding-block:100px}.section-heading{display:flex;justify-content:space-between;gap:40px;align-items:flex-end;margin-bottom:36px}.section-heading h2,.about-copy h2{font-size:clamp(30px,3.3vw,54px);font-weight:550;letter-spacing:-1.8px;line-height:1.18;margin-bottom:0}.section-heading h2 span,.about-copy h2 span{color:var(--muted)}.section-heading>p{max-width:310px;font-size:13px;line-height:1.8;color:var(--muted);margin:0}.project-controls{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-block:12px;border-bottom:1px solid var(--border)}.filter-list{display:flex;gap:8px;flex-wrap:wrap}.filter-button{background:transparent;border:1px solid transparent;color:var(--muted);font-size:11px;border-radius:6px;padding:10px 17px;min-height:40px}.filter-button:hover{color:var(--text)}.filter-button.active{background:var(--accent);color:#172014;font-weight:650}.search-box{display:flex;align-items:center;gap:10px;padding:11px 14px;border:1px solid var(--border);border-radius:6px;color:var(--muted)}.search-box input{color:var(--text);background:transparent;border:0;width:190px;min-width:0;font-size:11px}.search-box input::placeholder{color:var(--muted)}.results-count{font-size:10px;color:var(--muted);margin-block:18px}.projects-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.project-card{border:1px solid var(--border);border-radius:12px;overflow:hidden;background:#111820;transition:transform .2s,border-color .2s}.project-card:hover{transform:translateY(-5px);border-color:#d4f77d50}.project-open{background:none;border:0;padding:0;color:inherit;display:flex;flex-direction:column;width:100%;height:100%;text-align:left}.project-open:focus-visible{outline-offset:-3px}.project-card-content{padding:24px;display:flex;flex-direction:column;flex:1;width:100%}.project-meta{display:flex;justify-content:space-between;font-size:8px;color:var(--muted);letter-spacing:1px;margin-bottom:15px}.project-card h3{font-weight:550;letter-spacing:-.4px;font-size:19px;line-height:1.35;margin-bottom:12px}.project-card p{font-size:12px;color:var(--muted);line-height:1.8;margin-bottom:20px}.tech-tags{display:flex;gap:6px;flex-wrap:wrap}.tech-tags span{border:1px solid #ffffff15;background:#ffffff03;border-radius:4px;padding:5px 8px;font-size:9px;color:#bdc8d2}.project-discover{border-top:1px solid var(--border);padding-top:17px;margin-top:auto;display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--accent)}.project-card .tech-tags{margin-bottom:24px}.project-visual{height:220px;width:100%;background:#1b282b;position:relative;padding:22px 25px 25px;overflow:hidden;border-bottom:1px solid var(--border)}.visual-1{background:#202536}.visual-2{background:#282738}.visual-top{display:flex;justify-content:space-between;align-items:center;padding:12px;background:#0b131b;border-radius:7px 7px 0 0;font-size:6px;letter-spacing:1px;color:#899aa8}.visual-body{display:flex;height:142px;background:#101922;border:1px solid #ffffff09;gap:13px;padding:13px;border-radius:0 0 7px 7px}.visual-sidebar{width:17%;display:flex;flex-direction:column;gap:12px;padding-top:4px}.visual-sidebar i{height:4px;background:#ffffff14;border-radius:2px}.visual-sidebar i:first-child{background:#d4f77d6b}.visual-workspace{flex:1;min-width:0;display:flex;flex-direction:column;gap:12px}.mini-stats{display:flex;gap:7px}.mini-stats i{height:22px;flex:1;border:1px solid #ffffff0c;background:#ffffff04;border-radius:3px}.bar-chart{flex:1;display:flex;align-items:flex-end;gap:5px;border-bottom:1px solid #ffffff20;background:repeating-linear-gradient(to top,transparent 0,transparent 24px,#ffffff07 25px)}.bar-chart span{flex:1;background:#d4f77d95;border-radius:2px 2px 0 0}.bar-chart span:nth-child(3n){background:#d4f77d38}.data-table{display:flex;flex-direction:column;gap:7px}.data-table>div{display:flex;align-items:center;gap:10px;padding-bottom:5px;border-bottom:1px solid #ffffff09}.data-table span{font-size:5px;color:#6f8292}.data-table i{height:3px;width:30%;background:#7e9bcb4d}.data-table b{height:3px;flex:1;background:#d4f77d66}.visual-caption{position:absolute;bottom:6px;right:15px;font-size:7px;letter-spacing:.5px;color:#bcc8d0}.empty-state{padding:60px 20px;text-align:center;border:1px dashed var(--border);border-radius:10px}.empty-state p{color:var(--muted);font-size:13px}.expertise-section{background:#10171f;border-block:1px solid var(--border)}.services-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.service-card{padding:30px;border:1px solid var(--border);border-radius:10px;background:#ffffff02}.service-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}.service-top>span:last-child{font-size:10px;color:#8e9da9}.service-icon{color:var(--accent);font-size:24px;background:#d4f77d0a;border:1px solid #d4f77d1a;border-radius:9px;display:grid;place-items:center;width:45px;height:45px}.service-card h3{font-size:20px;font-weight:550;letter-spacing:-.4px}.service-card p{font-size:13px;line-height:1.8;color:var(--muted);max-width:360px}.service-tools{margin-top:28px;font-size:10px;color:#bec8d2;border-top:1px solid var(--border);padding-top:18px}.method{display:grid;grid-template-columns:1fr 2fr;gap:50px;padding-top:55px;margin-top:55px;border-top:1px solid var(--border)}.method h3{font-size:23px;font-weight:500;letter-spacing:-.5px;max-width:280px}.method .eyebrow{font-size:8px;margin-bottom:15px}.method ol{display:grid;grid-template-columns:repeat(3,1fr);padding:0;margin:0;list-style:none;gap:24px}.method li>span{font-size:10px;color:var(--accent);display:block;margin-bottom:17px}.method h4{font-size:14px;font-weight:550;margin-bottom:10px}.method li p{font-size:11px;line-height:1.8;color:var(--muted);margin:0}.about-section{display:grid;grid-template-columns:.85fr 1.15fr;align-items:center;gap:9%;padding-block:110px}.about-monogram{min-height:390px;align-self:stretch;display:flex;flex-direction:column;justify-content:space-between;background:radial-gradient(ellipse at 80% 10%,#d4f77d1a,transparent 60%),#151f24;border:1px solid var(--border);border-radius:12px;padding:35px;position:relative;overflow:hidden}.about-monogram:after{content:"";position:absolute;right:-120px;top:50px;width:360px;height:360px;border:1px solid #d4f77d12;border-radius:50%;box-shadow:0 0 0 45px #d4f77d04,0 0 0 90px #d4f77d03;pointer-events:none}.about-monogram>span:first-child{font-size:95px;letter-spacing:-8px;font-weight:750;line-height:1}.about-monogram>span:first-child span{color:var(--accent)}.about-monogram>div{font-size:27px;font-weight:550;line-height:1.3;letter-spacing:-1px;margin-block:40px}.monogram-caption{font-size:8px;letter-spacing:2px;color:var(--muted)}.about-copy>p:not(.eyebrow){font-size:14px;color:var(--muted);line-height:1.9;max-width:650px}.about-copy h2{margin-bottom:26px}.about-details{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding-block:23px;margin-bottom:26px;border-block:1px solid var(--border)}.about-details span{display:block;font-size:8px;letter-spacing:1.5px;color:var(--muted);margin-bottom:10px}.about-details strong{font-size:11px;font-weight:500}.about-details small{display:block;font-size:10px;color:var(--muted);margin-top:5px}.contact-section{padding-bottom:80px}.contact-panel{padding:60px;display:flex;justify-content:space-between;align-items:center;gap:40px;border:1px solid #d4f77d25;background:radial-gradient(ellipse at 85% 90%,#d4f77d12,transparent 60%),#16201f;border-radius:14px}.contact-panel h2{font-size:clamp(30px,3.3vw,54px);line-height:1.15;font-weight:550;letter-spacing:-1.8px;margin-bottom:23px}.contact-panel h2 span{color:var(--accent)}.contact-panel p:not(.eyebrow){color:var(--muted);font-size:13px;line-height:1.9;margin:0}.contact-actions{min-width:265px}.contact-actions .button{width:100%;justify-content:space-between}.copy-email{display:flex;align-items:center;justify-content:space-between;gap:15px;width:100%;padding:18px 0 0;background:transparent;border:0;color:var(--muted);font-size:10px;min-height:44px}.copy-email>span:last-child{color:var(--accent);white-space:nowrap}.site-footer{display:flex;align-items:center;gap:30px;min-height:100px;border-top:1px solid var(--border)}.site-footer .brand-mark{font-size:30px}.site-footer p{color:var(--muted);font-size:10px;margin:0;flex:1}.site-footer>a:not(.brand-mark){display:flex;align-items:center;gap:7px;font-size:10px;color:var(--muted)}.project-dialog{background:var(--surface);color:var(--text);padding:0;border:1px solid #ffffff26;border-radius:14px;width:min(640px,calc(100% - 32px));max-height:85svh;overflow-y:auto;overscroll-behavior:contain;box-shadow:0 40px 100px #0008}.project-dialog::backdrop{background:#050a10d9;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.dialog-close{position:absolute;right:12px;top:12px;z-index:1;border:1px solid #ffffff25;background:#0c1117;color:var(--text);width:40px;height:40px;border-radius:50%;font-size:24px}.dialog-content{padding:30px}.dialog-content h2{font-size:30px;line-height:1.2;letter-spacing:-1px}.dialog-content p:not(.eyebrow){font-size:13px;line-height:1.8;color:var(--muted)}.dialog-content h3{margin-top:26px;font-size:15px;font-weight:550}.dialog-content .button{margin-top:14px}.dialog-content .eyebrow{font-size:8px}@media(min-width:1800px){.hero{gap:10%}.dashboard{padding:35px}.hero-chart{padding:24px}.project-visual{height:270px}.visual-body{height:185px}.project-card h3{font-size:23px}}@media(max-width:1100px){.navigation{gap:20px}.hero{gap:4%}h1{font-size:clamp(62px,7vw,85px)}.hero-actions{gap:20px}.dashboard{padding:18px}.dashboard-label{display:none}.projects-grid{gap:16px}.project-card-content{padding:20px}.project-visual{padding-inline:15px;height:200px}.visual-body{height:125px}.service-card{padding:24px}.contact-panel{padding:40px}.method{gap:30px}.about-section{gap:6%}}@media(max-width:800px){.site-header{height:76px}.brand-mark{font-size:33px}.menu-toggle{display:block;background:transparent;border:1px solid var(--border);border-radius:6px;color:var(--text);padding:10px 14px;font-size:12px}.navigation{display:none;position:absolute;top:76px;left:0;right:0;padding:22px var(--gutter);background:#10171f;border-bottom:1px solid var(--border);align-items:stretch;gap:8px;box-shadow:0 20px 40px #0004}.navigation.is-open{display:flex;flex-direction:column}.navigation>a{padding:14px 0}.navigation .nav-contact{justify-content:space-between;margin-top:5px}.hero{grid-template-columns:1fr;gap:48px;padding-block:55px 85px;min-height:calc(100svh - 76px)}h1{font-size:clamp(64px,12vw,98px)}.hero-description{max-width:520px}.hero-art{width:100%;max-width:650px;margin-inline:auto}.dashboard{transform:rotate(-1deg);padding:25px}.dashboard-title h2{font-size:26px}.dashboard-metrics strong{font-size:19px}.dashboard-label{display:block}.hero-chart svg{max-height:220px}.floating-note{right:0}.hero-proof{margin-bottom:0}.hero-actions{margin-bottom:30px}.tools-strip{justify-content:center;gap:22px}.tools-strip>span{width:100%;text-align:center}.tools-strip strong{font-size:17px}.content-section{padding-block:65px}.section-heading{flex-direction:column;align-items:flex-start;gap:20px}.section-heading>p{max-width:500px}.section-heading h2,.about-copy h2{font-size:37px}.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-controls{align-items:stretch;flex-direction:column}.search-box input{width:100%}.services-grid{grid-template-columns:1fr}.service-card p{max-width:none}.service-top{margin-bottom:22px}.method{grid-template-columns:1fr;gap:25px;margin-top:35px;padding-top:35px}.method h3{max-width:none;margin:0}.about-section{grid-template-columns:1fr;gap:35px}.about-monogram{min-height:300px}.about-monogram>div{margin-block:25px}.contact-panel{flex-direction:column;align-items:flex-start;gap:30px}.contact-actions{width:100%;max-width:420px;min-width:0}.contact-panel h2{font-size:38px}.contact-section{padding-bottom:55px}.site-footer{gap:20px;flex-wrap:wrap;padding-block:25px}.site-footer>a:last-child{margin-left:auto}}@media(max-width:480px){.brand-name{font-size:12px}.brand-name>span{font-size:8px}.hero{padding-top:40px;gap:38px}h1{font-size:clamp(54px,14vw,67px)}.hero-description{font-size:14px}.hero-actions{align-items:flex-start;flex-direction:column;gap:20px}.hero-proof{gap:12px}.proof-divider{margin-inline:3px}.hero-proof p{font-size:10px}.proof-number{font-size:34px}.dashboard{padding:16px}.dashboard-header{font-size:10px}.dashboard-label{font-size:6px}.dashboard-title h2{font-size:19px}.dashboard-metrics{gap:8px}.dashboard-metrics>div{padding:12px}.dashboard-metrics strong{font-size:13px}.dashboard-metrics span{font-size:7px}.dashboard-metrics small{font-size:8px}.hero-chart{padding:12px}.chart-heading{font-size:8px}.chart-key{font-size:7px}.floating-note{padding:14px;font-size:10px}.projects-grid{grid-template-columns:1fr;gap:22px}.project-visual{height:230px;padding:25px}.visual-body{height:145px}.section-heading h2,.about-copy h2{font-size:31px;letter-spacing:-1.2px}.filter-list{gap:4px}.filter-button{padding:9px 13px}.method ol{grid-template-columns:1fr;gap:22px}.method li{display:flex;gap:20px}.method li>span{margin-top:2px}.method h4{margin-bottom:6px}.contact-panel{padding:28px 22px}.contact-panel h2{font-size:30px;letter-spacing:-1px}.about-details{grid-template-columns:1fr}.site-footer p{font-size:9px}.site-footer>a:last-child{margin-left:0}.dialog-content{padding:23px}.dialog-content h2{font-size:25px}}.hero-title .hero-title-line{display:block;color:var(--text);animation:hero-title-reveal 8s cubic-bezier(.22,1,.36,1) infinite both;animation-play-state:inherit}.hero-title .hero-title-line:nth-child(1){animation-delay:0ms}.hero-title .hero-title-line:nth-child(2){animation-delay:.65s}.hero-title .hero-title-line:nth-child(3){animation-delay:1.3s}.hero-title .hero-title-accent{color:var(--accent)}@keyframes hero-title-reveal{0%,to{opacity:0;transform:translateY(18px)}18%,78%{opacity:1;transform:translateY(0)}92%{opacity:0;transform:translateY(-8px)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.project-card:hover,.button:hover{transform:none}}[hidden]{display:none!important}.app{min-height:100svh;display:flex;flex-direction:column}#main{flex:1;outline:none}.navigation a[aria-current=page]{color:var(--accent)}.navigation .nav-contact[aria-current=page]{border-color:var(--accent)}#contact{padding-top:70px}.app-home{height:100svh;min-height:0}.app-home .site-header{height:64px;flex-shrink:0}.app-home #main{display:grid;grid-template-rows:minmax(0,1fr) auto;min-height:0}.app-home .hero{min-height:0;padding-block:clamp(12px,3svh,32px) 36px}.app-home .hero .eyebrow{margin-bottom:16px}.app-home h1{font-size:clamp(42px,min(6.6vw,10svh),100px);margin-bottom:18px}.app-home .hero-description{font-size:14px;line-height:1.6;margin-bottom:0}.app-home .hero-actions{gap:18px;margin-block:20px}.app-home .hero-actions .button{min-height:44px;padding:12px 18px}.app-home .hero-proof{gap:12px}.app-home .proof-number{font-size:32px}.app-home .scroll-cue{bottom:10px}.app-home .dashboard{padding:18px}.app-home .dashboard-header{padding-bottom:12px}.app-home .dashboard-title{padding-top:14px}.app-home .dashboard-title h2,.app-home .dashboard-metrics{margin-bottom:14px}.app-home .dashboard-metrics>div{padding:12px}.app-home .hero-chart{padding:12px}.app-home .hero-chart svg{height:clamp(75px,18svh,180px);margin-block:8px}.app-home .dashboard-footer{margin-top:12px}.app-home .floating-note{padding:12px 16px}.app-home .tools-strip{padding-block:12px;gap:16px}.app-home .tools-strip strong{font-size:16px}.app-home .site-footer{min-height:48px;padding-block:10px;flex-shrink:0}@media(max-width:800px){.app-home .navigation{top:64px}.app-home .hero{grid-template-columns:1fr;gap:0}.app-home h1{font-size:clamp(42px,min(12vw,10svh),85px)}.app-home .hero-art{display:none}.app-home .hero-actions{flex-direction:row;flex-wrap:wrap;align-items:center}.app-home .tools-strip{gap:12px;padding-block:10px}.app-home .tools-strip>span{display:none}.app-home .tools-strip strong{font-size:13px}.app-home .site-footer{gap:14px}.app-home .site-footer>a:last-child{display:none}}@media(max-height:650px){.app-home .hero .eyebrow{margin-bottom:10px}.app-home h1{margin-bottom:12px}.app-home .hero-actions{margin-block:12px}.app-home .hero-proof{display:none}}:root{--bg: #0b1118;--surface: #141e29;--text: #f1f5f8;--muted: #a6b3c1;--border: #d7e5f018;--radius-card: 16px;--ease-out: cubic-bezier(.22, 1, .36, 1)}body{background:var(--bg);line-height:1.5}input,button{font-family:inherit}h2,h3{text-wrap:balance}p{text-wrap:pretty}.site-header{background:#0b1118ef;box-shadow:0 8px 32px #00000012}.brand-mark{font-weight:800}.navigation{gap:clamp(10px,1.7vw,28px)}.navigation>a:not(.nav-contact){position:relative;padding:10px 8px;border-radius:7px;transition:color .18s,background .18s}.navigation>a:not(.nav-contact):hover{background:#ffffff05}.navigation>a[aria-current=page]:not(.nav-contact){background:#d4f77d0b}.navigation>a[aria-current=page]:not(.nav-contact):after{content:"";position:absolute;height:2px;left:8px;right:8px;bottom:3px;border-radius:2px;background:var(--accent)}.nav-contact,.menu-toggle{transition:border-color .18s,background .18s}.navigation .nav-contact:hover,.menu-toggle:hover{border-color:#d4f77d70;background:#d4f77d08}.button{border-radius:9px;letter-spacing:.1px;transition:background .2s,box-shadow .2s,transform .2s}.button-primary{box-shadow:0 3px #9cbd5220,inset 0 1px #ffffff40}.button-primary:hover{box-shadow:0 8px 24px #d4f77d18}.text-link{line-height:1.6}.text-link>span[aria-hidden=true],.project-discover>span{transition:transform .2s var(--ease-out)}.text-link:hover>span[aria-hidden=true],.project-card:hover .project-discover>span{transform:translate(2px,-2px)}.hero{isolation:isolate;background:radial-gradient(ellipse at 80% 45%,#a7d77b0d,transparent 60%)}.hero:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:radial-gradient(#c6d5e51a .7px,transparent .7px);background-size:28px 28px;-webkit-mask-image:linear-gradient(90deg,transparent 35%,#000 100%);mask-image:linear-gradient(90deg,transparent 35%,#000 100%)}.dashboard{border-color:#c1d4e326;background:linear-gradient(145deg,#1c2a35,#101a24);box-shadow:0 28px 70px #00000040,inset 0 1px #ffffff08}.dashboard-metrics>div,.hero-chart{background:#0c141d40;border-color:#c7ddeb15}.floating-note{background:linear-gradient(135deg,#26372c,#1b2926)}.tools-strip{background:#ffffff02}.tools-strip strong{color:#c4ced9}.section-heading{padding-bottom:26px;border-bottom:1px solid var(--border)}.section-heading .eyebrow{color:#bdcbd8}.section-heading>p{font-size:14px;max-width:350px}.project-controls{border-bottom:0;padding-top:0}.filter-button{min-height:44px;font-size:12px;border-radius:8px;transition:color .18s,background .18s,border-color .18s}.filter-button:not(.active):hover{background:#d4f77d14;border-color:#d4f77d70;color:var(--accent)}.filter-button.active:hover,.filter-button.active:focus-visible{background:var(--accent);border-color:var(--accent);color:var(--bg)}.filter-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.search-box{background:#141e2980;min-height:44px;border-radius:8px;transition:border-color .18s,box-shadow .18s}.search-box:focus-within{border-color:#d4f77d80;box-shadow:0 0 0 3px #d4f77d0b}.search-box input{font-size:12px}.search-box input:focus-visible{outline:none}.results-count{font-size:12px}.project-card,.service-card,.credential-card{border-radius:var(--radius-card);background:linear-gradient(145deg,#17222c,#111923);box-shadow:inset 0 1px #ffffff05}.project-card{transition:transform .25s var(--ease-out),border-color .25s,box-shadow .25s}.project-card:hover{transform:translateY(-4px);box-shadow:0 15px 32px #00000028}.project-card-content{padding:26px}.project-meta{font-size:10px;letter-spacing:.6px}.project-card h3{font-size:21px;line-height:1.35}.project-card p,.service-card p,.credential-description{font-size:14px;line-height:1.75}.tech-tags span{font-size:11px;padding:5px 9px;border-radius:6px;color:#c5d1dc;background:#ffffff04}.project-discover{font-size:12px}.visual-caption{font-size:9px;bottom:5px}.service-card{border-top-color:#d4f77d35}.service-tools{font-size:12px;line-height:1.7}.method h4{font-size:16px}.method li p{font-size:13px}.about-copy>p:not(.eyebrow){font-size:15px}.about-monogram{border-radius:var(--radius-card);background:radial-gradient(ellipse at 80% 5%,#d4f77d16,transparent 65%),#15212b}.about-details strong{font-size:13px}.about-details small,.credential-type,.credential-year{font-size:12px}.credential-issuer{font-size:11px}.contact-panel{border-radius:20px;background:radial-gradient(ellipse at 95% 100%,#d4f77d18,transparent 65%),#152421;box-shadow:inset 0 1px #d4f77d12}.contact-panel p:not(.eyebrow){font-size:15px}.copy-email{font-size:12px;gap:12px}.copy-email:hover{color:var(--text)}.site-footer>a:not(.brand-mark):hover{color:var(--accent)}.project-dialog{border-radius:18px}.dialog-content h3{color:var(--accent)}.dialog-content p:not(.eyebrow){font-size:14px}.dialog-close:hover{border-color:var(--accent);color:var(--accent)}@media(min-width:801px)and (max-width:1100px){.navigation{gap:5px;font-size:12px}.navigation .nav-contact{gap:10px;padding-inline:12px}.brand-name{font-size:12px}}@media(max-width:800px){.navigation{border-radius:0 0 16px 16px}.navigation>a:not(.nav-contact){padding:13px 14px}.navigation>a[aria-current=page]:not(.nav-contact):after{inset:12px auto 12px 0;width:2px;height:auto}.section-heading{padding-bottom:22px}.hero:before{-webkit-mask-image:linear-gradient(180deg,transparent 10%,#000 100%);mask-image:linear-gradient(180deg,transparent 10%,#000 100%)}}@media(max-width:480px){.project-card-content{padding:22px}.project-card h3{font-size:20px}.copy-email{font-size:11px}}@media(prefers-reduced-motion:reduce){.project-card:hover,.button:hover,.text-link:hover>span[aria-hidden=true],.project-card:hover .project-discover>span{transform:none}}@media(min-width:801px)and (min-height:600px){.app-expertise{height:100svh;min-height:0}.app-expertise .site-header{height:64px;flex-shrink:0}.app-expertise #main{min-height:0;display:flex}.app-expertise .expertise-section{display:flex;flex-direction:column;justify-content:center;padding-block:clamp(16px,3svh,36px)}.app-expertise .section-heading{padding-bottom:16px;margin-bottom:18px;gap:24px}.app-expertise .section-heading .eyebrow{margin-bottom:12px}.app-expertise .section-heading h2{font-size:clamp(28px,4.5svh,46px);letter-spacing:-1px}.app-expertise .section-heading>p{font-size:13px;line-height:1.6}.app-expertise .services-grid{gap:16px}.app-expertise .service-card{padding:clamp(16px,2.5svh,28px)}.app-expertise .service-top{margin-bottom:14px}.app-expertise .service-icon{width:36px;height:36px;font-size:22px}.app-expertise .service-card h3{font-size:18px;margin-bottom:10px}.app-expertise .service-card p{font-size:13px;line-height:1.6;margin-bottom:0}.app-expertise .service-tools{margin-top:14px;padding-top:12px;font-size:11px}.app-expertise .method{margin-top:20px;padding-top:18px;gap:24px}.app-expertise .method .eyebrow{margin-bottom:8px}.app-expertise .method h3{font-size:20px;margin-bottom:0}.app-expertise .method li>span{margin-bottom:8px}.app-expertise .method h4{font-size:14px;margin-bottom:6px}.app-expertise .method li p{font-size:12px;line-height:1.6}.app-expertise .site-footer{min-height:48px;padding-block:10px;flex-shrink:0}}.portfolio-status{min-height:100svh;display:grid;place-items:center;padding:24px;text-align:center}.portfolio-status h1{font-size:clamp(24px,4vw,42px);letter-spacing:-1px;max-width:650px}.portfolio-status p{color:var(--muted)}@media(min-width:801px)and (min-height:600px){.app-contact{min-height:100svh}.app-contact .site-header{height:64px;flex-shrink:0}.app-contact #main{display:flex;min-height:0}.app-contact #contact{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center;gap:clamp(20px,3vw,40px);padding-block:clamp(16px,3svh,32px)}.app-contact .contact-panel{height:100%;padding:clamp(24px,3vw,40px);flex-direction:column;align-items:stretch;justify-content:center;gap:24px}.app-contact .contact-panel h2{font-size:clamp(30px,3.5vw,48px);margin-bottom:16px}.app-contact .contact-panel .eyebrow{margin-bottom:16px}.app-contact .contact-actions{min-width:0}.app-contact .contact-form-panel{margin-top:0;padding:clamp(20px,2.5svh,32px);grid-template-columns:minmax(0,1fr);gap:14px}.app-contact .contact-form-panel .eyebrow{margin-bottom:6px}.app-contact .contact-form-panel h3{font-size:24px;margin-bottom:6px}.app-contact .contact-form-panel>div>p:not(.eyebrow){max-width:none;margin:0;font-size:12px;line-height:1.5}.app-contact .contact-form{gap:12px}.app-contact .contact-form label{gap:5px}.app-contact .optional-label{line-height:1.2}.app-contact .contact-form input,.app-contact .contact-form textarea{padding:10px 12px}.app-contact .contact-form textarea{height:clamp(80px,12svh,120px);min-height:80px}.app-contact .contact-submit-row .button{min-height:44px;padding-block:10px}.app-contact .form-feedback{padding:10px;font-size:12px;line-height:1.5}.app-contact .site-footer{min-height:48px;padding-block:10px;flex-shrink:0}}@media(min-width:801px)and (min-height:600px)and (max-height:700px){.app-contact #contact{padding-block:12px}.app-contact .contact-panel{padding:24px;gap:16px}.app-contact .contact-panel h2{font-size:32px}.app-contact .contact-form-panel{padding:16px;gap:8px}.app-contact .contact-form-panel h3{font-size:20px}.app-contact .contact-form{gap:8px}.app-contact .contact-form input,.app-contact .contact-form textarea{padding:8px 10px}.app-contact .contact-form textarea{height:72px;min-height:72px}}.project-card-content .project-subtitle,.project-dialog .project-subtitle{color:var(--accent);font-size:13px;line-height:1.5;margin-bottom:12px}.project-visual.project-image{display:grid;place-items:center;background:#fff;padding:20px}.project-image img{display:block;width:100%;height:100%;min-height:0;object-fit:contain}.project-description{list-style:disc;padding-left:18px;margin:0 0 20px;color:var(--muted);font-size:13px;line-height:1.7}.project-description li+li{margin-top:6px}.project-visual.project-image-cover{padding:0;overflow:hidden;background:transparent}.project-image-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.project-visual.project-image-dwfa{padding:0;background:#28a7f1}.project-image-dwfa img{object-fit:contain}@media(min-width:1100px){.app-expertise .services-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:801px)and (max-width:1099px){.app-expertise .services-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:801px)and (max-height:700px){.app-expertise .service-card{padding:14px}.app-expertise .service-top{margin-bottom:8px}.app-expertise .service-card h3{font-size:16px;margin-bottom:8px}.app-expertise .service-card p{font-size:12px;line-height:1.5}.app-expertise .service-tools{margin-top:8px;padding-top:8px}}.app-expertise .method{grid-template-columns:minmax(0,1fr);gap:16px}.app-expertise .method h3{max-width:none}.method-description{margin:6px 0 0;color:var(--muted);font-size:12px;line-height:1.5}.app-expertise .method ol{grid-template-columns:repeat(5,minmax(0,1fr));gap:20px}@media(max-width:1099px){.app-expertise .method ol{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:800px){.app-expertise .method ol{grid-template-columns:1fr;gap:20px}}.app-about .about-section{gap:clamp(28px,5vw,70px);padding-block:clamp(32px,6vw,72px)}.app-about .about-copy h2{font-size:clamp(30px,3.4vw,48px)}.app-about .about-monogram{background:radial-gradient(ellipse at 80% 15%,#d4f77d20,transparent 65%),#151f24}.about-journey{margin-top:28px;padding-top:24px;border-top:1px solid var(--border)}.about-journey .eyebrow{margin-bottom:18px}.about-timeline{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;list-style:none;padding:0;margin:0 0 20px}.about-timeline li{position:relative;padding:20px 0 0;border-top:1px solid #d4f77d40}.about-timeline li:before{content:"";position:absolute;top:-4px;left:0;width:7px;height:7px;border-radius:50%;background:var(--accent)}.about-timeline time{color:var(--accent);font-size:12px}.about-timeline h3{font-size:18px;margin:8px 0 6px}.about-copy .about-timeline p{font-size:12px;line-height:1.5;margin:0 0 4px}.about-timeline li>span{font-size:12px;color:var(--muted)}@media(max-width:480px){.about-timeline{grid-template-columns:1fr}}@media(min-width:801px)and (min-height:600px){.app-about{min-height:100svh}.app-about .site-header{height:64px;flex-shrink:0}.app-about #main{display:flex;min-height:0}.app-about .about-section{grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);padding-block:clamp(16px,3svh,28px);gap:clamp(24px,4vw,56px)}.app-about .about-monogram{min-height:0;padding:28px}.app-about .about-monogram>div{margin-block:24px;font-size:24px}.app-about .about-copy>.eyebrow{margin-bottom:12px}.app-about .about-copy h2{font-size:clamp(28px,4.4svh,38px);margin-bottom:14px}.app-about .about-copy>p:not(.eyebrow){font-size:13px;line-height:1.6;margin-block:0 10px}.app-about .about-journey{margin-top:14px;padding-top:14px}.app-about .about-journey .eyebrow{margin-bottom:12px}.app-about .about-timeline{margin-bottom:12px;gap:18px}.app-about .about-timeline li{padding-top:12px}.app-about .about-timeline h3{font-size:16px;margin-block:6px 4px}.app-about .about-details{padding-block:12px;margin-block:14px 12px}.app-about .about-details span{margin-bottom:6px}.app-about .site-footer{min-height:48px;padding-block:10px;flex-shrink:0}}.about-approach>.approach-content{position:relative;z-index:1;margin-block:24px}.approach-content .eyebrow{font-size:10px;margin-bottom:18px}.approach-list{list-style:none;margin:0;padding:0;display:grid;gap:22px}.approach-list li{display:grid;grid-template-columns:36px minmax(0,1fr);gap:12px}.approach-icon{display:grid;place-items:center;width:36px;height:36px;border:1px solid #d4f77d30;border-radius:10px;color:var(--accent);background:#d4f77d08}.approach-list h3{font-size:15px;font-weight:550;letter-spacing:0;margin:0 0 6px}.approach-list p{margin:0;color:var(--muted);font-size:12px;line-height:1.6;letter-spacing:0;font-weight:400}.timeline-icon{float:right;color:var(--accent);width:20px;height:20px}.language-icon{width:14px;height:14px;margin-right:6px;vertical-align:middle;color:var(--accent)}@media(min-width:801px)and (min-height:600px){.app-about .about-approach>span:first-child{font-size:56px;letter-spacing:-4px}.app-about .about-approach>.approach-content{margin-block:18px}.app-about .approach-list{gap:16px}}.about-motto-line{display:block}.about-copy>.approach-content{margin-top:18px;padding-top:14px;border-top:1px solid var(--border)}.about-copy .approach-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.about-copy .approach-list li{grid-template-columns:1fr;gap:8px}.about-copy .approach-list h3{font-size:13px}.about-copy .approach-list p{font-size:11px;line-height:1.5}.about-copy .about-languages{grid-template-columns:1fr}@media(max-width:800px){.about-copy .approach-list{grid-template-columns:1fr}.about-copy .approach-list li{grid-template-columns:36px minmax(0,1fr);gap:12px}}.language-list{display:grid;grid-template-columns:1fr;gap:8px;padding:0;margin:0;list-style:none}.language-list li{padding:7px 10px;border:1px solid var(--border);border-radius:6px;font-size:12px;color:var(--text);background:var(--surface)}.project-video{margin-block:24px}.project-skill-filter select{max-width:100%;min-height:40px;padding:8px 12px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);font:inherit;font-size:12px;cursor:pointer;transition:border-color .18s,background .18s}.project-skill-filter select:hover{border-color:var(--accent);background:#d4f77d14}.project-skill-filter select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.project-skill-filter select option{background:var(--surface);color:var(--text)}.project-video-player{margin-top:16px}.project-video video{display:block;width:100%;max-height:60svh;background:#000;border-radius:10px}.project-video-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px}.project-dialog{width:min(1060px,calc(100% - 40px));max-height:calc(100dvh - 40px);overflow:hidden}.project-dialog[open]{display:grid;grid-template-columns:36% 1fr}.project-dialog>.project-visual{height:100%;min-height:0}.project-dialog .dialog-content{padding:clamp(20px,3vh,36px);padding-top:50px}.project-dialog .dialog-content h2{font-size:clamp(21px,2.3vw,30px);margin-bottom:12px}.project-dialog .project-description{line-height:1.5;margin-bottom:16px}.project-dialog .project-description li+li{margin-top:4px}.project-dialog-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.project-dialog .project-dialog-actions .button{margin:0;padding:12px 16px}.video-dialog{width:min(1100px,calc(100% - 32px));max-height:calc(100dvh - 32px);overflow:hidden;padding:0;border:1px solid #ffffff26;border-radius:18px;background:var(--surface);color:var(--text);box-shadow:0 40px 100px #0008}.video-dialog::backdrop{background:#050a10e8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.video-dialog-header{position:relative;padding:18px 68px 18px 24px}.video-dialog-header .eyebrow{margin-bottom:6px;font-size:10px}.video-dialog-header h2{font-size:20px;margin:0}.video-dialog video{display:block;width:100%;height:min(56.25vw,calc(100dvh - 250px));object-fit:contain;background:#000}.video-dialog-footer{padding:16px 24px}.video-dialog-footer .project-video-actions{margin:0}.video-dialog-footer p{margin:10px 0 0;font-size:12px;color:var(--muted)}@media(max-width:700px){.project-dialog[open]{grid-template-columns:1fr}.project-dialog>.project-visual{height:130px}.project-dialog .dialog-content{padding:18px}}@media(max-height:600px),(max-width:700px){.project-dialog{overflow-y:auto}}.project-card{position:relative}.project-hover-details{display:none}.project-pagination{display:flex;justify-content:center;align-items:center;gap:20px;padding-top:12px;font-size:12px}.project-pagination button{border:1px solid var(--border);border-radius:6px;padding:8px 14px;background:var(--surface);color:var(--text)}.project-pagination button:disabled{opacity:.35;cursor:default}@media(min-width:1000px)and (min-height:650px){.app-projects{height:100dvh;min-height:0;overflow:clip}.app-projects .site-header{height:64px;flex-shrink:0}.app-projects #main{min-height:0;display:flex;flex:1}.app-projects #projects:not([hidden]){display:flex;flex-direction:column;min-height:0;padding-block:14px}.app-projects .section-heading{flex-shrink:0;margin-bottom:8px;padding-bottom:0;gap:24px}.app-projects .section-heading h2{font-size:clamp(30px,2.8vw,42px)}.app-projects .section-heading .eyebrow{margin-bottom:4px}.app-projects .section-heading>p{font-size:12px;max-width:420px;flex:0 1 360px}.app-projects .project-controls{flex-shrink:0;gap:12px;padding-block:6px}.app-projects .filter-list{gap:4px}.app-projects .filter-button{padding:6px 10px;min-height:32px}.app-projects .project-skill-filter select{min-height:32px;padding-block:4px}.app-projects .results-count{flex-shrink:0;margin-block:8px}.app-projects .projects-grid{flex:1;min-height:0;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:14px;perspective:1200px}.app-projects .project-card{min-height:0;overflow:visible;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}.app-projects .project-open{border-radius:12px;overflow:hidden}.app-projects .project-card .project-visual{height:40%;flex-shrink:0;min-height:0;padding:8px}.app-projects .project-card .project-visual img{transition:transform .35s ease}.app-projects .project-card-content{min-height:0;padding:10px 14px;overflow:hidden}.app-projects .project-meta{margin-bottom:4px;font-size:7px}.app-projects .project-card h3{font-size:clamp(18px,1.6vw,23px);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-projects .project-card-content .project-subtitle{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;flex-shrink:0;font-size:14px;line-height:1.4;margin-bottom:6px}.app-projects .project-card-content .project-description,.app-projects .project-card-content>p:not(.project-subtitle){display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:11px;line-height:1.4;margin-bottom:5px;padding-left:0;list-style:none}.app-projects .project-card-content .project-description li{display:inline}.app-projects .project-card-content .project-description li+li:before{content:" · "}.app-projects .project-card-content .tech-tags{display:none}.app-projects .project-discover{padding-top:5px;font-size:9px}.app-projects .site-footer{flex-shrink:0;min-height:40px;padding-block:10px}}@media(min-width:1000px)and (min-height:650px)and (hover:hover){.app-projects .project-card:is(:hover,:focus-within){transform:translateY(-6px) translateZ(30px) rotateX(2deg) scale(1.025);z-index:5;box-shadow:0 20px 48px #0009,0 0 0 1px #d4f77d60;border-color:var(--accent)}.app-projects .project-card:is(:hover,:focus-within) .project-visual img{transform:scale(1.08)}.app-projects .project-hover-details{position:absolute;left:-1px;right:-1px;bottom:0;background:#131b24f5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:16px;border:1px solid #d4f77d60;border-radius:10px;box-shadow:0 12px 32px #0006;pointer-events:none}.app-projects .project-card:is(:hover,:focus-within) .project-hover-details{display:block}.app-projects .project-hover-details h3{white-space:normal;overflow:visible}.app-projects .project-hover-details .project-subtitle{margin-bottom:8px;font-size:14px;color:var(--accent);line-height:1.4}.app-projects .project-hover-details .project-description{font-size:13px;line-height:1.5;margin-bottom:10px}.app-projects .project-hover-details .project-description li+li{margin-top:3px}.app-projects .project-hover-details .tech-tags{margin-bottom:10px;gap:4px}.app-projects .project-hover-details .tech-tags span{padding:3px 5px;font-size:8px}.project-hover-hint{color:var(--accent);font-size:10px}}@media(prefers-reduced-motion:reduce){.app-projects .project-card,.app-projects .project-card .project-visual img{transition:none}.app-projects .project-card:is(:hover,:focus-within){transform:none}}.project-card .project-subtitle{color:var(--accent);transition:color .2s ease}.project-card:is(:hover,:focus-within) .project-subtitle{color:var(--accent)}@media(max-width:999px),(max-height:649px){.app-projects .projects-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.app-projects .project-card h3{font-size:22px}.app-projects .project-card-content .project-subtitle{font-size:15px;line-height:1.5}.app-projects .project-card-content{padding:18px}.app-projects .project-card .project-visual{height:180px;flex-shrink:0}.app-projects .project-card .project-discover{margin-top:auto;padding-top:14px}.app-projects .project-controls{flex-direction:column;align-items:stretch}.app-projects .search-box input{width:100%;min-width:0}.app-projects .project-skill-filter{max-width:100%}}@media(max-width:600px){.app-projects .projects-grid{grid-template-columns:1fr;gap:18px}.app-projects #projects{padding-block:28px}.app-projects .section-heading{flex-direction:column;align-items:flex-start;gap:12px}.app-projects .section-heading h2{font-size:30px}.app-projects .project-card .project-visual{height:190px}.app-projects .project-card h3{font-size:23px}.app-projects .project-card-content .project-subtitle{font-size:16px}.app-projects .project-pagination{gap:12px}}@media(hover:none){.app-projects .project-card:hover{transform:none}.app-projects .project-hover-details{display:none}}@media(prefers-reduced-motion:reduce){.project-card .project-subtitle{transition:none}}.app-projects .project-card-content .tech-tags{display:flex;gap:4px;margin-block:8px 10px;flex-shrink:0}.app-projects .project-card-content .tech-tags span{font-size:10px;padding:3px 6px}.app-projects .project-discover{font-size:13px;font-weight:600;padding-top:10px}@media(min-width:1000px)and (min-height:650px){.app-projects .project-card .project-visual{height:48%}.app-projects .project-card-content{padding:10px 14px}.app-projects .project-card-content .tech-tags{margin-block:6px;gap:3px}.app-projects .project-card-content .tech-tags span{font-size:9px;padding:2px 5px}.app-projects .project-discover{font-size:12px;padding-top:6px}}@media(max-width:999px),(max-height:649px){.app-projects .project-card .project-visual{height:220px}}@media(max-width:600px){.app-projects .project-card .project-visual{height:250px}}@media(min-width:1000px)and (min-height:650px)and (max-height:950px){.app-projects .projects-grid{grid-template-rows:minmax(0,1fr)}}.app-projects .projects-introduction{display:block;margin:10px 0 0;color:var(--muted);font-size:14px;line-height:1.5;max-width:700px}.project-skill-menu{position:relative;max-width:100%;z-index:10;font-size:15px}.project-skill-menu summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;min-height:44px;border:1px solid var(--border);border-radius:6px;background:var(--surface);cursor:pointer;list-style:none}.project-skill-menu summary::-webkit-details-marker{display:none}.project-skill-menu summary:hover,.project-skill-menu[open] summary{border-color:var(--accent);color:var(--accent)}.project-skill-options{position:absolute;top:calc(100% + 6px);left:0;width:max-content;max-width:min(420px,80vw);min-width:100%;max-height:min(400px,50dvh);overflow-y:auto;padding:6px;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:0 12px 32px #0009;scrollbar-color:var(--accent) var(--surface)}.project-skill-options button{display:block;width:100%;text-align:left;padding:12px 16px;min-height:44px;line-height:1.4;border:0;border-radius:4px;background:transparent;color:var(--text);font-size:16px}.project-skill-options button:hover,.project-skill-options button:focus-visible,.project-skill-options button[aria-pressed=true]{background:var(--accent);color:var(--bg)}.project-skill-menu summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.project-dialog .project-explore-introduction h3{margin:16px 0 6px}.project-dialog .project-explore-introduction p{margin:0;font-size:12px;line-height:1.5}.project-dialog .project-dialog-actions{margin-top:14px}.project-dialog .project-soutenance-action{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.project-dialog .project-soutenance-action h3{color:var(--accent);margin:0;font-size:15px}.project-dialog .project-dialog-actions{align-items:flex-end}.project-dialog .project-dialog-actions{flex-direction:column;align-items:flex-start;gap:18px}.project-dialog .project-soutenance-action{width:100%}.projects-animated-title .projects-title-main{color:var(--text)}.projects-animated-title .projects-title-accent{color:var(--muted)}.projects-animated-title .projects-title-letter{display:inline;white-space:pre;color:inherit;animation:project-letter-reveal 9s ease-in-out infinite;animation-delay:var(--letter-delay);animation-fill-mode:both}@keyframes project-letter-reveal{0%,3%,to{opacity:0}8%,78%{opacity:1}92%{opacity:0}}#projects[hidden] .projects-title-letter{animation-play-state:paused}@media(prefers-reduced-motion:reduce){.projects-animated-title .projects-title-letter{animation:none;opacity:1}}.projects-animated-title .projects-title-main .projects-title-letter{animation:none;opacity:1}.app-projects .section-heading h2 .projects-title-accent,.app-projects .section-heading h2 .projects-title-accent .projects-title-letter{color:var(--accent)}.project-dialog .project-source-note{margin:-4px 0 12px;font-size:12px;line-height:1.45;color:var(--muted)}.project-dialog .tech-tags span,.app-projects .project-hover-details .tech-tags span,.app-projects .project-card-content .tech-tags span{font-size:13px;line-height:1.35;padding:5px 9px;color:var(--text);border-color:#ffffff30;background:#ffffff08}.project-dialog .tech-tags,.app-projects .project-hover-details .tech-tags,.app-projects .project-card-content .tech-tags{gap:6px}@media(min-width:1000px)and (min-height:650px){.app-projects .project-card .project-visual{height:auto;flex:1 1 0}}@media(max-width:999px),(max-height:649px){.app-projects .project-card .project-visual{height:310px}}@media(max-width:600px){.app-projects .project-card .project-visual{height:290px}}@media(min-width:1000px)and (min-height:650px)and (hover:hover){.app-projects .project-card-content>.project-discover{display:none}.app-projects .project-hover-hint{display:flex;align-items:center;justify-content:space-between;margin-top:12px;padding-top:12px;border-top:1px solid var(--border);font-size:13px;font-weight:600}}@media(min-width:1000px)and (min-height:650px){.app-projects .project-card-content{flex:0 0 auto}}.app-projects .project-card-content>.project-meta,.app-projects .project-card-content>h3,.app-projects .project-card-content>.project-subtitle,.app-projects .project-card-content>.project-discover{flex-shrink:0}.app-projects .project-card-content>h3{min-height:1.35em}@media(min-width:1000px)and (min-height:650px){.app-projects .project-card-content>.tech-tags{flex-shrink:1;min-height:0;max-height:66px;overflow:hidden;align-content:flex-start}.app-projects .project-card-content>.tech-tags>span{flex-shrink:0}}.app-home .hero{position:relative;isolation:isolate}.hero-ambient{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:-1}.hero-ambient:after{content:"";position:absolute;inset:0;background-image:radial-gradient(#ffffff12 1px,transparent 1px);background-size:28px 28px;-webkit-mask-image:linear-gradient(to right,transparent,#000);mask-image:linear-gradient(to right,transparent,#000)}.hero-ambient span{position:absolute;width:480px;height:480px;border-radius:50%;filter:blur(100px);opacity:.1}.hero-ambient span:first-child{background:var(--accent);right:2%;top:10%}.hero-ambient span:last-child{background:#4a9fff;left:-200px;bottom:-280px}.app-home .hero-copy{position:relative;z-index:2}.app-home .hero-title{letter-spacing:-.065em}.app-home .hero-title .hero-title-accent{color:var(--accent);text-shadow:0 0 45px #d4f77d18}.app-home .hero-description{max-width:470px}.app-home .hero-art{position:relative;perspective:1200px}.app-home .dashboard{position:relative;z-index:1;background:linear-gradient(145deg,#1c2935f2,#111922f5);border:1px solid #ffffff25;box-shadow:0 35px 70px #0006,0 0 70px #d4f77d0a;transform:rotateY(-5deg) rotateX(2deg);transition:transform .5s ease,border-color .5s ease}.app-home .dashboard:hover{transform:rotateY(0) rotateX(0);border-color:#d4f77d60}.hero-orbit{position:absolute;inset:-35px;border:1px solid #d4f77d16;border-radius:50%;transform:rotate(-25deg);pointer-events:none}.hero-data-badge{position:absolute;z-index:3;display:flex;align-items:center;gap:10px;padding:12px 16px;border:1px solid #ffffff26;border-radius:12px;background:#17232ef2;box-shadow:0 16px 35px #0005;font-size:13px;font-weight:600;animation:home-badge-float 7s ease-in-out infinite;animation-play-state:var(--home-animation-state)}.hero-data-badge>span{color:var(--accent);font-size:22px}.hero-data-badge small{color:var(--muted);font-weight:400}.hero-data-badge-python{top:-22px;left:20px}.hero-data-badge-sql{right:-18px;top:42%;animation-delay:-3s}.hero-trend-line{stroke-dasharray:1;animation:home-chart-draw 9s ease-in-out infinite;animation-play-state:var(--home-animation-state)}.hero-trend-point{animation:home-point-pulse 4s ease-in-out infinite;animation-play-state:var(--home-animation-state)}.app-home .floating-note{z-index:3;border-color:#d4f77d40}.app-home .tools-strip{border-top:1px solid var(--border);background:#ffffff02}@keyframes home-badge-float{0%,to{transform:translateY(0)}50%{transform:translateY(-9px)}}@keyframes home-chart-draw{0%,to{stroke-dashoffset:1;opacity:.2}35%,88%{stroke-dashoffset:0;opacity:1}}@keyframes home-point-pulse{0%,to{opacity:.45}50%{opacity:1}}@media(min-width:801px)and (max-height:750px){.hero-data-badge{padding:8px 12px;font-size:11px}.hero-data-badge small{display:none}}@media(max-width:800px){.app-home .hero-title{letter-spacing:-.05em}.app-home .hero-description{max-width:540px;font-size:15px}.hero-ambient span:first-child{right:-250px}.app-home .tools-strip{flex-wrap:wrap;justify-content:center}.app-home .tools-strip strong{font-size:13px}}@media(prefers-reduced-motion:reduce){.hero-data-badge,.hero-trend-line,.hero-trend-point{animation:none}.app-home .dashboard{transform:none;transition:none}}.app-home{height:100dvh;min-height:0;overflow:clip}.app-home #main{min-height:0;grid-template-rows:minmax(0,1fr) auto}.app-home .hero{min-height:0;padding-block:clamp(12px,2dvh,24px) 24px}.app-home .hero-art{min-height:0}.app-home .hero-description{font-size:clamp(12px,1.6dvh,15px)}.app-home .hero-actions{margin-block:clamp(10px,2dvh,20px)}.app-home .tools-strip{padding-block:8px;flex-shrink:0}.app-home .site-footer{min-height:42px;padding-block:8px;flex-shrink:0}@media(max-height:750px){.app-home h1{font-size:clamp(36px,min(6vw,9dvh),78px);margin-bottom:12px}.app-home .hero .eyebrow{margin-bottom:10px}.app-home .hero-chart svg{height:clamp(60px,14dvh,130px)}.app-home .dashboard{padding:12px}.app-home .dashboard-title{padding-top:10px}.app-home .dashboard-title h2,.app-home .dashboard-metrics{margin-bottom:10px}.app-home .dashboard-metrics>div{padding:8px}.app-home .floating-note{padding:8px 12px}.app-home .hero-proof .proof-number{font-size:28px}}@media(max-width:800px){.app-home .hero{padding-block:14px}.app-home h1{font-size:clamp(34px,min(11vw,8dvh),66px)}.app-home .hero-actions{gap:12px}.app-home .hero-actions .button{padding:10px 14px;min-height:40px}.app-home .hero-proof{margin-top:10px}.app-home .tools-strip{gap:10px;padding-inline:16px}.app-home .tools-strip>span{font-size:9px}.app-home .site-footer{gap:12px}}@media(max-height:500px){.app-home .hero-art,.app-home .hero-proof,.app-home .scroll-cue{display:none}.app-home .hero{grid-template-columns:1fr;padding-block:8px}.app-home .hero-title-line{display:inline}.app-home .hero-title-line+.hero-title-line:before{content:" "}.app-home h1{font-size:clamp(26px,6dvh,38px)}}.about-cv{margin-block:20px;padding:18px;border:1px solid var(--border);border-radius:12px;background:#ffffff03}.about-cv>p{font-size:13px;color:var(--muted);margin-bottom:10px}.about-cv-actions{display:flex;flex-wrap:wrap;gap:10px}.about-cv-actions .button{font-size:12px;padding:12px 16px}.cv-dialog{width:min(900px,calc(100% - 24px));max-height:calc(100dvh - 24px);padding:0;border:1px solid var(--border);border-radius:16px;background:var(--surface);color:var(--text);overflow-y:auto}.cv-dialog::backdrop{background:#050a10dc;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.cv-toolbar{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:16px;padding:14px 65px 14px 20px;background:var(--surface);border-bottom:1px solid var(--border)}.cv-toolbar>span{flex:1;font-size:13px}.cv-toolbar .button{padding:10px 14px;font-size:12px}.cv-document{padding:clamp(20px,4vw,48px)}.cv-document header{border-bottom:2px solid var(--accent);padding-bottom:22px}.cv-document h2{font-size:36px;margin:8px 0 16px}.cv-document header a{display:inline-block;margin:0 20px 8px 0;font-size:13px;color:var(--muted)}.cv-document section{margin-top:24px}.cv-document h3{font-size:17px;color:var(--accent);margin-bottom:12px}.cv-document h4{font-size:14px;margin:12px 0 6px}.cv-document p{font-size:14px;color:var(--muted);line-height:1.7;margin:0}.cv-skills{display:grid;grid-template-columns:1fr 1fr;gap:12px 24px}@media(max-width:600px){.cv-skills{grid-template-columns:1fr}.cv-toolbar>span{display:none}.cv-document h2{font-size:28px}}.cv-dialog{width:min(1050px,calc(100% - 24px))}.cv-document{background:linear-gradient(145deg,#192735,#111922 45%)}.cv-document header{padding:8px 0 24px}.cv-document .cv-headline{color:var(--text);font-size:17px;margin-bottom:16px}.cv-highlights{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.cv-highlights span{border:1px solid #d4f77d40;border-radius:6px;padding:6px 10px;color:var(--accent);font-size:12px}.cv-document .cv-skills>div{padding:16px;border:1px solid var(--border);border-radius:10px;background:#ffffff03}.cv-document .cv-skills h4{margin-top:0}.cv-project{padding:18px 0;border-bottom:1px solid var(--border)}.cv-project h4{font-size:17px;margin-top:0}.cv-project ul{color:var(--muted);font-size:14px;line-height:1.65;padding-left:18px;margin-block:10px}.cv-project-tools{display:inline-block;color:var(--accent);font-size:12px}.cv-project>a{float:right;font-size:12px;color:var(--text);text-decoration:underline;text-underline-offset:4px}.cv-certifications{padding:0;list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:14px 24px}.cv-certifications strong{display:block;font-size:13px;font-weight:500;line-height:1.5}.cv-certifications span{display:block;color:var(--muted);font-size:12px;margin-top:4px}@media(max-width:600px){.cv-certifications{grid-template-columns:1fr}.cv-project>a{float:none;display:block;margin-top:10px}}.access-request-dialog{width:min(560px,calc(100% - 24px));max-height:calc(100dvh - 32px);overflow-y:auto;padding:32px;border:1px solid var(--border);border-radius:16px;background:var(--surface);color:var(--text)}.access-request-dialog::backdrop{background:#050a10e8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.access-request-dialog h2{font-size:25px;margin:12px 0;padding-right:30px}.access-request-dialog p{color:var(--muted);font-size:13px;line-height:1.6}.access-request-dialog form{display:grid;gap:14px;margin-top:20px}.access-request-dialog label{display:grid;gap:6px;font-size:13px}.access-request-dialog input:not([type=checkbox]){width:100%;border:1px solid var(--border);border-radius:6px;padding:12px;background:var(--bg);color:var(--text)}.access-request-dialog .access-consent{display:flex;align-items:flex-start;gap:10px;font-size:11px;line-height:1.5;color:var(--muted)}.access-consent input{margin-top:3px;accent-color:var(--accent)}.app-projects .filter-list>.filter-button,.app-projects .project-skill-menu>summary{min-height:44px;padding:10px 16px;font-size:15px;line-height:1.4;font-weight:500;border-radius:6px}:root{color-scheme:dark;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}#root{min-height:100vh}
