:root{--ease-out:cubic-bezier(.16,1,.3,1);--glass:#fafaf5bd}:root[data-theme=dark]{--glass:#20241ec7}body{isolation:isolate;position:relative}.site-header,.main-container,.site-footer{z-index:1;position:relative}.main-container,.site-header,.site-footer,.ask-stage,.ask-bar,.ask-progress{width:min(1120px,100% - 112px)}.header-right{gap:10px}.brand-mark{transition:transform .7s var(--ease-out)}@media (hover:hover){.brand:hover .brand-mark{transform:translateY(-2px)}}@media (max-width:900px){.header-top{flex-wrap:wrap;row-gap:0}.header-top:after{content:"";flex-basis:100%;order:1}.header-right{display:contents}.header-right>.nav-tabs{order:2;margin:24px auto 0}}.home-hero{padding-top:56px;padding-bottom:0;position:relative}.hero-composition{padding-top:0;padding-bottom:45px;display:block}.hero-copy{z-index:2;position:relative}.hero-heading{margin:0;display:block}.hero-heading h1{letter-spacing:-.065em;font-size:clamp(66px,6.2vw,87px);font-weight:500;line-height:1.01}.hero-heading h1>.hero-line{color:var(--text);margin-bottom:-.09em;padding-bottom:.09em;display:block;overflow:hidden}.hero-line>span{animation:headline-rise 1.1s var(--ease-out) both;display:block}.hero-line:nth-child(2)>span{animation-delay:90ms}.hero-heading h1>.hero-line-muted{color:var(--muted)}.hero-heading h1 em{letter-spacing:-.065em;font-size:1.09em;line-height:1}.hero-description{max-width:480px;animation:soft-rise .9s .4s var(--ease-out) both;margin-top:29px;font-size:14px;line-height:1.85}.hero-facts{max-width:480px;animation:soft-rise .9s .45s var(--ease-out) both;gap:24px;margin:22px 0 0;display:flex}.hero-facts>div{flex-direction:column;gap:4px;min-width:0;display:flex}.hero-facts>div+div{border-left:1px solid var(--line);padding-left:24px}.hero-facts dt{color:var(--muted);order:1;font-size:11px;line-height:1.5}.hero-facts dd{letter-spacing:-.04em;color:var(--accent);margin:0;font-size:21px;font-weight:500;line-height:1.2}.hero-actions{animation:soft-rise .9s .5s var(--ease-out) both;gap:24px;margin-top:25px}.hero-composition{position:relative}.hero-widgets{--photo-rise:104px;z-index:3;align-items:flex-end;display:flex;position:absolute;bottom:50px;right:34px}.widget-card{border:1px solid color-mix(in srgb,var(--line) 70%,transparent);background:var(--surface-raised);animation:widget-in 1.1s .6s var(--ease-out) backwards;transition:rotate .6s var(--ease-out),transform .6s var(--ease-out);border-radius:26px;position:relative;box-shadow:0 30px 45px -28px #2e3c2a59,0 2px 8px #1f28100a}[data-theme=dark] .widget-card{box-shadow:0 30px 45px -28px #000b,0 2px 8px #0003}.photo-card{aspect-ratio:4/5;width:176px;margin:0 -30px var(--photo-rise) 0;background:var(--accent-soft);display:block;overflow:hidden;rotate:-5deg}.photo-card img{object-fit:cover}.photo-card-monogram{font:500 88px/1 var(--display);letter-spacing:-.07em;color:var(--accent);position:absolute;bottom:14px;left:18px}.photo-card-monogram>span{font-family:var(--sans);margin-left:3px}.github-card,.activity-section{--gh-0:#e9eae3;--gh-1:#b4dca6;--gh-2:#7cc071;--gh-3:#519b53;--gh-4:#336b3a}.github-card{z-index:1;text-align:left;flex-direction:column;gap:15px;width:214px;padding:20px;animation-delay:.72s;display:flex;rotate:3deg}@media (hover:hover){:is(a.github-card,a.photo-card):hover{transform:translateY(-6px)}}a.github-card:after{content:"";border-radius:inherit;opacity:0;transition:opacity .6s var(--ease-out);pointer-events:none;position:absolute;inset:-1px;box-shadow:0 38px 50px -28px #2e3c2a40}[data-theme=dark] a.github-card:after{box-shadow:0 38px 50px -28px #0009}@media (hover:hover){a.github-card:hover:after{opacity:1}}[data-theme=dark] :is(.github-card,.activity-section){--gh-0:#2c3228;--gh-1:#294d2c;--gh-2:#3a7a3f;--gh-3:#5aac5a;--gh-4:#8fd98a}.github-card-top{color:var(--text);justify-content:space-between;align-items:center;gap:12px;display:flex}.github-card-top>svg{width:19px;height:19px}.github-card-top>span{font-family:var(--mono);letter-spacing:.05em;color:var(--muted);white-space:nowrap;font-size:9px}.github-grid{grid-template-rows:repeat(7,auto);grid-auto-columns:1fr;grid-auto-flow:column;gap:4px;display:grid}.github-grid>span{aspect-ratio:1;background:var(--gh-0);border-radius:4px}:is(.github-grid,.github-week,.github-legend)>[data-level="1"]{background:var(--gh-1)}:is(.github-grid,.github-week,.github-legend)>[data-level="2"]{background:var(--gh-2)}:is(.github-grid,.github-week,.github-legend)>[data-level="3"]{background:var(--gh-3)}:is(.github-grid,.github-week,.github-legend)>[data-level="4"]{background:var(--gh-4)}@media screen{:root[data-motion=on] :is(.github-grid,.github-year-grid):not([data-snake=done]) [data-level]:not([data-level="0"],[data-found],[data-segment]){background:var(--gh-0)}}:is(.github-grid,.github-year-grid)[data-snake=running] [data-level]:not([data-segment]){transition:background-color .4s var(--ease-out)}:is(.github-grid,.github-year-grid)[data-snake=running] [data-found]{animation:gh-found .45s var(--ease-out)}:is(.github-grid,.github-week)>[data-level][data-segment]{background:var(--gh-4)}:is(.github-grid,.github-week)>[data-level][data-segment="2"]{background:var(--gh-3)}:is(.github-grid,.github-week)>[data-level][data-segment="3"]{background:var(--gh-2)}:is(.github-grid,.github-week)>[data-level][data-segment="4"]{background:var(--gh-1)}@keyframes gh-found{35%{scale:1.25}}.widget-stack{z-index:1;flex-direction:column;align-items:flex-start;gap:14px;display:flex;position:relative}.visitor-card{--live:#4f9a52;border-radius:20px;width:214px;margin:0;padding:16px 17px 14px;animation-delay:.8s;rotate:-2deg}[data-theme=dark] .visitor-card{--live:#7cc071}.visitor-stats{margin:0;display:flex}.visitor-stat{--tint:var(--live);flex-direction:column;flex:1 1 0;gap:6px;min-width:0;padding-right:13px;display:flex;position:relative}.visitor-stat+.visitor-stat{--tint:var(--accent);border-left:1px solid var(--line);padding:0 0 0 13px}.visitor-stat>dt{font:500 11px/1.2 var(--sans);color:var(--muted);white-space:nowrap;align-items:center;gap:7px;display:flex}.live-dot{background:var(--live);width:6px;height:6px;transition:background-color .6s var(--ease-out);border-radius:50%;flex-shrink:0;position:relative}.live-dot:before,.live-dot:after,.live-dot>i{content:"";pointer-events:none;border-radius:50%;position:absolute}.live-dot:before{background:var(--live);opacity:.16;animation:2.8s ease-in-out infinite live-breathe;inset:-3px}.live-dot:after{border:1px solid var(--live);opacity:0;animation:live-ping 2.8s var(--ease-out) infinite;inset:-5px}.live-dot>i{border:1px solid var(--live);opacity:0;animation:live-ping 1.2s var(--ease-out);inset:-7px}.visitor-card[aria-busy] .live-dot{background:color-mix(in srgb,var(--muted) 45%,transparent)}.visitor-card[aria-busy] .live-dot:before,.visitor-card[aria-busy] .live-dot:after{opacity:0;animation:none}.visitor-value{min-height:20px;font:500 15px/1.2 var(--sans);letter-spacing:-.025em;font-variant-numeric:tabular-nums;color:var(--text);align-items:center;margin:0;display:flex}.visitor-roll{--pitch:1.6em;white-space:nowrap;flex:none;margin-block:-.2em;padding-block:.2em;display:block;-webkit-mask-image:linear-gradient(#0000,#000 .3em calc(100% - .3em),#0000);mask-image:linear-gradient(#0000,#000 .3em calc(100% - .3em),#0000)}.visitor-digit{color:#0000;display:inline-block;position:relative}.visitor-digit>span{color:var(--text);line-height:var(--pitch);-webkit-user-select:none;user-select:none;translate:0 calc(var(--faces) * var(--pitch) * -1);animation:visitor-roll var(--roll) var(--wait) cubic-bezier(.33,1,.68,1) backwards;flex-direction:column;align-items:center;display:flex;position:absolute;top:-.2em;left:-1em;right:-1em}.visitor-digit>span>span{height:var(--pitch);flex:none}.visitor-digit[data-roll=down]>span{animation-name:visitor-roll-down;translate:none}.visitor-digit[data-roll=up]>span>span:last-child{animation:visitor-tint 1.6s var(--wait) ease-out backwards}.visitor-card[aria-busy] .visitor-digit>span{color:color-mix(in srgb,var(--muted) 55%,transparent)}.visitor-faces{--face:22px;margin-left:7px;padding-inline:1.5px;display:flex}.visitor-face{--skin:#f4f4ee;--ink:#34372f;--rim:#34372f0d;z-index:calc(9 - var(--place));width:var(--face);height:var(--face);background:var(--skin);box-shadow:0 0 0 1.5px var(--surface-raised);animation:visitor-face-in .45s var(--wait) var(--ease-out) backwards;border-radius:50%;flex:none;position:relative}[data-theme=dark] .visitor-face{--skin:#e2e5d9;--ink:#30352c;--rim:transparent}.visitor-face:after{content:"";border:1px solid var(--rim);border-radius:50%;position:absolute;inset:0}.visitor-face+.visitor-face{margin-left:calc(var(--face) * -.25)}.visitor-face[data-leaving]{margin-right:calc(var(--face) * -.75);opacity:0;animation:.4s ease-in visitor-face-out;scale:.3}.visitor-face[data-leaving]:first-child{margin-right:calc(var(--face) * -1)}[data-motion=paused] .visitor-face[data-leaving]{display:none}.visitor-face>svg{fill:none;width:100%;height:100%;stroke:var(--ink);stroke-width:1.35px;stroke-linecap:round;stroke-linejoin:round;border-radius:50%;display:block}.visitor-face .skin{fill:var(--skin)}.visitor-face .ink{fill:var(--ink)}.visitor-face .dot{fill:var(--ink);stroke:none}.visitor-face .fine{stroke-width:1.15px}@media (min-width:901px){.visitor-face:nth-child(n+4),.visitor-faces:not([data-width="1"]) .visitor-face:nth-child(n+3),.visitor-faces[data-width="4"] .visitor-face:nth-child(n+2){display:none}}@media (min-width:601px) and (max-width:900px){.visitor-faces{--face:26px;margin-left:10px}.visitor-face:nth-child(n+5),.visitor-faces[data-width="3"] .visitor-face:nth-child(n+4),.visitor-faces[data-width="4"] .visitor-face:nth-child(n+3){display:none}}@media (max-width:600px){.visitor-faces[data-width="3"] .visitor-face:nth-child(n+5),.visitor-faces[data-width="4"] .visitor-face:nth-child(n+4){display:none}}.visitor-signal{background:linear-gradient(transparent,var(--accent),transparent) 0 -22px/100% 22px no-repeat;opacity:0;pointer-events:none;width:1px;animation:1.1s cubic-bezier(.3,0,.5,1) .1s visitor-signal;position:absolute;inset:0 auto 0 -1px}.visitor-trend{border-top:1px solid var(--line);align-items:flex-end;gap:10px;margin-top:12px;padding-top:11px;display:flex}.visitor-days{flex:1;min-width:0;height:18px;display:flex}.visitor-day{flex:1 1 0;position:relative}.visitor-day:before{content:"";height:max(4px,calc(var(--level) * 100%));background:color-mix(in srgb,var(--muted) 42%,transparent);transition:height .7s var(--ease-out) calc((var(--day) - var(--first,0)) * 24ms),background-color .2s;border-radius:2px 2px 0 0;position:absolute;inset:auto 1px 0}.visitor-day[data-empty]:before{background:color-mix(in srgb,var(--muted) 24%,transparent);border-radius:1px 1px 0 0;height:2px}.visitor-card:not([aria-busy]) .visitor-day:last-child:before{background:var(--accent)}.visitor-card .visitor-day[data-picked]:before{background:var(--text)}.visitor-readout{width:70px;font:500 11px/1 var(--sans);color:var(--muted);white-space:nowrap;flex:none;justify-content:flex-end;gap:.3em;display:flex}.visitor-readout>b{color:var(--text);font-weight:500}.visitor-card[aria-busy] .visitor-readout>b{color:inherit}@media (min-width:601px){.visitor-days{--first:14}.visitor-day:nth-child(-n+14){display:none}}@keyframes live-breathe{50%{opacity:.28;scale:1.25}}@keyframes live-ping{0%{opacity:.75;scale:.35}75%,to{opacity:0;scale:1}}@keyframes visitor-roll{0%{translate:0}}@keyframes visitor-roll-down{0%{translate:0 calc(var(--faces) * var(--pitch) * -1)}}@keyframes visitor-tint{0%,35%{color:var(--tint)}}@keyframes visitor-face-in{0%{opacity:0;translate:0 3px;scale:.8}to{opacity:1;translate:0;scale:1}}@keyframes visitor-face-out{0%{opacity:1;scale:1}}@keyframes visitor-signal{0%{opacity:0;background-position:0 -22px}15%,80%{opacity:1}to{opacity:0;background-position:0 calc(100% + 22px)}}.rating-card{--notes:3;left:-22px;top:calc(100% - var(--photo-rise) - 18px);width:calc(var(--photo,176px) - 28px);font:500 11px/1.2 var(--sans);color:var(--muted);text-align:left;white-space:nowrap;border-radius:18px;flex-direction:column;align-items:flex-start;gap:6px;padding:12px 14px 11px;animation-delay:.88s;display:flex;position:absolute;rotate:2deg}@media (hover:hover){.rating-card:hover{transform:translateY(-4px)}}.rating-stars{--star:15px;gap:3px;display:flex}.rating-star{width:var(--star);height:var(--star);flex:none;display:block;position:relative}.rating-star svg{width:var(--star);height:var(--star);fill:none;stroke:color-mix(in srgb,var(--muted) 55%,transparent);stroke-width:1.5px;stroke-linejoin:round}.rating-star>span{width:calc(var(--fill,0) * 100%);transition:width .7s var(--ease-out) calc(var(--star-index,0) * 80ms);position:absolute;inset:0 auto 0 0;overflow:hidden}.rating-star>span>svg{fill:var(--gold);stroke:var(--gold)}.rating-figure{font-variant-numeric:tabular-nums}.rating-figure>b{color:var(--text);font-weight:500}.rating-card[aria-busy] .rating-figure{color:color-mix(in srgb,var(--muted) 55%,transparent)}.rating-tour{border-top:1px solid var(--line);align-self:stretch;align-items:center;gap:8px;margin-top:2px;padding-top:8px;display:flex}.rating-tour .icon{width:13px;height:13px;color:var(--accent)}.rating-tour>strong{color:var(--accent);align-items:center;gap:6px;font-weight:500;display:flex}.rating-tour .svg-icon{transition:transform .5s var(--ease-out)}@media (hover:hover){.rating-card:hover .rating-tour>strong>.svg-icon{transform:translate(3px)}}.rating-pages{flex:1;gap:2px;min-width:20px;display:flex}.rating-pages>i{background:color-mix(in srgb,var(--muted) 26%,transparent);height:3px;transition:background-color .6s var(--ease-out);border-radius:2px;flex:1}.rating-pages>i[data-seen]{background:var(--accent)}.rating-notes{transform-origin:calc(100% - 78px) -10px;width:max-content;transition:rotate .6s var(--ease-out);align-items:flex-start;gap:12px;display:flex;position:absolute;top:calc(100% + 10px);right:-6px;rotate:-2deg}@media (hover:hover){.rating-card:hover>.rating-notes{rotate:none}}.rating-bubble{border:1px solid color-mix(in srgb,var(--line) 70%,transparent);background:var(--surface-raised);width:max-content;min-width:104px;max-width:252px;font:400 12px/1.45 var(--sans);color:var(--text);white-space:normal;text-wrap:pretty;overflow-wrap:anywhere;transform-origin:calc(100% - 72px) -7px;animation:note-in .55s cubic-bezier(.34,1.56,.64,1) calc(var(--slot,0) * .13s) backwards;border-radius:12px;flex-direction:column;flex:0 auto;align-items:flex-start;gap:5px;padding:9px 13px 10px;display:flex;position:relative;rotate:-1deg;box-shadow:0 20px 32px -20px #2e3c2a59,0 2px 8px #1f28100a}[data-theme=dark] .rating-bubble{box-shadow:0 20px 32px -20px #000b,0 2px 8px #0003}.rating-bubble:before{content:"";border:solid color-mix(in srgb,var(--line) 70%,transparent);background:inherit;border-width:1px 0 0 1px;border-top-left-radius:3px;width:11px;height:11px;position:absolute;top:-6px;right:66px;rotate:45deg}.rating-notes[data-leaving]>.rating-bubble,.rating-bubble[data-leaving]{animation:.24s ease-in forwards note-out}.rating-bubble[data-beside]{transform-origin:calc(100% + 7px) 22px;position:absolute;top:1px;right:calc(100% + 10px);rotate:-3.2deg}.rating-bubble[data-beside]:before{top:17px;right:-6px;rotate:135deg}@media (max-width:1100px){.rating-bubble[data-beside]{display:none}}.rating-bubble>.rating-stars{--star:10px;gap:2px}@keyframes note-in{0%{opacity:0;scale:.5}}@keyframes note-out{to{opacity:0;scale:.9}}@media (min-width:1101px){.rating-notes{flex-direction:row-reverse}.rating-bubble+.rating-bubble{transform-origin:calc(100% - 20px) -7px;rotate:.6deg}.rating-bubble+.rating-bubble:before{right:14px}.hero-composition:has(.rating-card[data-notes]){padding-bottom:79px}.hero-composition:has(.rating-card[data-notes])>.hero-widgets{bottom:84px}}.rating-panel{z-index:60;border:1px solid var(--line);background:var(--surface-raised);width:min(316px,100vw - 32px);animation:rating-in .6s var(--ease-out) both;border-radius:14px;padding:20px 20px 16px;position:fixed;bottom:24px;right:24px;box-shadow:0 28px 50px -24px #2e3c2a73,0 2px 10px #1f281012}[data-theme=dark] .rating-panel{box-shadow:0 28px 50px -24px #000c,0 2px 10px #0004}.rating-panel[data-closing]{pointer-events:none;animation:.22s ease-in forwards rating-out}.rating-panel:focus{outline:none}.rating-panel:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.rating-panel h2{letter-spacing:-.035em;padding-right:30px;font-size:19px}.rating-panel>p{color:var(--muted);text-wrap:pretty;margin-top:7px;font-size:12.5px;line-height:1.55}.rating-close{width:30px;height:30px;color:var(--muted);position:absolute;top:11px;right:11px}.rating-close .icon{width:15px;height:15px}.rating-pick{border:0;align-items:center;gap:1px;min-width:0;margin:14px 0 0 -3px;padding:0;display:flex}.rating-pick>label{--star:28px;cursor:pointer;transition:transform .3s var(--ease-out);border-radius:6px;padding:3px;position:relative}.rating-pick:disabled>label{cursor:progress}.rating-pick>label:has(:focus-visible){outline:2px solid var(--accent);outline-offset:1px}.rating-pick>label:active{transform:scale(.9)}.rating-pick .rating-star>span{opacity:0;width:100%;transition:opacity .18s,scale .4s cubic-bezier(.34,1.56,.64,1);scale:.6}.rating-pick>label[data-lit] .rating-star>span{opacity:1;scale:1}.rating-word{font:500 12px/1.2 var(--sans);color:var(--muted);margin-left:auto}.rating-pick:has([data-lit]) .rating-word{color:var(--text)}.rating-note{border:1px solid var(--line);background:var(--page);width:100%;min-height:58px;color:var(--text);resize:none;transition:border-color .2s,box-shadow .3s var(--ease-out),background .2s;border-radius:8px;margin-top:14px;padding:9px 12px;font-size:13px;line-height:1.55;display:block}.rating-note::placeholder{color:var(--muted);opacity:.7}.rating-note:focus-visible{border-color:var(--accent);background:var(--surface-raised);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 13%,transparent);outline:none}.rating-hint{color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;gap:12px;margin-top:6px;font-size:11px;line-height:1.4;display:flex}.rating-hint>[data-full]{color:var(--text)}.rating-send{justify-content:space-between;width:100%;min-height:42px;margin-top:10px;font-size:13px}.rating-send[aria-disabled],.rating-send[aria-disabled]:hover{cursor:default;background:color-mix(in srgb,var(--button) 42%,var(--surface-raised));transform:none}.rating-send[data-busy],.rating-send[data-busy]:hover{cursor:progress;background:color-mix(in srgb,var(--button) 82%,var(--surface-raised))}.rating-send[aria-disabled]:after,.rating-send[aria-disabled] .button-shine{display:none}.rating-panel>.rating-feedback{color:var(--danger);margin:0;font-size:11.5px}.rating-panel>.rating-feedback:not(:empty){margin-top:10px}.rating-panel>.rating-small{text-align:center;margin-top:11px;font-size:11px}.rating-left{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:13px 0 4px;padding:0;list-style:none;display:grid}.rating-left>li:last-child:nth-child(odd){grid-column:1/-1}.rating-left a{border:1px solid var(--line);border-radius:6px;align-items:center;gap:9px;min-height:40px;padding:0 11px;font-size:13px;font-weight:500;transition:background .2s,border-color .2s;display:flex}@media (hover:hover){.rating-left a:hover{background:var(--surface);border-color:color-mix(in srgb,var(--subtle) 55%,var(--line))}}.rating-left .icon{width:15px;height:15px}.rating-left .svg-icon:first-child{color:var(--muted)}.rating-left .svg-icon:last-child{transition:transform .5s var(--ease-out);margin-left:auto}@media (hover:hover){.rating-left a:hover .svg-icon:last-child{transform:translate(3px)}}.rating-badge{background:var(--accent-soft);width:36px;height:36px;color:var(--accent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 14%,transparent);border-radius:50%;justify-content:center;align-items:center;margin-bottom:12px;display:flex}.rating-badge .icon{width:17px;height:17px}.rating-badge path{stroke-dasharray:20;animation:sent-tick .55s .2s var(--ease-out) backwards}.rating-panel>.text-link{margin-top:8px}@keyframes rating-in{0%{opacity:0;translate:0 18px;scale:.97}}@keyframes rating-out{to{opacity:0;translate:0 10px}}@media (pointer:coarse){.rating-close{width:40px;height:40px;top:7px;right:7px}.rating-pick>label{--star:30px;padding:5px 4px}.rating-left a{min-height:44px}}@media (max-width:600px){.rating-panel{left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));width:auto}.rating-note{font-size:16px}.rating-note::placeholder{font-size:13px}}.github-year-grid{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:3px;display:grid}.github-week{grid-template-rows:12px repeat(7,auto);grid-template-columns:minmax(0,1fr);align-content:start;gap:3px;display:grid}.github-month{font-family:var(--mono);color:var(--muted);white-space:nowrap;font-size:8px;line-height:1}.github-week>[data-level],.github-week>[data-pad]{aspect-ratio:1;border-radius:2px}.github-week>:where([data-level]),.github-legend>:where(span){background:var(--gh-0)}.github-legend{font-family:var(--mono);letter-spacing:.05em;color:var(--muted);justify-content:flex-end;align-items:center;gap:3px;font-size:9px;display:flex}.github-legend>span{border-radius:2px;width:9px;height:9px}.github-legend>span:first-child{margin-left:5px}.github-legend>span:last-child{margin-right:5px}@keyframes widget-in{0%{opacity:0;translate:0 34px}to{opacity:1;translate:none}}@media (max-width:900px){.hero-widgets{grid-template-columns:176px 214px;align-items:stretch;gap:52px 14px;margin-top:44px;display:grid;position:static}.widget-stack{display:contents}.photo-card{aspect-ratio:auto;grid-area:1/1;margin:0;rotate:-3deg}.github-card{grid-area:1/2;rotate:2deg}.visitor-card{grid-area:2/1/3/-1;width:auto;rotate:.8deg}.rating-card{flex-direction:row;grid-area:3/1/4/-1;align-items:center;gap:12px;width:auto;margin-top:-34px;padding:13px 16px;position:relative;top:auto;left:auto;rotate:-.6deg}.rating-tour{border-top:0;flex:1;justify-content:flex-end;align-self:auto;margin:0;padding:0}.rating-pages{flex:0 84px}.rating-card{--notes:4}.rating-notes{transform-origin:50% 0;width:auto;left:8px;right:8px;rotate:.6deg}.rating-bubble{transform-origin:44px -7px;max-width:min(340px,100%);rotate:none}.rating-bubble:not(:only-child){max-width:252px}.rating-bubble:nth-child(2n){rotate:1.4deg}.rating-bubble:nth-child(3){rotate:-.8deg}.rating-bubble:before{left:38px;right:auto}.hero-composition:has(.rating-card[data-notes]){padding-bottom:116px}}@media (min-width:601px) and (max-width:900px){.hero-widgets{grid-template-columns:minmax(0,6fr) minmax(0,7fr) minmax(0,6fr);gap:clamp(12px,2vw,18px)}.photo-card,.github-card{width:auto}.photo-card{rotate:-2.5deg}.github-card{rotate:1.5deg}.visitor-card{border-radius:26px;flex-direction:column;grid-area:1/3;padding:4px 20px;display:flex;rotate:-1.5deg}.rating-card{border-radius:20px;grid-area:2/1/3/-1;margin-top:0;padding:14px 22px}.visitor-stats{flex-direction:column;flex:1;min-width:0}.visitor-stat{justify-content:center;gap:clamp(5px,1.6vw - 5px,9px);padding:0}.visitor-stat+.visitor-stat{border-left:0;border-top:1px solid var(--line);padding:0}.visitor-stat>dt{font-size:12px}.visitor-value{font-size:clamp(22px,3.2vw,28px)}.visitor-trend{flex-direction:column;align-items:stretch;gap:clamp(6px,1vw,8px);margin-top:0;padding:clamp(10px,1.6vw,13px) 0 clamp(12px,1.9vw,16px)}.visitor-days{flex:none;height:clamp(16px,2.9vw - 2px,22px)}.visitor-readout{order:-1;justify-content:flex-start;width:auto}.visitor-signal{background:linear-gradient(90deg,transparent,var(--accent),transparent) -22px 0/22px 100% no-repeat;width:auto;height:1px;animation-name:visitor-signal-across;inset:-1px 0 auto}}@keyframes visitor-signal-across{0%{opacity:0;background-position:-22px 0}15%,80%{opacity:1}to{opacity:0;background-position:calc(100% + 22px) 0}}@media (max-width:600px){.hero-widgets{grid-template-columns:calc(42% - 6px) minmax(0,1fr);gap:48px 12px;margin-top:34px}.visitor-card{border-radius:18px;padding:16px 14px 14px}.visitor-stat{padding-right:12px}.visitor-stat+.visitor-stat{padding-left:12px}.photo-card{border-radius:22px;flex:0 0 calc(42% - 6px);width:auto}.photo-card-monogram{font-size:clamp(56px,17vw,76px);bottom:10px;left:14px}.github-card{border-radius:22px;flex:1;gap:12px;width:auto;min-width:0;padding:16px}.github-card-top>svg{width:17px;height:17px}.github-card-top>span{letter-spacing:.02em;font-size:8px}.github-grid{gap:3px}.github-grid>span{border-radius:3px}.github-week:not(:nth-last-child(-n+26)){display:none}}.visitors-label{font:500 13px/1.6 var(--sans);color:var(--muted);align-items:center;gap:12px;margin:0 0 4px;display:flex}.visitors-label:before{content:"";background:var(--accent);width:22px;height:1px}@media (min-width:601px){.home-visitors{display:none}}@media (max-width:600px){.hero-widgets :is(.visitor-card,.rating-card){display:none}.home-visitors{gap:14px;margin-top:34px;display:grid}.home-visitors>:is(.visitor-card,.rating-card){grid-area:auto;margin-top:0}.home-visitors:has(.rating-card[data-notes]){padding-bottom:73px}}.button{isolation:isolate;transition:transform .5s var(--ease-out),background .3s;border-radius:7px;min-height:49px;position:relative}.button-shine{border-radius:inherit;pointer-events:none;position:absolute;inset:0;overflow:hidden}.button-shine:before{content:"";transition:transform .8s var(--ease-out);background:linear-gradient(110deg,#0000 35%,#ffffff18 50%,#0000 65%);position:absolute;inset:-100% -40%;transform:translate(-75%)}@media (hover:hover){.button:hover .button-shine:before{transform:translate(75%)}}.button:after{content:"";border-radius:inherit;opacity:0;pointer-events:none;transition:opacity .5s;position:absolute;inset:-1px;box-shadow:0 8px 22px #29351c18}@media (hover:hover){.button:hover{transform:translateY(-3px)}.button:hover:after{opacity:1}}.button .svg-icon{transition:transform .5s var(--ease-out)}@media (hover:hover){.button:hover .svg-icon{transform:translate(4px)}}.home-work{padding-top:40px}.section-header h2{letter-spacing:-.045em;font-size:38px}.section-header h2 em{color:var(--accent)}.project-image-link{border:1px solid color-mix(in srgb,var(--line) 80%,transparent);transition:transform .6s var(--ease-out);border-radius:12px}@media (hover:hover){.project-image-link:hover{transform:translateY(-5px)}}.project-card{grid-template-columns:minmax(0,1fr);align-content:start;display:grid}.project-card>.project-image-link,.project-card:before{grid-area:1/1}.project-card:before{content:"";opacity:0;transition:opacity .6s var(--ease-out),transform .6s var(--ease-out);border-radius:12px;box-shadow:0 20px 35px -20px #2e3c2a40}@media (hover:hover){.project-card:has(>.project-image-link:hover):before{opacity:1;transform:translateY(-5px)}}.project-image-link:after{content:"";transition:transform 1s var(--ease-out);pointer-events:none;background:linear-gradient(120deg,#0000 30%,#ffffff26 50%,#0000 70%);position:absolute;inset:0;transform:translate(-100%)}@media (hover:hover){.project-image-link:hover:after{transform:translate(100%)}}.project-open{width:39px;height:39px;transition:transform .5s var(--ease-out),opacity .3s}@media (hover:hover){.project-image-link:hover .project-open{transform:rotate(0)}}.project-image-link .preview-frame{transition:transform 1s var(--ease-out)}@media (hover:hover){.project-image-link:hover .preview-frame{transform:scale(1.05)rotate(-.7deg)}}.home-about{isolation:isolate;background:linear-gradient(115deg,color-mix(in srgb,var(--surface) 76%,transparent),color-mix(in srgb,var(--page) 65%,transparent));border:1px solid var(--line);border-radius:12px;gap:70px;padding:45px 40px;position:relative;overflow:hidden}.approach-heading{grid-template-columns:max-content minmax(0,1fr);align-content:start;column-gap:16px;display:grid}.approach-heading>*{grid-column:1}.approach-heading>.shortcut-hints{justify-self:start}.approach-heading>.circuit-backdrop{pointer-events:none;grid-area:1/2/span 3;margin-right:-32px;position:relative;container-type:size}.circuit-glow{z-index:-1;background:radial-gradient(ellipse at center,color-mix(in srgb,var(--accent) 9%,transparent),transparent 65%);pointer-events:none;position:absolute;inset:-45px -10px}.circuit-board{z-index:-1;width:100%;height:calc(100% + 200px);stroke:color-mix(in srgb,var(--muted) 30%,transparent);stroke-width:1.1px;stroke-linejoin:round;stroke-linecap:round;position:absolute;top:-100px;left:0;-webkit-mask-image:linear-gradient(90deg,#0000,#000 18% 82%,#0000);mask-image:linear-gradient(90deg,#0000,#000 18% 82%,#0000)}.circuit-traces [data-accent]{stroke:color-mix(in srgb,var(--accent) 55%,transparent)}.circuit-vias circle{fill:var(--page)}.circuit-chip{stroke:color-mix(in srgb,var(--accent) 70%,transparent)}.circuit-chip-shadow{fill:color-mix(in srgb,var(--accent) 10%,transparent);stroke:none}.circuit-chip-body{fill:var(--surface-raised);stroke-width:1.5px}.circuit-core{color:#000;fill:currentColor;stroke:none}[data-theme=dark] .circuit-core{color:#fff}.circuit-ai-lettering{fill:none;stroke:currentColor;stroke-width:4px;stroke-linecap:round;stroke-linejoin:round}.circuit-chip-marker{fill:var(--accent);stroke:none}.circuit-pads{stroke:color-mix(in srgb,var(--accent) 60%,transparent);stroke-width:2.2px}.circuit-signals{stroke:var(--accent);stroke-width:1.8px;stroke-dasharray:.055 .945;stroke-dashoffset:.055px;opacity:0}.home-about[data-reveal] .circuit-traces path{stroke-dasharray:1;stroke-dashoffset:0;transition:stroke-dashoffset 1.8s var(--ease-out);transition-delay:calc(.18s + var(--trace-delay))}.home-about[data-reveal] .circuit-vias{transition:opacity .8s .9s}.home-about[data-reveal]:not([data-revealed=true]) .circuit-traces path{stroke-dashoffset:1px}.home-about[data-reveal]:not([data-revealed=true]) .circuit-vias{opacity:0}.approach-heading:has(.ask-hint:focus-visible) .circuit-traces path{animation:circuit-spread 1.8s var(--trace-delay) var(--ease-out) both}.approach-heading:has(.ask-hint:focus-visible) .circuit-vias{animation:.8s .9s both circuit-terminals}.approach-heading:has(.ask-hint:focus-visible) .circuit-signals{opacity:1}.approach-heading:has(.ask-hint:focus-visible) .circuit-signals path{animation:circuit-signal 2.8s var(--signal-delay) cubic-bezier(.3,0,.5,1) both}@media (hover:hover){.approach-heading:has(.circuit-ask:hover,.ask-hint:hover) .circuit-traces path{animation:circuit-spread 1.8s var(--trace-delay) var(--ease-out) both}.approach-heading:has(.circuit-ask:hover,.ask-hint:hover) .circuit-vias{animation:.8s .9s both circuit-terminals}.approach-heading:has(.circuit-ask:hover,.ask-hint:hover) .circuit-signals{opacity:1}.approach-heading:has(.circuit-ask:hover,.ask-hint:hover) .circuit-signals path{animation:circuit-signal 2.8s var(--signal-delay) cubic-bezier(.3,0,.5,1) both}}@keyframes circuit-spread{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes circuit-terminals{0%{opacity:0}to{opacity:1}}@keyframes circuit-signal{0%{stroke-dashoffset:.055px;opacity:0}10%{opacity:.85}80%{opacity:.7}to{stroke-dashoffset:-1px;opacity:0}}.circuit-ask{--unit:max(100cqw / 320,(100cqh + 200px) / 520);width:calc(var(--unit) * 106);height:calc(var(--unit) * 106);border-radius:calc(var(--unit) * 14);pointer-events:auto;background:0 0;border:0;padding:0;position:absolute;top:50%;left:50%;translate:-50% -50%}.circuit-sparkle{transform-box:fill-box;transform-origin:50%;transition:transform .55s var(--ease-out),fill .3s}.circuit-chip-shadow{transition:fill .3s}.circuit-sparkle{animation:6s ease-in-out 2.4s infinite circuit-glint}@keyframes circuit-glint{0%,86%,to{transform:none}92%{transform:rotate(90deg)scale(1.3)}}.approach-heading:has(.ask-hint:focus-visible) .circuit-chip-shadow{fill:color-mix(in srgb,var(--accent) 20%,transparent)}.approach-heading:has(.ask-hint:focus-visible) .circuit-sparkle{fill:var(--accent);animation:none;transform:rotate(90deg)scale(1.2)}@media (hover:hover){.approach-heading:has(.circuit-ask:hover,.ask-hint:hover) .circuit-chip-shadow{fill:color-mix(in srgb,var(--accent) 20%,transparent)}.approach-heading:has(.circuit-ask:hover,.ask-hint:hover) .circuit-sparkle{fill:var(--accent);animation:none;transform:rotate(90deg)scale(1.2)}}.approach-heading{grid-template-rows:auto auto 1fr}.approach-heading>.shortcut-hints{align-self:end}.home-about[data-reveal] .approach-qualities:before{transition:transform 1.4s .6s var(--ease-out)}.home-about[data-reveal]:not([data-revealed=true]) .approach-qualities:before{transform:scaleX(0)}.approach-qualities:after{content:"";background:linear-gradient(90deg,transparent,var(--accent),transparent) -90px 0/90px 100% no-repeat;opacity:0;pointer-events:none;height:1px;position:absolute;top:0;left:0;right:0}.home-about:focus-within .approach-qualities:after{animation:1.6s cubic-bezier(.3,0,.5,1) .9s both quality-signal}.home-about:focus-within .quality-chip{animation:quality-wake 1.2s calc(.86s + var(--quality-index) * .48s) ease-out both}@media (hover:hover){.home-about:hover .approach-qualities:after{animation:1.6s cubic-bezier(.3,0,.5,1) .9s both quality-signal}.home-about:hover .quality-chip{animation:quality-wake 1.2s calc(.86s + var(--quality-index) * .48s) ease-out both}}@keyframes quality-signal{0%{opacity:0;background-position:-90px 0}12%,85%{opacity:1}to{opacity:0;background-position:calc(100% + 90px) 0}}@keyframes quality-wake{30%{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}}.home-about h2{font-size:49px}.stack-strip{background:color-mix(in srgb,var(--page) 60%,transparent)}@media (hover:hover){.stack-marquee[data-held] .stack-track{animation-play-state:paused}}.stack-track>li,.tech-icon{transition:color .3s}@media (hover:hover){.stack-marquee[data-held] .stack-track>li:hover,.stack-marquee[data-held] .stack-track>li:hover .tech-icon{color:var(--accent)}}.contact-band{background:var(--surface);isolation:isolate;border-radius:12px}.contact-band:before{content:"";border:1px solid var(--accent);opacity:.13;width:430px;height:430px;box-shadow:0 0 0 35px var(--surface),0 0 0 36px var(--accent),0 0 0 70px var(--surface),0 0 0 71px var(--accent);z-index:-1;transition:transform 1.4s var(--ease-out);border-radius:50%;position:absolute;top:-90px;right:-100px}@media (hover:hover){.contact-band:hover:before{transform:translate(-30px)scale(1.1)}}.contact-band h2{font-size:45px}.page-heading{position:relative}.page-heading h1,.case-heading h1{animation:soft-rise .9s 80ms var(--ease-out) both}.page-heading-bottom,.case-meta{animation:soft-rise .9s .18s var(--ease-out) both}[data-reveal]{opacity:0;transition:opacity .9s var(--ease-out),transform .9s var(--ease-out);transition-delay:var(--reveal-delay,0s);transform:translateY(35px)scale(.985)}[data-reveal][data-revealed=true]{opacity:1;transform:none}.page-transition{z-index:90;color:#e5ebd2;contain:strict;position:fixed;inset:0;overflow:hidden}.page-transition[hidden]{display:none}.page-transition[popover]{background:0 0;border:0;width:auto;height:auto;margin:0;padding:0}.transition-circle{will-change:transform;background:#303b2a;border-radius:50%;position:absolute}.transition-center{flex-direction:column;justify-content:center;align-items:center;gap:17px;display:flex;position:absolute;inset:0}.transition-center>strong{max-width:calc(100% - 24px);font:500 42px/1.15 var(--display);letter-spacing:-.04em;text-align:center;text-wrap:balance}.transition-mark{fill:none;stroke:currentColor;stroke-width:5px;width:66px;overflow:visible}.transition-track{opacity:.14}.transition-ink{stroke-dasharray:80}.page-transition[data-home] .transition-center>strong,.page-transition:not([data-home]) .transition-mark,.preloader{display:none}:root[data-preload] .preloader{z-index:100;color:#e5ebd2;contain:strict;background:#303b2a;place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}:root[data-preload=reveal] .preloader{pointer-events:none;background:0 0}.preloader-circle{will-change:transform;background:#303b2a;border-radius:50%;display:none;position:absolute}:root[data-preload=reveal] .preloader-circle{display:block}.preloader-mark{fill:none;stroke:currentColor;stroke-width:5px;width:66px;position:relative;overflow:visible}.preloader-track{opacity:.14}.preloader-ink{stroke-dasharray:80;stroke-dashoffset:80px;animation:1s cubic-bezier(.65,0,.35,1) .15s forwards preloader-write}@keyframes preloader-write{to{stroke-dashoffset:0}}:root[data-preload=cover] :is(.site-header,.main-container,.site-footer) *,:root[data-preload=cover] :is(.site-header,.main-container,.site-footer) :before,:root[data-preload=cover] :is(.site-header,.main-container,.site-footer) :after{animation-play-state:paused!important}[data-theme-switching] *,[data-theme-switching] :before,[data-theme-switching] :after{transition:none!important}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){z-index:1}@container not (min-width:95px){.circuit-glow,.circuit-board,.circuit-ask{display:none}}@keyframes headline-rise{0%{transform:translateY(115%)rotate(3deg)}to{transform:translateY(0)rotate(0)}}@keyframes soft-rise{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}@keyframes marquee{to{transform:translate(-100%)}}@media (max-width:1050px){.main-container,.site-header,.site-footer,.ask-stage,.ask-bar,.ask-progress{width:calc(100% - 80px)}.hero-heading h1{font-size:70px}.hero-description{max-width:480px;font-size:13px}.hero-actions{gap:18px}}@media (max-width:800px){.main-container,.site-header,.site-footer,.ask-stage,.ask-bar,.ask-progress{width:calc(100% - 56px)}.home-hero{padding-top:43px}.hero-heading h1{font-size:60px}.hero-description{max-width:480px;font-size:12px}.hero-actions{flex-wrap:wrap;gap:16px}.hero-actions .button{gap:18px;padding-inline:14px;font-size:11px}.hero-actions .text-link{font-size:10px}.home-about{gap:32px;padding:32px 27px}.home-about h2{font-size:clamp(36px,5.1vw,40px)}.contact-band h2{font-size:36px}}@media (max-width:600px){.main-container,.site-header,.site-footer,.ask-stage,.ask-bar,.ask-progress{width:calc(100% - 40px)}.home-hero{padding-top:35px}.hero-composition{padding-top:0;padding-bottom:29px}.hero-heading h1{font-size:clamp(62px,15vw,84px);line-height:1.02}.hero-heading h1>.hero-line-muted{display:block}.hero-description{max-width:480px;margin-top:25px;font-size:13px}.hero-actions{gap:23px;margin-top:21px}.hero-actions .button{gap:22px;min-height:46px;padding-inline:16px;font-size:11px}.hero-actions .text-link{font-size:11px}.home-work{padding-top:28px}.section-header h2{font-size:32px}.section-header .eyebrow{gap:8px;font-size:7px}.home-about{gap:22px;margin-top:43px;padding:28px 23px}.home-about h2{font-size:clamp(34px,9vw,39px)}.home-about h2>br{display:block}.approach-heading{column-gap:12px}.approach-heading>.circuit-backdrop{grid-row:1/span 2;margin-right:0}.approach-heading>.shortcut-hints{grid-area:3/1/auto/-1}.circuit-ask{--width:min(100cqw,240px);--unit:max(var(--width) / 320,(100cqh + 100px) / 520);left:calc(100% - var(--width) / 2);top:calc(50% - 10px)}.circuit-board{max-width:240px;height:calc(100% + 100px);top:-60px;left:auto;right:0;-webkit-mask-image:linear-gradient(90deg,#0000,#000 18% 82%,#0000),linear-gradient(#000 65%,#0000);mask-image:linear-gradient(90deg,#0000,#000 18% 82%,#0000),linear-gradient(#000 65%,#0000);-webkit-mask-composite:source-in;mask-composite:intersect}.contact-band h2{font-size:35px}.contact-band:before{right:-310px}.transition-center>strong{font-size:34px}.page-heading:after{font-size:20px;top:47px}}@media (max-width:374px){.main-container,.site-header,.site-footer,.ask-stage,.ask-bar,.ask-progress{width:calc(100% - 32px)}.hero-heading h1{font-size:58px}.hero-actions{gap:15px}.hero-actions .button{gap:16px;padding-inline:13px}.hero-actions .text-link{font-size:10px}.contact-band h2{font-size:31px}}[data-motion=paused]{scroll-behavior:auto}[data-motion=paused] *,[data-motion=paused] :before,[data-motion=paused] :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}[data-motion=paused] [data-reveal]{opacity:1;transform:none}[data-motion=paused] .home-about[data-reveal] .circuit-traces path{stroke-dashoffset:0}[data-motion=paused] .home-about[data-reveal] .circuit-vias{opacity:1}[data-motion=paused] .home-about .circuit-signals{display:none}[data-motion=paused] .home-about[data-reveal] .approach-qualities:before,[data-motion=paused] .ask-steps>i[data-now]:after{transform:none}[data-motion=paused] .stack-marquee{-webkit-mask-image:none;mask-image:none}[data-motion=paused] .stack-track{flex-wrap:wrap;flex-shrink:1;row-gap:10px}[data-motion=paused] .stack-track[aria-hidden]{display:none}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}[data-reveal]{opacity:1;transform:none}.home-about .circuit-traces path{stroke-dashoffset:0!important}.home-about .circuit-vias{opacity:1!important}.home-about .circuit-signals{display:none}.home-about .approach-qualities:before{transform:none!important}.ask-steps>i[data-now]:after{transform:none}.stack-marquee{-webkit-mask-image:none;mask-image:none}.stack-track{flex-wrap:wrap;flex-shrink:1;row-gap:10px}.stack-track[aria-hidden]{display:none}}@media print{.page-transition,.preloader,.rating-panel,.rating-bubble{display:none!important}.main-container{width:100%}.route-content,[data-reveal]{opacity:1!important;transform:none!important}*,:before,:after{transition:none!important;animation:none!important}}
body{overflow-x:clip}h1,h2,h3{overflow-wrap:break-word}.case-heading>div{flex:1;min-width:0;container-type:inline-size}.case-heading h1{font-size:min(93px,22cqi)}.contact-email{container-type:inline-size}.contact-email>a{overflow-wrap:anywhere;font-size:clamp(18px,8cqi - 2.24px,22px)}.section-header>.text-link{white-space:nowrap;flex-shrink:0}.github-widget{width:214px;min-width:0;position:relative}.github-widget>.github-card{width:100%;height:100%}.github-card-fallback{min-height:76px;color:var(--muted);justify-content:space-between;align-items:center;gap:8px;font-size:12px;display:flex}.github-availability{top:calc(100% + 14px);color:var(--muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:3px 7px;margin:0;font-size:10px;line-height:1.6;display:flex;position:absolute;inset-inline:0}.github-availability>span:first-child{color:var(--accent);white-space:nowrap}.github-availability>span+span{border-left:1px solid var(--line);white-space:nowrap;padding-left:7px}@media (max-width:900px){.github-widget{grid-area:1/2;width:auto;margin-bottom:30px}}.stack-focus-description{text-align:right;text-wrap:pretty;max-width:36ch}.stack-chips>li[data-focus]{--focus-ink:var(--focus-light);color:var(--text);font-weight:500}[data-theme=dark] .stack-chips>li[data-focus]{--focus-ink:var(--focus-dark)}.stack-chips>li[data-focus] .tech-icon{color:var(--focus-ink)}.stack-chips>li[data-focus]{border-color:color-mix(in srgb,var(--focus-ink) 38%,var(--line));background:color-mix(in srgb,var(--focus-ink) 6%,var(--page))}.timeline-content ul{font-size:15px;line-height:1.85}.about-story>p,.case-study p,.approach-copy>p{font-size:15px}.case-features{font-size:14px;line-height:1.8}.job-projects{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:4px 22px;margin-top:20px;padding-top:14px;display:flex}.job-projects>.text-link{font-size:13px}.draft-result>p{font-size:14px;line-height:1.8}.draft-result textarea{font-size:13px;line-height:1.75}@media (min-width:1024px){.case-meta .tiny-label{white-space:nowrap;font-size:12px}.case-facts>div>span:last-child{font-size:15px}}@media (hover:none){.project-open{opacity:1;transform:none}.button:active,.filter-button:active,.nav-tab:active,.pagination-step:active,.pagination-page:active{transition-duration:.12s;transform:scale(.97)}.project-image-link:active{transition-duration:.15s;transform:scale(.985)}.keycap-button{display:none}.ask-button{display:inline-flex}}@media (pointer:coarse){.nav-tab{min-height:42px}.theme-toggle,.ask-button{width:42px;height:42px}.filter-button,.pagination-step{min-height:44px}.pagination-page{min-width:44px;height:44px}.text-link,.ask-hint,.shortcut-hint,.ask-suggestions>button,.footer-socials a,.back-to-top,.brand{min-height:44px}.project-title{margin-block:-10px;padding-block:10px}}@media (max-width:1050px){.hero-heading h1{font-size:clamp(60px,7vw + 24px,70px)}.page-heading h1{font-size:clamp(38px,4.2vw + 30px,65px)}}@media (min-width:901px) and (max-width:1100px){.hero-composition{grid-template-columns:minmax(0,1fr);display:grid;container-type:inline-size}.hero-copy,.hero-widgets{grid-area:1/1}.hero-copy{align-self:center}.hero-widgets{--photo:clamp(156px,20cqi - 8px,176px);--photo-rise:39px;place-self:end;margin:0 clamp(6px,16.8cqi - 132px,34px) 5px 0;position:relative}.hero-heading h1{font-size:clamp(54px,8cqi - 11px,68px)}.hero-description{text-wrap:balance;max-width:min(480px,52cqi)}.photo-card{width:var(--photo);margin-right:-36px}.rating-tour{display:none}.rating-card{--notes:1}.rating-notes{transform-origin:50% -10px;left:50%;right:auto;translate:-50%}.rating-bubble{transform-origin:50% -7px}.rating-bubble:before{left:calc(50% - 5.5px);right:auto}.hero-composition:has(.rating-card[data-notes]){padding-bottom:63px}}@media (max-width:800px){.hero-description{font-size:13px}.hero-actions .button,.page-heading-bottom>.button{font-size:12px}.contact-band-right>span{font-size:10px}.filter-button{font-size:11px}.about-story>p{font-size:14px}.about-location,.identity-card-bottom>span{font-size:10px}.principles-grid p{font-size:12px}:is(.setup-section,.certs-section) .section-header>.small,.timeline-date{font-size:11px}.case-heading>p,.case-study p{font-size:14px}.case-facts>div>span:last-child{font-size:11px}}@media (max-width:767px){.hero-widgets :is(.visitor-card,.rating-card),.home-visitors{display:none}.hero-composition:has(.rating-card[data-notes]){padding-bottom:0}}@media (min-width:601px) and (max-width:767px){.hero-widgets{grid-template-columns:minmax(0,6fr) minmax(0,7fr);max-width:440px}}@media (max-width:600px){.hero-widgets{max-width:440px}.section-header h2{font-size:clamp(26px,5vw + 14px,32px)}.contact-band h2{font-size:clamp(27px,6vw + 13px,36px)}.contact-band-right{flex-wrap:wrap}.contact-band-right>span{max-width:120px;font-size:11px}.resume-toolbar{flex-wrap:wrap}.main-container .eyebrow,.case-study section .eyebrow,.main-container .tiny-label,.brand small,.tags>span,.project-year,.field-count{font-size:10px}.nav-tab{font-size:12.5px}.text-link,.section-header>.text-link,.hero-actions>.text-link,.resume-toolbar .text-link,.home-about>div>.text-link{font-size:12px}.hero-actions .button,.contact-band-right>.button,.page-heading-bottom>.button,.resume-toolbar .button{font-size:13px}.filter-button,.stack-track>li,.stack-chips>li{font-size:12px}.about-location{font-size:11px}:is(.setup-section,.certs-section,.stack-section) .section-header>.small{font-size:12px}.stack-focus-description{text-align:left;max-width:none}.principles-grid p,.timeline-content ul{font-size:14px}.job-projects{gap:0 20px;margin-top:18px;padding-top:12px}.job-projects>.tiny-label{flex-basis:100%;margin-bottom:4px}.timeline-date,.job-location,.current-label,.activity-stat{font-size:11px}.github-month{font-size:9px}.copy-email.text-link,.copy-feedback{font-size:12px}.form-note{font-size:11px}.draft-result textarea{font-size:16px}.next-project p{font-size:12px}.resume-header>div,.resume-sheet .resume-date{font-size:11px}.resume-sheet section p,.resume-sheet section li{font-size:12px}.footer-top{flex-direction:column;align-items:flex-start;gap:14px}.footer-brand{font-size:11px}.footer-socials{justify-content:flex-start;gap:0 22px;max-width:none}.footer-socials a,.back-to-top{gap:5px;font-size:12px}.footer-socials a .icon,.back-to-top .icon{width:12px;height:12px}.footer-bottom{flex-direction:column;align-items:flex-start;gap:8px;font-size:11px;display:flex}.local-time,.preview-notice{font-size:11px}.preview-notice{text-align:left;border-top:0;padding-top:0}}@media (max-width:520px){.hero-heading h1{font-size:clamp(46px,11vw + 22px,72px)}}@media (max-width:340px){.github-card{gap:10px;padding:12px}.github-card-top>span{white-space:normal;text-align:right;line-height:1.35}.hero-actions{gap:10px 18px}}
[data-motion-offscreen],[data-motion-offscreen] *,[data-motion-offscreen]:before,[data-motion-offscreen]:after,[data-motion-offscreen] :before,[data-motion-offscreen] :after,[data-page-hidden] *,[data-page-hidden] :before,[data-page-hidden] :after{animation-play-state:paused!important}[data-performance=lite] :is(.has-photo>.tiny-label,.case-player-chip,.case-player-flash){-webkit-backdrop-filter:none;backdrop-filter:none}
.project-art.art-automation{aspect-ratio:1.5;color:#28312d;background:#e9ece4;width:100%;height:auto;padding:4.5%;container-type:inline-size}.project-art.art-email{color:#26333d;background:#e7edf0}.workflow-art-heading{justify-content:space-between;align-items:center;gap:3cqw;display:flex}.workflow-art-heading>span{align-items:center;gap:1.6cqw;display:flex}.workflow-art-heading .icon{width:3.5cqw;height:3.5cqw}.workflow-art-heading b{letter-spacing:-.03em;font-size:3.2cqw;font-weight:500}.workflow-art-heading>small{font:1.45cqw/1.5 var(--mono);letter-spacing:.03em;color:#667065}.workflow-window{background:#202024;border:1px solid #3d3d47;border-radius:1.3cqw;margin-top:2.6cqw;overflow:hidden;box-shadow:0 2cqw 3cqw -2cqw #34432e30}.workflow-window-bar{color:#cecad5;background:#29292e;border-bottom:1px solid #42424b;align-items:center;gap:2cqw;padding:1.8cqw 2.4cqw;font-size:1.8cqw;font-weight:400;line-height:1.5;display:flex}.workflow-window-bar>small{color:#aaa4b4;margin-left:auto;font-size:1.5cqw}.workflow-window-dots{gap:.6cqw;display:flex}.workflow-window-dots i{background:#65616e;border-radius:50%;width:.8cqw;height:.8cqw}.workflow-diagram-thumb{width:100%;height:auto;font-family:var(--sans);display:block}.workflow-diagram-thumb .icon{width:24px;height:24px}.workflow-run-result{color:#b4adbf;background:#29292e;border-top:1px solid #42424b;justify-content:space-between;align-items:center;gap:2cqw;padding:1.65cqw 2.4cqw;font-size:1.45cqw;line-height:1.6;display:flex}.workflow-run-result>span{white-space:nowrap;align-items:center;gap:.75cqw;display:flex}.workflow-run-result i{margin-inline:.4cqw;font-style:normal}.workflow-run-result .icon{width:1.8cqw;height:1.8cqw}.automation-intro{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-end;gap:60px;margin-bottom:30px;padding:9px 0 35px;display:flex}.automation-intro .eyebrow{font-size:9px}.automation-intro h2{margin-top:15px;font-size:32px;line-height:1.18}.automation-intro h2 em{color:var(--accent)}.automation-intro>p{max-width:290px;color:var(--muted);font-size:12px;line-height:1.85}.project-pitch{display:none}.automation-grid{grid-template-columns:1fr;gap:38px}.automation-grid>.project-card{border-bottom:1px solid var(--line);grid-template-rows:auto 1fr auto;grid-template-columns:1.4fr 1fr;column-gap:38px;padding-bottom:38px;display:grid}.automation-grid .project-image-link{grid-area:1/1/4;align-self:center}.automation-grid .project-info{grid-column:2;align-self:end;gap:15px;padding-top:15px}.automation-grid .project-title h3{font-size:28px}.automation-grid .project-info p{margin-top:10px;font-size:14px;line-height:1.7}.automation-grid .project-pitch{grid-column:2;padding-top:15px;display:block}.automation-grid .project-pitch p{color:var(--muted);font-size:12px;line-height:1.8}.automation-grid .project-pitch .text-link{margin-top:13px;font-size:11px}.automation-grid .project-meta{grid-column:2;margin-top:15px;padding-top:12px;font-size:10px}.automation-grid>.project-card:first-child .project-info:before{content:"01 / FEATURED WORKFLOW";font:9px/1.5 var(--mono);letter-spacing:.04em;color:var(--accent);display:block;position:absolute;top:0}.automation-grid>.project-card:first-child .project-info{padding-top:31px;position:relative}.project-filters{flex-wrap:wrap}.experience-automation{border-top:1px solid var(--line);margin-top:24px;padding-top:20px}.experience-automation>h4{margin:0;font-weight:400}.experience-automation>p{color:var(--muted);margin:6px 0 16px;font-size:13px;line-height:1.7}.experience-workflow{border:1px solid var(--line);background:var(--surface-raised);border-radius:10px;margin-top:10px;scroll-margin-top:32px;overflow:hidden}.experience-workflow>summary{cursor:pointer;align-items:center;gap:13px;min-height:74px;padding:17px 18px;list-style:none;display:flex}.experience-workflow>summary::-webkit-details-marker{display:none}.experience-workflow>summary>.tech-icon{color:#d47b6c;width:25px;height:25px}.experience-workflow>summary>span:nth-child(2){flex:1;min-width:0}.experience-workflow summary strong{color:var(--text);font-size:14px;font-weight:500;line-height:1.5;display:block}.experience-workflow summary strong+span{color:var(--muted);margin-top:4px;font-size:12px;line-height:1.6;display:block}.workflow-toggle:after{content:"+";color:var(--accent);font-size:20px}.experience-workflow[open] .workflow-toggle:after{content:"−"}.experience-workflow-body{padding:0 18px 18px}.experience-workflow-body>p{color:var(--muted);margin:0 0 16px;font-size:13px;line-height:1.8}.experience-workflow summary:focus-visible{outline:2px solid var(--accent);outline-offset:-4px;border-radius:9px}@media (max-width:600px){.experience-workflow>summary{gap:10px;padding:15px 13px}.experience-workflow-body{padding:0 10px 10px}.experience-workflow-body>p{padding-inline:3px}}@media (max-width:900px){.automation-grid>.project-card{grid-template-columns:1.3fr 1fr;column-gap:25px}.automation-grid .project-title h3{font-size:24px}.automation-grid .project-info p{font-size:12px}.automation-grid .project-pitch p{font-size:11px}.automation-grid .project-pitch{padding-top:10px}.automation-grid .project-pitch .text-link{margin-top:8px}.automation-intro{gap:35px}.automation-intro h2{font-size:27px}.automation-intro>p{max-width:240px;font-size:11px}}@media (max-width:650px){.automation-intro{margin-bottom:25px;padding-bottom:25px;display:block}.automation-intro h2{font-size:28px}.automation-intro>p{max-width:340px;margin-top:17px;font-size:12px}.automation-grid>.project-card{padding-bottom:28px;display:block}.automation-grid .project-info{padding-top:18px}.automation-grid .project-title h3{font-size:24px}.automation-grid .project-info p{font-size:13px}.automation-grid .project-pitch p,.automation-grid .project-pitch .text-link{font-size:12px}.automation-grid>.project-card:first-child .project-info{margin-top:17px;padding-top:25px}.automation-grid .project-meta{font-size:11px}.workflow-art-heading>small{font-size:1.6cqw}.workflow-art-footer{font-size:1.4cqw}}
