:root{--bg:#fdfcfaf5;--paper:#fff;--ink:#462f18;--muted:#b0845a;--blue:#9e6834;--line:#f4ede0;--soft:#faf6ef;--serif:Georgia,"Songti SC","Noto Serif SC",serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0;background:#fdfcfa;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer}a,button,input{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #d9b18a;outline-offset:5px}.wrap{max-width:1160px;margin:0 auto;padding-left:28px;padding-right:28px}.site-header{border-bottom:1px solid var(--line);background:#ffffffed;position:sticky;top:0;z-index:10;backdrop-filter:blur(16px)}.header-inner{max-width:1280px;margin:auto;height:91px;display:flex;align-items:center;justify-content:space-between;padding:0 48px}.brand{display:flex;align-items:center;gap:11px;font-size:22px;font-weight:700;letter-spacing:-.5px}.brand-mark{background:var(--ink);color:white;border-radius:9px;width:37px;height:37px;text-align:center;line-height:31px;font-size:28px;font-family:Georgia,serif;font-style:italic}.brand-mark span{color:#eec9a6}.brand-sub{font-size:16px;letter-spacing:.3px;margin-left:5px;font-weight:500}.header-inner nav{display:flex;align-items:center;gap:39px;font-size:14px;color:#a5794f}.header-inner nav a{position:relative;padding:32px 0}.header-inner nav a:hover{color:var(--blue)}.header-inner nav a.current{color:var(--ink);font-weight:600}.header-inner nav a.current:after{content:'';position:absolute;bottom:21px;left:40%;right:40%;height:2px;background:var(--blue)}.header-note{font-size:12px;letter-spacing:1.8px;color:#bf9c7a}.intro{display:grid;grid-template-columns:1fr 310px;gap:80px;align-items:center;padding-top:69px;padding-bottom:67px}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:600;color:#b9936e;display:flex;align-items:center;gap:11px}.small-line{width:24px;height:1px;background:#b2885f}.intro h1{font-size:clamp(40px,4.5vw,60px);font-weight:500;font-family:var(--serif);letter-spacing:2px;line-height:1.38;margin:23px 0 21px}.intro h1>span{color:#c39c77}.intro-copy>p{color:#b0845a;font-size:15px;line-height:2;margin:0 0 24px}.intro-copy strong{color:#805e3e;font-weight:500}.text-link{font-size:14px;display:inline-flex;align-items:center;gap:32px;padding:7px 0;border-bottom:1px solid #cfb49a}.text-link:hover{color:#bf8348}.text-link span{font-size:20px}.identity-card{background:#f9f5ef;border:1px solid #f5efe4;padding:22px 26px 16px;position:relative;overflow:hidden;border-radius:4px}.identity-top{display:flex;justify-content:space-between;color:#b38960;font-size:12px;letter-spacing:1.7px}.author-letter{font-family:Georgia,serif;line-height:1.2;font-size:68px;font-style:italic;font-weight:500;letter-spacing:-4px;margin:14px 0 12px;color:#744c25}.author-letter>span{color:#c6a07b;font-family:monospace;letter-spacing:0;font-size:40px}.author-name{font-size:17px;line-height:1.8;font-family:var(--serif);letter-spacing:1px}.author-school{display:flex;gap:12px;align-items:center;margin:22px 0;color:#765739;font-size:14px}.author-school small{display:block;font-size:12px;color:#b78f69;margin-top:2px}.school-icon{width:33px;height:33px;display:grid;place-items:center;border:1px solid #e4dac8;border-radius:50%;font-size:18px}.author-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #f1e8d9;padding-top:12px;font-size:12px;color:#ba9470}.author-star{font-size:21px;color:#c6a789}.articles-section{padding-top:37px;border-top:1px solid var(--line)}.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px}.section-head h2{font-size:25px;font-weight:600;letter-spacing:1px;margin:8px 0 0}.section-head h2 span{font-size:12px;letter-spacing:0;font-weight:400;color:#ba946f;margin-left:12px}.search-box{display:flex;align-items:center;gap:9px;border:1px solid var(--line);padding:9px 12px;border-radius:5px;width:216px;background:#fff}.search-box svg{fill:none;stroke:#be9b79;stroke-width:1.4;flex-shrink:0}.search-box input{font-size:13px;min-width:0;width:100%;border:0;background:none;color:var(--ink);outline:0}.search-box input::placeholder{color:#c4a485}.search-box:focus-within{border-color:#c49a72;box-shadow:0 0 0 2px #f7efe1}.content-columns{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:44px}.category-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}.category-tabs button{border:1px solid transparent;background:none;color:#b38960;padding:7px 11px;border-radius:4px;font-size:13px;white-space:nowrap}.category-tabs button:hover{background:#f8f4ec;color:#8a633d}.category-tabs button.active{background:var(--ink);color:white}.category-tabs .category-count{font-size:12px;margin-left:5px;opacity:.65}.post-card{border:1px solid var(--line);background:var(--paper);border-radius:6px;overflow:hidden;transition:transform .2s,box-shadow .2s;margin-bottom:22px}.post-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px #583c2009}.post-cover{min-height:190px;background:#644120;color:#fff;padding:25px 32px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;background-image:linear-gradient(#ffffff05 1px,transparent 1px),linear-gradient(90deg,#ffffff05 1px,transparent 1px);background-size:28px 28px}.cover-top{display:flex;justify-content:space-between;align-items:center;font-size:12px;letter-spacing:2px;color:#ddc8b3;position:relative;z-index:1}.cover-middle{display:flex;align-items:center;justify-content:space-between;gap:15px;position:relative;z-index:1;margin:21px 0 16px}.cover-middle strong{font-family:var(--serif);font-weight:400;font-size:31px;letter-spacing:3px}.cover-index{font-family:Georgia,serif;font-style:italic;color:#be9a77;font-size:57px;line-height:1}.cover-bottom{font-size:12px;letter-spacing:2px;color:#ddc8b3}.post-body{padding:27px 29px 25px}.post-meta{display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:12px;color:#b9926d}.post-tag{background:#faf6ee;color:#a97d52;padding:3px 9px;border-radius:3px}.post-body h3{font-size:23px;font-weight:600;line-height:1.6;margin:15px 0 11px;letter-spacing:.2px}.post-body p{font-size:14px;line-height:1.95;color:#b8926d;margin:0 0 24px}.post-bottom{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #f8f3eb;padding-top:18px;font-size:12px;color:#be9a77;gap:12px}.view-count{display:flex;align-items:center;gap:6px}.eye-icon{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5;flex-shrink:0}.read-more{color:#8e6742;font-size:13px}.read-more>span{margin-left:9px}.endnote{display:flex;align-items:center;gap:14px;margin:34px 0 45px}.endnote p{font-size:12px;color:#c8ab8e;white-space:nowrap;margin:0}.endnote>span{height:1px;background:#f5eee3;flex:1}.topic-card{border-top:2px solid #725437;padding-top:22px}.topic-card h3{font-size:19px;letter-spacing:.5px;margin:10px 0 7px;font-weight:500}.topic-intro{font-size:13px;color:#bc9773;margin:0 0 17px}.topic-card>button{display:flex;align-items:center;text-align:left;gap:12px;width:100%;border:0;border-top:1px solid var(--line);background:none;padding:17px 0;color:#745638}.topic-card>button:hover{color:#af7237}.topic-number{font-family:Georgia,serif;font-style:italic;color:#cbaf94;font-size:14px}.topic-card>button div{font-size:14px;flex:1}.topic-card small{display:block;font-size:12px;color:#c19f7e;margin-top:3px}.topic-status{font-size:12px;color:#c6a788}.margin-note{margin-top:27px;border-top:1px solid var(--line);padding:20px 4px}.margin-note>span{color:#decbb9;font-family:Georgia,serif;font-size:45px;line-height:1}.margin-note p{font-family:var(--serif);font-size:19px;line-height:1.9;color:#b2875e;margin:0 0 15px;letter-spacing:1px}.margin-note small{font-size:12px;letter-spacing:1.8px;color:#caad90}.site-footer{display:flex;align-items:center;gap:20px;border-top:1px solid var(--line);padding-top:30px;padding-bottom:30px;margin-top:31px;color:#b48b64;font-size:12px}.footer-brand{font-size:27px;font-style:italic;color:#886442;font-family:Georgia,serif;font-weight:600}.footer-brand span{color:#d6b99c}.site-footer small{display:block;color:#c9ac90;font-size:12px;margin-top:3px}.back-top{margin-left:auto;color:#b9936f}.empty-state,.loading-state{border:1px dashed #f0e6d6;background:#fbf9f5;border-radius:5px;text-align:center;padding:65px 25px;color:#b68e67}.empty-state span{font-size:13px;letter-spacing:2px;color:#cdb196}.empty-state h3{font-size:20px;font-weight:500;color:#926b46;margin:12px 0}.empty-state p{font-size:14px;margin:0}.retry-button{margin-top:18px;background:#644120;color:white;border:0;padding:9px 18px;border-radius:4px}.article-layout{max-width:1080px;padding-top:39px;padding-bottom:30px;min-height:60vh}.back-link{font-size:13px;color:#b38961}.article-grid{display:grid;grid-template-columns:minmax(0,720px) 200px;gap:48px;margin-top:34px}.article-header h1{font-family:inherit;font-variant-numeric:lining-nums;font-size:39px;line-height:1.5;font-weight:600;margin:21px 0;letter-spacing:.5px}.article-byline{font-size:12px;color:#bf9c7a;display:flex;gap:17px;flex-wrap:wrap;align-items:center;padding-bottom:28px;border-bottom:1px solid var(--line)}.article-lead{font-size:17px;line-height:1.9;color:#b1865c;margin:27px 0 32px;border-left:3px solid #d9bb9d;padding-left:18px}.article-body{font-size:16px;line-height:2.05;color:#78593a;overflow-wrap:anywhere}.article-body p{margin:21px 0}.article-body h2{font-size:24px;font-weight:550;color:#614325;margin:42px 0 18px;scroll-margin-top:115px}.article-body h3{font-size:20px;color:#78593a;margin-top:30px}.article-body ul{padding-left:23px}.article-body li{margin:13px 0;padding-left:3px}.article-body li::marker{color:#cfad8c}.article-body blockquote{margin:32px 0;background:#f9f5ed;border-left:3px solid #d2ae8b;padding:22px 25px;color:#a1774e;font-family:var(--serif);font-size:19px}.article-body pre{background:#3f2914;color:#f6ead5;padding:20px;border-radius:6px;overflow:auto;font-size:13px;line-height:1.8}.article-body pre code{font-family:ui-monospace,SFMono-Regular,monospace}.toc{position:sticky;top:126px;align-self:start;border-left:1px solid var(--line);padding-left:23px;font-size:12px;color:#c09d7b}.toc h2{font-size:12px;font-weight:500;letter-spacing:2px;color:#9d734b;margin:3px 0 20px}.toc a{display:block;margin:14px 0;line-height:1.8}.toc a:hover{color:#986533}.article-signoff{margin-top:47px;border-top:1px solid var(--line);padding-top:24px;color:#c09d7b;font-size:13px;display:flex;justify-content:space-between}.error-message{margin:60px 0;color:#b78f69}.skip-link{position:absolute;left:10px;top:-100px;background:#fff;z-index:50;padding:10px}.skip-link:focus{top:10px}[hidden]{display:none!important}
@media(min-width:1500px){.intro{padding-top:86px;padding-bottom:86px}.intro h1{font-size:65px}.identity-card{padding-top:28px;padding-bottom:22px}.author-letter{margin-top:20px;margin-bottom:20px}}
@media(max-width:1050px){.header-inner{padding:0 30px}.header-note{display:none}.intro{gap:35px;grid-template-columns:1fr 280px}.content-columns{gap:29px;grid-template-columns:minmax(0,1fr) 252px}.category-tabs{gap:3px}.category-tabs button{font-size:12px;padding:7px 8px}.article-grid{grid-template-columns:minmax(0,1fr) 175px;gap:30px}.post-body h3{font-size:21px}.post-body{padding:25px}.topic-card>button{gap:8px}}
@media(max-width:760px){.header-inner{height:75px;padding:0 23px}.header-inner nav{gap:24px;font-size:13px}.header-inner nav a{padding:24px 0}.header-inner nav a.current:after{bottom:14px}.brand{font-size:20px;gap:8px}.brand-sub{font-size:13px}.brand-mark{width:32px;height:32px;font-size:25px;line-height:27px}.intro{grid-template-columns:1fr 240px;gap:25px;padding-top:48px;padding-bottom:44px}.intro h1{font-size:38px;letter-spacing:1px}.intro-copy>p{font-size:13px}.intro-copy .eyebrow{font-size:12px;letter-spacing:1px}.small-line{width:15px}.identity-card{padding:18px 21px 14px}.author-letter{font-size:56px}.author-name{font-size:16px}.author-school{margin:18px 0}.content-columns{grid-template-columns:1fr}.sidebar{display:grid;grid-template-columns:1fr 230px;gap:36px}.margin-note{margin:0;padding-top:25px}.article-grid{display:block;max-width:720px;margin:30px auto 0}.toc{display:none}.article-header h1{font-size:32px}.site-footer{margin-top:40px}.section-head h2{font-size:23px}.topic-status{font-size:12px}.topic-card small{font-size:12px}.category-tabs button{font-size:13px;padding:7px 11px}}
@media(max-width:540px){.wrap{padding-left:22px;padding-right:22px}.header-inner{padding:0 20px;height:72px}.brand-mark{width:30px;height:30px;font-size:23px;line-height:27px}.brand{gap:7px;font-size:19px}.brand-sub{font-size:12px;margin-left:3px}.header-inner nav{gap:16px;font-size:12px}.intro{display:block;padding-top:42px;padding-bottom:35px}.intro h1{font-size:43px;line-height:1.38;margin-top:22px;margin-bottom:21px}.intro-copy .eyebrow{font-size:12px;letter-spacing:1.2px}.intro-copy>p{font-size:14px}.text-link{font-size:13px;gap:30px}.identity-card{margin-top:35px;padding:20px 22px 16px;display:grid;grid-template-columns:1fr 1fr;column-gap:20px;align-items:center}.identity-top{grid-column:1/-1;font-size:12px}.author-letter{grid-row:2/4;grid-column:1;font-size:62px;margin:10px 0}.author-name{display:none}.author-school{grid-row:2/4;grid-column:2;margin:22px 0 18px;font-size:14px;gap:8px}.school-icon{width:27px;height:27px;font-size:14px}.author-school small{font-size:12px}.author-footer{grid-column:1/-1;margin-top:3px;font-size:12px;padding-top:8px}.articles-section{padding-top:30px}.section-head{gap:15px;align-items:center;margin-bottom:23px}.section-head .eyebrow{font-size:12px;letter-spacing:1.5px}.section-head h2{font-size:22px;letter-spacing:0}.section-head h2 span{font-size:12px;margin-left:8px}.search-box{width:135px;padding:9px;gap:6px}.search-box input{font-size:12px}.category-tabs{gap:6px;margin-bottom:20px}.category-tabs button{font-size:12px;padding:6px 10px}.category-tabs .category-count{font-size:12px}.post-cover{padding:22px;min-height:170px}.cover-top{font-size:12px;letter-spacing:1.5px}.cover-middle strong{font-size:26px;letter-spacing:2px}.cover-index{font-size:45px}.cover-bottom{font-size:12px;letter-spacing:1.3px}.post-body{padding:22px 20px}.post-body h3{font-size:21px;margin-top:14px;line-height:1.55}.post-body p{font-size:14px;margin-bottom:20px}.post-meta{font-size:12px;gap:9px}.post-bottom{font-size:12px}.read-more{font-size:12px}.sidebar{display:block}.topic-card{padding-top:24px}.topic-card>button{padding:18px 0;gap:15px}.topic-card>button div{font-size:15px}.topic-card small{font-size:12px}.topic-status{font-size:12px}.margin-note{display:none}.endnote{margin:28px 0 38px}.endnote p{font-size:12px}.site-footer{gap:14px;margin-top:32px;padding-top:24px;padding-bottom:24px;font-size:12px}.footer-brand{font-size:24px}.site-footer small{font-size:12px}.back-top{font-size:12px}.article-layout{padding-top:27px}.article-header h1{font-size:30px;margin-top:17px}.article-byline{font-size:12px;gap:12px;line-height:1.8}.article-lead{font-size:15px;padding-left:15px}.article-body{font-size:16px}.article-body h2{font-size:23px}.article-body blockquote{font-size:17px;padding:18px}.article-signoff{font-size:12px;gap:20px}.empty-state{padding:45px 17px}.empty-state h3{font-size:19px}.empty-state p{font-size:13px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.career-intent{margin:0 0 23px;display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:12px;color:#b9926d}.career-intent>span{white-space:nowrap}.career-intent ul{list-style:none;display:flex;gap:7px;flex-wrap:wrap;padding:0;margin:0}.career-intent li{padding:4px 9px;background:#f9f5ed;border:1px solid #f4ecdf;border-radius:4px;color:#956e48;font-size:12px}

.profile-column{min-width:0}.experience-card{margin-top:18px;padding:22px 25px;background:#fff;border:1px solid var(--line);border-radius:4px}.experience-heading .eyebrow{font-size:12px;letter-spacing:1.8px}.experience-heading h2{font-size:18px;font-weight:550;letter-spacing:.5px;margin:7px 0 20px}.experience-list{list-style:none;margin:0;padding:0}.experience-item{display:flex;position:relative;gap:13px;padding:0 0 22px}.experience-item:last-child{padding-bottom:0}.experience-item:not(:last-child):before{content:'';position:absolute;left:4px;top:15px;bottom:0;width:1px;background:#f2eadb}.experience-marker{width:9px;height:9px;border-radius:50%;background:#b78e66;flex:none;margin-top:10px;box-shadow:0 0 0 4px #f9f5ed}.experience-detail{display:flex;justify-content:space-between;align-items:center;gap:15px;flex:1;min-width:0;flex-wrap:wrap}.experience-detail h3{font-size:16px;font-weight:500;margin:0;color:#765433}.experience-status{font-size:12px;color:#a97c51;background:#faf5ed;padding:3px 8px;border-radius:3px}@media(max-width:540px){.experience-card{padding:20px 22px;margin-top:14px}.experience-heading h2{font-size:18px;margin-bottom:16px}}
.project-folder{display:flex;gap:23px;padding:30px 27px;background:#faf6f0;border:1px solid #f2eadb;border-radius:7px;transition:background .2s,transform .2s}.project-folder:hover{background:#f9f3e8;transform:translateY(-2px)}.folder-icon{width:47px;height:36px;border:2px solid #bc9875;border-radius:4px;margin-top:13px;position:relative;flex:none;background:#f9f1e3}.folder-icon:before{content:'';position:absolute;width:20px;height:7px;left:-2px;top:-9px;border:2px solid #bc9875;border-bottom:0;border-radius:4px 5px 0 0;background:#f9f1e3}.folder-copy{flex:1;min-width:0}.folder-copy h3{font-size:25px;margin:8px 0 10px;font-weight:550}.folder-copy p{font-size:14px;line-height:1.9;color:#b68e68;margin:0 0 20px}.folder-meta{display:flex;gap:15px;justify-content:space-between;border-top:1px solid #f2eadb;padding-top:15px;font-size:12px;color:#a77b50}.project-header{padding-top:43px;padding-bottom:38px}.project-header>.eyebrow{margin-top:37px}.project-header h1{font-size:42px;font-weight:500;font-family:var(--serif);margin:12px 0}.project-header>p{color:#b9936f;font-size:15px;margin:12px 0 0}.project-page .intro,.project-page .sidebar{display:none}.project-page .wrap{max-width:980px}.project-page .content-columns{grid-template-columns:1fr}.project-page .article-main{max-width:100%}.article-body a{color:#9e6a38;text-decoration:underline;text-decoration-color:#e1d2b8;text-underline-offset:4px;overflow-wrap:anywhere}.article-body a:hover{color:#7f4d1d}.article-body :not(pre)>code{font-family:ui-monospace,SFMono-Regular,monospace;background:#f8f4ec;border:1px solid #f3ebde;border-radius:4px;padding:1px 5px;color:#8b6643;font-size:.88em}.article-body strong{font-weight:650;color:#684829}.toc{max-height:calc(100vh - 160px);overflow:auto}.article-grid>article{min-width:0}@media(max-width:540px){.project-folder{gap:17px;padding:25px 20px}.folder-icon{width:35px;height:28px;margin-top:11px}.folder-copy h3{font-size:23px}.folder-copy .eyebrow{font-size:10px;letter-spacing:1.2px}.folder-meta{flex-wrap:wrap;gap:8px}.project-header{padding-top:26px;padding-bottom:28px}.project-header h1{font-size:34px}.project-header>p{font-size:14px}.project-header>.eyebrow{margin-top:26px}}

/* Click-to-reveal answers for the Redis interview collection. */
.article-body .faq-hint{font-size:14px;color:var(--muted);margin-bottom:22px}
.faq-item{margin:12px 0;border:1px solid var(--line);border-radius:12px;background:var(--paper);overflow:hidden}
.faq-question{display:flex;align-items:baseline;gap:12px;cursor:pointer;list-style:none;padding:17px 20px;user-select:none}
.faq-question::-webkit-details-marker{display:none}
.faq-question::before{content:'+';flex:none;width:16px;color:var(--blue);font-size:21px;line-height:1}
.faq-item[open]>.faq-question::before{content:'−'}
.article-body .faq-question h2{font-family:inherit;font-size:17px;line-height:1.65;margin:0;padding:0;border:0}
.faq-question:hover,.faq-item[open]>.faq-question{background:var(--soft)}
.faq-question:focus-visible{outline:2px solid var(--blue);outline-offset:-3px;border-radius:10px}
.faq-answer{padding:4px 20px 10px 48px}
.article-body .faq-answer p{margin:12px 0;line-height:1.9}
@media(max-width:600px){.faq-question{padding:14px;gap:8px}.article-body .faq-question h2{font-size:16px}.faq-answer{padding:2px 14px 8px 38px}}

.welcome-note{display:flex;align-items:center;gap:22px;width:calc(100% - 48px);max-width:1200px;margin:28px auto 0;padding:24px 28px;border:1px solid #efc66f;border-left:5px solid #e6a326;border-radius:18px;background:linear-gradient(115deg,#fff0c7,#fff8e9 75%);box-shadow:0 6px 22px #b77d1710;color:#67431d;box-sizing:border-box}
.welcome-note .welcome-icon{display:flex;align-items:center;justify-content:center;flex:0 0 66px;height:66px;border-radius:20px;background:#ffe3a0;font-size:36px}
.welcome-copy{min-width:0}.welcome-eyebrow{display:block;font-size:12px;font-weight:700;letter-spacing:2px;color:#a36c24;margin-bottom:7px}
.welcome-note p{margin:0;overflow-wrap:anywhere}#visitor-welcome{font-size:20px;font-weight:650;line-height:1.6}
#visitor-weather{margin-top:14px;padding-top:12px;border-top:1px solid #e8c98e}#weather-summary{font-size:15px;font-weight:600;line-height:1.7;color:#8b5b20}#weather-tip{font-size:14px;line-height:1.8;margin-top:4px}.weather-source{display:inline-block;font-size:10px;color:#967d59;margin-top:7px}
@media(max-width:600px){.welcome-note{width:calc(100% - 32px);margin-top:18px;padding:18px 15px;gap:12px;align-items:flex-start;border-radius:14px}.welcome-note .welcome-icon{flex-basis:42px;height:42px;border-radius:13px;font-size:26px}#visitor-welcome{font-size:17px}#weather-summary{font-size:13px}#weather-tip{font-size:13px}.welcome-eyebrow{font-size:10px;letter-spacing:1px}}

.article-figure{margin:24px 0}.article-figure img{display:block;width:100%;height:auto;border-radius:14px}.article-figure figcaption{text-align:center;font-size:13px;color:#9b793f;margin-top:8px}

.article-pagination{display:flex;justify-content:center;align-items:center;gap:10px;flex-wrap:wrap;margin:28px 0 12px}.article-pagination[hidden]{display:none}.article-pagination button{min-width:40px;min-height:40px;padding:8px 13px;border:1px solid #e4c583;border-radius:10px;background:#fff8e8;color:#775020;font:inherit;cursor:pointer}.article-pagination button.active{background:#f5b72e;color:#3b2a0c;font-weight:700}.article-pagination button:disabled{opacity:.4;cursor:default}.article-pagination button:focus-visible{outline:3px solid #96691f;outline-offset:3px}.pagination-count{width:100%;text-align:center;color:#8f7958;font-size:13px}#article-list{scroll-margin-top:90px}

/* Personal introduction: a loose arrangement of notes. */
.profile-scatter{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:28px 24px;align-items:start;padding-top:66px;padding-bottom:65px;position:relative}
.profile-scatter .intro-copy{grid-column:1/8;grid-row:1/3;padding:10px 0 0 12px}
.profile-scatter .intro-copy h1{font-size:clamp(42px,4.8vw,62px);margin-top:22px}
.profile-scatter .profile-column{display:contents}
.profile-scatter .identity-card{grid-column:9/13;grid-row:1;transform:rotate(3deg);background:#fff3c9;border:1px solid #ebd79f;border-radius:3px;box-shadow:5px 8px 0 #eee3cb55;overflow:visible;margin:6px 8px 0 0;padding:23px 25px 17px;scroll-margin-top:120px}
.profile-scatter .identity-card:before{content:'';position:absolute;width:83px;height:22px;background:#e8cf9990;top:-12px;left:calc(50% - 41px);transform:rotate(-8deg)}
.profile-scatter .author-letter{font-size:64px;margin:12px 0 8px}.profile-scatter .author-school{margin:16px 0}.profile-scatter .author-name{font-size:16px}.profile-scatter .author-footer{border-color:#e7d5a6}
.profile-scatter .experience-card{grid-column:8/12;grid-row:2;transform:rotate(-2deg);margin:7px 0 0;padding:20px 24px;background:#fffefa;border-color:#e9dfcb;box-shadow:3px 5px 0 #eee3cb44}
.profile-scatter .experience-heading h2{margin-bottom:16px}.profile-scatter .experience-item{padding-bottom:16px}.profile-scatter .experience-item:last-child{padding-bottom:0}
.profile-scatter .odd-titles{grid-column:1/-1;grid-row:3;margin-top:12px;padding:18px 4px 6px}
.odd-titles-heading{display:flex;gap:12px;align-items:center;color:#92673a;margin-bottom:25px}.odd-titles-heading>span:first-child{font-size:27px;color:#c48b29}.odd-titles-heading h2{font-size:15px;font-weight:500;letter-spacing:1px;margin:0}.titles-aside{font-size:12px;color:#a08464;margin-left:auto}
.title-scraps{list-style:none;display:grid;grid-template-columns:1.06fr 1fr 1fr;gap:25px;margin:0;padding:0 8px}
.title-scraps li{position:relative;min-width:0;padding:22px 23px 29px;border:1px solid #e9d6aa;background:#fff4d7;box-shadow:3px 5px 0 #e8dcc533;transform:rotate(-2deg)}
.title-scraps li:nth-child(2){background:#f0f3e7;border-color:#d7dec6;transform:rotate(2deg);margin-top:13px}.title-scraps li:nth-child(3){background:#fbede1;border-color:#ead5c3;transform:rotate(-1.5deg);margin-top:-4px}
.scrap-index{display:block;font-size:11px;letter-spacing:1px;color:#9b7a54}.title-scraps p{font-size:17px;line-height:1.85;font-family:var(--serif);font-weight:500;margin:15px 0 0;overflow-wrap:anywhere;color:#684829}.scrap-mark{position:absolute;bottom:6px;right:15px;font-family:Georgia,serif;font-size:24px;color:#ae8753}
.profile-scatter .learning-note{grid-column:2/10;grid-row:4;justify-self:start;margin:22px 0 0;max-width:100%;transform:rotate(-1deg)}
@media(max-width:900px) and (min-width:641px){.profile-scatter{gap:24px 16px}.profile-scatter .intro-copy{grid-column:1/8;padding-left:0}.profile-scatter .identity-card{grid-column:8/13;padding:20px}.profile-scatter .experience-card{grid-column:8/13;padding:18px}.profile-scatter .intro-copy h1{font-size:44px}.title-scraps{gap:16px;padding:0}.title-scraps li{padding:17px 16px 26px}.title-scraps p{font-size:15px}.titles-aside{display:none}}
@media(max-width:640px){.profile-scatter{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 14px;padding-top:37px;padding-bottom:36px}.profile-scatter .intro-copy{grid-column:1/-1;grid-row:1;padding:0}.profile-scatter .intro-copy h1{font-size:43px}.profile-scatter .identity-card{display:block;grid-column:1/-1;grid-row:2;width:calc(100% - 24px);max-width:350px;justify-self:end;margin:6px 10px 0 0;padding:21px 24px 16px;transform:rotate(2deg)}.profile-scatter .author-name{display:block}.profile-scatter .author-letter{font-size:57px}.profile-scatter .author-school{margin:15px 0}.profile-scatter .experience-card{grid-column:1/-1;grid-row:3;width:calc(100% - 26px);max-width:350px;margin:0;justify-self:start;transform:rotate(-1.5deg)}.profile-scatter .odd-titles{grid-column:1/-1;grid-row:4;margin-top:0;padding:8px 0}.odd-titles-heading{margin-bottom:22px;gap:9px}.odd-titles-heading h2{font-size:14px}.titles-aside{display:none}.title-scraps{grid-template-columns:1fr;gap:22px;padding:0 9px}.title-scraps li{padding:17px 21px 24px;max-width:360px;width:95%;transform:rotate(-1.5deg)}.title-scraps li:nth-child(2){margin:0;justify-self:end;transform:rotate(1.5deg)}.title-scraps li:nth-child(3){margin:0;transform:rotate(-1deg)}.title-scraps p{font-size:17px;margin-top:10px}.profile-scatter .learning-note{grid-column:1/-1;grid-row:5;margin:5px 0 0;width:100%;transform:none}}

/* Keep the introduction straight, with titles in the main biography. */
.profile-scatter .identity-card,.profile-scatter .experience-card,.profile-scatter .learning-note{transform:none;box-shadow:none}
.profile-scatter .identity-card:before{display:none}
.profile-scatter .identity-card{margin-right:0;border-radius:6px}
.profile-scatter .experience-card{grid-column:9/13;margin-top:0;border-radius:6px}
.profile-scatter .learning-note{grid-row:3;grid-column:1/-1;margin-top:12px}
.profile-titles{list-style:none;padding:0 0 0 17px;margin:0 0 26px;border-left:2px solid #e7bd62;max-width:100%}
.profile-titles li{font-size:15px;line-height:1.9;color:#805e3e;padding:4px 0;overflow-wrap:anywhere}
@media(max-width:900px) and (min-width:641px){.profile-scatter .experience-card{grid-column:8/13}.profile-titles li{font-size:14px}}
@media(max-width:640px){.profile-scatter .identity-card,.profile-scatter .experience-card{transform:none;width:100%;max-width:none;justify-self:stretch;margin:0}.profile-scatter .identity-card{grid-column:1/-1}.profile-scatter .experience-card{grid-column:1/-1}.profile-scatter .learning-note{grid-column:1/-1;grid-row:4;margin:0}.profile-titles{padding-left:14px;margin-bottom:23px}.profile-titles li{font-size:14px;padding:5px 0}}

/* Full-width personal title showcase. */
.profile-showcase{display:flex;flex-direction:column;align-items:stretch;gap:27px;padding-top:48px;padding-bottom:48px}
.showcase-heading{display:flex;align-items:center;gap:30px;position:relative;padding:0 5px 12px;border-bottom:1px solid #e9dfcc}
.showcase-kicker{font-size:11px;letter-spacing:2.7px;color:#a88964}.profile-showcase .showcase-heading h1{font-family:Georgia,serif;font-style:italic;font-size:58px;line-height:1.1;letter-spacing:-2px;margin:8px 0 0;color:#68431d}.showcase-heading h1>span{font:400 20px -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;letter-spacing:2px;color:#a7783c}.showcase-heading>p{margin:15px 0 0 auto;font-size:15px;line-height:1.9;color:#755331}.showcase-heading>p>span{font-size:12px;color:#a3835c}.showcase-star{font-size:55px;color:#dca329;line-height:1}
.title-parade{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:22px}.title-parade>li{position:relative;overflow:hidden;min-height:200px;padding:27px 40px;display:flex;align-items:center;gap:30px;border-radius:10px}.honor-label{font-size:10px;letter-spacing:2px;display:block;margin-bottom:14px;opacity:.7}.honor-copy{position:relative;z-index:1;min-width:0}.honor-copy p{font-size:18px;line-height:1.7;margin:0;letter-spacing:1px}.honor-copy strong{font-size:34px;line-height:1.7;font-weight:600;letter-spacing:2px}.honor-ticket{background:#f8df8d;color:#62441c;border:1px solid #e1bd57}.honor-symbol{width:95px;height:95px;flex:none;border:1px solid #b58a35;border-radius:50%;display:grid;place-items:center;font-size:66px;line-height:1;color:#9c6c1d}.honor-ticket strong>span{display:inline-block;margin-left:6px;padding:0 12px;background:#fff5d3;border:1px solid #d3a843;border-radius:40px;color:#8c5b16}.ticket-edge{align-self:stretch;margin:-27px -40px -27px auto;padding:44px 30px;border-left:2px dashed #c69f48;color:#9c752e;display:flex;flex-direction:column;justify-content:center;text-align:center;font-size:12px;line-height:3;letter-spacing:3px}
.title-parade>.honor-terminal{display:block;background:#413a2f;color:#fff4d9;padding:57px 42px 27px;border:1px solid #635543}.terminal-top{position:absolute;inset:0 0 auto;display:flex;justify-content:space-between;padding:10px 22px;background:#342f27;font-size:11px;letter-spacing:2px;color:#c7b794}.terminal-top>span:first-child{color:#d9aa4e}.honor-terminal .honor-label{color:#dec58c}.honor-terminal strong{color:#f5d37c}.terminal-cursor{color:#e8aa38;font-weight:400}.terminal-decoration{position:absolute;right:46px;bottom:12px;font-family:monospace;font-size:140px;font-weight:700;color:#ffffff0c;line-height:1}
.honor-open{background:#edf0e3;color:#3e5037;border:1px solid #d3dbc3}.open-seal{font-size:100px;line-height:1;color:#859668;flex:none;width:100px;text-align:center}.honor-open .honor-label{color:#6e815c}.honor-open strong{border-bottom:3px solid #bdcb9e;padding-bottom:5px}.open-decoration{font-family:Georgia,serif;font-size:110px;position:absolute;right:45px;color:#85966833;line-height:1}
.showcase-experience{display:flex;gap:25px;align-items:center;padding:17px 4px;border-top:1px solid #e9dfcc;border-bottom:1px solid #e9dfcc}.showcase-experience h2{font-size:13px;color:#aa885c;font-weight:400;letter-spacing:2px;margin:0}.showcase-experience p{font-size:15px;margin:0;color:#795837}.showcase-experience p>span{margin:0 18px;color:#bc9d6b}.showcase-experience small{font-size:11px;margin-left:15px;color:#9e7a41;background:#fcf0d0;padding:4px 8px;border-radius:3px}.profile-showcase .learning-note{margin:0;max-width:100%;transform:none;align-self:flex-start;box-shadow:none}.profile-showcase .learning-note:before{display:none}
@media(max-width:760px){.profile-showcase{padding-top:32px;gap:23px}.showcase-heading{gap:17px;flex-wrap:wrap}.profile-showcase .showcase-heading h1{font-size:48px}.showcase-heading h1>span{font-size:18px}.showcase-heading>p{margin:0;flex-basis:100%;font-size:13px}.showcase-star{position:absolute;right:5px;top:14px;font-size:45px}.title-parade>li{padding:25px 22px;min-height:190px;gap:18px}.honor-symbol{width:53px;height:53px;font-size:38px}.honor-copy p{font-size:14px;letter-spacing:.3px}.honor-copy strong{font-size:25px;letter-spacing:1px}.honor-label{font-size:9px;letter-spacing:1.4px;margin-bottom:12px}.ticket-edge{display:none}.honor-ticket strong>span{padding:0 8px;margin-left:3px}.title-parade>.honor-terminal{padding:56px 25px 25px}.terminal-decoration{right:16px;font-size:95px}.open-seal{width:53px;font-size:60px}.open-decoration{right:10px;font-size:90px}.showcase-experience{align-items:flex-start;gap:12px;flex-direction:column}.showcase-experience p{font-size:14px}.showcase-experience p>span{margin:0 10px}.showcase-experience small{margin-left:8px}}
@media(max-width:380px){.honor-symbol,.open-seal{display:none}.honor-copy strong{font-size:23px}}

/* A compact profile, with three small typographic signatures. */
.profile-showcase{max-width:960px;gap:22px;padding-top:35px;padding-bottom:35px}
.showcase-heading{padding:0 0 20px;gap:20px}.profile-showcase .showcase-heading h1{font-size:48px;margin-top:5px}.showcase-heading h1>span{font-size:17px}.showcase-heading>p{font-size:13px;margin-top:12px}.showcase-heading>p>span{font-size:11px}.showcase-star{font-size:35px}.showcase-kicker{font-size:10px;letter-spacing:2px}
.profile-showcase .compact-titles{gap:12px;width:100%;max-width:760px;align-self:flex-start}
.compact-titles>li.compact-honor{min-height:0;padding:13px 18px;gap:14px;border-radius:6px;border:0;box-shadow:none;position:relative;display:flex;align-items:center;overflow:hidden}
.compact-honor p{margin:0;font-size:14px;line-height:1.9;color:#705334;letter-spacing:.2px;min-width:0;flex:1;overflow-wrap:anywhere}
.compact-symbol{width:32px;height:32px;flex:none;display:grid;place-items:center;border-radius:50%;font-family:ui-monospace,monospace;font-size:19px;line-height:1;color:#a67923;background:#edce793d}
.honor-highlight{font-size:16px;font-weight:600;margin-left:6px;white-space:normal;color:#68451d}
.compact-number{font-family:Georgia,serif;font-style:italic;font-size:12px;color:#b99d72;flex:none;align-self:center;padding-left:8px}
.compact-titles>.badminton{background:#fbf2d6;border-left:3px solid #dfb94e}.badminton .honor-highlight{background:linear-gradient(transparent 65%,#edd17f88 65%);padding-bottom:2px}
.compact-titles>.dialogue{background:#f1eee8;border-left:3px solid #9a8b70}.dialogue .compact-symbol{background:#e3ddd1;color:#72604c;font-size:14px;border-radius:5px}.dialogue .honor-highlight{color:#68513b}
.compact-titles>.opensource{background:#f0f3e9;border-left:3px solid #a3b189}.opensource .compact-symbol{background:#dfe7d0;color:#72845c;font-size:14px;border-radius:5px}.opensource .honor-highlight{color:#566743}.opensource .compact-number{color:#9ba788}
.profile-showcase .showcase-experience{padding:14px 0;gap:24px}.showcase-experience h2{font-size:12px}.showcase-experience p{font-size:13px}.showcase-experience small{font-size:10px}.profile-showcase .learning-note{background:transparent;border:0;border-left:2px solid #e8cf8d;padding:2px 0 2px 15px;margin:0;width:auto;max-width:100%;border-radius:0}.profile-showcase .learning-note p,.profile-showcase .learning-note small{display:none}.profile-showcase .learning-note-label{font-size:10px;letter-spacing:1px;margin-bottom:4px}.profile-showcase .learning-note a{font-size:13px}
@media(max-width:760px){.profile-showcase{padding-top:28px;padding-bottom:30px;gap:19px}.showcase-heading{padding-bottom:16px;gap:12px}.profile-showcase .showcase-heading h1{font-size:42px}.showcase-heading>p{margin:0;font-size:12px}.showcase-heading>p>span{font-size:10px}.showcase-star{font-size:30px;top:12px}.compact-titles>li.compact-honor{padding:12px 12px;gap:11px;min-height:0}.compact-honor p{font-size:12px;line-height:1.9}.honor-highlight{font-size:14px;margin-left:4px}.compact-symbol{width:29px;height:29px;font-size:17px}.compact-number{font-size:10px;padding-left:0}.profile-showcase .showcase-experience{gap:9px;padding:12px 0}.showcase-experience p{font-size:12px}.showcase-experience small{font-size:10px}.showcase-experience p>span{margin:0 8px}}

/* Titles and experience sit side by side; current learning has its own card. */
.profile-showcase{display:grid;grid-template-columns:minmax(0,1fr) 235px;gap:22px 24px;align-items:start}
.profile-showcase .showcase-heading{grid-column:1/-1}
.profile-showcase .compact-titles{grid-column:1;max-width:none;align-self:start}
.profile-showcase .compact-titles>li.compact-honor{padding:12px 14px;gap:11px;min-height:61px}
.profile-showcase .compact-honor p{font-size:13px;line-height:1.8}.profile-showcase .honor-highlight{font-size:15px}
.profile-showcase .showcase-experience{grid-column:2;grid-row:2;display:block;align-self:stretch;padding:20px 22px;border:1px solid #e7dfcf;border-radius:7px;background:#fffcf5;margin:0}
.experience-kicker{font-size:9px;letter-spacing:2px;color:#b39569}.profile-showcase .showcase-experience h2{font-size:17px;font-weight:500;color:#72502b;margin:5px 0 20px;letter-spacing:.5px}
.profile-internships{list-style:none;margin:0;padding:0}.profile-internships li{position:relative;display:flex;gap:12px;padding:0 0 20px;font-size:14px;color:#795837;line-height:1.6}.profile-internships li:last-child{padding-bottom:0}.profile-internships li:not(:last-child):before{content:'';position:absolute;left:4px;top:12px;bottom:0;width:1px;background:#e9ddc3}.internship-dot{flex:none;width:9px;height:9px;margin-top:7px;border-radius:50%;background:#d6ac4b;box-shadow:0 0 0 3px #f6edd7}.profile-internships small{display:block;width:max-content;margin-top:5px;padding:2px 6px;background:#faf0d7;border-radius:3px;font-size:10px;color:#a37d36}
.profile-showcase .learning-note{grid-column:1/-1;justify-self:start;align-self:start;position:relative;margin:0;padding:19px 23px 18px;width:380px;max-width:100%;border:1px solid #e9d59b;border-radius:7px;background:linear-gradient(115deg,#fff5ce,#fffaf0);box-shadow:0 4px 12px #79562408;transform:none}
.profile-showcase .learning-note:after{content:'↗';position:absolute;right:17px;top:12px;font-size:20px;color:#c09b45}
.profile-showcase .learning-note-label{font-size:10px;letter-spacing:1.5px;color:#a18244;display:block;margin-bottom:9px}
.profile-showcase .learning-note a{display:block;font-size:14px;font-weight:550;line-height:1.8;color:#715022;padding-right:13px}
.profile-showcase .learning-note p{display:block;font-size:12px;line-height:1.8;color:#a3885c;margin:8px 0 0}
.profile-showcase .learning-note small{display:block;font-size:10px;color:#b09870;margin-top:12px}
@media(max-width:700px){.profile-showcase{grid-template-columns:minmax(0,1fr);gap:19px}.profile-showcase .showcase-heading,.profile-showcase .compact-titles,.profile-showcase .showcase-experience,.profile-showcase .learning-note{grid-column:1;grid-row:auto}.profile-showcase .showcase-experience{padding:18px 20px}.profile-internships{display:flex;gap:30px;flex-wrap:wrap}.profile-internships li{padding:0}.profile-internships li:before{display:none}.profile-showcase .showcase-experience h2{margin-bottom:15px}.profile-showcase .learning-note{width:100%;padding:18px 20px}.profile-showcase .compact-titles>li.compact-honor{min-height:0;padding:12px}.profile-showcase .compact-honor p{font-size:12px}.profile-showcase .honor-highlight{font-size:14px}}

/* Public article publication calendar. */
.update-calendar{max-width:1160px;margin:0 auto 35px}.calendar-panel{border:1px solid #eee1c8;background:#fffcf5;border-radius:9px;padding:24px 26px 20px}.calendar-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.calendar-heading .eyebrow{font-size:9px;letter-spacing:2px;color:#b19461}.calendar-heading h2{font-size:20px;letter-spacing:.7px;font-weight:550;margin:5px 0}.calendar-heading p{font-size:12px;color:#aa8b5d;margin:4px 0 0;font-variant-numeric:tabular-nums}.calendar-year-label{font-size:11px;color:#ad9166;display:flex;align-items:center;gap:8px}.calendar-year-label select{font:inherit;font-size:12px;color:#806033;border:1px solid #e8d8b7;background:#fffaf0;padding:6px 9px;border-radius:5px}.calendar-scroll{overflow-x:auto;padding:2px 3px 8px;scrollbar-width:thin;scrollbar-color:#decba5 transparent}.calendar-board{display:grid;grid-template-columns:24px max-content;grid-template-rows:20px 95px;gap:3px 5px;min-width:max-content;--calendar-weeks:53}.calendar-months{grid-column:2;display:grid;grid-template-columns:repeat(var(--calendar-weeks),11px);gap:3px;font-size:10px;color:#a2875c;align-items:start}.calendar-months span{white-space:nowrap}.calendar-weekdays{grid-column:1;grid-row:2;display:grid;grid-template-rows:repeat(7,11px);gap:3px;font-size:9px;color:#b49a73;line-height:11px}.calendar-grid{grid-column:2;grid-row:2;display:grid;grid-template-rows:repeat(7,11px);grid-auto-flow:column;grid-auto-columns:11px;gap:3px}.calendar-day,.calendar-blank,.calendar-legend i{display:block;width:11px;height:11px;border-radius:2px;flex:none}.calendar-day{padding:0;border:1px solid #eae2d3;background:#f3efe7;cursor:pointer;appearance:none}.calendar-day[data-level="1"],.calendar-legend i[data-level="1"]{background:#f7e4a4;border-color:#ead28c}.calendar-day[data-level="2"],.calendar-legend i[data-level="2"]{background:#edc766;border-color:#debb62}.calendar-day[data-level="3"],.calendar-legend i[data-level="3"]{background:#d89f32;border-color:#c6912d}.calendar-day[data-level="4"],.calendar-legend i[data-level="4"]{background:#a96c1e;border-color:#9a621c}.calendar-day:disabled{opacity:.35;cursor:default}.calendar-day:hover:not(:disabled){outline:2px solid #b58b42;outline-offset:1px}.calendar-day[aria-pressed="true"]{outline:2px solid #6c4b25;outline-offset:1px}.calendar-day:focus-visible{outline:2px solid #6c4b25;outline-offset:2px}.calendar-today{box-shadow:inset 0 0 0 1px #b88c39}.calendar-caption{display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:10px;color:#b59c75;margin:9px 0 0}.calendar-legend{display:flex;align-items:center;gap:4px;white-space:nowrap}.calendar-legend i{border:1px solid #eae2d3;background:#f3efe7;width:10px;height:10px}.calendar-legend>span{margin:0 3px}.calendar-detail{margin-top:19px;border-top:1px solid #eee5d5;padding-top:15px}.calendar-detail-head{display:flex;align-items:center;gap:12px;justify-content:space-between}.calendar-detail-head h3{font-size:12px;font-weight:500;color:#8a693c;margin:0}.calendar-detail-head>span{font-size:10px;color:#b19a74}.calendar-posts{list-style:none;margin:8px 0 0;padding:0;max-height:205px;overflow-y:auto}.calendar-posts li+li{border-top:1px solid #f2eadc}.calendar-posts a{display:flex;align-items:center;gap:12px;padding:9px 2px}.calendar-post-title{font-size:12px;line-height:1.8;color:#70512d;flex:1;min-width:0}.calendar-post-tag{font-size:10px;color:#ab8b57;max-width:35%;text-align:right}.calendar-post-arrow{font-size:15px;color:#b58b41}.calendar-posts a:hover .calendar-post-title{color:#a3711c;text-decoration:underline;text-underline-offset:3px}.calendar-empty{font-size:12px;color:#b09b7b;margin:12px 0 0}.project-page .update-calendar{display:none}
@media(max-width:640px){.update-calendar{margin-bottom:26px}.calendar-panel{padding:20px 17px 17px}.calendar-heading{gap:10px;margin-bottom:16px}.calendar-heading h2{font-size:18px}.calendar-heading p{font-size:11px}.calendar-year-label{font-size:0;gap:0}.calendar-caption{font-size:9px;gap:10px;flex-wrap:wrap}.calendar-posts a{gap:8px;align-items:flex-start}.calendar-post-title{font-size:12px}.calendar-post-tag{font-size:9px}.calendar-detail-head h3{font-size:11px}}

/* Recent learning includes every published article, with the newest two side by side. */
.profile-showcase .recent-learning{grid-column:1/-1;width:100%;min-width:0;margin:0}
.recent-learning-heading{font-size:12px;font-weight:500;letter-spacing:1.5px;color:#a18244;margin:0 0 11px}
.recent-learning-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.profile-showcase .recent-learning .learning-note{grid-column:auto;width:100%;height:100%;box-sizing:border-box;display:flex;flex-direction:column;padding:17px 21px;min-width:0}
.profile-showcase .recent-learning .learning-note small{margin-top:auto;padding-top:12px}
.profile-showcase .recent-learning .learning-note-label{font-size:10px;letter-spacing:.6px}
@media(max-width:480px){.recent-learning-grid{gap:10px}.profile-showcase .recent-learning .learning-note{padding:13px 12px}.profile-showcase .recent-learning .learning-note a{font-size:12px;padding-right:3px}.profile-showcase .recent-learning .learning-note:after{font-size:14px;right:8px;top:7px}.profile-showcase .recent-learning .learning-note small{font-size:9px}}

/* Portrait at the left; profile and latest learning move together to the right. */
.profile-showcase{max-width:1160px;grid-template-columns:180px minmax(0,1fr) 235px;column-gap:28px}
.profile-avatar{grid-column:1;grid-row:1/4;margin:13px 0 0;align-self:start;width:180px}
.profile-avatar img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:50%;border:5px solid #fffcf5;box-shadow:0 0 0 1px #e8dcc5,0 8px 24px #72502b14;box-sizing:border-box}
.profile-showcase .showcase-heading{grid-column:2/-1}
.profile-showcase .compact-titles{grid-column:2;grid-row:2}
.profile-showcase .showcase-experience{grid-column:3;grid-row:2}
.profile-showcase .recent-learning{grid-column:2/-1;grid-row:3}
@media(max-width:1000px) and (min-width:701px){.profile-showcase{grid-template-columns:130px minmax(0,1fr) 195px;column-gap:20px}.profile-avatar{width:130px}.profile-showcase .showcase-experience{padding:17px 15px}.profile-showcase .compact-honor p{font-size:12px}.profile-showcase .honor-highlight{font-size:13px}}
@media(max-width:700px){.profile-showcase{grid-template-columns:96px minmax(0,1fr);column-gap:20px}.profile-avatar{grid-column:1;grid-row:1;width:96px;margin:0;align-self:center}.profile-showcase .showcase-heading{grid-column:2;grid-row:1;flex-wrap:wrap;padding-right:0}.profile-showcase .showcase-heading>p{margin:0}.profile-showcase .showcase-star{display:none}.profile-showcase .compact-titles{grid-column:1/-1;grid-row:2}.profile-showcase .showcase-experience{grid-column:1/-1;grid-row:3}.profile-showcase .recent-learning{grid-column:1/-1;grid-row:4}}
