:root{--bg: #f7faf8;--surface: #ffffff;--surface-alt: #eef6f5;--ink: #17202a;--muted: #5c6975;--line: #dbe4e1;--teal: #0d6b73;--teal-dark: #084f55;--amber: #b7791f;--amber-soft: #fff4dc;--blue: #2e6c95;--shadow: 0 24px 60px rgba(23, 32, 42, .12);font-family:Aptos,Segoe UI,PingFang SC,Microsoft YaHei,Noto Sans CJK SC,Arial,sans-serif;color:var(--ink);background:var(--bg);scroll-behavior:smooth}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:linear-gradient(180deg,#ffffffe6,#f7faf8fa 36%),radial-gradient(circle at 12% 8%,rgba(13,107,115,.1),transparent 30%),radial-gradient(circle at 88% 18%,rgba(183,121,31,.08),transparent 28%),var(--bg);color:var(--ink)}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}.site-shell{min-height:100vh}.topbar{align-items:center;backdrop-filter:blur(18px);background:#ffffffdb;border-bottom:1px solid rgba(219,228,225,.8);display:grid;gap:24px;grid-template-columns:auto 1fr auto;left:0;padding:16px clamp(20px,5vw,72px);position:sticky;right:0;top:0;z-index:50}.brand{align-items:baseline;display:inline-flex;gap:10px;min-width:max-content}.brand span{color:var(--teal-dark);font-size:20px;font-weight:800}.brand small{color:var(--ink);font-size:15px;font-weight:700}nav{display:flex;gap:28px;justify-content:flex-end}nav a{border-radius:999px;color:var(--muted);font-size:14px;font-weight:700;padding:9px 10px;position:relative;transition:background .18s ease,color .18s ease,transform .18s ease}nav a:hover,nav a:focus-visible{background:#0d6b7314;color:var(--teal);transform:translateY(-2px) scale(1.035)}nav a:active{transform:translateY(0) scale(.98)}.language-toggle,.button{align-items:center;border-radius:8px;cursor:pointer;display:inline-flex;font-size:14px;font-weight:800;gap:9px;justify-content:center;line-height:1;min-height:44px;transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}.language-toggle{background:var(--surface);border:1px solid var(--line);color:var(--teal-dark);padding:0 14px}.language-toggle:hover,.button:hover,.resume-link:hover{box-shadow:0 12px 26px #0d6b731f;transform:translateY(-2px) scale(1.015)}.language-toggle:active,.button:active,.resume-link:active,.qr-card:active,.certificate-toggle:active,.certificate-row:active{transform:translateY(0) scale(.985)}.hero{align-items:center;display:grid;gap:clamp(28px,4vw,56px);grid-template-columns:minmax(0,.95fr) minmax(340px,1.05fr);min-height:calc(100vh - 78px);overflow:hidden;padding:clamp(38px,7vw,88px) clamp(20px,5vw,72px) clamp(52px,7vw,96px);position:relative}.hero-copy{max-width:730px;z-index:2}.name-line{align-items:flex-end;display:flex;flex-wrap:wrap;gap:16px;margin-bottom:16px}h1,h2,h3,p{margin:0}h1{font-size:clamp(54px,8vw,112px);font-weight:850;letter-spacing:0;line-height:.92}.name-line span{color:var(--teal);font-size:clamp(28px,3vw,46px);font-weight:780;padding-bottom:7px}.hero-title{color:var(--teal-dark);font-size:clamp(20px,2vw,28px);font-weight:800;line-height:1.3;max-width:800px}.hero-summary{color:var(--muted);font-size:18px;line-height:1.78;margin-top:24px;max-width:680px}.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:32px}.button{border:1px solid transparent;padding:0 20px}.button-primary{background:var(--teal);color:#fff}.button-primary:hover{background:var(--teal-dark);box-shadow:0 10px 24px #0d6b733d}.button-secondary{background:var(--surface);border-color:var(--line);color:var(--ink)}.proof-strip{border-top:1px solid var(--line);display:grid;gap:18px;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:40px;padding-top:24px}.proof-strip strong{color:var(--amber);display:block;font-size:20px;margin-bottom:6px}.proof-strip span{color:var(--muted);display:block;font-size:14px;line-height:1.45}.hero-media{border-radius:8px;box-shadow:var(--shadow);overflow:hidden;position:relative}.hero-media:after{background:linear-gradient(90deg,rgba(247,250,248,.35),transparent 38%);content:"";inset:0;pointer-events:none;position:absolute}.hero-media img{aspect-ratio:16 / 9;display:block;height:100%;object-fit:cover;width:100%}.scroll-cue{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:999px;bottom:22px;color:var(--teal);display:flex;height:42px;justify-content:center;left:50%;position:absolute;transform:translate(-50%);width:42px}.section{border-top:1px solid var(--line);padding:clamp(58px,8vw,104px) clamp(20px,5vw,72px)}.section-heading{max-width:780px}.section-heading p{color:var(--teal);font-size:13px;font-weight:900;letter-spacing:.12em;margin-bottom:14px;text-transform:uppercase}.section-heading h2{font-size:clamp(32px,4.2vw,58px);font-weight:840;letter-spacing:0;line-height:1.04}.about-grid{align-items:start;display:grid;gap:clamp(28px,5vw,68px);grid-template-columns:minmax(0,.9fr) minmax(320px,1fr)}.about-body{color:var(--muted);font-size:17px;line-height:1.82}.about-points{display:grid;gap:16px;margin-top:28px}.about-point{align-items:flex-start;background:#ffffffa3;border-left:3px solid var(--teal);display:flex;gap:12px;padding:16px 18px}.about-point svg{color:var(--teal);flex:0 0 auto;margin-top:4px}.skill-grid,.project-grid{display:grid;gap:18px;margin-top:36px}.skill-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.skill-card,.project-card,.life-card{background:var(--surface);border:1px solid var(--line);border-radius:8px;min-width:0;padding:24px;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.skill-card:hover,.project-card:hover,.life-card:hover{border-color:#0d6b7347;box-shadow:0 18px 38px #17202a17;transform:translateY(-4px)}.skill-card h3,.project-card h3,.life-card h3{font-size:18px;font-weight:820;line-height:1.25;margin-top:18px}.skill-card ul,.timeline-content ul{margin:18px 0 0;padding-left:19px}.skill-card li,.timeline-content li{color:var(--muted);font-size:14px;line-height:1.7;margin-bottom:8px}.icon-circle{align-items:center;background:var(--surface-alt);border:1px solid rgba(13,107,115,.18);border-radius:8px;color:var(--teal);display:inline-flex;height:46px;justify-content:center;width:46px}.experience-section{background:#ffffff80}.timeline{margin-top:38px}.timeline-row{display:grid;gap:32px;grid-template-columns:220px minmax(0,1fr);position:relative;transition:transform .18s ease}.timeline-row+.timeline-row{margin-top:34px;padding-top:34px}.timeline-row+.timeline-row:before{background:var(--line);content:"";height:1px;left:0;position:absolute;right:0;top:0}.timeline-meta{color:var(--muted);display:grid;gap:10px}.timeline-meta time{color:var(--teal-dark);font-size:15px;font-weight:850;transition:color .18s ease,transform .18s ease}.timeline-row:hover .timeline-meta time{color:var(--teal);transform:translate(2px)}.timeline-meta span{align-items:center;display:flex;font-size:14px;gap:7px}.timeline-content h3{font-size:22px;line-height:1.25}.timeline-content p{color:var(--amber);font-size:17px;font-weight:800;margin-top:6px}.project-card{display:flex;flex-direction:column}.project-card p,.life-card p{color:var(--muted);font-size:15px;line-height:1.72;margin-top:14px}.tag-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.project-card .tag-row{margin-top:auto;padding-top:24px}.tag-row span{background:#0d6b7314;border:1px solid rgba(13,107,115,.18);border-radius:6px;color:var(--teal-dark);font-size:12px;font-weight:800;padding:7px 9px}.contact-section{align-items:start;display:grid;gap:clamp(28px,5vw,72px);grid-template-columns:minmax(0,1fr) 390px}.contact-note{color:var(--muted);font-size:17px;line-height:1.8;margin-top:22px;max-width:780px}.contact-list{display:grid;gap:15px;margin-top:30px}.contact-list a{align-items:center;color:var(--teal-dark);display:flex;font-size:15px;font-weight:800;gap:11px;line-height:1.45;width:fit-content}.resume-panel{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:0 18px 38px #17202a14;display:grid;gap:12px;padding:18px}.wechat-card{align-items:center;background:linear-gradient(135deg,#f7fbf9,#edf6f4);border:1px solid rgba(13,107,115,.18);border-radius:8px;display:grid;gap:16px;grid-template-columns:116px minmax(0,1fr);padding:14px}.wechat-card img{background:#fff;border:1px solid var(--line);border-radius:8px;display:block;width:116px}.wechat-card strong{color:var(--teal-dark);display:block;font-size:16px;margin-bottom:7px}.wechat-card span{color:var(--muted);display:block;font-size:13px;line-height:1.55}.resume-link{align-items:center;background:var(--surface-alt);border:1px solid rgba(13,107,115,.18);border-radius:8px;color:var(--teal-dark);display:grid;font-size:15px;font-weight:850;gap:10px;grid-template-columns:auto 1fr auto;min-height:56px;padding:0 14px;transition:background .16s ease,transform .16s ease}.resume-link.quiet{background:#fff;color:var(--muted);grid-template-columns:1fr auto}footer{align-items:center;border-top:1px solid var(--line);color:var(--muted);display:flex;flex-wrap:wrap;font-size:13px;gap:12px;justify-content:space-between;padding:24px clamp(20px,5vw,72px)}@media(max-width:1080px){.topbar{grid-template-columns:1fr auto}nav{display:none}.hero{grid-template-columns:1fr;min-height:auto}.hero-copy{max-width:none}.hero-media{max-height:560px}.skill-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-grid{grid-template-columns:1fr}}@media(max-width:760px){.topbar{gap:12px;padding:12px 16px}.brand span{font-size:18px}.brand small{display:none}.language-toggle{min-height:40px}.hero{padding:36px 16px 64px}h1{font-size:clamp(48px,16vw,70px)}.hero-title{font-size:19px}.hero-summary{font-size:16px;line-height:1.72}.hero-actions{display:grid}.proof-strip,.about-grid,.timeline-row,.contact-section{grid-template-columns:1fr}.proof-strip{gap:16px}.section{padding:56px 16px}.section-heading h2{font-size:32px;line-height:1.12}.skill-grid{grid-template-columns:1fr}.skill-card,.project-card{padding:20px}.timeline-row{gap:16px}.timeline-row+.timeline-row{margin-top:28px;padding-top:28px}.resume-panel{width:100%}.wechat-card{grid-template-columns:96px minmax(0,1fr)}.wechat-card img{width:96px}}@media(prefers-reduced-motion:reduce){*,:before,:after{animation:none!important;scroll-behavior:auto!important;transition:none!important}}.hero-caption{align-items:center;backdrop-filter:blur(12px);background:#07363cc7;border:1px solid rgba(255,255,255,.22);border-radius:999px;bottom:18px;color:#f7fbf9;display:inline-flex;font-size:13px;font-weight:800;left:18px;line-height:1.35;max-width:calc(100% - 120px);padding:9px 13px;position:absolute;z-index:2}.learning-section{background:linear-gradient(180deg,#fff,#f3f8f6)}.learning-note{color:var(--muted);font-size:clamp(16px,2vw,18px);line-height:1.85;margin:20px 0 0;max-width:920px}.learning-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}.learning-actions a,.certificate-links a{align-items:center;color:var(--teal-dark);display:inline-flex;font-size:13px;font-weight:850;gap:6px}.certificate-grid{display:grid;gap:14px;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:30px}.certificate-card{background:#ffffffd1;border:1px solid rgba(13,107,115,.14);border-radius:10px;box-shadow:0 14px 32px #17202a0f;display:grid;gap:12px;grid-template-columns:124px minmax(0,1fr);min-height:144px;padding:12px}.certificate-thumb{background:#fff;border:1px solid var(--line);border-radius:8px;cursor:zoom-in;display:block;min-height:120px;overflow:hidden;padding:0;position:relative}.certificate-thumb img{display:block;height:100%;object-fit:cover;width:100%}.certificate-thumb span{align-items:center;background:#07363cd1;border-radius:999px;bottom:7px;color:#fff;display:inline-flex;height:28px;justify-content:center;position:absolute;right:7px;width:28px}.certificate-copy h3{color:var(--ink);font-size:15px;line-height:1.35;margin:0}.certificate-copy p{color:var(--muted);font-size:12px;line-height:1.45;margin:7px 0 10px}.certificate-links{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.qr-grid{display:grid;gap:12px}.qr-card{align-items:center;background:linear-gradient(135deg,#f7fbf9,#edf6f4);border:1px solid rgba(13,107,115,.18);border-radius:8px;color:inherit;cursor:zoom-in;display:grid;gap:14px;grid-template-columns:122px minmax(0,1fr) auto;padding:14px;text-align:left}.qr-card img{background:#fff;border:1px solid var(--line);border-radius:8px;display:block;height:122px;object-fit:cover;width:122px}.qr-card strong{color:var(--teal-dark);display:block;font-size:16px;margin-bottom:7px}.qr-card em{color:var(--muted);display:block;font-size:13px;font-style:normal;line-height:1.55}.modal-backdrop{align-items:center;background:#031418b8;display:flex;inset:0;justify-content:center;padding:22px;position:fixed;z-index:50}.modal-card{background:#fff;border-radius:14px;box-shadow:0 30px 90px #00000057;max-height:min(92vh,920px);max-width:min(92vw,980px);overflow:auto;padding:16px;position:relative}.modal-card img{display:block;max-height:74vh;max-width:100%;object-fit:contain}.modal-copy{border-top:1px solid var(--line);display:grid;gap:4px;margin-top:12px;padding-top:12px}.modal-copy strong{color:var(--teal-dark);font-size:17px}.modal-copy span{color:var(--muted);font-size:14px;line-height:1.55}.modal-close{align-items:center;background:var(--teal-dark);border:0;border-radius:999px;color:#fff;cursor:pointer;display:flex;height:38px;justify-content:center;position:absolute;right:10px;top:10px;width:38px;z-index:2}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.portfolio-chat{bottom:calc(22px + env(safe-area-inset-bottom));position:fixed;right:clamp(16px,3vw,28px);z-index:80}.chat-launcher{align-items:center;background:#fffffff0;border:1px solid rgba(13,107,115,.2);border-radius:999px;box-shadow:0 18px 42px #17202a26;color:var(--teal-dark);cursor:pointer;display:inline-flex;gap:12px;max-width:min(310px,calc(100vw - 32px));padding:9px 15px 9px 9px;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease}.chat-launcher:hover,.chat-launcher:focus-visible{background:#fff;border-color:#0d6b735c;box-shadow:0 22px 50px #17202a2e;transform:translateY(-3px)}.chat-launcher-icon,.chat-avatar{align-items:center;background:var(--surface-alt);border:1px solid rgba(13,107,115,.18);border-radius:14px;color:var(--teal-dark);display:inline-flex;flex:0 0 auto;height:50px;justify-content:center;position:relative;width:50px}.chat-launcher-copy{display:grid;gap:3px;min-width:0;text-align:left}.chat-launcher-copy strong{color:var(--teal-dark);font-size:14px;font-weight:900;line-height:1.15}.chat-launcher-copy small{color:var(--muted);font-size:12px;font-weight:800;line-height:1.25}.chat-online-dot{background:#2fb36f;border:2px solid #ffffff;border-radius:999px;bottom:-2px;box-shadow:0 0 0 4px #2fb36f24;height:13px;position:absolute;right:-2px;width:13px}.chat-panel{background:#fffffffa;border:1px solid rgba(13,107,115,.2);border-radius:16px;box-shadow:0 28px 80px #17202a38;display:grid;max-height:min(640px,calc(100vh - 38px - env(safe-area-inset-bottom)));overflow:hidden;width:min(390px,calc(100vw - 28px))}.chat-panel-header{align-items:center;background:linear-gradient(135deg,#eff8f6fa,#fff4dc9e),#fff;border-bottom:1px solid rgba(13,107,115,.13);display:grid;gap:11px;grid-template-columns:auto minmax(0,1fr) auto;padding:14px}.chat-avatar{border-radius:12px;height:46px;width:46px}.chat-panel-title{display:grid;gap:3px;min-width:0}.chat-panel-title strong{color:var(--teal-dark);font-size:15px;font-weight:900;line-height:1.2}.chat-panel-title small{color:var(--muted);font-size:12.5px;font-weight:750;line-height:1.35}.chat-close,.chat-submit{align-items:center;border:1px solid rgba(13,107,115,.16);border-radius:10px;color:var(--teal-dark);cursor:pointer;display:inline-flex;height:38px;justify-content:center;transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease;width:38px}.chat-close{background:#ffffffd1}.chat-close:hover,.chat-close:focus-visible{background:var(--teal-dark);color:#fff}.chat-messages{background:linear-gradient(180deg,#f7fbfadb,#fffffff5);display:flex;flex-direction:column;gap:10px;max-height:365px;min-height:240px;overflow-y:auto;padding:15px;scroll-behavior:smooth}.chat-message{border-radius:14px;font-size:14px;line-height:1.56;max-width:88%;overflow-wrap:anywhere;padding:10px 12px;white-space:pre-wrap}.chat-message-assistant{align-self:flex-start;background:#fff;border:1px solid rgba(13,107,115,.13);border-bottom-left-radius:5px;color:var(--ink)}.chat-message-user{align-self:flex-end;background:var(--teal);border-bottom-right-radius:5px;color:#fff}.chat-typing{align-items:center;display:inline-flex;gap:4px;height:18px}.chat-typing span{animation:chat-typing .9s ease-in-out infinite;background:var(--teal);border-radius:999px;height:6px;opacity:.45;width:6px}.chat-typing span:nth-child(2){animation-delay:.12s}.chat-typing span:nth-child(3){animation-delay:.24s}.chat-suggestions{display:flex;flex-wrap:wrap;gap:8px;padding:12px 14px 0}.chat-suggestions button{background:#0d6b7314;border:1px solid rgba(13,107,115,.16);border-radius:999px;color:var(--teal-dark);cursor:pointer;font-size:12px;font-weight:850;line-height:1.25;padding:8px 10px;transition:background .16s ease,border-color .16s ease,transform .16s ease}.chat-suggestions button:hover,.chat-suggestions button:focus-visible{background:#0d6b7321;border-color:#0d6b7347;transform:translateY(-1px)}.chat-form{display:grid;gap:10px;grid-template-columns:minmax(0,1fr) 42px;padding:14px}.chat-form textarea{background:#fff;border:1px solid rgba(13,107,115,.18);border-radius:10px;color:var(--ink);font:inherit;font-size:14px;line-height:1.45;max-height:96px;min-height:42px;outline:none;overflow:auto;padding:10px 12px;resize:none}.chat-form textarea:focus-visible{border-color:#0d6b7375;box-shadow:0 0 0 3px #0d6b731a}.chat-submit{align-self:end;background:var(--teal);border-color:var(--teal);color:#fff}.chat-submit:hover,.chat-submit:focus-visible{background:var(--teal-dark);transform:translateY(-1px)}.chat-submit:disabled,.chat-suggestions button:disabled{cursor:not-allowed;opacity:.55;transform:none}.chat-status{color:var(--muted);font-size:12.5px;font-weight:750;line-height:1.45;padding:0 14px 14px}.chat-spin{animation:chat-spin .9s linear infinite}@keyframes chat-typing{0%,to{opacity:.35;transform:translateY(0)}50%{opacity:.9;transform:translateY(-3px)}}@keyframes chat-spin{to{transform:rotate(360deg)}}@media(max-width:1180px){.certificate-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.hero-caption{bottom:54px;left:12px;max-width:calc(100% - 24px)}.certificate-grid{grid-template-columns:1fr}.certificate-card{grid-template-columns:104px minmax(0,1fr)}.certificate-thumb{min-height:104px}.qr-card{grid-template-columns:96px minmax(0,1fr) auto}.qr-card img{height:96px;width:96px}.modal-backdrop{padding:12px}.portfolio-chat{bottom:calc(12px + env(safe-area-inset-bottom));left:12px;right:12px}.chat-launcher{margin-left:auto;padding:9px}.chat-launcher-copy{display:none}.chat-launcher-icon{border-radius:999px;height:54px;width:54px}.chat-panel{max-height:calc(100vh - 24px - env(safe-area-inset-bottom));width:100%}.chat-messages{max-height:calc(100vh - 286px - env(safe-area-inset-bottom));min-height:230px}}.hero:before,.hero:after{border-radius:999px;content:"";filter:blur(2px);opacity:.55;pointer-events:none;position:absolute;z-index:0}.hero:before{animation:soft-float 8s ease-in-out infinite;background:#0d6b731a;height:180px;right:7vw;top:13vh;width:180px}.hero:after{animation:soft-float 10s ease-in-out infinite reverse;background:#b7791f17;bottom:12vh;height:130px;left:42vw;width:130px}.hero-media{transform:rotate(.25deg);transition:box-shadow .22s ease,transform .22s ease}.hero-media:hover{box-shadow:0 30px 72px #17202a29;transform:rotate(0) translateY(-4px)}.hero-media img{transform:scale(1.01);transition:transform .48s ease}.hero-media:hover img{transform:scale(1.04)}.scroll-cue{animation:cue-breathe 2.6s ease-in-out infinite;transition:background .18s ease,box-shadow .18s ease,transform .18s ease}.scroll-cue:hover{background:var(--teal);box-shadow:0 12px 28px #0d6b732e;color:#fff;transform:translate(-50%) translateY(-3px)}.button-primary,.button-secondary,.language-toggle,.resume-link,.qr-card,.certificate-toggle,.certificate-row{will-change:transform}.button-primary:hover svg,.button-secondary:hover svg,.resume-link:hover svg,.qr-card:hover svg,.certificate-toggle:hover svg,.certificate-row:hover svg{transform:translate(1px) scale(1.06)}.button svg,.resume-link svg,.qr-card svg,.certificate-toggle svg,.certificate-row svg{transition:transform .18s ease}.life-section{background:linear-gradient(180deg,#f7faf8d1,#fffffffa),radial-gradient(circle at 85% 10%,rgba(13,107,115,.08),transparent 26%)}.life-note{color:var(--muted);font-size:clamp(16px,2vw,18px);line-height:1.82;margin-top:20px;max-width:920px}.life-grid{display:grid;gap:18px;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:30px}.life-card{background:linear-gradient(180deg,#fffffff5,#f8fdfbf5);min-height:235px}.life-card .icon-circle,.skill-card:hover .icon-circle,.project-card:hover .icon-circle,.life-card:hover .icon-circle{background:linear-gradient(135deg,#0d6b731a,#b7791f14)}.certificate-toggle{align-items:center;background:linear-gradient(135deg,#fffffff5,#eff8f6f5);border:1px solid rgba(13,107,115,.2);border-radius:14px;box-shadow:0 14px 34px #17202a12;color:var(--ink);cursor:pointer;display:grid;gap:14px;grid-template-columns:auto minmax(0,1fr) auto;margin-top:24px;padding:16px 18px;text-align:left;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;width:min(760px,100%)}.certificate-toggle:hover,.certificate-toggle:focus-visible{border-color:#0d6b7361;box-shadow:0 20px 44px #17202a1a;transform:translateY(-3px)}.certificate-toggle-icon{align-items:center;background:var(--teal);border-radius:12px;color:#fff;display:inline-flex;height:48px;justify-content:center;width:48px}.certificate-toggle-copy{display:grid;gap:5px}.certificate-toggle-copy strong{color:var(--teal-dark);font-size:16px;line-height:1.3}.certificate-toggle-copy em{color:var(--muted);font-size:13px;font-style:normal;line-height:1.5}.certificate-list{display:grid;gap:9px;margin-top:16px;max-width:1060px}.certificate-row{align-items:center;background:#ffffffd1;border:1px solid rgba(13,107,115,.13);border-radius:12px;display:grid;gap:12px;grid-template-columns:58px minmax(0,1fr) auto;min-height:70px;padding:8px 12px 8px 8px;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease}.certificate-row:hover{background:#fff;border-color:#0d6b7342;box-shadow:0 12px 28px #17202a12;transform:translateY(-2px)}.certificate-mini-thumb{align-items:center;background:#fff;border:1px solid var(--line);border-radius:10px;cursor:zoom-in;display:flex;height:52px;justify-content:center;overflow:hidden;padding:0;position:relative;width:52px}.certificate-mini-thumb img{display:block;height:100%;object-fit:cover;width:100%}.certificate-mini-thumb svg{background:#07363cdb;border-radius:999px;bottom:4px;color:#fff;height:19px;padding:3px;position:absolute;right:4px;width:19px}.certificate-row-copy h3{color:var(--ink);font-size:14px;line-height:1.35;margin:0}.certificate-row-copy p{color:var(--muted);font-size:12px;line-height:1.4;margin:4px 0 0}.certificate-row .certificate-links{justify-content:flex-end;min-width:136px}.certificate-links a{border-radius:999px;padding:6px 8px;transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}.certificate-links .certificate-link-verify{background:#0d6b7314;border:1px solid rgba(13,107,115,.18);color:var(--teal-dark)}.certificate-links .certificate-link-file{border:1px solid transparent;color:var(--muted)}.certificate-links a:hover,.learning-actions a:hover,.contact-list a:hover{background:#0d6b7314;color:var(--teal);transform:translateY(-1px)}.qr-card,.resume-link{transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease}.qr-card:hover{border-color:#0d6b7357;box-shadow:0 14px 30px #17202a14;transform:translateY(-3px) scale(1.01)}@keyframes cue-breathe{0%,to{box-shadow:0 0 #0d6b7329}50%{box-shadow:0 0 0 8px #0d6b7300}}@keyframes soft-float{0%,to{transform:translateZ(0)}50%{transform:translate3d(0,-12px,0)}}@media(max-width:1180px){.life-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.life-grid{grid-template-columns:1fr}.life-card{min-height:auto}.certificate-toggle{grid-template-columns:auto minmax(0,1fr) auto;padding:14px}.certificate-toggle-icon{height:42px;width:42px}.certificate-row{align-items:start;grid-template-columns:52px minmax(0,1fr);padding:8px}.certificate-row .certificate-links{grid-column:1 / -1;justify-content:flex-start;min-width:0;padding-left:2px}}@media(prefers-reduced-motion:reduce){.hero:before,.hero:after,.scroll-cue{animation:none!important}}.learning-layout{align-items:start;display:grid;gap:clamp(20px,3.2vw,34px);grid-template-columns:minmax(0,1.78fr) minmax(280px,.72fr);margin-top:24px}.learning-main-copy{background:#ffffffa3;border:1px solid rgba(13,107,115,.1);border-radius:16px;padding:clamp(18px,2.5vw,26px)}.learning-main-copy .learning-note{margin-top:0;max-width:760px}.learning-focus-card{background:linear-gradient(145deg,#0d6b7314,#fff4dc94),#fff;border:1px solid rgba(13,107,115,.16);border-radius:16px;box-shadow:0 18px 42px #17202a14;min-height:220px;overflow:hidden;padding:22px;position:sticky;top:102px;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.learning-avatar{align-items:center;background:var(--surface-alt);border:1px solid rgba(13,107,115,.18);border-radius:12px;box-shadow:0 12px 26px #17202a14;color:var(--teal);display:inline-flex;height:58px;justify-content:center;margin-bottom:18px;width:58px}.learning-focus-card:hover{border-color:#0d6b734d;box-shadow:0 24px 54px #17202a1c;transform:translateY(-3px)}.learning-eyebrow{color:var(--amber);display:block;font-size:12px;font-weight:900;letter-spacing:.12em;margin-bottom:12px;text-transform:uppercase}.learning-focus-card h3{color:var(--teal-dark);font-size:20px;line-height:1.25;max-width:270px}.learning-focus-card p{color:var(--muted);font-size:14px;line-height:1.72;margin-top:14px}.learning-focus-list{border-top:1px solid rgba(13,107,115,.12);display:grid;gap:10px;margin:18px 0 0;padding:18px 0 0}.learning-focus-list li{color:var(--muted);font-size:13.5px;line-height:1.62;list-style:none;padding-left:20px;position:relative}.learning-focus-list li:before{background:var(--teal);border-radius:999px;content:"";height:7px;left:2px;position:absolute;top:9px;width:7px}.certificate-category-list{display:grid;gap:12px;margin-top:24px;max-width:100%}.certificate-category{display:grid;gap:10px}.certificate-category.is-open .certificate-toggle{background:linear-gradient(135deg,#fff,#ebf8f5fa);border-color:#0d6b735c}.certificate-category .certificate-toggle{margin-top:0;max-width:100%;width:100%}.certificate-toggle-copy strong{align-items:center;display:flex;flex-wrap:wrap;gap:9px}.certificate-toggle-copy small{align-items:center;background:#0d6b731a;border:1px solid rgba(13,107,115,.18);border-radius:999px;color:var(--teal-dark);display:inline-flex;font-size:12px;font-weight:900;height:24px;justify-content:center;min-width:30px;padding:0 8px}.certificate-toggle-action{align-items:center;background:#ffffffc7;border:1px solid rgba(13,107,115,.16);border-radius:999px;color:var(--teal-dark);display:inline-flex;font-size:13px;font-weight:900;gap:7px;justify-content:center;min-width:142px;padding:8px 10px;white-space:nowrap}.certificate-list-shell{display:grid;grid-template-rows:0fr;margin-left:64px;overflow:hidden;transition:grid-template-rows .26s cubic-bezier(.22,1,.36,1),opacity .22s ease;opacity:0}.certificate-category.is-open .certificate-list-shell{grid-template-rows:1fr;opacity:1}.certificate-category .certificate-list{margin-left:0;margin-top:0;min-height:0;overflow:hidden;padding-top:10px}.certificate-row{grid-template-columns:50px minmax(0,1fr) auto;min-height:62px;padding:7px 11px 7px 7px}.certificate-mini-thumb{height:44px;width:44px}.certificate-mini-thumb svg{bottom:3px;height:17px;padding:3px;right:3px;width:17px}.certificate-row-copy h3{font-size:13.5px}.certificate-row-copy p{font-size:11.5px}@media(max-width:900px){.learning-layout{grid-template-columns:1fr}.learning-focus-card{position:relative;top:auto}.learning-focus-card h3{max-width:none}}@media(max-width:760px){.certificate-toggle{align-items:start;grid-template-columns:auto minmax(0,1fr)}.certificate-toggle-action{grid-column:1 / -1;justify-content:space-between;min-width:0;width:100%}.certificate-list-shell{margin-left:0}.certificate-row{grid-template-columns:46px minmax(0,1fr)}.certificate-mini-thumb{height:42px;width:42px}}
