*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*/*,:after,:before{border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!visible{visibility:visible!important}.visible{visibility:visible}.collapse{visibility:collapse}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.block{display:block}.flex{display:flex}.table{display:table}.grid{display:grid}.flex-shrink{flex-shrink:1}.grow{flex-grow:1}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.border{border-width:1px}.uppercase{text-transform:uppercase}.outline{outline-style:solid}.grayscale{--tw-grayscale:grayscale(100%)}.filter,.grayscale{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f8f6f2;--surface:#f2efe9;--border:#e2ddd4;--text:#1a1714;--muted:#7a7570;--accent:#9a8e82;--warm:#b09870;--warm-ring:rgba(176,152,112,0.2);--dialog:#f7f4ef;--nav-h:52px}html{scroll-behavior:smooth}body{font-family:Figtree,-apple-system,sans-serif;font-weight:300;background:var(--bg);color:var(--text);line-height:1.65;-webkit-font-smoothing:antialiased}body,html{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M12 2 L22 12 L12 22 L2 12 Z' stroke='%232a2418' stroke-width='1.2' fill='none' opacity='0.85'/%3E%3Ccircle cx='12' cy='12' r='2' fill='%232a2418' opacity='0.85'/%3E%3C/svg%3E") 12 12,auto}a,button,input,select{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M12 2 L22 12 L12 22 L2 12 Z' stroke='%232a2418' stroke-width='1.2' fill='%232a2418' fill-opacity='0.15' opacity='0.9'/%3E%3Ccircle cx='12' cy='12' r='2.5' fill='%232a2418' opacity='0.9'/%3E%3C/svg%3E") 12 12,pointer}nav{position:fixed;top:0;left:0;right:0;z-index:100;height:var(--nav-h);background:rgba(248,246,242,.88);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);padding:0 40px}.nav-inner,nav{display:flex;align-items:center}.nav-inner{width:100%;max-width:1000px;margin:0 auto;justify-content:space-between}.nav-name{font-size:20px;font-weight:500;color:var(--text);text-decoration:none}.nav-links{display:flex;gap:28px}.nav-links a{font-size:13px;font-weight:300;color:var(--muted);text-decoration:none;transition:color .15s;position:relative}.nav-links a:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:1px;background:var(--text);transition:width .22s ease}.nav-links a:hover:after{width:100%}.nav-links a:hover{color:var(--text)}.hero{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:36px;padding:calc(var(--nav-h) + 48px) 24px 64px;position:relative;overflow:hidden}.hero:before{content:"";background-image:radial-gradient(circle,var(--border) 1px,transparent 1px);background-size:30px 30px;opacity:.55}.hero-bg,.hero:before{position:absolute;inset:0;pointer-events:none;z-index:0}.hero-bg{-webkit-user-select:none;-moz-user-select:none;user-select:none;filter:blur(2.5px);opacity:.13;overflow:hidden}.hbg-row{position:absolute;left:0;right:0;font-family:Cardo,Georgia,serif;font-weight:400;font-size:15px;color:var(--text);white-space:normal;line-height:1.55;letter-spacing:.01em;padding:0 40px;max-width:1080px;margin:0 auto;box-sizing:border-box}.hero-overlay{position:absolute;inset:0;background:rgba(248,246,242,.62);pointer-events:none;z-index:1}.dialog{width:468px;border-radius:6px;overflow:hidden;border:1px solid #8aabc2;box-shadow:0 12px 48px rgba(15,30,55,.28),0 2px 8px rgba(15,30,55,.14);background:#edeae4;position:relative;z-index:2;animation:dialogAppear .7s cubic-bezier(.34,1.1,.64,1) both,dialogFloat 7s ease-in-out .8s infinite}@keyframes dialogAppear{0%{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes dialogFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}.d-bar{background:linear-gradient(180deg,#cdd8e4,#bfccd9);height:46px;align-items:center;justify-content:center;position:relative;border-bottom:1px solid #a6bacb}.d-bar,.tls{display:flex}.tls{position:absolute;left:14px;top:50%;transform:translateY(-50%);gap:7px}.tl{width:13px;height:13px;border-radius:50%}.tl-r{background:#ff5f57;border:.5px solid rgba(0,0,0,.12)}.tl-y{background:#febc2e}.tl-g,.tl-y{border:.5px solid rgba(0,0,0,.1)}.tl-g{background:#28c840}.loc{background:#dae3ec;border:.5px solid #a6bacb;border-radius:6px;padding:4px 18px;font-size:13px;font-weight:300;color:#4a453e}.d-body{padding:18px 26px 20px}.d-row{display:flex;align-items:center;margin-bottom:9px}.d-lbl{font-size:13px;color:#6b6560;min-width:66px;text-align:right;margin-right:10px}.d-lbl,.fname{font-weight:300}.fname{flex:1;background:#f5f2ec;border:1.5px solid #4a8db8;box-shadow:0 0 0 3px rgba(74,141,184,.2);border-radius:7px;padding:5px 10px;font-family:Figtree,sans-serif;font-size:14px;color:#1e1a16;display:flex;align-items:center;min-height:30px}.curs{display:inline-block;width:2px;height:20px;background:#4a3e2e;margin-left:2px;vertical-align:middle;animation:blink 1.05s step-end infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.tagbox{flex:1;background:#fdfcf9;border:1.5px solid #c8c3b8;border-radius:7px;padding:5px 10px;min-height:30px;display:flex;align-items:center}.tag{background:#e8e3da;border:.5px solid #cec9be;border-radius:20px;padding:2px 9px;font-size:12px;font-weight:300;color:#3a342a}.ww{flex:1;position:relative}.wsel{width:100%;background:#eeeadf;border:1.5px solid #c8c3b8;border-radius:7px;padding:5px 26px 5px 10px;font-family:Figtree,sans-serif;font-size:18px;font-weight:300;color:#3a342a;min-height:30px;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:border-color .15s,box-shadow .15s}.wsel:focus{border-color:#4a8db8;box-shadow:0 0 0 3px rgba(74,141,184,.2)}.chev{position:absolute;right:10px;top:50%;transform:translateY(-50%);pointer-events:none;color:#8a8580;font-size:10px}.dsep{height:1px;background:#dedad2;margin:14px 0 12px}.dbtns{display:flex;justify-content:flex-end;gap:8px}.btn{padding:6px 18px;border-radius:6px;font-family:Figtree,sans-serif;font-size:13px}.bcnl{background:#eeeadf;border:1px solid #c8c3b8;color:#4a453e}.bcnl:hover{background:#e5e0d5}.bcnl.shake{animation:shake .35s ease}@keyframes shake{0%,to{transform:translateX(0)}20%{transform:translateX(-5px)}40%{transform:translateX(5px)}60%{transform:translateX(-4px)}80%{transform:translateX(4px)}}.bsav{background:#1d5490;border:1px solid #154070;color:#fff;font-weight:400;transition:background .12s,transform .15s cubic-bezier(.34,1.6,.64,1)}.bsav:hover{background:#154070;transform:scale(1.04)}.section{max-width:1000px;margin:0 auto;padding:88px 40px;border-top:1px solid var(--border);scroll-margin-top:var(--nav-h);opacity:0;transform:translateY(26px);transition:opacity .65s cubic-bezier(.25,.46,.45,.94),transform .65s cubic-bezier(.25,.46,.45,.94)}.section.in-view{opacity:1;transform:translateY(0)}.sec-head{display:flex;flex-direction:column;align-items:flex-end;margin-bottom:20px;gap:6px}.slabel{font-size:28px;font-weight:500;color:var(--text);display:flex;align-items:center;gap:10px;line-height:1.2}.slabel:before{content:"";display:block;width:28px;height:1.5px;background:var(--muted);flex-shrink:0}.sfold{flex-shrink:0;color:var(--accent)}.sec-statement{font-size:28px;font-weight:400;color:var(--text);line-height:1.28;letter-spacing:-.1px}.sec-desc,.sec-statement{font-family:Cardo,Georgia,serif;text-align:right}.sec-desc{font-style:italic;font-size:18px;color:var(--muted);line-height:1.78;margin-bottom:44px;letter-spacing:.1px}.sec-desc em{font-style:normal;color:#5a5550}.sec-rule{height:1px;background:var(--border);border:none;margin-bottom:44px}.about-body{font-family:Cardo,serif;font-size:15px;font-weight:400;color:var(--text);line-height:1.75}.about-body p{margin:0 0 1.2em}.about-body p:last-child{margin-bottom:0}.work-label{font-size:11px;font-weight:400;letter-spacing:1.6px;text-transform:uppercase;color:var(--accent);margin-bottom:16px;margin-top:40px;padding-bottom:8px;border-bottom:1px solid var(--border)}.work-label:first-of-type{margin-top:0}.pdf-link{display:inline-flex;align-items:center;gap:6px;font-size:18px;font-weight:400;color:var(--muted);text-decoration:none;border:1px solid var(--border);padding:5px 14px;border-radius:20px;margin-bottom:44px;transition:color .15s,border-color .15s,transform .15s}.pdf-link:hover{color:var(--text);border-color:var(--accent);transform:translateX(3px)}.edu{margin-bottom:32px}.edu-s{font-size:15px;font-weight:500;color:var(--text);margin-bottom:3px}.edu-d{font-size:13px;color:var(--muted);margin-bottom:4px}.edu-a,.edu-d{font-weight:300}.edu-a{font-size:12px;color:var(--accent);font-style:italic}.xblock{margin-bottom:0;padding-bottom:36px;margin-top:36px}.xblock:first-of-type{margin-top:0}.xco{font-size:11px;font-weight:400;letter-spacing:1.6px;text-transform:uppercase;color:var(--accent);margin-bottom:3px}.xdesc{font-size:12.5px;font-weight:300;color:var(--muted);margin-bottom:16px;line-height:1.55}.role{margin-bottom:18px}.rhdr{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px;gap:16px;flex-wrap:wrap}.rtitle{font-size:14px;font-weight:500;color:var(--text)}.rdates{font-size:12px;font-weight:300;color:var(--muted);white-space:nowrap}ul.bl{list-style:none;padding:0}ul.bl li{font-size:13px;font-weight:300;color:#3a3530;line-height:1.65;padding:3px 0 3px 16px;position:relative}ul.bl li:before{content:"—";position:absolute;left:0;color:var(--border);font-size:11px;line-height:1.9}.skills{display:grid;grid-template-columns:1fr 1fr;gap:8px 40px;margin-top:16px;padding-top:0}.sk{display:flex;gap:10px;align-items:baseline}.skc{font-size:11px;font-weight:400;letter-spacing:1.4px;text-transform:uppercase;color:var(--accent);min-width:110px;white-space:nowrap}.skv{font-size:13px;color:#3a3530}.certs,.skv{font-weight:300}.certs{margin-top:16px;font-size:12.5px;color:var(--muted);line-height:1.75}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:20px}.pcard{background:var(--bg);text-decoration:none;display:flex;flex-direction:column;border:1px solid var(--border);border-radius:8px;overflow:hidden;transition:background .18s ease,transform .25s cubic-bezier(.34,1.4,.64,1),box-shadow .25s ease}.pcard:hover{background:var(--surface);transform:translateY(-4px);box-shadow:0 8px 24px rgba(50,40,30,.08)}.pcard-bar{display:flex;align-items:center;gap:10px;padding:9px 14px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,#ece8df,#e4e0d7);flex-shrink:0}.pcard-tls{display:flex;gap:6px}.pcard-bar-num{font-size:14px;font-weight:300;color:var(--muted);margin-left:auto;letter-spacing:.5px}.pcard-body{padding:28px 24px;flex:1;display:flex;flex-direction:column}.ptitle{font-size:15px;font-weight:500;color:var(--text);line-height:1.45}.pcard-oneliner{font-family:Cardo,Georgia,serif;font-style:italic;font-size:13px;color:var(--muted);line-height:1.6;margin-top:10px}.parr{font-size:14px;font-weight:300;color:var(--accent);margin-top:auto;padding-top:24px;display:block;transition:transform .2s ease}.pcard:hover .parr{transform:translateX(5px)}.art{display:grid;grid-template-columns:1fr 210px;gap:44px;align-items:start;padding:40px 0;border-bottom:1px solid var(--border);transition:opacity .2s ease}.art:first-child{padding-top:0}.art:hover{opacity:.9}.anum{font-size:12px;font-weight:300;color:var(--accent);margin-bottom:10px}.atitle{font-size:22px;color:var(--text);line-height:1.25;margin-bottom:8px}.adeck,.atitle{font-family:Cardo,Georgia,serif;font-weight:400}.adeck{font-style:italic;font-size:14px;color:#3a3530;line-height:1.5;margin-bottom:12px}.abody{font-size:13px;font-weight:300;color:var(--muted);line-height:1.72}.athumb{width:210px;height:152px;border-radius:5px;overflow:hidden;flex-shrink:0;margin-top:4px;transition:transform .35s ease}.art:hover .athumb{transform:scale(1.025) rotate(.4deg)}.cf{display:flex;flex-direction:column;gap:16px;margin-bottom:36px}.cf-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.cf-field{display:flex;flex-direction:column;gap:6px}.cf-label{font-size:11px;font-weight:400;letter-spacing:1.4px;text-transform:uppercase;color:var(--accent)}.cf-input{font-family:Figtree,sans-serif;font-size:13px;font-weight:300;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:10px 12px;outline:none;transition:border-color .15s,box-shadow .15s;-webkit-appearance:none;-moz-appearance:none;appearance:none}.cf-input:focus{border-color:var(--warm);box-shadow:0 0 0 3px var(--warm-ring)}.cf-textarea{resize:vertical;min-height:120px}.cf-btn{font-family:Figtree,sans-serif;font-size:13px;font-weight:400;background:var(--text);color:var(--bg);border:none;padding:10px 28px;border-radius:4px;cursor:pointer;transition:opacity .15s,transform .15s}.cf-btn:hover:not(:disabled){opacity:.82;transform:translateY(-1px)}.cf-btn:disabled{opacity:.5;cursor:not-allowed}.cf-error{font-size:13px;font-weight:300;color:#b05040}.cf-thanks{font-family:Cardo,serif;font-size:16px;color:var(--text);padding:24px 0;display:flex;align-items:center;gap:10px;margin-bottom:36px}.cf-thanks-mark{font-size:14px;color:var(--accent)}.cf-github{display:flex;align-items:baseline;gap:12px}.cf-github-label{font-size:11px;font-weight:400;letter-spacing:1.5px;text-transform:uppercase;color:var(--accent);min-width:58px}.cf-github-link{font-size:13px;font-weight:300;color:var(--text);text-decoration:none;border-bottom:1px solid var(--border);transition:border-color .15s}.cf-github-link:hover{border-color:var(--accent)}.fw{max-width:1000px;margin:0 auto;padding:0 40px 64px}footer{border-top:1px solid var(--border);padding:28px 0;display:flex;align-items:center;justify-content:space-between}.fn{font-size:13px;font-weight:300;color:var(--muted)}.fl{display:flex;gap:24px}.fl a{font-size:12px;font-weight:300;color:var(--muted);text-decoration:none;transition:color .15s}.fl a:hover{color:var(--text)}.cs-wrap{max-width:1000px;margin:0 auto;padding:calc(var(--nav-h) + 72px) 40px 120px;overflow-x:clip}.cs-back{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:300;color:var(--muted);text-decoration:none;margin-bottom:52px;transition:color .15s}.cs-back:hover{color:var(--text)}.cs-num{font-size:11px;font-weight:400;letter-spacing:1.6px;text-transform:uppercase;color:var(--accent);margin-bottom:14px}.cs-title{font-size:38px;color:var(--text);line-height:1.15;letter-spacing:-.5px;margin-bottom:16px;max-width:680px}.cs-oneliner,.cs-title{font-family:Cardo,Georgia,serif;font-weight:400}.cs-oneliner{font-style:italic;font-size:24px;color:var(--muted);line-height:1.5;max-width:600px;margin-bottom:52px}.cs-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:8px;overflow:hidden;margin-bottom:72px}.cs-meta-cell{background:var(--bg);padding:18px 20px}.cs-meta-label{font-size:10px;font-weight:400;letter-spacing:1.6px;text-transform:uppercase;color:var(--accent);margin-bottom:6px}.cs-meta-value{font-size:13px;font-weight:300;color:var(--text);line-height:1.5}.cs-section{margin-bottom:56px}.cs-section-title{font-size:11px;font-weight:400;letter-spacing:1.6px;text-transform:uppercase;color:var(--accent);margin-bottom:18px;padding-bottom:10px;border-bottom:1px solid var(--border)}.cs-body{font-family:Cardo,Georgia,serif;font-size:19px;font-weight:400;color:var(--text);line-height:1.75}.cs-body p+p{margin-top:1.25em}.cs-body ul{list-style:none;padding:0;margin-top:1em}.cs-body ul li{padding:4px 0 4px 18px;position:relative;font-size:16px}.cs-body ul li:before{content:"—";position:absolute;left:0;color:var(--border);font-size:13px;line-height:2.1}.cs-img{aspect-ratio:16/7;background:var(--surface);border:1px solid var(--border);margin:40px 0;display:flex;align-items:center;justify-content:center;overflow:hidden;opacity:.9;position:relative}.cs-img,.cs-img img{width:100%;border-radius:0}.cs-img img{height:100%;-o-object-fit:cover;object-fit:cover}.cs-img-placeholder{font-size:12px;font-weight:300;color:var(--accent);letter-spacing:.5px}.cs-foot-rule{height:1px;background:var(--border);border:none;margin:72px 0 40px}.cs-pipeline{margin:40px 0}.cs-code{border:1px solid var(--border);border-radius:6px;padding:20px 24px;overflow-x:auto;font-family:Courier New,monospace;font-size:12px;line-height:1.7;color:var(--text);white-space:pre;margin:0}.cs-carousel,.cs-code{background:var(--surface)}.cs-carousel{margin:32px 0;border:1px solid var(--border)}.cs-carousel-img{position:relative;width:100%;aspect-ratio:16/9;background:var(--surface)}.cs-carousel-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-top:1px solid var(--border);background:var(--bg)}.cs-carousel-btn{background:none;border:.5px solid var(--border);border-radius:7px;width:32px;height:28px;display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--muted);cursor:pointer;transition:color .4s,border-color .4s}.cs-carousel-btn:hover{color:var(--text);border-color:var(--accent)}.cs-carousel-meta{display:flex;align-items:center;gap:16px;flex:1;justify-content:center}.cs-carousel-caption{font-size:12px;font-weight:300;color:var(--muted);letter-spacing:.2px}.cs-carousel-count{font-size:11px;font-weight:400;color:var(--accent);letter-spacing:1px;white-space:nowrap}.mac-page{min-height:calc(100vh - var(--nav-h));display:flex;align-items:center;justify-content:center;padding:40px 24px}.mac-card{width:420px;max-width:100%;border-radius:12px;overflow:hidden;border:1px solid #c8c3b8;box-shadow:0 8px 56px rgba(50,40,30,.13),0 2px 8px rgba(50,40,30,.07);background:var(--dialog)}.mac-bar{background:linear-gradient(180deg,#ece8df,#e4e0d7);height:46px;display:flex;align-items:center;justify-content:center;position:relative;border-bottom:1px solid #cdc8bc}.mac-bar-title{font-size:13px;font-weight:400;color:#4a453e}.mac-body{padding:32px 28px 28px}.mac-icon{font-size:32px;margin-bottom:14px}.mac-heading{font-family:Cardo,Georgia,serif;font-size:22px;font-weight:400;color:var(--text);margin-bottom:10px;line-height:1.3}.mac-sub{font-size:13px;color:var(--muted);line-height:1.65}.mac-path,.mac-sub{font-weight:300;margin-bottom:24px}.mac-path{font-size:11px;color:var(--accent);letter-spacing:.3px;font-family:Courier New,monospace}.mac-sep{height:1px;background:#dedad2;margin-bottom:16px}.mac-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 18px;border-radius:6px;border:1px solid #c8c3b8;background:#eeeadf;font-family:Figtree,sans-serif;font-size:13px;font-weight:300;color:#4a453e;text-decoration:none;transition:background .12s}.mac-btn:hover{background:#e5e0d5}.mac-btn-primary{background:#3a342a;border-color:#2a2418;color:#f5f2ec;font-weight:400}.mac-btn-primary:hover{background:#2a2418}@media (max-width:640px){nav{padding:0 20px}.nav-name{font-size:13px}.nav-links{gap:16px}.nav-links a{font-size:12px}.section{padding:56px 20px}.sec-statement,.slabel{font-size:22px}.fw{padding:0 20px 48px}footer{flex-direction:column;align-items:flex-start;gap:16px}.fl{gap:16px;flex-wrap:wrap}.dialog{width:calc(100vw - 40px)}.d-body{padding:14px 16px 16px}.d-lbl{min-width:50px;font-size:12px}.grid2{gap:12px}.art,.grid2{grid-template-columns:1fr}.art{gap:20px}.athumb{width:100%;height:180px}.skills{grid-template-columns:1fr;gap:8px}.cs-wrap{padding:calc(var(--nav-h) + 40px) 20px 80px}.cs-title{font-size:26px}.cs-oneliner{font-size:18px;margin-bottom:36px}.cs-meta{grid-template-columns:1fr 1fr}.cs-body{font-size:15px}.cs-carousel-btn{width:28px;height:26px;font-size:12px}}