@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Playfair+Display:wght@500;600;700&display=swap');
:root{--bg:#071529;--card:#102640;--card2:#132f4e;--edge:#2b5279;--blue:#1689e9;--text:#f4f8ff;--muted:#bad0e5;color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;background:radial-gradient(circle at 50% -8%,#174978 0,transparent 560px),linear-gradient(180deg,#071b33,#071529 55%);color:var(--text);font-family:'DM Sans',Arial,sans-serif;line-height:1.55}a{color:inherit}button,input,textarea{font:inherit}button{cursor:pointer}img{max-width:100%}
.topbar{max-width:900px;margin:0 auto;min-height:70px;padding:15px 22px;display:flex;align-items:center;justify-content:space-between;gap:15px}.brand{display:flex;align-items:center;gap:9px;text-decoration:none;font-weight:800}.mark{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:11px;background:#1464ac;color:white}.dot{color:#7ad3ff}.topbar nav{display:flex;gap:16px;align-items:center}.topbar nav a{text-decoration:none;color:#c5dcef;font-size:13px}.topbar nav a:hover,.topbar nav a.active{color:#fff}
.home-wrap{max-width:590px;margin:0 auto;padding:12px 20px 44px}.hero,.portfolio-hero{border:0;min-height:0;display:block;background:none;position:relative;text-align:center}.hero-glow{display:none}.hero-photo,.portfolio-person{width:122px;height:122px;margin:8px auto 18px;overflow:hidden;border:4px solid #6ac0ff;border-radius:50%;box-shadow:0 0 0 7px #163f67,0 14px 40px #0007}.hero-photo img,.portfolio-person img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 20%}.hero-copy{padding:0 0 24px}.eyebrow{font-size:10px;font-weight:800;letter-spacing:2.4px;color:#8ed3ff}.hero h1,.portfolio-hero h1{font-family:'Playfair Display',Georgia,serif;font-size:clamp(33px,7vw,48px);line-height:1.15;letter-spacing:-1px;margin:13px 0}.hero h1 span,.portfolio-hero h1 em,.section-head h2 span{color:#50b5ff}.hero h2{font-size:clamp(18px,4vw,25px);line-height:1.4;margin:15px 0}.hero h2 em{font-style:normal}.hero p,.portfolio-hero p{color:var(--muted);font-size:14px;max-width:490px;margin:0 auto}.hero-rule{height:3px;width:55px;margin:0 auto;background:#38adff;border-radius:9px}.social{display:flex;gap:10px;align-items:center;justify-content:center;margin-top:20px}.social a,.ghost-small,.pill,.text-button{border:1px solid #36628a;background:#122b48;border-radius:11px;text-decoration:none;padding:9px 14px;font-size:12px;color:#e6f4ff}.home-actions{display:grid;gap:11px}.action{display:block;width:100%;background:linear-gradient(145deg,#183756,#0e2742);border:1px solid #315c84;border-radius:16px;color:white;text-decoration:none;overflow:hidden;text-align:left}.action-primary{background:linear-gradient(115deg,#086bbb,#0d3d6e);border-color:#258fe1}.action:not(details),.action summary{display:flex;align-items:center;gap:14px;padding:16px 17px;min-height:83px}.action summary{cursor:pointer;list-style:none}.action summary::-webkit-details-marker{display:none}.action-icon{display:grid;flex:0 0 42px;place-items:center;width:42px;height:42px;border-radius:14px;background:#0a70c6;color:#fff;font-size:23px}.action-copy{display:flex;flex:1;min-width:0;flex-direction:column;gap:2px}.action-copy strong{font-size:17px}.action-copy small{font-size:12px;color:#b9d5eb}.arrow{font-size:23px;color:#c6edff}.dropdown-content{padding:18px;border-top:1px solid #355f85;background:#0c2139}.dropdown-content h3{font-size:17px;margin:4px 0 10px}.dropdown-content p{font-size:14px;color:var(--muted)}.inline-heading{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:13px}.inline-heading h3{margin:0}.resume-frame{display:block;width:100%;height:480px;background:#fff;border:0;border-radius:9px}.fineprint{font-size:12px!important;color:#b7cfe4!important}.fineprint a{color:#7bc8ff}.contact-form{display:grid;gap:8px}.contact-form label{font-size:12px;font-weight:700}.contact-form input,.contact-form textarea{width:100%;padding:13px;border:1px solid #467093;background:#071b30;border-radius:9px;color:white;outline-offset:2px}.submit{border:0;background:#087bd3;color:white;padding:14px 20px;border-radius:10px;font-weight:700;cursor:pointer}.submit:disabled{opacity:.65;cursor:wait}.below-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:20px 0;color:#90b5cf;font-size:12px}.below-actions button{cursor:pointer}footer{text-align:center;padding:23px;color:#a4bdd1;font-size:12px;border-top:1px solid #203d5b}.modal{max-width:min(94vw,430px);border:1px solid #4a83b8;border-radius:18px;background:#102943;color:#fff}.modal::backdrop{background:#00101cd9}.modal-inner{padding:25px;text-align:center}.modal-inner h2{font-family:'Playfair Display',serif}.modal-inner small{display:block;margin-top:15px;color:#b7cedf}.close{float:right;background:none;border:0;color:white;font-size:24px}.qr-target img{border-radius:10px}.qr-target{margin:15px auto}
.portfolio-wrap{max-width:1040px;margin:auto;padding:10px 20px 60px}.portfolio-hero{padding:20px 0 28px}.portfolio-intro{display:flex;align-items:center;justify-content:center;flex-direction:column}.portfolio-hero h1{margin:7px 0 13px}.back-link{display:inline-block;margin-bottom:8px;text-decoration:none;color:#a8dcff;font-size:13px}.category-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin:8px 0 26px}.category{min-width:0;display:flex;flex-direction:column;gap:9px;background:linear-gradient(155deg,#173b60,#0c233b);border:1px solid #356b99;border-radius:15px;padding:19px 14px;text-decoration:none;transition:transform .15s}.category:hover{transform:translateY(-3px)}.category span{font-size:28px;color:#81d4ff}.category strong{font-family:'Playfair Display',serif;font-size:19px}.category small{color:#bbd1e5;font-size:12px;line-height:1.45;flex:1}.category b{font-size:12px;color:#6ac5ff}.portfolio-section{scroll-margin-top:15px;background:linear-gradient(145deg,#112f4c,#091d32);border:1px solid #2b5c87;border-radius:18px;padding:25px;margin:15px 0}.section-head{margin-bottom:19px}.section-kicker,.card-index{font-size:11px;color:#8accfc;letter-spacing:1.2px;font-weight:800}.section-head h2{font-family:'Playfair Display',serif;font-size:29px;margin:8px 0}.section-head p{color:#bcd1e5;font-size:14px;margin:0}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.project-card{min-width:0;background:#0a2037;border:1px solid #2c5c84;border-radius:13px;padding:18px;display:flex;flex-direction:column;gap:10px;overflow-wrap:anywhere}.project-card h3{font-family:'Playfair Display',serif;font-size:19px;line-height:1.3;margin:0}.project-card p{font-size:13px;color:#c6d7e5;margin:0;flex:1}.project-card a,.link-stack a{display:block;border:1px solid #3177b3;border-radius:9px;padding:9px 10px;text-align:center;text-decoration:none;background:#0e5085;color:white;font-size:12px;font-weight:700}.link-stack{display:grid;gap:6px}.resume-strip{margin-top:16px;border:1px solid #376c94;padding:17px;border-radius:12px;display:flex;align-items:center;justify-content:space-between;gap:15px}.resume-strip h3{margin:0}.resume-strip p{margin:6px 0 0;color:#bbd2e4;font-size:13px}.strip-actions,.cta-links{display:flex;gap:9px;flex-wrap:wrap}.strip-actions a,.cta-links a{border-radius:9px;padding:10px 12px;background:#1066a8;text-decoration:none;font-size:12px;white-space:nowrap}.bottom-cta{text-align:center;margin:24px auto;padding:28px;background:#102d4b;border:1px solid #2b5f89;border-radius:17px}.bottom-cta h2{margin:10px 0}.bottom-cta p{color:#c5d8e9}.cta-links{justify-content:center}
@media(max-width:720px){.category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portfolio-section{padding:17px}.topbar nav{gap:10px}}
@media(max-width:480px){.topbar{padding:12px 16px}.topbar .brand{font-size:13px}.topbar nav a{font-size:12px}.home-wrap,.portfolio-wrap{padding-left:14px;padding-right:14px}.category-grid,.project-grid{grid-template-columns:1fr}.category{gap:5px;padding:14px}.resume-strip{flex-direction:column;align-items:flex-start}.resume-frame{height:410px}.below-actions{flex-wrap:wrap}.portfolio-section{padding:15px}.portfolio-person{width:96px;height:96px}}

/* Mobile-first polish and built-in portfolio viewer */
html{scroll-padding-top:20px}button,a,summary{touch-action:manipulation}
:focus-visible{outline:3px solid #87d5ff;outline-offset:3px}
.hero-photo{width:94px;height:94px;border-width:3px;margin-top:8px}
.portfolio-person{width:82px;height:82px;border-width:3px}
.hero-photo img,.portfolio-person img{object-position:center 30%}
.topbar nav a:last-child{white-space:nowrap}
.home-wrap{max-width:560px}
.action:not(details),.action summary{min-height:76px}
.project-card .preview-button{display:block;width:100%;border:1px solid #48a0e5;border-radius:9px;padding:10px;text-align:center;background:#1069b0;color:white;font-size:13px;font-weight:700;cursor:pointer}
.project-card .download-link{background:transparent;border:1px solid #356788;color:#b9dcf5}
.project-card{overflow-wrap:break-word}
.document-modal{width:min(960px,96vw);height:min(880px,94dvh);max-width:none;max-height:none;padding:0;background:#091b31;color:#fff;border:1px solid #4e8ac1;border-radius:15px;overflow:hidden}
.document-modal::backdrop{background:#000c}
.document-modal-head,.document-modal-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px}
.document-modal-head strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.document-modal button{background:#173b61;border:1px solid #4883b6;border-radius:9px;color:white;padding:8px 14px;cursor:pointer}
.document-modal #closeDocument{font-size:22px;line-height:1}
.document-modal iframe{width:100%;height:calc(100% - 116px);border:0;background:white}
.document-modal-foot a{color:#9dd6ff;font-size:13px}
@media(max-width:480px){
 body{min-width:0}.topbar{min-height:58px}.topbar nav{gap:11px}.topbar nav a{font-size:12px}
 .topbar .brand span:last-child{display:none}
 .hero h1{font-size:35px}.hero h2{font-size:19px}.hero-copy{padding-bottom:17px}
 .hero-photo{width:88px;height:88px;margin-bottom:15px}
 .action-copy strong{font-size:15px}.action-copy small{font-size:11px}
 .action:not(details),.action summary{padding:12px 13px;min-height:72px;gap:11px}
 .action-icon{width:40px;height:40px;flex-basis:40px}
 .dropdown-content{padding:13px}.resume-frame{height:60dvh;min-height:310px}
 .portfolio-hero h1{font-size:34px}.category-grid{gap:9px}.category{padding:13px}
 .section-head h2{font-size:24px}.document-modal{width:100vw;height:100dvh;border:0;border-radius:0}
 .document-modal iframe{height:calc(100% - 113px)}
 .below-actions{justify-content:center}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* v2 — premium aurora night background, mobile-first Linktree homepage */
body.refresh-v2{background:#071325;background-image:radial-gradient(ellipse 70% 35% at 50% 4%,rgba(35,134,204,.28),transparent 80%),radial-gradient(ellipse 42% 36% at 100% 40%,rgba(40,83,155,.15),transparent 80%),radial-gradient(ellipse 35% 30% at 0% 77%,rgba(10,126,143,.10),transparent 80%),linear-gradient(180deg,#0a1d34 0%,#081326 60%,#050e1c 100%);background-attachment:fixed}
body.refresh-v2:before{content:'';position:fixed;pointer-events:none;inset:0;opacity:.14;background-image:radial-gradient(#a0d9fc 0.7px, transparent 1px);background-size:32px 32px;mask-image:linear-gradient(to bottom,black,transparent 80%)}
.refresh-v2 .topbar,.refresh-v2 main,.refresh-v2 footer{position:relative;z-index:1}
.refresh-v2 .action{box-shadow:0 7px 24px rgba(0,0,0,.16);transition:transform .15s,border-color .15s}
.refresh-v2 .action:hover{transform:translateY(-2px);border-color:#79bde9}
.showcase-main{width:min(100% - 32px,850px);margin:auto}.showcase-header{text-align:center;padding:26px 0 27px}.showcase-avatar{width:80px;height:80px;border:3px solid #a5deff;box-shadow:0 0 0 7px rgba(81,161,233,.10),0 20px 50px #0009;border-radius:50%;overflow:hidden;margin:0 auto 16px}.showcase-avatar img{width:100%;height:100%;object-fit:cover;object-position:center 29%}.showcase-overline{font-size:10px;letter-spacing:2.3px;font-weight:800;color:#8dd4ff;margin:0}.showcase-header h1{font-size:clamp(34px,6vw,60px);font-family:'Playfair Display',Georgia,serif;line-height:1.12;letter-spacing:-1.5px;margin:10px auto}.showcase-header h1 em{color:#77c9ff;font-style:normal}.showcase-lead{color:#c6d9ea;max-width:500px;margin:0 auto;font-size:14px}.showcase-shell{border:1px solid rgba(138,202,255,.24);padding:24px;background:linear-gradient(125deg,rgba(21,49,78,.90),rgba(8,23,44,.94));border-radius:26px;box-shadow:0 25px 80px #0006;overflow:hidden;backdrop-filter:blur(14px)}.carousel-heading{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:18px}.carousel-heading h2{font-family:'Playfair Display',Georgia,serif;font-size:clamp(23px,4vw,32px);margin:5px 0 0;line-height:1.15}.slide-controls{display:flex;align-items:center;gap:9px;flex-shrink:0}.slide-controls button{width:38px;height:38px;border-radius:50%;background:#204d74;border:1px solid #4e86ae;color:white;font-size:19px}.slide-controls button:hover{background:#167cc0}.slide-controls span{color:#a7c6de;font-size:11px;letter-spacing:1px;min-width:45px;text-align:center}.category-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:18px}.category-tabs button{border:1px solid #335c82;background:#0a213a;color:#b8d6eb;border-radius:100px;padding:11px 7px;font-weight:700;font-size:12px}.category-tabs button[aria-selected=true]{border-color:#77cdfb;color:white;background:linear-gradient(110deg,#127dc2,#155589);box-shadow:0 5px 16px #05518d55}.slide-window{overflow:hidden;border-radius:18px}.slide-track{display:flex;transition:transform .4s cubic-bezier(.2,.8,.2,1);will-change:transform}.portfolio-slide{flex:0 0 100%;width:100%;min-width:0}.slide-feature{padding:26px 25px;border-radius:18px;min-height:185px;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden;background:radial-gradient(ellipse at 90% 10%,#1a7ab690,transparent 48%),linear-gradient(110deg,#143b5e,#0b233e);border:1px solid #4075a24d}.slide-feature:after{content:'';position:absolute;right:-55px;top:-75px;width:250px;height:250px;border:1px solid #9cdcff38;border-radius:50%;box-shadow:0 0 0 32px #8bcbff0a,0 0 0 66px #8bcbff09}.feature-ministry{background:radial-gradient(ellipse at 90% 10%,#16878a6b,transparent 50%),linear-gradient(110deg,#103d4f,#09263a)}.feature-tech{background:radial-gradient(ellipse at 90% 10%,#465bc28c,transparent 50%),linear-gradient(110deg,#243c68,#11223e)}.feature-writing{background:radial-gradient(ellipse at 90% 10%,#a66e8b70,transparent 50%),linear-gradient(110deg,#49354c,#1a2540)}.feature-icon{font-size:32px;color:#b0e6ff;line-height:1}.slide-feature p{font-size:10px;color:#b3d6ed;letter-spacing:2px;font-weight:800;margin:10px 0 6px}.slide-feature h3{font-size:clamp(18px,3vw,27px);line-height:1.2;max-width:490px;margin:0;font-family:'Playfair Display',Georgia,serif;position:relative;z-index:1}.selected-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-top:13px}.selected-card{padding:21px;background:#091c30;border:1px solid #31567a;border-radius:15px;min-width:0;display:flex;flex-direction:column;align-items:flex-start;min-height:245px}.project-no{font-size:10px;color:#80c5ed;letter-spacing:1px;font-weight:800}.selected-card h3{font-family:'Playfair Display',Georgia,serif;font-size:21px;margin:9px 0}.selected-card p{font-size:13px;color:#bed4e5;line-height:1.55;margin:0 0 15px;flex:1}.selected-card button,.selected-card a{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;text-decoration:none;border:1px solid #3f83b9;border-radius:10px;padding:10px 14px;background:#164c7c;color:#fff;font-size:12px;font-weight:800;margin:3px 7px 3px 0}.selected-card button:hover,.selected-card a:hover{background:#1e75b8}.slide-dots{display:flex;justify-content:center;gap:8px;margin-top:21px}.slide-dots button{border:0;padding:0;width:8px;height:8px;border-radius:100px;background:#456480}.slide-dots button.on{width:31px;background:#81d6ff}.showcase-bottom{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:25px 4px;color:#8fb1cb;font-size:12px}.bottom-home{color:#91d5ff;text-decoration:none;font-weight:800}.refresh-v2 footer{border-color:#1f3650}
@media(max-width:600px){.showcase-main{width:min(100% - 24px,600px)}.showcase-header{padding-top:14px}.showcase-shell{padding:14px;border-radius:20px}.category-tabs{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.category-tabs button{font-size:10px;padding:11px 4px}.selected-grid{grid-template-columns:1fr;gap:10px}.selected-card{min-height:unset;padding:17px}.selected-card p{margin-bottom:12px}.slide-feature{min-height:165px;padding:20px}.slide-controls{gap:4px}.slide-controls button{width:32px;height:32px}.slide-controls span{font-size:10px;min-width:36px}.showcase-bottom{flex-direction:column;text-align:center}.carousel-heading h2{font-size:23px}}
@media(prefers-reduced-motion:reduce){.slide-track{transition:none}}

/* PDF-as-image reader, works across mobile browsers without PDF plugins */
.resume-page-gallery{background:#e8edf4;border-radius:12px;padding:9px;max-height:520px;overflow:auto;-webkit-overflow-scrolling:touch}
.resume-page-gallery img{display:block;width:100%;height:auto;max-width:100%;background:#fff;box-shadow:0 3px 14px #0002}
.document-modal{display:flex;flex-direction:column}
.document-modal:not([open]){display:none}
.document-pages{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:#dfe5eb;padding:12px;display:flex;flex-direction:column;align-items:center;gap:14px}
.document-pages img{display:block;width:100%;height:auto;max-width:760px;background:white;box-shadow:0 4px 20px #0003}
.document-modal-head,.document-modal-foot{flex-shrink:0}
.document-modal .document-pages{height:auto}
@media(max-width:600px){.document-modal{width:100vw;height:100dvh;max-height:100dvh;border-radius:0;margin:0}.document-pages{padding:6px;gap:9px}.resume-page-gallery{max-height:490px;padding:5px}}
