:root{--bg: #ffffff;--mint: #d9efe2;--mint-strong: #44b87a;--mint-deep: #185e58;--text: #415058;--line: #d7dfe0;--font-main: "Manrope", "Segoe UI", sans-serif}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--bg);color:var(--text);font-family:var(--font-main)}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}.print-only{display:none}.screen-only{display:block}.resume-shell{position:relative;max-width:1360px;margin:0 auto;padding:0 42px 56px;overflow:hidden}.top-wave,.bottom-wave{position:absolute;left:0;width:100%;background:var(--mint);z-index:0}.top-wave{top:0;height:280px;border-bottom-left-radius:48% 34%;border-bottom-right-radius:24% 26%}.top-wave:before,.top-wave:after,.bottom-wave:before,.bottom-wave:after{content:"";position:absolute;border:2px solid rgba(255,255,255,.8);border-radius:50%}.top-wave:before{top:-120px;right:110px;width:420px;height:220px}.top-wave:after{top:-90px;left:360px;width:560px;height:180px}.bottom-wave{bottom:0;height:180px;width:55%;border-top-right-radius:50% 40%}.bottom-wave:before{left:-140px;bottom:-60px;width:360px;height:180px}.bottom-wave:after{left:-50px;bottom:18px;width:240px;height:120px}.hero,.resume-content{position:relative;z-index:1}.hero{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:28px;align-items:center;padding-top:72px}.hero h1{margin:0;color:var(--mint-deep);font-size:clamp(2.65rem,5vw,4.1rem);line-height:1;letter-spacing:-.04em;text-transform:uppercase}.hero-subtitle{margin:10px 0 0;color:var(--mint-strong);font-size:clamp(1.05rem,2vw,1.42rem);font-weight:800;line-height:1.3}.contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 30px;margin-top:16px;max-width:760px}.download-button{display:inline-flex;align-items:center;gap:10px;margin-top:0;min-height:42px;padding:0 18px;border:1px solid rgba(24,94,88,.14);border-radius:999px;background:linear-gradient(180deg,#fffffffa,#f2f8f5fa);color:var(--mint-deep);font-size:.9rem;font-weight:800;cursor:pointer;box-shadow:0 10px 22px #185e5814;transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease}.download-button ion-icon{font-size:1rem}.download-button:hover,.download-button:focus-visible{transform:translateY(-1px);background:#fff;box-shadow:0 12px 24px #185e581f}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}.contact-button,.contact-dialog-send{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:42px;padding:0 18px;border:1px solid rgba(24,94,88,.14);border-radius:999px;background:var(--mint-deep);color:#fff;font-size:.9rem;font-weight:800;cursor:pointer;box-shadow:0 10px 22px #185e581f;transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease}.contact-button:hover,.contact-button:focus-visible,.contact-dialog-send:hover,.contact-dialog-send:focus-visible{transform:translateY(-1px);box-shadow:0 14px 26px #185e5829}.contact-item{display:inline-flex;align-items:center;gap:10px;font-size:.98rem;font-weight:700}.contact-item ion-icon{color:var(--mint-strong);font-size:1.1rem}.hero-photo-wrap{justify-self:end}.hero-photo{width:170px;height:170px;object-fit:cover;border-radius:50%;border:8px solid rgba(255,255,255,.6)}.resume-content{display:grid;gap:26px;padding:44px 0 0}.resume-section h2{margin:0 0 16px;color:var(--mint-deep);font-size:clamp(1.55rem,2.5vw,2rem);text-transform:uppercase;letter-spacing:-.03em}.summary-text,.timeline-card li,.achievement-card p{margin:0;color:var(--text);line-height:1.55;font-size:1rem}.timeline{display:grid;gap:18px}.timeline-item{display:grid;grid-template-columns:180px 30px minmax(0,1fr);gap:18px}.timeline-meta{padding-top:4px}.timeline-period{margin:0 0 10px;color:var(--mint-deep);font-size:.98rem;font-weight:800}.timeline-location{margin:0;color:var(--text)}.timeline-line{position:relative}.timeline-stem{position:absolute;top:0;left:14px;bottom:-14px;width:2px;background:linear-gradient(180deg,#44b87ad9,#185e5826);border-radius:999px}.timeline-item:last-child .timeline-line .timeline-stem{bottom:8px}.timeline-dot{position:absolute;top:7px;left:8px;width:12px;height:12px;border-radius:50%;background:#fff;border:3px solid var(--mint-deep);box-shadow:0 0 0 3px #44b87a1f}.timeline-dot-current{box-shadow:0 0 0 4px #44b87a33,0 0 0 9px #44b87a14;background:#fafffc}.timeline-card h3,.achievement-card h3{margin:0;color:var(--mint-deep);font-size:clamp(1.28rem,2.2vw,1.62rem);font-weight:500}.timeline-company{margin:6px 0 10px;color:var(--mint-strong);font-size:1.02rem;font-weight:800}.timeline-school-note{margin:-4px 0 0;color:#6b7b83;font-size:.85rem;line-height:1.45}.timeline-card ul{margin:0;padding-left:24px}.timeline-card li+li{margin-top:6px}.timeline-compact .timeline-card{padding-top:2px}.skills-row{display:flex;flex-wrap:wrap;gap:14px 18px}.skill-chip{padding:0 0 8px;border-bottom:2px solid #cfd7d9;color:#37444c;font-size:1rem;font-weight:800}.skill-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:22px}.skill-detail-card{position:relative;padding:18px 18px 16px;border:1px solid rgba(68,184,122,.14);border-radius:20px;background:linear-gradient(180deg,#fffffffa,#f3fbf7fa),linear-gradient(135deg,#44b87a0f,#185e580a);box-shadow:0 10px 24px #185e580f;overflow:hidden}.skill-detail-card h3{margin:10px 0 8px;color:var(--mint-deep);font-size:1rem}.skill-detail-card p{margin:0;line-height:1.55}.skill-card-accent{width:44px;height:6px;border-radius:999px;background:linear-gradient(90deg,var(--mint-strong),var(--mint-deep))}.achievement-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;padding-bottom:28px}.achievement-card{display:grid;grid-template-columns:34px minmax(0,1fr);gap:14px;align-items:start}.achievement-card ion-icon{color:var(--mint-strong);font-size:1.8rem;margin-top:6px}.portfolio-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.portfolio-card{padding:0;text-align:left;overflow:hidden;border:1px solid rgba(68,184,122,.14);border-radius:20px;background:#fff;box-shadow:0 10px 24px #185e580f;cursor:pointer;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.portfolio-card:hover,.portfolio-card:focus-visible{transform:translateY(-4px);box-shadow:0 16px 30px #185e581a}.portfolio-card-active{animation:portfolio-pop .34s ease;transform:scale(1.03);border-color:#44b87a73;box-shadow:0 18px 34px #185e5824}.portfolio-image-wrap{aspect-ratio:16/10;overflow:hidden;background:#edf5f0}.portfolio-image-wrap img{width:100%;height:100%;object-fit:cover;transition:transform .28s ease}.portfolio-card-active .portfolio-image-wrap img{transform:scale(1.08)}.portfolio-card-body{padding:16px 18px 18px}.portfolio-card-body h3{margin:0 0 6px;color:var(--mint-deep);font-size:1.08rem}.portfolio-card-body p{margin:0;color:var(--text);line-height:1.45}@keyframes portfolio-pop{0%{transform:scale(.97)}55%{transform:scale(1.05)}to{transform:scale(1.03)}}.portfolio-dialog-backdrop{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:24px;background:#13242680;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:dialog-fade .22s ease}.portfolio-dialog{position:relative;width:min(980px,100%);display:grid;grid-template-columns:minmax(300px,380px) minmax(0,1fr);gap:0;border-radius:24px;overflow:hidden;background:#fff;box-shadow:0 30px 80px #13242638;transform-origin:center;animation:dialog-pop .24s cubic-bezier(.22,1,.36,1)}.portfolio-dialog-close{position:absolute;top:14px;right:14px;z-index:2;width:38px;height:38px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(24,94,88,.12);background:#fffffff0;color:var(--mint-deep);cursor:pointer}.portfolio-dialog-close ion-icon{font-size:1.2rem}.portfolio-dialog-media{min-height:100%;background:#edf5f0}.portfolio-dialog-media img{width:100%;height:100%;object-fit:cover}.portfolio-dialog-body{padding:38px 34px 32px}.portfolio-dialog-category{margin:0 0 8px;color:var(--mint-strong);font-size:.86rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.portfolio-dialog-body h3{margin:0 0 12px;color:var(--mint-deep);font-size:1.9rem}.portfolio-dialog-description{margin:0;line-height:1.6}.portfolio-dialog-list{margin:18px 0 0;padding-left:20px}.portfolio-dialog-list li+li{margin-top:8px}.contact-dialog{width:min(720px,100%);grid-template-columns:1fr}.contact-dialog-body{padding-right:38px}.contact-form-dialog{display:grid;gap:16px;margin-top:22px}.contact-form-dialog label{display:grid;gap:8px}.contact-form-dialog span{color:var(--mint-deep);font-size:.9rem;font-weight:700}.contact-form-dialog input,.contact-form-dialog textarea{width:100%;padding:13px 14px;border:1px solid rgba(24,94,88,.14);border-radius:14px;background:#f9fcfa;color:var(--text);font:inherit}.contact-form-dialog textarea{resize:vertical;min-height:140px}.contact-dialog-actions{display:flex;justify-content:flex-end}.contact-status{margin:0;padding:12px 14px;border-radius:14px;font-size:.92rem;line-height:1.45}.contact-status-success{background:#44b87a1f;color:var(--mint-deep)}.contact-status-error{background:#b946461a;color:#8a2e2e}.contact-dialog-send:disabled{opacity:.72;cursor:wait;transform:none;box-shadow:0 10px 22px #185e581f}@keyframes dialog-fade{0%{opacity:0}to{opacity:1}}@keyframes dialog-pop{0%{opacity:0;transform:scale(.965) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.print-timeline{display:none}@media(max-width:900px){.resume-shell{padding:0 22px 42px}.hero{grid-template-columns:1fr;padding-top:42px}.hero-photo-wrap{justify-self:start;order:-1}.hero-photo{width:96px;height:96px}.contact-grid{grid-template-columns:1fr;gap:8px}.hero-actions,.download-button,.contact-button{width:100%}.timeline-item{grid-template-columns:1fr;gap:10px;margin-bottom:8px}.timeline-line{display:none}.achievement-grid{grid-template-columns:1fr;padding-bottom:90px}.skill-detail-grid,.portfolio-grid,.portfolio-dialog{grid-template-columns:1fr}.portfolio-dialog-media{max-height:260px}.contact-dialog-actions{justify-content:stretch}.contact-dialog-send{width:100%}.bottom-wave{width:85%}}@page{size:auto;margin:.5in}@media print{html,body{width:100%}body{background:#fff;color:#000}.no-print,.top-wave,.bottom-wave,.screen-only{display:none!important}.print-only{display:block!important}.portfolio-dialog-backdrop{display:none!important}.resume-shell{max-width:none;width:100%;padding:0;overflow:visible}.hero{grid-template-columns:minmax(0,1fr) 110px;gap:18px;align-items:start;padding-top:0}.hero-copy{grid-column:1}.hero-photo-wrap{grid-column:2;order:0;justify-self:end;align-self:start}.hero-photo{width:110px;height:110px;border:0}.hero h1{font-size:2rem;line-height:1.05}.hero-subtitle{font-size:.92rem;line-height:1.3}.contact-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none;gap:8px 20px}.resume-content{gap:18px;padding-top:20px}.resume-section h2{font-size:1.25rem;page-break-after:avoid;margin-bottom:10px}.timeline-item,.achievement-card,.skill-detail-card{break-inside:avoid;page-break-inside:avoid}.print-timeline{display:block}.print-timeline-item{display:flex;align-items:flex-start;gap:12px;margin-bottom:10px;break-inside:avoid;page-break-inside:avoid}.print-timeline-meta{flex:0 0 92px;width:92px;min-width:92px;padding-top:0}.print-timeline-axis{position:relative;flex:0 0 18px;width:18px;min-width:18px;align-self:stretch;min-height:100%}.print-timeline-svg{position:absolute;inset:0;width:18px;height:100%;overflow:visible}.print-line-svg{stroke:#185e58e6;stroke-width:1.5}.print-timeline-item:last-child .print-timeline-line{bottom:8px}.timeline-period{font-size:.72rem;margin-bottom:4px}.timeline-company{font-size:.88rem}.timeline-location{font-size:.76rem;line-height:1.35}.print-timeline-dot{position:absolute;top:6px;left:4px;width:10px;height:10px;border-radius:50%;background:#fff;border:2px solid var(--mint-deep);z-index:1;box-shadow:0 0 0 2px #44b87a1f}.timeline-dot-current.print-timeline-dot{box-shadow:0 0 0 3px #44b87a2e,0 0 0 6px #44b87a14}.timeline-dot{top:6px;left:4px;width:10px;height:10px;border-width:2px;box-shadow:0 0 0 2px #44b87a1f}.timeline-dot-current{box-shadow:0 0 0 3px #44b87a2e,0 0 0 6px #44b87a14}.timeline-card h3{font-size:1.02rem}.timeline-card{flex:1 1 auto;width:auto;min-width:0}.timeline-card ul{padding-left:16px}.summary-text,.timeline-card li,.achievement-card p,.skill-detail-card p{font-size:.82rem;line-height:1.35}.skill-detail-grid,.achievement-grid,.portfolio-grid{grid-template-columns:1fr;gap:14px}.achievement-grid{padding-bottom:0}.skill-detail-card,.achievement-card{padding-top:0}}
