:root{--bg:#090e0d;--ink:#e9eee5;--muted:#97aaa1;--acid:#a2f3c7;--coral:#ff9279;--line:#a2f3c728}body{background:var(--bg)}html{scroll-padding-top:100px}button{border-radius:0}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--acid);outline-offset:6px}.mono{font-size:10px;line-height:1.6;letter-spacing:.09em}.skip-link{position:fixed;top:-80px;left:20px;z-index:100;background:var(--acid);color:var(--bg);padding:15px}.skip-link:focus{top:15px}.reading-progress{height:2px;position:fixed;top:0;left:0;width:100%;background:var(--acid);transform:scaleX(0);transform-origin:left;z-index:60}.cv-header{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:36px;height:90px;padding:0 5.5vw;background:#090e0df0;backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}.cv-brand{font-size:25px;letter-spacing:-.06em;white-space:nowrap}.cv-brand>span:first-child{color:var(--coral)}.brand-path{color:var(--muted);font-family:Plex,monospace;font-size:12px;letter-spacing:0;margin-left:15px}.cv-header nav{display:flex;gap:32px;margin-left:auto;font:10px Plex,monospace;text-transform:uppercase;letter-spacing:.08em}.cv-header nav a:hover,.cv-footer a:hover{color:var(--acid)}.cv-header nav span{color:var(--coral);margin-left:5px}.motion-control{font:9px Plex,monospace;color:var(--muted);padding:8px 0 8px 24px;border-left:1px solid var(--line);min-width:109px}.cv-hero{padding:32px 5.5vw 0;overflow:hidden;position:relative;background:radial-gradient(ellipse at 80% 40%,#18362b29,transparent 55%)}.hero-overline{display:flex;justify-content:space-between;gap:20px;color:var(--muted)}.hero-overline>span:first-child{color:var(--acid)}.status-light{width:5px;height:5px;display:inline-block;border-radius:50%;background:var(--acid);box-shadow:0 0 10px #a2f3c770;margin-right:8px}.hero-layout{display:grid;grid-template-columns:1fr 1fr;gap:3vw;align-items:center;padding:70px 0 65px}.hero-index{color:var(--muted);margin-bottom:22px}.hero-copy h1{font-size:clamp(86px,9.5vw,150px);line-height:.85;letter-spacing:-.075em;margin-bottom:28px}.hero-copy h1>span{color:var(--acid)}.name-dot{color:var(--coral)}.hero-role{font-size:clamp(20px,2vw,30px);letter-spacing:-.03em;margin-bottom:22px}.hero-description{font-size:16px;color:var(--muted);line-height:1.65;margin-bottom:30px}.hero-actions{display:flex;align-items:center;gap:27px;flex-wrap:wrap}.primary-action{background:var(--acid);color:#0a1510;padding:17px 22px;font-size:12px;display:inline-flex;gap:40px;align-items:center;transition:background .2s}.primary-action:hover{background:#dbffea}.primary-action span{font-size:19px}.print-action{font:10px Plex,monospace;color:var(--muted);padding:12px 0}.print-action:hover{color:var(--acid)}.system-portrait{position:relative;min-width:0;color:#a2f3c72b}.portrait-top,.portrait-bottom{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:8px}.portrait-top{padding-bottom:14px;border-bottom:1px solid var(--line)}.portrait-bottom{padding-top:14px;border-top:1px solid var(--line)}.orbit-map{width:100%;height:auto;display:block;overflow:visible}.orbit-ring{transform-origin:300px 275px;animation:orbit 70s linear infinite;opacity:.7}.map-node{fill:var(--acid)}.hero-foot{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:23px 0;border-top:1px solid var(--line);color:var(--muted);font-size:8px}.hero-foot a{color:var(--ink)}.hero-foot a span{color:var(--coral);margin-left:24px}.cv-section{padding:115px 7vw;border-top:1px solid var(--line);display:grid;grid-template-columns:.9fr 1.1fr;gap:6vw}.section-code{display:block;color:var(--muted);margin-bottom:30px}.section-heading h2{font-size:clamp(40px,4.4vw,66px);line-height:1.04;letter-spacing:-.06em;margin-bottom:30px}.section-heading h2 em{font-style:normal;color:var(--acid)}.section-heading>p{font-size:15px;color:var(--muted);max-width:310px}.profile-body p{font-size:15px;color:var(--muted);max-width:600px}.profile-body .lead{font-size:23px;line-height:1.5;letter-spacing:-.025em;color:var(--ink);margin-top:44px;margin-bottom:28px}.profile-facts{display:flex;gap:50px;margin-top:40px;padding-top:25px;border-top:1px solid var(--line);color:var(--muted);font-size:8px}.profile-facts b{display:block;color:var(--ink);font-family:Space,Arial,sans-serif;font-size:14px;letter-spacing:0;font-weight:400;text-transform:none;margin-top:7px}.skills-section{display:block;background:#0b1410}.wide-heading{margin-bottom:55px}.wide-heading>p{max-width:none}.skills-layout{display:grid;grid-template-columns:1fr 1fr;gap:8vw}.skill-selectors{border-top:1px solid var(--line)}.skill-selector{width:100%;display:flex;align-items:center;text-align:left;gap:26px;padding:26px 8px;border-bottom:1px solid var(--line);color:var(--muted);transition:color .2s,background .2s}.skill-selector>.mono{font-size:10px}.skill-selector>span:nth-child(2){font-size:21px;letter-spacing:-.03em;flex:1}.skill-selector small{font-size:12px;display:block;color:var(--muted);margin-top:8px;letter-spacing:0}.skill-selector>span:last-child{font-size:23px}.skill-selector.active{color:var(--acid);background:linear-gradient(90deg,#a2f3c709,transparent)}.skill-selector.active>span:last-child{color:var(--coral)}.skill-selector:hover{color:var(--ink)}.skill-focus{position:relative;padding-top:15px}.focus-mark{position:absolute;right:0;top:0;color:#a2f3c71c;font-size:84px;line-height:1;letter-spacing:-.12em}.focus-kicker{color:var(--acid);font-size:9px;position:relative}.focus-title{font-size:34px;line-height:1.2;letter-spacing:-.045em;position:relative;margin:25px 0 20px;max-width:450px}.focus-copy{color:var(--muted);font-size:15px;max-width:470px;min-height:100px}.skill-tags{display:flex;flex-wrap:wrap;gap:7px;list-style:none;padding:0;margin:25px 0 0}.skill-tags li{font:9px Plex,monospace;letter-spacing:.015em;border:1px solid var(--line);padding:7px 10px;color:var(--muted);line-height:1.6}.focus-source{color:var(--muted);font-size:8px;margin-top:30px;line-height:1.9}.experience-section{grid-template-columns:.8fr 1.2fr;gap:7vw}.experience-heading{align-self:start;position:sticky;top:135px}.timeline-hint{display:block;margin-top:60px;color:var(--muted);font-size:8px}.timeline{border-left:1px solid var(--line);padding-left:35px}.station{position:relative;border-bottom:1px solid var(--line);padding:0 0 30px;margin-bottom:38px}.station:last-child{margin-bottom:0}.station:before{content:'';position:absolute;top:5px;left:-39px;background:var(--bg);width:7px;height:7px;border:1px solid #7c9d89}.station.current:before{background:var(--acid);border-color:var(--acid);box-shadow:0 0 12px #a2f3c755}.station-date{font-size:9px;color:var(--muted);margin-bottom:17px}.station.current .station-date{color:var(--acid)}.station-date .status-light{display:none}summary{list-style:none;cursor:pointer;position:relative;padding-right:35px}summary::-webkit-details-marker{display:none}.station-employer{display:block;font-size:9px;color:var(--muted);margin-bottom:10px;line-height:1.7}.station h3{font-size:26px;letter-spacing:-.035em;line-height:1.2;margin-bottom:12px}.station summary p{font-size:13px;color:var(--muted);margin-bottom:0}.expand-icon{position:absolute;right:3px;top:27px;font-size:25px;color:var(--acid);font-weight:400;transition:transform .25s}details[open] .expand-icon{transform:rotate(45deg)}summary:hover h3{color:var(--acid)}.station-content{padding-top:22px}.station-content>ul:first-child{padding-left:16px;margin:0;color:var(--muted)}.station-content>ul:first-child li{font-size:13px;line-height:1.75;padding-left:6px;margin-bottom:10px}.station-content li::marker{color:#a2f3c75e}.projects-section{display:block;background:radial-gradient(ellipse at 0 30%,#17312626,transparent 50%)}.project-row{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center;border-top:1px solid var(--line);padding:55px 0}.project-row:last-child{padding-bottom:0}.project-copy .section-code{font-size:8px;margin-bottom:20px}.project-copy h3{font-size:33px;line-height:1.15;letter-spacing:-.04em;margin-bottom:24px}.project-copy p{font-size:14px;color:var(--muted);max-width:470px}.project-visual{aspect-ratio:1.25;position:relative;display:grid;place-items:center;overflow:hidden;background:linear-gradient(#a2f3c704 1px,transparent 1px),linear-gradient(90deg,#a2f3c704 1px,transparent 1px);background-size:28px 28px;border:1px solid var(--line)}.visual-caption{font-size:8px;color:var(--muted);position:absolute;bottom:22px;left:22px;right:22px}.target-rings{position:relative;display:grid;place-items:center;width:66%;aspect-ratio:1}.target-rings i{position:absolute;width:100%;height:100%;border:1px solid #a2f3c73b;border-radius:50%}.target-rings i:nth-child(2){width:75%;height:75%}.target-rings i:nth-child(3){width:50%;height:50%}.target-rings i:nth-child(4){width:25%;height:25%}.target-cross{width:120%;height:1px;background:#a2f3c726;position:absolute}.target-cross:after{content:'';position:absolute;left:50%;height:320px;max-height:30vw;top:50%;width:1px;background:#a2f3c726;transform:translateY(-50%)}.shot{width:5px;height:5px;background:var(--coral);position:absolute;border-radius:50%;box-shadow:0 0 15px #ff927933}.shot.one{top:44%;left:52%}.shot.two{top:55%;left:46%}.shot.three{top:48%;left:43%}.lab-visual{padding:25px;display:flex;flex-direction:column;justify-content:center}.cluster-top{position:absolute;top:22px;left:22px;color:var(--muted);font-size:9px}.cluster-node{border:1px solid #a2f3c780;background:#0c1912;padding:20px 35px;text-align:center;color:var(--acid);font-size:26px}.cluster-node span{display:block;font-size:7px;letter-spacing:.1em}.cluster-branches{display:flex;position:relative;gap:12px;margin-top:48px;width:100%;justify-content:center}.cluster-branches:before{content:'';position:absolute;top:-24px;left:15%;right:15%;height:24px;border:1px solid #a2f3c73b;border-bottom:0}.cluster-node:after{content:'';height:24px;position:absolute;top:50%;left:50%;width:1px;background:#a2f3c73b}.cluster-branches span{font:7px Plex,monospace;border:1px solid var(--line);padding:14px 10px;color:var(--muted);background:var(--bg);z-index:1;min-width:0;flex:1;text-align:center}.learning-body{padding-top:8px}.minor-heading{font-size:9px;font-weight:400;color:var(--muted);margin-bottom:25px}.certificate{display:flex;align-items:center;gap:25px;padding:25px 0;border-top:1px solid var(--line)}.certificate-symbol{color:var(--acid);font-size:55px;width:50px;text-align:center}.azure-symbol{color:var(--coral)}.credential-code{color:var(--muted);font-size:8px}.certificate h4{font-size:20px;font-weight:400;letter-spacing:-.02em;margin:7px 0}.certificate p{font-size:13px;color:var(--muted);margin-bottom:0}.education-heading{margin-top:55px}.education-list{list-style:none;padding:0;margin:0}.education-list li{border-top:1px solid var(--line);padding:23px 0}.education-date{font-size:8px;color:var(--muted)}.education-list h4{font-size:19px;line-height:1.35;letter-spacing:-.025em;margin:9px 0}.education-list p{color:var(--muted);font-size:13px;margin-bottom:0}.education-list .education-award{font-size:12px;margin-top:14px;max-width:400px}.languages{border-top:1px solid var(--line);padding-top:30px;margin-top:20px}.languages>p{font-size:15px;display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid #a2f3c714;padding-bottom:12px;margin-bottom:12px}.languages>p>span{font-size:12px;color:var(--muted)}.contact-section{padding:45px 7vw 0;background:#a2f3c7;color:#11241a}.contact-coordinates{display:flex;justify-content:space-between;gap:20px;font-size:9px;opacity:.65}.contact-section h2{font-size:clamp(45px,6.7vw,100px);line-height:1.04;margin:80px 0 30px;letter-spacing:-.065em}.contact-section h2 em{font-style:normal;color:#42715a}.contact-section>p{font-size:15px;max-width:500px}.contact-link{display:inline-flex;align-items:center;gap:45px;font-size:clamp(17px,2.3vw,34px);letter-spacing:-.04em;border-bottom:1px solid #11241a88;padding:15px 0 12px;margin-bottom:80px;overflow-wrap:anywhere}.contact-link span{font-size:30px}.contact-link:hover{color:#42715a}.contact-bottom{display:flex;justify-content:space-between;gap:30px;border-top:1px solid #11241a44;padding:24px 0;font-size:8px}.contact-section a:focus-visible{outline-color:#11241a}.cv-footer{padding:28px 5.5vw;display:flex;align-items:center;justify-content:space-between;gap:25px;color:var(--muted);font-size:8px}.cv-footer .print-action{font-size:8px}.cv-footer a{color:var(--ink)}html.no-motion{scroll-behavior:auto}.no-motion .orbit-ring{animation:none}.no-motion *, .no-motion *:before,.no-motion *:after{scroll-behavior:auto!important;transition:none!important}.noscript-skills{font-size:14px;color:var(--muted);margin-top:30px}[hidden]{display:none!important}@keyframes orbit{to{transform:rotate(360deg)}}
@media(min-width:1600px){.cv-hero,.cv-header,.cv-section,.contact-section,.cv-footer{padding-left:max(7vw,calc((100vw - 1440px)/2));padding-right:max(7vw,calc((100vw - 1440px)/2))}}
@media(max-width:1000px){.cv-header{gap:20px}.cv-header nav{gap:20px}.hero-layout{padding:55px 0}.hero-copy h1{font-size:11vw}.hero-description{font-size:14px}.cv-section{padding:90px 6vw;gap:5vw}.section-heading h2{font-size:43px}.profile-body .lead{font-size:20px}.skills-layout{gap:5vw}.skill-selector{gap:15px}.skill-selector>span:nth-child(2){font-size:18px}.focus-title{font-size:29px}.project-row{gap:5vw}.project-copy h3{font-size:28px}.cluster-branches{gap:7px}.cluster-branches span{padding:12px 5px;font-size:6px}.experience-heading{top:120px}.station h3{font-size:23px}.portrait-top,.portrait-bottom{font-size:6px}}
@media(max-width:700px){html{scroll-padding-top:85px}.cv-header{height:75px;padding:0 6vw;gap:18px;flex-wrap:wrap;backdrop-filter:none}.cv-brand{font-size:21px}.brand-path{font-size:10px;margin-left:6px}.cv-header nav{gap:14px;font-size:8px}.cv-header nav a:first-child{display:none}.motion-control{position:fixed;right:14px;bottom:14px;background:#0b1713f5;border:1px solid #a2f3c744;padding:12px;font-size:8px;min-width:0;color:var(--ink);z-index:45;backdrop-filter:blur(8px)}.cv-hero{padding:25px 6vw 0}.hero-overline{font-size:7px;letter-spacing:.04em}.hero-overline>span:last-child{display:none}.hero-layout{grid-template-columns:1fr;padding:42px 0 30px;gap:40px}.hero-index{font-size:8px;margin-bottom:20px}.hero-copy h1{font-size:clamp(85px,21vw,145px);line-height:.87;margin-bottom:22px}.hero-role{font-size:23px;margin-bottom:18px}.hero-description{font-size:15px;line-height:1.6}.hero-actions{gap:24px}.primary-action{font-size:11px;padding:14px 17px;gap:35px}.print-action{font-size:9px}.system-portrait{max-width:450px;width:100%;margin:auto}.portrait-top,.portrait-bottom{font-size:7px}.orbit-map{margin:0}.hero-foot{font-size:7px;align-items:start;gap:20px;line-height:1.8}.hero-foot>span{max-width:170px}.hero-foot a{white-space:nowrap}.hero-foot a span{margin-left:10px}.cv-section{padding:70px 7vw;display:block}.section-heading h2{font-size:clamp(36px,9.5vw,54px)}.section-code{font-size:8px;margin-bottom:24px}.section-heading>p{font-size:14px}.profile-body .lead{margin-top:35px;font-size:21px}.profile-body p{font-size:14px}.profile-facts{gap:35px;margin-top:30px}.skills-layout{grid-template-columns:1fr;gap:40px}.wide-heading{margin-bottom:35px}.skill-selector{padding:20px 4px;gap:20px}.skill-selector>span:nth-child(2){font-size:19px}.skill-selector small{font-size:11px}.skill-focus{border-top:1px solid var(--line);padding-top:28px;min-height:350px}.focus-mark{top:18px;font-size:66px}.focus-title{font-size:30px;margin-top:20px}.focus-copy{font-size:14px;min-height:0}.skill-tags{margin-top:20px}.skill-tags li{font-size:8px;padding:6px 9px}.experience-heading{position:static;margin-bottom:42px}.timeline-hint{margin-top:30px}.timeline{padding-left:22px;margin-left:4px}.station:before{left:-26px}.station{padding-bottom:25px;margin-bottom:30px}.station h3{font-size:22px}.station summary p{font-size:12px}.station-employer,.station-date{font-size:8px}.station-content>ul:first-child li{font-size:13px}.project-row{grid-template-columns:1fr;gap:30px;padding:35px 0 45px}.project-visual{aspect-ratio:1.2;max-width:500px;width:100%}.project-copy h3{font-size:30px}.target-cross:after{height:245px;max-height:none}.cluster-branches span{font-size:7px;padding:14px 8px}.learning-body{padding-top:25px}.minor-heading{font-size:8px}.certificate h4{font-size:18px}.certificate{gap:17px}.education-list h4{font-size:18px}.education-list p{font-size:12px}.contact-section{padding:30px 7vw 0}.contact-coordinates{font-size:7px}.contact-coordinates>span:last-child{display:none}.contact-section h2{font-size:clamp(40px,10vw,64px);margin-top:50px}.contact-section>p{font-size:14px}.contact-link{font-size:clamp(17px,4.4vw,23px);gap:15px;margin-bottom:50px;max-width:100%}.contact-link span{font-size:23px}.contact-bottom{font-size:6px;gap:20px}.contact-bottom>span{max-width:175px}.contact-bottom>a{white-space:nowrap}.cv-footer{padding:25px 7vw 75px;flex-wrap:wrap;row-gap:12px;font-size:7px}.cv-footer>span{margin-left:auto}.cv-footer>.print-action{width:100%;text-align:left}}
@media(prefers-reduced-motion:reduce){.orbit-ring{animation:none}html{scroll-behavior:auto}}
@media print{*{animation:none!important;transition:none!important;box-shadow:none!important;backdrop-filter:none!important}html{scroll-behavior:auto}body{background:#fff!important;color:#172c23!important;font-size:10pt}.cv-header,.reading-progress,.hero-overline,.hero-actions,.hero-foot,.system-portrait,.skill-selectors,.skills-section,.motion-control,.contact-coordinates,.contact-bottom,.cv-footer,.skip-link,.expand-icon,.timeline-hint{display:none!important}.cv-hero{padding:0;background:none}.hero-layout{display:block;padding:0}.hero-copy h1{font-size:40pt;line-height:1;letter-spacing:-.04em}.hero-copy h1 br{display:none}.hero-copy h1>span{margin-left:10px;color:#23543d}.name-dot{color:#23543d}.hero-index{display:none}.hero-role{font-size:17pt;margin:0 0 8pt}.hero-description{font-size:10pt;margin-bottom:15pt;line-height:1.5;color:#333}.hero-description br{display:none}.hero-description br:after{content:' '}.cv-section{display:block;padding:18pt 0;border-top:1px solid #bbb}.section-heading{position:static}.section-code{font-size:7pt;color:#555;margin-bottom:8pt}.section-heading h2{font-size:21pt;line-height:1.15;margin-bottom:12pt}.section-heading h2 br{display:none}.section-heading h2 em{color:#23543d}.section-heading>p{display:none}.profile-body .lead,.profile-body p{font-size:10pt;margin:0 0 8pt;max-width:none;color:#333;line-height:1.5}.profile-facts{margin:12pt 0 0;padding-top:10pt;border-color:#ccc}.profile-facts,.profile-facts b{color:#333}.experience-heading{margin:0}.timeline{border:0;padding:0;margin:0}.station{break-inside:avoid;margin:0 0 16pt;padding:0;border:0}.station:before{display:none}.station-date{color:#333!important;font-size:8pt;margin-bottom:5pt}.station-employer{color:#555;font-size:8pt}.station h3{font-size:15pt}.station summary{padding:0}.station summary p{color:#333;font-size:10pt}.station-content{padding-top:7pt}.station-content>ul:first-child{color:#333}.station-content>ul:first-child li{font-size:9pt;line-height:1.5;margin-bottom:4pt}.skill-tags{margin-top:8pt;gap:4pt}.skill-tags li{font-size:7pt;color:#444;border-color:#ccc;padding:3pt 6pt}.project-row{display:block;padding:12pt 0;border-color:#bbb;break-inside:avoid}.project-visual{display:none}.project-copy h3{font-size:16pt}.project-copy h3 br{display:none}.project-copy p{font-size:10pt;color:#333;max-width:none}.learning-body{padding:0}.certificate,.education-list li{padding:10pt 0;break-inside:avoid;border-color:#bbb}.certificate-symbol{font-size:25pt;color:#23543d}.certificate h4,.education-list h4{font-size:12pt}.certificate p,.education-list p,.education-list .education-award{font-size:9pt;color:#333}.credential-code,.education-date,.minor-heading{color:#555}.education-heading{margin-top:16pt}.languages{margin-top:10pt;border-color:#bbb}.languages p{font-size:10pt}.languages p span{color:#333}.contact-section{background:none;padding:18pt 0;color:#172c23;border-top:1px solid #bbb;break-inside:avoid}.contact-section h2{font-size:21pt;margin:0 0 12pt}.contact-section h2 em{color:#23543d}.contact-section>p{font-size:10pt}.contact-link{font-size:13pt;margin:0;border:0;padding:0}.contact-link span{display:none}@page{size:A4;margin:15mm}}

/* Vector icons retain one appearance across mobile emoji fonts. */
.ui-icon{display:inline-flex;width:16px;height:16px;flex:0 0 16px;align-items:center;justify-content:center;vertical-align:middle;line-height:1}
.ui-icon svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.contact-link .ui-icon{width:20px;height:20px;flex-basis:20px}
.timeline-hint .ui-icon{margin-left:5px}
/* Diagram labels are HTML so their type never shrinks with the SVG viewBox. */
.orbit-stage{position:relative;isolation:isolate}
.core-copy{position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;gap:6px;align-items:center;justify-content:center;width:140px;text-align:center;pointer-events:none}
.core-copy strong{font:700 28px/1.1 Space,Arial,sans-serif;letter-spacing:.05em;color:#071b11}
.core-copy>span{font:500 12px/1.4 Plex,monospace;letter-spacing:.08em;color:#173d2a}
.orbit-label{position:absolute;z-index:2;transform:translate(-50%,-50%);font:12px/1.3 Plex,monospace;letter-spacing:.035em;color:#c4dacd;background:#090e0df0;padding:4px 6px;white-space:nowrap;pointer-events:none}
.label-automation{left:26.33%;top:14%}.label-cloud{left:79.67%;top:26%}.label-storage{left:74.33%;top:88%}.label-security{left:19.5%;top:74%}
.system-portrait .portrait-top,.system-portrait .portrait-bottom{font-size:10px;letter-spacing:.03em;color:#b1c7bb}
@media(max-width:700px){.core-copy{width:110px;gap:5px}.core-copy strong{font-size:26px}.core-copy>span{font-size:12px}.orbit-label{font-size:12px}.system-portrait .portrait-top,.system-portrait .portrait-bottom{font-size:10px;gap:10px}}
@media(max-width:360px){.core-copy strong{font-size:24px}.system-portrait .portrait-bottom>span:last-child{display:none}}

/* Solid mint core keeps both labels clear on small screens and in bright light. */
.core-disc{filter:drop-shadow(0 0 14px #a2f3c71f)}
.contact-actions{display:flex;align-items:center;flex-wrap:wrap;gap:20px 40px;margin-bottom:80px}
.contact-actions .contact-link{margin-bottom:0}
.github-link,.project-source{display:inline-flex;align-items:center;gap:12px;min-height:44px;font-size:13px;line-height:1.5;border-bottom:1px solid currentColor;padding:10px 0}
.github-link:hover{color:#28503a}.project-source{margin-top:20px;color:var(--acid)}.project-source:hover{color:var(--ink)}
@media(max-width:700px){.contact-actions{flex-direction:column;align-items:flex-start;gap:12px;margin-bottom:50px}}

.reader-demo{width:78%;display:flex;flex-direction:column;gap:26px;color:var(--acid)}.reader-demo>strong{font-size:clamp(22px,2.6vw,38px);line-height:1.2;letter-spacing:-.035em}.reader-demo>.mono{font-size:9px;color:var(--muted)}.audio-wave{height:54px;display:flex;align-items:center;gap:7px}.audio-wave i{width:5px;height:35%;background:var(--acid)}.audio-wave i:nth-child(3n){height:90%;background:var(--coral)}.audio-wave i:nth-child(3n+1){height:60%}.mahjong-tiles{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;transform:rotate(-8deg)}.mahjong-tiles span{display:grid;place-items:center;width:65px;height:80px;border:1px solid #a2f3c780;border-radius:8px;background:#15271d;color:var(--acid);font:32px/1 serif;box-shadow:3px 5px 0 #a2f3c71a}.mahjong-tiles span:nth-child(2n){color:var(--coral)}.ai-experiment{margin-top:22px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0}.ai-experiment summary{color:var(--acid);font-size:13px;line-height:1.6;padding-right:0;min-height:28px}.ai-experiment summary::after{content:'+';display:inline-block;margin-left:12px}.ai-experiment[open] summary::after{content:'−'}.ai-experiment p{margin-top:14px;margin-bottom:0}.ai-practice-section .lead{margin-top:0}

.language-switch{display:inline-flex;align-items:center;justify-content:center;min-width:36px;min-height:44px;font:11px Plex,monospace;color:var(--acid);border-left:1px solid var(--line);padding-left:14px}.language-switch:hover{color:var(--ink)}
@media(max-width:700px){.cv-header{flex-wrap:nowrap;gap:10px}.cv-header nav{gap:10px}.language-switch{font-size:10px;min-width:30px;padding-left:8px}.cv-brand{flex-shrink:0}.cv-header nav a .ui-icon{display:none}}
@media print{.language-switch{display:none}}
