:root{--surface-soft: rgba(255, 255, 255, .46);--surface-warm: rgba(255, 250, 243, .82);--shadow-soft: 0 18px 40px rgba(28, 21, 12, .06)}:where(.portfolio).page-shell{width:min(1180px,calc(100% - 40px));margin:0 auto;padding:30px 0 84px}:where(.portfolio) .topbar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:16px 20px;margin-bottom:48px;position:sticky;top:14px;z-index:10;background:#fffcf7c7;backdrop-filter:blur(18px);border:1px solid var(--line);border-radius:999px;box-shadow:0 10px 30px #1c150c0f}:where(.portfolio) .brand{margin:0;display:flex;align-items:center;gap:10px;font-size:.78rem;font-weight:800;letter-spacing:.28em;text-transform:uppercase;text-decoration:none;color:inherit}:where(.portfolio) .brand:hover,:where(.portfolio) .brand:focus,:where(.portfolio) .brand:visited{color:inherit}:where(.portfolio) .brand img{width:42px;height:42px}:where(.portfolio) nav{display:flex;flex-wrap:wrap;gap:10px}:where(.portfolio) nav a{font-size:.92rem;font-weight:700;text-decoration:none;color:var(--muted);padding:10px 16px;border-radius:999px;transition:color .24s ease,background-color .24s ease}:where(.portfolio) nav a:hover{color:var(--text);background:#a2875714}:where(.portfolio) .section{margin-bottom:72px}:where(.portfolio) .eyebrow{margin:0 0 22px;display:inline-block;padding:12px 22px;border-radius:999px;background:linear-gradient(100deg,#1f302b,#466258);border:1px solid rgba(255,255,255,.24);box-shadow:0 10px 26px #1f302b3d;font-family:var(--font-sans);font-size:clamp(.84rem,1.5vw,.96rem);font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#fff}:where(.portfolio) .section-kicker{margin:0 0 16px;display:block;padding:0;border:none;font-family:var(--font-sans);font-size:1.16rem;font-weight:700;letter-spacing:-.01em;line-height:1.25;text-transform:none;color:var(--text)}:where(.portfolio) h1:not(:where(.media-section *)),:where(.portfolio) h2:not(:where(.media-section *)),:where(.portfolio) h3:not(:where(.media-section *)){margin:0;font-family:var(--font-display);font-weight:600;letter-spacing:-.035em;color:var(--text)}:where(.portfolio) h1:not(:where(.media-section *)){max-width:24ch;margin:0 auto;font-size:clamp(2.35rem,4.6vw,3.8rem);line-height:1.04;text-align:center;text-wrap:balance}:where(.portfolio) h2:not(:where(.media-section *)){font-size:clamp(2.2rem,4vw,3.5rem);line-height:.98}:where(.portfolio) h3:not(:where(.media-section *)){font-size:clamp(1.6rem,2.2vw,2.15rem);line-height:1.02}:where(.portfolio) p:not(:where(.media-section *)),:where(.portfolio) li:not(:where(.media-section *)){margin:0;font-size:1rem;line-height:1.82;color:var(--muted)}:where(.portfolio) .hero{text-align:center;padding:34px 24px 38px;border-radius:36px;background:radial-gradient(circle at top,rgba(255,255,255,.55),transparent 60%),var(--surface-soft);box-shadow:var(--shadow-soft)}:where(.portfolio) .hero-copy{max-width:72ch;margin:18px auto 0;font-size:1rem}:where(.portfolio) .hero-actions{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:20px}:where(.portfolio) .button-primary,:where(.portfolio) .button-secondary{display:inline-flex;align-items:center;justify-content:center;padding:14px 22px;border-radius:999px;text-decoration:none;font-weight:700;transition:transform .2s ease,background-color .2s ease,color .2s ease}:where(.portfolio) .button-primary{background:linear-gradient(90deg,#1f302b,#466258);color:#fff;box-shadow:0 10px 22px #1f302b33}:where(.portfolio) .button-secondary{background:#ffffffe0;color:var(--text);border:1px solid rgba(133,112,76,.2)}:where(.portfolio) .button-primary:hover,:where(.portfolio) .button-secondary:hover{transform:translateY(-1px)}:where(.portfolio) .projects-band{padding:34px;border-radius:32px;background:linear-gradient(180deg,#fff9f1f0,#ffffffa6);box-shadow:var(--shadow-soft)}:where(.portfolio) .projects-heading{max-width:none;margin-bottom:28px}:where(.portfolio) .projects-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:22px}:where(.portfolio) .project-card{display:grid;grid-template-columns:156px minmax(0,1fr);align-items:start;gap:20px;padding:18px;border-radius:24px;background:#ffffffe6;border:1px solid rgba(162,135,87,.12)}:where(.portfolio) .project-visual{display:grid;place-items:center;min-height:156px;aspect-ratio:1;border-radius:18px;overflow:hidden;background:linear-gradient(135deg,#7b633929,#a287571a),#fffaf3cc;color:var(--accent-deep);text-decoration:none;transition:transform .22s ease,box-shadow .22s ease}:where(.portfolio) .project-visual-link{cursor:pointer}:where(.portfolio) .project-visual-link:hover{transform:translateY(-4px) scale(1.04);box-shadow:0 20px 42px #1c150c29}:where(.portfolio) .project-visual img{width:100%;height:100%;object-fit:cover}:where(.portfolio) .project-visual img.project-logo{object-fit:contain;object-position:center;padding:12px}:where(.portfolio) .project-video-trigger{position:relative;width:100%;padding:0;border:0;cursor:pointer}:where(.portfolio) .project-play{position:absolute;inset:50% auto auto 50%;display:grid;place-items:center;width:48px;height:48px;padding:0;border-radius:50%;transform:translate(-50%,-50%);background:#1f302beb;box-shadow:0 10px 28px #1413164d;color:#fff}:where(.portfolio) .project-play svg{display:block;width:23px;height:23px;fill:currentColor}:where(.portfolio) .project-video-dialog{width:min(94vw,1200px);max-width:none;padding:0;border:0;border-radius:20px;overflow:visible;background:#111;box-shadow:0 30px 90px #00000080}:where(.portfolio) .project-video-dialog::backdrop{background:#0f0e0ddb;backdrop-filter:blur(8px)}:where(.portfolio) .project-video-dialog video{display:block;width:100%;max-height:88vh;border-radius:20px;object-fit:contain}:where(.portfolio) .project-video-close{position:absolute;top:-18px;right:-18px;z-index:1;display:grid;place-items:center;width:42px;height:42px;padding:0;border:2px solid rgba(255,255,255,.7);border-radius:50%;background:#1f302b;font-size:1.7rem;line-height:1;color:#fff;cursor:pointer}:where(.portfolio) .project-visual span{font-family:var(--font-display);font-size:2.5rem;font-weight:600;line-height:1}:where(.portfolio) .project-security-visual{box-sizing:border-box;width:100%;min-width:0;grid-template-columns:minmax(0,1fr);align-content:center;gap:10px;color:var(--teal);padding:16px}:where(.portfolio) .project-security-icon{width:76px;height:76px}:where(.portfolio) .project-visual .project-security-label{font-family:var(--font-sans);font-size:.85rem;font-weight:800;line-height:1.25}:where(.portfolio) .project-content{display:grid;align-content:start;gap:12px;min-width:0}:where(.portfolio) .project-result{padding-left:12px;border-left:2px solid rgba(104,79,41,.35);font-size:.9rem;line-height:1.6}:where(.portfolio) .project-highlight{width:fit-content;padding:7px 12px;border-radius:999px;background:#1f302b1a;font-size:.84rem;font-weight:800;line-height:1.3;color:#1f302b}:where(.portfolio) .project-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}:where(.portfolio) .project-card h4{font-size:1.25rem;margin:0}:where(.portfolio) .project-card h4 a{color:inherit;text-decoration:none;border-bottom:1px solid transparent;transition:color .2s ease,border-color .2s ease}:where(.portfolio) .project-card h4 a:hover{color:var(--accent-deep);border-bottom-color:#7b633952}:where(.portfolio) .project-category{font-size:.95rem;font-weight:700;color:var(--accent-deep);margin:0}:where(.portfolio) .project-status{padding:6px 10px;border-radius:999px;background:#a287571a;font-size:.78rem;font-weight:800;line-height:1.2;color:var(--text)}:where(.portfolio) .project-tools{display:flex;flex-wrap:wrap;gap:8px;color:var(--text)}:where(.portfolio) .project-tools span{padding:6px 10px;border-radius:999px;background:#fffaf3e6;border:1px solid rgba(162,135,87,.12);font-size:.82rem;font-weight:700;line-height:1.2}:where(.portfolio) .project-link{width:fit-content;margin-top:2px;font-size:.92rem;font-weight:800;color:var(--accent-deep);text-decoration:none;border-bottom:1px solid rgba(123,99,57,.32);padding-bottom:3px}:where(.portfolio) .project-link:hover{color:var(--text);border-bottom-color:#14131657}:where(.portfolio) .project-video-link{padding:0 0 3px;border:0;border-bottom:1px solid rgba(123,99,57,.32);background:transparent;font-family:inherit;cursor:pointer}@media(max-width:980px){:where(.portfolio) .projects-grid{grid-template-columns:1fr}}@media(max-width:640px){:where(.portfolio) .project-card{grid-template-columns:1fr}:where(.portfolio) .project-visual{min-height:132px;aspect-ratio:16 / 9}}:where(.portfolio) .capabilities-band,:where(.portfolio) .contact-band{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:36px;padding:34px;align-items:start;border-radius:32px;background:linear-gradient(180deg,var(--surface-warm),rgba(255,255,255,.58));box-shadow:var(--shadow-soft)}:where(.portfolio) .capabilities-band{grid-template-columns:minmax(0,1fr);gap:28px}:where(.portfolio) .capabilities-intro{max-width:none}:where(.portfolio) .capabilities-intro h2{margin-bottom:14px}:where(.portfolio) .capabilities-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}:where(.portfolio) .capability-card{display:flex;flex-direction:column;padding:24px;border-radius:24px;background:#ffffff9e;border:1px solid rgba(162,135,87,.12);box-shadow:0 10px 24px #1c150c0a}:where(.portfolio) .capability-card h3{font-size:1.34rem;margin-bottom:18px}:where(.portfolio) .capability-card p{margin-bottom:14px;line-height:1.7}:where(.portfolio) .capability-list{display:flex;flex-wrap:wrap;align-content:flex-start;gap:9px;margin:0;padding:0;list-style:none}:where(.portfolio) .capability-list li{padding:7px 11px;border:1px solid rgba(123,99,57,.18);border-radius:999px;background:linear-gradient(135deg,#a287571f,#ebe0c861);font-size:.86rem;font-weight:700;line-height:1.25;color:var(--text)}:where(.portfolio) .contact-band{grid-template-columns:minmax(0,1fr);max-width:720px}:where(.portfolio) .contact-copy{display:grid;gap:18px}:where(.portfolio) .contact-card{display:grid;gap:12px;padding:28px;background:linear-gradient(135deg,#ffffff7a,#a2875714),#fffcf7b8;border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden}:where(.portfolio) .contact-name{font-family:var(--font-display);font-size:2.25rem;line-height:.96;letter-spacing:-.03em;color:var(--text)}:where(.portfolio) .contact-role{font-size:.92rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}:where(.portfolio) .contact-email-context{max-width:56ch;margin-top:8px;font-size:.95rem;line-height:1.65}:where(.portfolio) .contact-email{width:fit-content;font-size:1rem;font-weight:700;color:var(--text);text-decoration:none;border-bottom:1px solid rgba(20,19,22,.2);padding-bottom:3px}:where(.portfolio) .contact-email:hover{color:var(--accent-deep);border-bottom-color:#7b633966}:where(.portfolio) .contact-cv{display:inline-flex;align-items:center;justify-content:center;width:fit-content;padding:11px 17px;border-radius:999px;background:#1f302b;font-size:.9rem;font-weight:800;color:#fff;text-decoration:none;transition:transform .2s ease,background-color .2s ease}:where(.portfolio) .contact-cv:hover{transform:translateY(-1px);background:#354d45}:where(.portfolio) .linkedin-card{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:14px;margin-top:10px;padding:14px 16px;width:min(100%,340px);border-radius:18px;border:1px solid var(--line);background:#ffffff94;color:var(--text);text-decoration:none;transition:transform .28s ease,background-color .28s ease,border-color .28s ease,box-shadow .28s ease}:where(.portfolio) .linkedin-mark{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:#0a66c2;color:#fff;box-shadow:0 10px 18px #0a66c224}:where(.portfolio) .linkedin-mark svg{width:21px;height:21px;fill:currentColor}:where(.portfolio) .linkedin-copy{display:grid;gap:2px}:where(.portfolio) .linkedin-label{font-size:.74rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--accent-deep)}:where(.portfolio) .linkedin-name{font-size:1rem;font-weight:700;line-height:1.3;color:var(--text)}:where(.portfolio) .linkedin-card:hover{transform:translateY(-2px);background:#ffffffc7;box-shadow:0 14px 32px #1c150c14}:where(.portfolio) .capabilities-band h2{max-width:none}:where(.portfolio) .contact-band h2{max-width:14ch}:where(.portfolio) .hero,:where(.portfolio) .capabilities-band,:where(.portfolio) .contact-band{animation:rise .8s ease both}@keyframes rise{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@media(max-width:980px){:where(.portfolio) .capabilities-band,:where(.portfolio) .capabilities-grid,:where(.portfolio) .contact-band{grid-template-columns:1fr}}@media(max-width:720px){:where(.portfolio).page-shell{width:min(100% - 20px,1180px);padding-top:12px}:where(.portfolio) .topbar{flex-direction:column;align-items:flex-start;padding:18px;border-radius:22px}:where(.portfolio) .hero,:where(.portfolio) .capabilities-band,:where(.portfolio) .contact-band{padding-left:22px;padding-right:22px}:where(.portfolio) h1:not(:where(.media-section *)){max-width:100%;font-size:clamp(2.8rem,11vw,3.8rem);line-height:1.04}:where(.portfolio) h2:not(:where(.media-section *)){font-size:clamp(2rem,10vw,2.9rem)}:where(.portfolio) .step-panel,:where(.portfolio) .closing-banner{padding:24px}}@media print{@page{size:A4 portrait;margin:12mm}:where(.portfolio).page-shell{width:100%;margin:0;padding:0}:where(.portfolio) .topbar{position:static;margin:0 0 8mm;padding:4mm 5mm;box-shadow:none;backdrop-filter:none}:where(.portfolio) .topbar nav,:where(.portfolio) .hero-actions,:where(.portfolio) .project-video-dialog,:where(.portfolio) .project-play,:where(.portfolio) .project-video-link{display:none!important}:where(.portfolio) .section{margin-bottom:8mm}:where(.portfolio) .hero,:where(.portfolio) .capabilities-band,:where(.portfolio) .projects-band,:where(.portfolio) .contact-band{opacity:1!important;transform:none!important;animation:none!important;box-shadow:none;break-inside:auto}:where(.portfolio) .hero{padding:8mm}:where(.portfolio) h1:not(:where(.media-section *)){font-size:28pt}:where(.portfolio) h2:not(:where(.media-section *)){font-size:23pt}:where(.portfolio) .capabilities-band,:where(.portfolio) .projects-band,:where(.portfolio) .contact-band{padding:7mm}:where(.portfolio) .capabilities-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:4mm}:where(.portfolio) .capability-card,:where(.portfolio) .project-card,:where(.portfolio) .contact-card{break-inside:avoid-page;box-shadow:none}:where(.portfolio) .project-card{grid-template-columns:38mm minmax(0,1fr)}:where(.portfolio) .project-visual{min-height:38mm}:where(.portfolio) a[href^=http]:after{content:none}}:where(.portfolio) .button-primary,:where(.portfolio) .button-secondary{max-width:100%;text-align:center;overflow-wrap:anywhere}:where(.portfolio) .capability-card{min-width:0}:where(.portfolio) h1{overflow-wrap:anywhere}:where(.portfolio) section[id]{scroll-margin-top:120px}:where(.portfolio) .project-tools span,:where(.portfolio) .capability-list li,:where(.portfolio) .brand,:where(.portfolio) .contact-email{overflow-wrap:anywhere;min-width:0}:where(.portfolio) .project-tools span,:where(.portfolio) .capability-list li{max-width:100%}@media(max-width:720px){:where(.portfolio) section[id]{scroll-margin-top:220px}:where(.portfolio) .projects-band{padding-left:22px;padding-right:22px}}
