@import url(https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;700&display=swap);body,html{margin:0;min-height:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,button,input,select,textarea{font:inherit}*{box-sizing:border-box}#root,body,html{margin:0;min-height:100%}:root{--accent:#5d7a64;--accent-soft:#5d7a641f;--spark:#ebff19;--spark-ink:#2a3000;--border:#ece8e1;--muted:#7b7b74;--mainframe-panel:#07193f;--mainframe-panel-soft:#0d295f;--mainframe-border:#8fbaff52;--mainframe-glow:#57bfff2e;--mainframe-label:#f6f8ff;--mainframe-command:#ffd876;--mainframe-keyword:#8fe3ff;--mainframe-string:#98f5b8;--mainframe-symbol:#ffb6c9;--mainframe-comment:#7d95d3;--mainframe-number:#fff1a8;--mainframe-operator:#a7bbff;--script-border:#7ee0c942;--data-border:#89e8ff3d;--markup-border:#c691a33d;--style-border:#5d7a643d;--terminal-border:#d2ff583d;--page-max-width:760px;--text-soft:#5f5f58}body{background:#fcfbf8;color:#20201d;font-family:IBM Plex Mono,Courier New,monospace;font-size:13px;line-height:1.9;overflow-x:hidden;text-transform:lowercase}::selection{background:#ebff19;background:var(--spark);color:#161610}a{color:inherit;text-decoration-color:#20201d38;text-decoration-line:underline;text-decoration-style:dotted;text-decoration-thickness:1px;text-underline-offset:.18em;transition:color .14s ease,opacity .14s ease,background-color .14s ease,transform .14s ease,text-decoration-color .14s ease}a:hover{color:#2a3000;color:var(--spark-ink);text-decoration-color:#ebff19;text-decoration-color:var(--spark)}h1,h2,p{margin:0}.page{margin:0 auto;max-width:760px;max-width:var(--page-max-width);padding:92px 48px 120px;z-index:1}.app-shell,.page{position:relative}.app-shell{isolation:isolate;min-height:100svh;overflow:hidden}.ambient-terminal{--terminal-width:clamp(290px,33vw,430px);--terminal-height:clamp(240px,34vh,320px);animation:terminal-float 30s ease-in-out infinite alternate,terminal-breathe 9s ease-in-out infinite;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:linear-gradient(180deg,#fff9,#f8faf573),#f7f9f4ad;border:1px solid #5d7a6438;border-radius:26px;box-shadow:inset 0 1px 0 #ffffffb3,0 24px 60px #5d7a6414;display:flex;flex-direction:column;left:min(calc(50% + 210px),calc(100vw - var(--terminal-width) - 20px));min-height:var(--terminal-height);opacity:.82;pointer-events:none;position:fixed;top:clamp(90px,18vh,150px);width:var(--terminal-width);z-index:0}.ambient-terminal:before{background:radial-gradient(circle at center,#5d7a641a,#0000 72%);border-radius:48px;content:"";inset:-36px;position:absolute;z-index:-1}.ambient-terminal__chrome{align-items:center;border-bottom:1px solid #5d7a641f;color:#5d7a648a;display:flex;font-size:.86em;gap:.45rem;letter-spacing:.06em;padding:.8rem 1rem}.ambient-terminal__dot{background:#5d7a6447;border-radius:999px;height:8px;width:8px}.ambient-terminal__title{margin-left:auto}.ambient-terminal__body{grid-gap:.7rem;align-content:start;display:grid;flex:1 1;gap:.7rem;padding:1.15rem 1.15rem 1.25rem}.ambient-terminal__line{align-items:baseline;color:#5d7a64b8;display:flex;font-size:.94em;gap:.7rem;line-height:1.6;white-space:nowrap}.ambient-terminal__line:first-child{opacity:.56}.ambient-terminal__line:nth-child(2){opacity:.68}.ambient-terminal__line:nth-child(3){opacity:.8}.ambient-terminal__line:nth-child(4){opacity:.58}.ambient-terminal__line--active{opacity:.92}.ambient-terminal__prompt{color:#5d7a64e6}.ambient-terminal__caret{animation:terminal-caret-blink 1.6s step-end infinite;display:inline-block;min-width:.7ch}.page--home{display:flex;flex-direction:column;gap:clamp(1.25rem,2.8vh,2.4rem);justify-content:space-evenly;min-height:100svh;padding-bottom:clamp(32px,6vh,72px);padding-top:clamp(32px,6vh,72px)}.stack{grid-gap:1rem;display:grid;gap:1rem}.home-section{grid-gap:.75rem;display:grid;gap:.75rem}.page-title{align-items:center;color:#7b7b74;color:var(--muted);display:inline-flex;font-size:1em;font-weight:400;gap:.55rem}.page-title:before{animation:icon-float 3s ease-in-out infinite;color:#ebff19;color:var(--spark);content:"⚪";flex:0 0 auto;font-size:1.25em;line-height:1;transform:translateY(1px)}.intro-copy{max-width:64ch}.article-heading strong,.intro-copy strong{font-weight:700}.skills-line{color:#5f5f58;color:var(--text-soft)}.time-line{align-items:center;color:#7b7b74;color:var(--muted);display:inline-flex;gap:.55rem}.time-line:before{animation:icon-sparkle 2s ease-in-out infinite;color:#ebff19;color:var(--spark);content:"⚡";flex:0 0 auto;font-size:1.1em;line-height:1;transform:translateY(1px)}.time-line--articles:before{animation:icon-write 2.5s ease-in-out infinite;content:"✍️"}.time-line--weather:before{animation:none;content:attr(data-weather)}.footer-details{grid-gap:.2rem;display:grid;gap:.2rem}.article-table{border-top:1px solid #ece8e1;border-top:1px solid var(--border);width:100%}.article-row{grid-gap:1rem;align-items:baseline;border-bottom:1px solid #ece8e1;border-bottom:1px solid var(--border);display:grid;gap:1rem;grid-template-columns:minmax(0,1fr) auto;padding:.85rem 0;transition:border-color .14s ease}.article-main{align-items:baseline;display:flex;gap:.85rem;min-width:0}.article-row:focus-within,.article-row:hover{border-bottom-color:#ebff19;border-bottom-color:var(--spark)}.article-year{color:#7b7b74;color:var(--muted);flex:0 0 auto;transition:color .14s ease}.article-row:focus-within .article-year,.article-row:hover .article-year{color:#2a3000;color:var(--spark-ink)}.article-title-cell a{display:inline-block;transform:translateX(0)}.article-title-cell{min-width:0}.article-row:focus-within .article-title-cell a,.article-row:hover .article-title-cell a{color:#2a3000;color:var(--spark-ink);transform:translateX(2px)}.article-date{color:#7b7b74;color:var(--muted);text-align:right;white-space:nowrap}.article-block{gap:1.2rem;max-width:64ch}.page--article{padding-top:clamp(52px,7vh,90px)}.article-header{grid-gap:.55rem;display:grid;gap:.55rem}.article-meta{color:#7b7b74;color:var(--muted)}.article-heading{font-size:clamp(1.2rem,2.5vw,1.55rem);font-weight:400;line-height:1.45;max-width:20ch}.article-standfirst{color:#5f5f58;color:var(--text-soft);max-width:58ch}.article-section{grid-gap:.95rem;display:grid;gap:.95rem}.article-section+.article-section{border-top:1px solid #ece8e1;border-top:1px solid var(--border);margin-top:.4rem;padding-top:1.6rem}.article-section__title{color:#7b7b74;color:var(--muted);font-size:.96em;font-weight:700}.article-paragraph{max-width:64ch}.article-heading strong,.article-paragraph strong,.article-standfirst strong{font-weight:700}.article-paragraph em,.article-section__title em,.article-standfirst em{color:#5d7a64;color:var(--accent);font-style:italic}.article-paragraph code,.article-standfirst code{background:#5d7a6414;border-radius:999px;font-size:.94em;padding:.04rem .3rem;text-transform:none}.article-links{grid-gap:.3rem;display:grid;gap:.3rem}.article-link-line{color:#5f5f58;color:var(--text-soft)}.code-block{grid-gap:.5rem;--code-ink:#2b322c;--code-command:#5d7a64;--code-keyword:#5d7a64;--code-string:#94683c;--code-symbol:#46504a;--code-comment:#91887d;--code-number:#a06e40;--code-operator:#6a6c65;--code-label:#2b322c;--code-function:#8e6270;--code-property:#5d7a64;--code-tag:#8e6270;--code-attribute:#5d7a64;--code-selector:#8e6270;--code-key:#8e6270;--code-literal:#7b8d4f;--code-prompt:#5d7a64;--code-divider:#20201d14;--code-shadow:none;--code-overlay:none;--code-overlay-opacity:0;background:linear-gradient(180deg,#ffffff7a,#5d7a640a),#5d7a640a;border:1px solid #ece8e1;border:1px solid var(--border);border-radius:18px;box-shadow:var(--code-shadow);display:grid;gap:.5rem;overflow:hidden;padding:1rem 1.05rem;position:relative}.code-block:before{background:var(--code-overlay);content:"";inset:0;opacity:var(--code-overlay-opacity);pointer-events:none;position:absolute}.code-block__label{color:#7b7b74;color:var(--muted)}.code-block__label--themed{letter-spacing:.16em;text-transform:uppercase}.code-block pre{margin:0;overflow-x:auto;position:relative;white-space:pre;z-index:1}.code-block__label--themed+pre{border-top:1px solid var(--code-divider);padding-top:.35rem}.code-block code{color:var(--code-ink);font-family:inherit;font-size:.96em;line-height:1.8;text-transform:none}.code-block--mainframe{--code-ink:var(--mainframe-label);--code-command:var(--mainframe-command);--code-keyword:var(--mainframe-keyword);--code-string:var(--mainframe-string);--code-symbol:var(--mainframe-symbol);--code-comment:var(--mainframe-comment);--code-number:var(--mainframe-number);--code-operator:var(--mainframe-operator);--code-label:var(--mainframe-label);--code-divider:#8fbaff24;--code-shadow:inset 0 1px 0 #ffffff14,inset 0 0 0 1px #ffffff05,0 18px 44px #06112c38;--code-overlay:radial-gradient(circle at top right,#57bfff29,#0000 34%),radial-gradient(circle at bottom left,#ffd8761f,#0000 28%);--code-overlay-opacity:1;background:linear-gradient(180deg,#ffffff08,#fff0),linear-gradient(180deg,#0d295feb,#07193ffa),repeating-linear-gradient(180deg,hsla(0,0%,100%,.055) 0 1px,#fff0 1px 4px);border-color:#8fbaff52;border-color:var(--mainframe-border)}.code-block--script{--code-ink:#eef9f6;--code-keyword:#7ae0c9;--code-string:#ffd48c;--code-symbol:#d9e7ee;--code-comment:#6f8692;--code-number:#ffb792;--code-operator:#9ebdff;--code-function:#97ebff;--code-property:#ffb59d;--code-literal:#bef58f;--code-divider:#7ee0c92e;--code-shadow:inset 0 1px 0 #ffffff0a,inset 0 0 0 1px #ffffff05,0 18px 40px #0d1c2238;--code-overlay:radial-gradient(circle at top right,#7ee0c92e,#0000 34%),radial-gradient(circle at bottom left,#ffb59d24,#0000 28%);--code-overlay-opacity:1;background:linear-gradient(180deg,#ffffff08,#fff0),linear-gradient(180deg,#182328f7,#0e151afa);border-color:#7ee0c942;border-color:var(--script-border)}.code-block--data{--code-ink:#effcf8;--code-key:#89e8ff;--code-string:#ffd78d;--code-symbol:#d7ece7;--code-comment:#70909a;--code-number:#ffba9b;--code-operator:#9cc8d3;--code-literal:#b6f58a;--code-divider:#89e8ff2e;--code-shadow:inset 0 1px 0 #ffffff0a,inset 0 0 0 1px #ffffff05,0 18px 38px #0a1e1f38;--code-overlay:radial-gradient(circle at top right,#89e8ff29,#0000 34%),radial-gradient(circle at bottom left,#ffd78d1f,#0000 30%);--code-overlay-opacity:1;background:linear-gradient(180deg,#ffffff08,#fff0),linear-gradient(180deg,#122227f7,#0b1518fc);border-color:#89e8ff3d;border-color:var(--data-border)}.code-block--markup{--code-ink:#3a2f2c;--code-tag:#a85b52;--code-attribute:#5d7a64;--code-string:#99672c;--code-symbol:#685b56;--code-comment:#a59a92;--code-operator:#89776f;--code-divider:#a85b521f;--code-shadow:0 16px 34px #9b75651a;--code-overlay:radial-gradient(circle at top right,#c691a31f,#0000 32%),radial-gradient(circle at bottom left,#ffd78d24,#0000 28%);--code-overlay-opacity:1;background:linear-gradient(180deg,#ffffffe6,#faf3ecf5),#faf3eceb;border-color:#c691a33d;border-color:var(--markup-border)}.code-block--style{--code-ink:#25322c;--code-keyword:#8e6270;--code-selector:#8e6270;--code-property:#5d7a64;--code-string:#8b5d44;--code-symbol:#4d5b53;--code-comment:#8f978f;--code-number:#9d6d42;--code-operator:#6d746d;--code-function:#4f8681;--code-divider:#5d7a641f;--code-shadow:0 16px 34px #5d7a641a;--code-overlay:radial-gradient(circle at top right,#5d7a641f,#0000 34%),radial-gradient(circle at bottom left,#c691a31a,#0000 26%);--code-overlay-opacity:1;background:linear-gradient(180deg,#f8fbf5f5,#edf4e8fa),#edf4e8f0;border-color:#5d7a643d;border-color:var(--style-border)}.code-block--terminal{--code-ink:#def9c8;--code-key:#95f3c8;--code-symbol:#def9c8;--code-comment:#799879;--code-number:#ffe589;--code-operator:#8fb280;--code-prompt:#d2ff58;--code-divider:#d2ff5829;--code-shadow:inset 0 1px 0 #ffffff0a,inset 0 0 0 1px #ffffff05,0 18px 38px #0f130f3d;--code-overlay:radial-gradient(circle at top right,#d2ff5824,#0000 30%),radial-gradient(circle at bottom left,#95f3c81f,#0000 28%);--code-overlay-opacity:1;background:linear-gradient(180deg,#ffffff08,#fff0),linear-gradient(180deg,#171d16f7,#0d100dfc);border-color:#d2ff583d;border-color:var(--terminal-border)}.code-block--data .code-block__label,.code-block--mainframe .code-block__label,.code-block--script .code-block__label,.code-block--terminal .code-block__label{color:#f6f8ffc7}.code-block--markup .code-block__label,.code-block--style .code-block__label{color:#574a46b8}.code-token--command{color:var(--code-command)}.code-token--keyword{color:var(--code-keyword)}.code-token--string{color:var(--code-string)}.code-token--symbol{color:var(--code-symbol)}.code-token--comment{color:var(--code-comment)}.code-token--number{color:var(--code-number)}.code-token--operator{color:var(--code-operator)}.code-token--label{color:var(--code-label);font-weight:700}.code-token--function{color:var(--code-function)}.code-token--property{color:var(--code-property)}.code-token--tag{color:var(--code-tag)}.code-token--attribute{color:var(--code-attribute)}.code-token--selector{color:var(--code-selector)}.code-token--key{color:var(--code-key)}.code-token--literal{color:var(--code-literal)}.code-token--prompt{color:var(--code-prompt);font-weight:700}@keyframes terminal-float{0%{transform:translate3d(0,-12px,0) rotate(-7deg)}25%{transform:translate3d(0,-28px,0) rotate(-5deg)}50%{transform:translate3d(0,10px,0) rotate(-4deg)}75%{transform:translate3d(0,28px,0) rotate(-6deg)}to{transform:translate3d(0,-6px,0) rotate(-3deg)}}@keyframes terminal-breathe{0%,to{box-shadow:inset 0 1px 0 #ffffffb3,0 24px 60px #5d7a6414}50%{box-shadow:inset 0 1px 0 #ffffffbf,0 28px 72px #5d7a641f}}@keyframes terminal-caret-blink{0%,48%,to{opacity:1}49%,66%{opacity:.16}}@keyframes icon-float{0%,to{transform:translateY(1px)}50%{transform:translateY(-3px)}}@keyframes icon-sparkle{0%,to{opacity:1;transform:translateY(1px) scale(1)}50%{opacity:.7;transform:translateY(1px) scale(1.15)}}@keyframes icon-write{0%,to{transform:translateY(1px) rotate(0deg)}25%{transform:translateY(1px) rotate(-2deg)}75%{transform:translateY(1px) rotate(2deg)}}@media (min-width:1200px){.page{max-width:820px;padding-top:108px}}@media (max-width:640px){body{font-size:12.5px}.page{padding:20px 16px 56px}.ambient-terminal{--terminal-width:min(88vw,320px);--terminal-height:auto;border-radius:22px;bottom:34px;left:auto;opacity:.62;right:14px;top:auto}.ambient-terminal__line{font-size:.9em;gap:.55rem}.page--home{gap:1.35rem;justify-content:space-evenly;min-height:100svh;padding-bottom:28px;padding-top:28px}.home-section{gap:.5rem}.article-table{margin-top:0}.article-row{gap:.35rem;grid-template-columns:1fr}.article-main{gap:.65rem}.article-date{text-align:left}}@media (prefers-reduced-motion:reduce){.ambient-terminal{animation:none;opacity:.52;transform:rotate(-4deg)}.ambient-terminal__caret{animation:none}}
/*# sourceMappingURL=main.99940840.css.map*/