/* Shared reading scale: content 15–17px, useful labels 11–13px. */
:root{--muted:#6f5965;--ink:#342a30}body{font-size:16px;line-height:1.8}.eyebrow{font-size:11px!important;color:#a64064;letter-spacing:1.3px}.micro{font-size:11px!important;color:#815365;letter-spacing:.8px}.jp,.eyebrow .jp,.cloud-title .jp,.gallery-heading .eyebrow .jp{font-size:12px!important;color:#95677c}.button{font-size:14px;line-height:1.4;padding:14px 25px;min-height:46px}.nav-links{font-size:14px;gap:25px}.nav-links a{color:#6c5260}.nav-cta{font-size:13px}.hero-copy>p{font-size:17px;line-height:1.9;color:#6b5360}.hero h2{font-size:27px;color:#ad4268}.intro-note{font-size:13px;color:#775366;max-width:470px;padding:17px 18px}.intro-note>span+span{padding-left:16px}.section-heading>p{font-size:15px;color:#6f5965;line-height:1.9}.logo-tile{min-height:132px;padding:25px 10px 20px}.logo-tile img{width:42px;height:42px}.logo-tile span{font-size:14px;color:#47353f}.expertise-grid h3{font-size:20px}.expertise-grid p{font-size:14px;line-height:1.9;color:#6f5965}.expertise-grid .micro{font-size:10px!important}.tags span{font-size:12px;color:#9d3d61;border-color:#edc8d7;background:#fff0f5;padding:4px 10px}.project-card h3{font-size:25px}.project-card-copy>p{font-size:15px;color:#6f5965;min-height:55px;line-height:1.8}.project-card-copy>.micro{font-size:10px!important}.project-card-copy .tags{gap:7px;margin-top:18px}.project-count{font-size:13px;color:#805569}.project-filters button{font-size:13px;padding:10px 19px;min-height:42px}.show-projects{font-size:13px}.showcase-toolbar>.micro{font-size:10px!important;color:#865569}.carousel-status{font-size:12px;color:#805569}.showcase-hint{font-size:13px;color:#805569}.slide-copy>p{font-size:14px;color:#6c5260;min-height:52px}.slide-copy>.eyebrow{font-size:10px!important}.slide-copy .tags span{font-size:11px}.slide-copy .project-link{font-size:13px}.showcase-stage{height:600px}.showcase-slide{width:450px}.project-link{font-size:13px;color:#a34468}.photo-placeholder,.certificate-preview,.achievement-preview{color:#805b70}.project-card .photo-placeholder{font-size:12px}.cloud-title .eyebrow{font-size:10px!important}.cloud-title h3{font-size:24px}.cloud-grid h4{font-size:18px;min-height:53px;color:#46303d}.cloud-grid p{font-size:14px;color:#6f5965;min-height:83px}.cloud-grid .micro{font-size:10px!important}.cloud-tag{font-size:12px;color:#805569}.service-label{font-size:11px;color:#8e4f6a;line-height:1.8}.timeline-year{font-size:14px;color:#a34669}.experience-text h3{font-size:25px}.experience-text>p,.experience-text ul{font-size:15px;line-height:1.9;color:#6d5360}.job-meta{font-size:12px;color:#85556b;line-height:1.8}.experience-text .tags span{font-size:12px}.experience-card{grid-template-columns:1.8fr 1fr;gap:30px;padding:28px}.timeline-row{grid-template-columns:110px 1fr;gap:25px}.activity-frame .photo-placeholder{font-size:12px;min-height:200px}.earlier{font-size:14px;color:#805569;line-height:1.9}.certificate-card{padding:10px}.certificate-preview{height:110px;font-size:11px}.certificate-card .micro{font-size:10px!important;min-height:38px;line-height:1.7;margin-top:14px;color:#805569;letter-spacing:.2px}.certificate-card h3{font-size:18px;min-height:47px;line-height:1.45;margin-top:7px}.certificate-more{font-size:12px;color:#9c476a;line-height:1.6;gap:5px}.certificate-card>p{font-size:13px;color:#6f5965;line-height:1.8}.learning-note p{font-size:13px;color:#795264}.learning-note strong{color:#734158}.media-note{font-size:12px;color:#805569}.award-copy .micro{font-size:10px!important;line-height:1.6;color:#805569}.award-copy h3{font-size:18px;line-height:1.45}.award-copy p{font-size:13px;color:#6f5965;line-height:1.8}.achievement-preview{font-size:11px}.scholarship{font-size:13px;color:#795264;line-height:1.8}.scholarship strong{color:#75445a}.about .lead{font-size:21px;color:#654556}.about p:not(.lead){font-size:16px;line-height:1.95;color:#6f5965}.education{font-size:14px;color:#795264}.contact p{font-size:15px;color:#795264;line-height:1.8}.contact .eyebrow{font-size:10px!important}.footer-note>span{color:#9a5d77}footer{font-size:12px;color:#805569}.jp-vertical{font-size:14px;color:#a66b85}.repository-link{white-space:nowrap}.link-pending{background:#f6edf1!important;color:#785c69!important;border:1px dashed #d8bdc9!important;box-shadow:none!important;cursor:not-allowed;transform:none!important;font-weight:400}.link-pending:disabled{opacity:1}.project-intro-links{gap:11px;max-width:100%;scroll-margin-top:110px}.project-intro-links .button{font-size:13px;min-height:46px;gap:12px}.project-summary{font-size:18px;color:#6d5360}.project-breadcrumb{font-size:13px;color:#805569}.project-breadcrumb .jp{font-size:12px!important}.project-facts{grid-template-columns:1fr 1fr}.project-facts strong{font-size:15px;color:#664857;line-height:1.8}.project-reading p{font-size:17px;color:#6a505d;line-height:1.95}.project-reading h3{font-size:24px}.project-sidebar dt{font-size:11px;color:#805569}.project-sidebar dd{font-size:14px;color:#6d5061;line-height:1.9}.sidebar-link{font-size:14px;color:#9d476b;line-height:1.8}.media-topline .micro{font-size:10px!important}.media-type{font-size:10px;color:#805569}.media-footnote,.media-actions>p,.embed-status{font-size:12px;color:#805569}.media-actions a,.media-actions button{font-size:13px;color:#9a4265;min-height:36px}.launch-description{font-size:14px;color:#89546d}.gallery-counter{font-size:14px;color:#805569}.gallery-slide figcaption{font-size:15px;color:#684759;line-height:1.8}.gallery-slide figcaption>span{font-size:12px;color:#805569}.gallery-expand>span{font-size:12px}.gallery-expand{padding:9px 14px;min-height:40px}.gallery-thumbnails span{font-size:13px;color:#795264;line-height:1.7}.gallery-note{font-size:13px;color:#805569}.project-pagination .micro{font-size:11px!important}.detail-contact p{font-size:15px;color:#795264;line-height:1.8}.detail-contact .eyebrow{font-size:10px!important}.lightbox-toolbar,.lightbox-close{font-size:13px}.lightbox-caption{font-size:15px}.lightbox-close{min-height:40px}.project-main .project-intro{padding-bottom:25px}
/* Prominent stack cards appear before the large project media. */
.technology-spotlight{padding:24px 27px 27px;background:linear-gradient(115deg,#fff0f5,#ffe8f0);border:1px solid #efbfd1;border-radius:16px;margin:0 0 30px;position:relative;overflow:hidden}.technology-spotlight:after{content:'♡';position:absolute;right:26px;top:14px;color:#e8a8bf;font-family:Caveat,cursive;font-size:65px;transform:rotate(12deg);opacity:.5;pointer-events:none}.stack-section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:21px;position:relative;z-index:1}.stack-section-heading .eyebrow{margin-bottom:8px}.stack-section-heading h2{font-size:28px}.stack-section-heading>a{font-size:13px;color:#974666;margin-bottom:3px;padding:8px 10px;border-radius:20px;background:#ffffff8f}.stack-hero-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px;position:relative;z-index:1}.stack-hero-card{display:flex;align-items:center;gap:17px;padding:21px;background:#fff;border:1px solid #efd4df;border-radius:11px;position:relative;box-shadow:0 8px 19px #cf719417;transition:transform .25s,box-shadow .25s,border-color .25s;animation-delay:calc(var(--tech-order,0)*70ms)}.stack-hero-card:hover{transform:translateY(-5px);box-shadow:0 13px 24px #cf71942b;border-color:#de91ae}.tech-icon-wrap{width:60px;height:60px;display:grid;place-items:center;border-radius:14px;background:#fff3f7;border:1px solid #fae1eb;flex-shrink:0;transition:transform .3s}.tech-icon-wrap>img{object-fit:contain;width:38px;height:38px}.tech-lettermark{font-family:Outfit,Arial,sans-serif;font-size:24px;color:#ac4c74}.stack-hero-card:hover .tech-icon-wrap{transform:rotate(-6deg) scale(1.04)}.stack-hero-card .micro{font-size:10px!important;display:block;margin-bottom:4px;color:#8b5770}.stack-hero-card strong{font-family:Outfit,Arial,sans-serif;font-size:23px;letter-spacing:-.5px;line-height:1.3;font-weight:600;color:#46303d}.tech-card-heart{position:absolute;right:10px;top:8px;color:#e8b4c8;font-family:Georgia,serif;font-size:19px;transition:transform .3s}.stack-hero-card:hover .tech-card-heart{transform:rotate(15deg) scale(1.15)}
/* Interaction additions stay independent of the two carousel implementations. */
.menu-toggle{display:none}.reading-progress{position:absolute;bottom:-1px;left:0;width:100%;height:3px;pointer-events:none;background:transparent}.reading-progress>span{display:block;width:100%;height:100%;background:linear-gradient(90deg,#f4a7c0,#cb426c);transform:scaleX(0);transform-origin:left}.back-to-top{position:fixed;bottom:22px;right:23px;z-index:55;display:flex;align-items:center;gap:7px;min-width:46px;min-height:46px;border:1px solid #e7b7ca;border-radius:24px;padding:11px 16px;background:#fffdfdf5;color:#a14469;box-shadow:0 7px 22px #9b526e24;font-size:13px;transition:transform .2s,box-shadow .2s}.back-to-top:hover{transform:translateY(-4px);box-shadow:0 12px 25px #9b526e33}.back-to-top>span{font-size:18px;line-height:1}.in-view{animation:soft-entrance .65s cubic-bezier(.2,.7,.2,1) backwards}.project-intro h1{animation:soft-entrance .65s ease-out backwards}.technology-spotlight:hover:after{transform:rotate(-5deg);transition:transform .5s}.project-link>span,.project-pagination strong>span{transition:transform .2s}.project-link:hover>span,.project-pagination a:hover strong>span{transform:translateX(4px)}.project-intro-links .button:hover{transform:translateY(-3px)}.portrait-area>.doodle-heart{animation:heart-sway 7s ease-in-out infinite;transform-origin:50% 70%}.gallery-slide:not([hidden])>img{animation:image-appear .32s ease-out backwards}@keyframes soft-entrance{from{opacity:0;transform:translateY(13px)}to{opacity:1;transform:translateY(0)}}@keyframes image-appear{from{opacity:.35;transform:scale(.992)}to{opacity:1;transform:scale(1)}}@keyframes heart-sway{0%,100%{transform:rotate(10deg) translateY(0)}50%{transform:rotate(16deg) translateY(-5px)}}
@media(max-width:1100px){.nav-links{gap:17px;font-size:13px}.hero-copy>p{font-size:16px}.intro-note{font-size:12px}.section-heading>p{font-size:14px}.expertise-grid p{font-size:13px}.experience-text h3{font-size:23px}.experience-card{padding:25px;gap:24px}.experience-text>p,.experience-text ul{font-size:14px}.job-meta{font-size:11px}.timeline-row{grid-template-columns:98px 1fr;gap:24px}.timeline-year{font-size:12px}.certificates .cert-grid{grid-template-columns:1fr}.certificate-card summary{display:grid;grid-template-columns:100px 1fr;gap:0 14px;align-items:start}.certificate-preview{grid-row:1/4;height:112px}.certificate-card .micro{margin-top:6px;min-height:0}.certificate-card h3{min-height:0;margin-top:8px;font-size:19px}.certificate-more{margin-top:10px;font-size:12px}.award-copy{display:block}.award-icon{display:block;margin-bottom:7px}.award-copy h3{font-size:18px}.award-copy p{font-size:13px}.cloud-grid p{font-size:14px;min-height:0}.cloud-grid h4{min-height:0}.project-intro{gap:25px}.project-intro h1{font-size:56px}.project-intro-links .button{font-size:12px;padding:13px 18px}.project-summary{font-size:17px}.stack-hero-card{padding:18px;gap:12px}.tech-icon-wrap{width:49px;height:49px}.tech-icon-wrap>img{width:32px;height:32px}.stack-hero-card strong{font-size:21px}.project-reading p{font-size:16px}.project-sidebar dd{font-size:13px}.sidebar-link{font-size:13px}.project-card-copy>p{font-size:14px}.project-card-copy>.micro{font-size:10px!important}}
@media(max-width:760px){body{font-size:15px}.wrap{width:calc(100% - 40px)}.eyebrow{font-size:10px!important;letter-spacing:1px}.micro{font-size:10px!important;letter-spacing:.6px}.jp,.eyebrow .jp{font-size:11px!important}.button{font-size:13px;min-height:44px;padding:13px 21px}.nav{height:75px;gap:12px}.brand{font-size:21px}.brand .brand-heart{font-size:34px}.nav-cta{font-size:0;min-width:36px;width:36px;height:36px;min-height:36px;padding:0;flex-shrink:0}.nav-cta:after{font-size:18px}.menu-toggle{display:inline-flex;gap:9px;align-items:center;justify-content:center;min-height:42px;padding:7px 12px;border-radius:22px;border:1px solid #efd2de;background:#fff7fa;color:#8b4964;font-size:13px;margin-left:auto}.menu-toggle svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.8}.has-nav-menu .nav-links{display:none;position:absolute;top:calc(100% + 8px);left:20px;right:20px;z-index:45;background:#fffdfd;border:1px solid #edcbd9;border-radius:13px;padding:12px;box-shadow:0 13px 30px #a65a7721;gap:2px;font-size:15px}.has-nav-menu .nav-links.is-open{display:flex;flex-direction:column}.has-nav-menu .nav-links a{display:block!important;padding:12px 15px;line-height:1.5;border-radius:8px}.has-nav-menu .nav-links a:hover{background:#fff0f5}.has-nav-menu .nav-links a.active{background:#fff1f6}.has-nav-menu .nav-links a:after{display:none}.hero-copy>p{font-size:15px;line-height:1.9}.hero h2{font-size:24px}.intro-note{font-size:12px;flex-wrap:wrap;gap:8px 14px;line-height:1.8;padding:15px}.intro-note>span+span{padding-left:14px}.hero-actions{gap:11px;flex-wrap:wrap}.section-heading>p{font-size:14px;line-height:1.85}.logo-tile{padding:20px 8px 16px;min-height:116px}.logo-tile img{width:34px;height:34px}.logo-tile span{font-size:12px}.expertise-grid article{grid-template-columns:1fr;gap:5px}.expertise-grid article>.micro{grid-column:auto}.expertise-grid h3{font-size:19px;margin-top:8px}.expertise-grid p{font-size:14px;line-height:1.9;margin-top:5px}.project-card h3{font-size:24px}.project-card-copy>p{font-size:14px;min-height:0}.project-card-copy>.micro{font-size:10px!important}.tags span{font-size:11px;padding:4px 9px}.project-count{font-size:12px}.project-filters button{font-size:12px;min-height:42px;padding:9px 16px}.gallery-bottom{flex-wrap:wrap;gap:16px}.show-projects{font-size:12px;padding:11px 16px}.cloud-experience{padding:23px 20px}.cloud-title .eyebrow{font-size:9px!important}.cloud-title h3{font-size:22px;line-height:1.4}.cloud-grid{grid-template-columns:1fr;gap:20px}.cloud-grid h4{font-size:18px;margin:10px 0}.cloud-grid p{font-size:14px;line-height:1.85;min-height:0}.service-label{font-size:11px;line-height:1.8}.cloud-grid .micro{font-size:10px!important}.showcase-toolbar{gap:12px;align-items:flex-start;flex-wrap:wrap}.showcase-toolbar>.micro{font-size:9px!important}.carousel-status{font-size:11px}.showcase-slide{width:290px;max-width:85%}.showcase-stage{height:565px}.slide-copy{padding:20px 20px 16px}.slide-copy>p{font-size:13px;min-height:54px;line-height:1.8}.slide-copy>.eyebrow{font-size:9px!important}.slide-copy .tags span{font-size:10px;padding:4px 7px}.slide-copy .project-link{font-size:12px}.showcase-hint{font-size:12px}.experience-text h3{font-size:23px}.experience-card{padding:24px 21px;gap:23px;grid-template-columns:1fr}.experience-text>p,.experience-text ul{font-size:14px;line-height:1.9}.job-meta{font-size:11px;gap:8px;line-height:1.8}.timeline-row{grid-template-columns:1fr;padding-left:20px;gap:12px}.timeline-year{font-size:12px}.experience-text .tags span{font-size:11px}.activity-frame .photo-placeholder{font-size:12px;height:175px;min-height:0}.earlier{font-size:13px;line-height:1.9;margin-left:20px}.certificates .cert-grid{gap:15px}.certificate-card{padding:11px}.certificate-card summary{grid-template-columns:100px 1fr;gap:0 14px}.certificate-preview{height:118px;font-size:10px}.certificate-card .micro{font-size:10px!important;line-height:1.65;margin-top:6px;color:#805569}.certificate-card h3{font-size:18px;min-height:0;margin-top:8px}.certificate-more{font-size:12px;line-height:1.7;margin-top:11px}.certificate-card>p{font-size:13px;padding:12px 4px 5px;line-height:1.9}.learning-note p{font-size:13px;line-height:1.9}.media-note{font-size:12px}.achievement-grid{grid-template-columns:1fr 1fr;gap:13px}.achievement-preview{height:105px;font-size:10px}.award-copy{padding:15px 4px 8px;display:block}.award-copy .micro{font-size:9px!important;line-height:1.6}.award-copy h3{font-size:18px;line-height:1.4}.award-copy p{font-size:13px;line-height:1.8}.scholarship{font-size:13px;line-height:1.9}.about .lead{font-size:20px}.about p:not(.lead){font-size:15px;line-height:1.95}.education{font-size:13px}.contact p{font-size:14px;line-height:1.85}.contact-ribbon{top:-18px}.contact .eyebrow{font-size:10px!important}.footer-note>span{font-size:13px}footer{font-size:12px;line-height:1.8;gap:18px}footer>span:nth-child(2){margin-left:0}.project-detail .nav{gap:12px}.project-detail .brand{font-size:20px}.project-detail .brand-heart{font-size:32px}.project-detail .nav-links{font-size:15px}.project-intro .eyebrow{font-size:10px!important}.project-intro h1{font-size:43px}.project-summary{font-size:16px;line-height:1.85}.project-breadcrumb{font-size:12px}.project-intro-links{gap:10px;margin-top:23px;flex-direction:column;align-items:stretch}.project-intro-links .button{font-size:13px;min-height:45px;padding:13px 19px;justify-content:center}.technology-spotlight{padding:22px 20px;margin-bottom:24px;border-radius:13px}.stack-section-heading{display:block;margin-bottom:19px}.stack-section-heading h2{font-size:27px}.stack-section-heading>a{display:inline-block;font-size:12px;margin:12px 0 0;padding:5px 0;background:transparent}.technology-spotlight:after{font-size:55px;right:20px;top:34px}.stack-hero-grid{grid-template-columns:1fr;gap:12px}.stack-hero-card{padding:17px 19px;gap:16px;min-height:91px}.tech-icon-wrap{width:51px;height:51px}.tech-icon-wrap>img{width:33px;height:33px}.stack-hero-card strong{font-size:22px}.stack-hero-card .micro{font-size:10px!important}.project-facts strong{font-size:14px}.project-reading p{font-size:16px;line-height:1.95}.project-reading h3{font-size:22px}.project-sidebar dd{font-size:13px}.project-sidebar dt{font-size:10px}.sidebar-link{font-size:13px}.project-sidebar dl{display:block}.project-sidebar{padding:25px}.media-topline .micro{font-size:9px!important}.media-type{font-size:9px;letter-spacing:.7px}.media-topline{gap:10px}.media-footnote,.media-actions>p,.embed-status{font-size:12px;line-height:1.8}.media-actions a,.media-actions button{font-size:12px;min-height:35px}.launch-description{font-size:12px;line-height:1.8}.media-launch>strong{font-size:17px}.gallery-counter{font-size:12px}.screenshot-gallery .eyebrow{font-size:10px!important}.screenshot-gallery .eyebrow .jp{font-size:10px!important}.gallery-slide figcaption{font-size:13px;line-height:1.8;flex-wrap:wrap;gap:5px 12px;padding:12px}.gallery-slide figcaption>span{font-size:11px}.gallery-expand>span{font-size:10px}.gallery-expand{min-height:33px;padding:6px 9px}.gallery-thumbnails{grid-template-columns:repeat(2,1fr);gap:12px}.gallery-thumbnails img{height:74px}.gallery-thumbnails span{font-size:12px;line-height:1.7;min-height:0;padding:8px}.gallery-note{font-size:12px;line-height:1.85}.project-pagination .micro{font-size:10px!important}.project-pagination strong{font-size:20px;line-height:1.4}.project-pagination{gap:18px}.project-pagination>a+a{padding-left:18px}.detail-contact p{font-size:14px;line-height:1.85}.detail-contact>.button{font-size:13px}.lightbox-toolbar,.lightbox-close{font-size:12px}.lightbox-caption{font-size:13px}.back-to-top{right:16px;bottom:16px;min-width:43px;min-height:43px;padding:10px 12px;font-size:12px}}
@media(max-width:390px){.brand,.project-detail .brand{font-size:19px}.menu-toggle{font-size:12px;padding:7px 11px}.intro-note{display:flex;flex-direction:column;align-items:flex-start;gap:5px}.intro-note>span+span{border:0;padding-left:0}.certificate-card summary{grid-template-columns:88px 1fr;gap:0 12px}.certificate-preview{height:118px}.achievement-grid{grid-template-columns:1fr}.achievement-preview{height:145px}.award-copy{display:flex;gap:12px}.award-icon{margin-bottom:0}.project-intro h1{font-size:40px}.project-pagination strong{font-size:18px}.media-type{font-size:8px}.eyebrow .jp{padding-left:10px;margin-left:9px}.screenshot-gallery .section-heading{gap:12px;align-items:flex-start}.screenshot-gallery h2{font-size:29px}}
@media(prefers-reduced-motion:reduce){.in-view,.project-intro h1,.gallery-slide:not([hidden])>img,.portrait-area>.doodle-heart{animation:none!important}.stack-hero-card:hover,.stack-hero-card:hover .tech-icon-wrap,.project-intro-links .button:hover{transform:none}.reading-progress>span{transition:none}}
