[data-type-char]{position:relative}[data-type-char].typing-caret:after{content:"";background:#855a2f;width:2px;height:1em;margin-left:2px;position:absolute;top:.1em;left:100%}@media (prefers-reduced-motion:reduce){[data-type-char].typing-caret:after{display:none}}
.projects{scroll-margin-top:100px}.project-section{--project-bg:#f2eddb;--project-ink:#24251f;--project-muted:#696b5e;--project-line:#33391b20;--project-card:#fffef8;color:var(--project-ink);background-color:var(--project-bg);background-image:repeating-linear-gradient(90deg,transparent 0,transparent calc(8.333% - 1px),var(--project-line) calc(8.333% - 1px),var(--project-line) 8.333%);padding:clamp(80px,8vw,130px) 5% 24px;scroll-margin-top:88px;position:relative}.project-dark{--project-bg:#0c3443;--project-ink:#fafaf2;--project-muted:#bdccd0;--project-line:#c1e1e917}.project-light:nth-child(3n){--project-bg:#ddd0f0;--project-ink:#292032;--project-muted:#65546e;--project-line:#493a5b1c}.project-section-inner{max-width:1640px;margin-inline:auto}.project-eyebrow{letter-spacing:.16em;text-transform:uppercase;color:var(--project-muted);justify-content:space-between;gap:20px;padding-bottom:28px;font-size:10px;display:flex}.project-series{align-items:center;gap:10px;display:inline-flex}.project-series-rule{background:var(--project-accent);width:27px;height:1px}.project-index{font-variant-numeric:tabular-nums;letter-spacing:.08em}.project-index b{color:var(--project-ink);font-weight:600}.project-content{grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr);align-items:start;column-gap:clamp(32px,5vw,90px);display:grid}.project-heading{grid-area:1/2;padding:10px 0 30px}.project-heading>p{color:var(--project-muted);letter-spacing:.12em;text-transform:uppercase;margin:0 0 16px;font-size:10px}.project-title-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;display:flex}.project-heading h2{letter-spacing:-.065em;margin:0;font-size:clamp(46px,5.5vw,94px);font-weight:550;line-height:1.03}.project-heading h2>span{color:var(--project-accent)}.project-heading h3{color:var(--project-muted);letter-spacing:-.02em;margin:17px 0 0;font-size:clamp(14px,1.3vw,20px);font-weight:400;line-height:1.5}.project-view-project{color:#20251f;white-space:nowrap;background:#fffef8;border:1px solid #fff7;border-radius:40px;justify-content:center;align-items:center;gap:17px;min-height:44px;padding:10px 20px;font-size:12px;transition:transform .2s,box-shadow .2s;display:inline-flex;box-shadow:3px 4px #0003}.project-view-project:hover{transform:translateY(-3px);box-shadow:3px 7px #0003}.project-story{grid-area:1/1/span 2;min-width:0;padding-top:clamp(30px,6vw,96px);position:relative}.project-narration{z-index:1;position:relative}.project-message{background:var(--project-card);color:#25241f;border:1px solid #20251f17;border-radius:24px 24px 24px 4px;padding:24px 26px 15px;position:relative;box-shadow:5px 6px #0002}.project-message:after{content:"";background:var(--project-card);border-bottom:1px solid #20251f17;border-right:1px solid #20251f17;width:26px;height:26px;position:absolute;bottom:-14px;left:44px;transform:skewY(-30deg)}.project-message-label{color:#747168;text-transform:uppercase;letter-spacing:.11em;font-size:9px;display:block}.project-message p{letter-spacing:-.035em;min-height:7.8em;margin:14px 0 12px;font-size:clamp(17px,1.55vw,25px);font-weight:450;line-height:1.4}.project-message strong{color:color-mix(in srgb,var(--project-accent) 70%,#000);font-weight:650}.project-story-controls{z-index:1;border-top:1px solid #25241f12;gap:18px;padding-top:9px;display:flex;position:relative}.project-story-controls button{color:#78766d;background:0 0;border:0;min-height:44px;padding:0;font-size:11px}.project-story-controls button[aria-pressed=true]{color:#25241f;text-underline-offset:5px;text-decoration:underline}.project-guide{flex-direction:column;align-items:center;margin-top:18px;display:flex}.project-robot-slot{flex-shrink:0;width:clamp(240px,24vw,340px);height:clamp(240px,24vw,340px);position:relative}.project-guide-signature{color:var(--project-muted);letter-spacing:.02em;margin-top:-6px;font-size:10px}.project-guide-status{background:var(--project-accent);border-radius:50%;width:5px;height:5px;margin-right:5px;display:inline-block}.project-highlights{flex-wrap:wrap;gap:8px 14px;margin:24px 0 0;padding:0;list-style:none;display:flex}.project-highlights li{color:var(--project-muted);font-size:10px;line-height:1.6}.project-highlights li span{color:var(--project-accent);margin-right:5px}.project-links{gap:20px;margin-top:18px;font-size:12px;display:flex}.project-links a{border-bottom:1px solid;padding-block:10px}.project-gallery{color:#292b26;background:#fffef8;border:1px solid #fff6;border-radius:14px;grid-area:2/2;min-width:0;margin:0 0 22px;position:relative;overflow:hidden;box-shadow:7px 8px #0003}.project-browser{color:#74776d;background:#fafbf6;justify-content:space-between;align-items:center;gap:12px;height:38px;padding:0 14px;font-size:10px;display:flex}.project-browser-address{color:#585d51;white-space:nowrap;text-overflow:ellipsis;background:#eeefe9;border-radius:20px;min-width:0;padding:3px 12px;overflow:hidden}.project-browser-address strong{color:#464b40;font-weight:500}.project-browser-dots{gap:5px;display:flex}.project-browser-dots i{background:#d4d7cc;border-radius:50%;width:7px;height:7px}.project-full-view{place-items:center;min-width:40px;min-height:38px;display:grid}.project-screen{aspect-ratio:16/10;background:#fff;border-top:1px solid #20251f12;position:relative}.project-caption{color:#6e7265;border-top:1px solid #20251f12;align-items:flex-start;gap:12px;padding:14px 18px;font-size:11px;line-height:1.6;display:flex}.project-caption-index{color:#505749;font-variant-numeric:tabular-nums;letter-spacing:.04em;border-right:1px solid #252c2728;flex:none;padding-right:11px;font-size:10px}.project-gallery-controls{justify-content:space-between;align-items:center;gap:10px;padding:0 12px 12px;display:flex}.project-gallery-tabs{flex-wrap:wrap;gap:5px;display:flex}.project-gallery-tabs button{color:#6e7265;background:0 0;border:1px solid #0000;border-radius:24px;align-items:center;gap:7px;min-height:44px;padding:8px 13px;font-size:11px;transition:background-color .2s,color .2s;display:inline-flex}.project-tab-index{font-variant-numeric:tabular-nums;opacity:.65;font-size:9px}.project-gallery-tabs button[aria-selected=true]{color:#fffef8;background:#252c27}.project-gallery-tabs button:hover:not([aria-selected=true]){color:#252c27;border-color:#252c2730}.project-view-count{white-space:nowrap;color:#6e7265;padding-right:5px;font-size:10px}.project-section-footer{border-top:1px solid var(--project-line);color:var(--project-muted);justify-content:space-between;align-items:center;gap:20px;margin-top:48px;padding-top:16px;font-size:10px;display:flex}.project-section-footer a{min-height:44px;color:var(--project-ink);align-items:center;gap:16px;font-size:12px;display:inline-flex}.project-section-footer a>span{transition:transform .2s}.project-section-footer a:hover>span{transform:translateY(3px)}.project-section-footer a[href=\#home]:hover>span{transform:translateY(-3px)}.project-footnote{letter-spacing:.02em}.project-section a:focus-visible,.project-section button:focus-visible,.project-screen:focus-visible{outline:2px solid var(--project-accent);outline-offset:4px}.project-dark .project-content{grid-template-columns:minmax(0,1.6fr) minmax(0,.8fr)}.project-dark .project-heading{grid-column:1}.project-dark .project-gallery{grid-area:2/1}.project-dark .project-story{grid-area:1/2/span 2}@media (min-width:1600px){.project-content{min-height:780px}.project-message p{min-height:7em}}@media (max-width:1050px){.project-heading h2{font-size:clamp(38px,5.6vw,64px)}.project-content,.project-dark .project-content{gap:26px}.project-message{padding:20px 20px 10px}.project-message p{font-size:17px}.project-robot-slot{width:240px;height:240px}}@media (max-width:760px){.project-section{background-size:200% 100%;padding:72px 6% 22px}.project-content,.project-dark .project-content{grid-template-columns:minmax(0,1fr);gap:0}.project-heading,.project-dark .project-heading{grid-area:1/1;padding:8px 0 26px}.project-story,.project-dark .project-story{grid-area:2/1;padding-top:0;position:static}.project-gallery,.project-dark .project-gallery{grid-area:3/1;margin-top:26px}.project-heading h2{font-size:clamp(40px,9vw,66px)}.project-title-row{gap:15px}.project-view-project{padding-inline:16px;font-size:11px}.project-message p{min-height:0;font-size:21px}.project-guide{align-items:flex-end;height:0;margin:0}.project-dark .project-guide{align-items:flex-start}.project-robot-slot{width:84px;height:0}.project-guide-signature{display:none}.project-light .project-message:after{left:auto;right:32px}.project-highlights{justify-content:flex-start;margin-top:12px}.project-section-footer{margin-top:24px}.project-section-footer>span{max-width:150px;line-height:1.6}.project-gallery-tabs button{padding-inline:10px}.project-tab-index{display:none}}@media (prefers-reduced-motion:reduce){.project-gallery-tabs button,.project-view-project{transition:none}}@media (max-width:760px) and (prefers-reduced-motion:reduce){.project-guide{height:auto;margin-top:12px}.project-robot-slot{height:84px}}.project-scroll-hint{display:none}.project-chapter-rail{align-items:center;gap:3px;margin-left:15px;display:inline-flex}.project-chapter-rail i{background:#25241f1c;width:15px;height:2px;display:block}.project-chapter-rail i[data-state=current]{background:var(--project-accent)}.project-chapter-rail i[data-state=read]{background:#25241f65}.project-message-copy{display:grid}.project-message-copy>p{grid-area:1/1}.project-message-hidden{visibility:hidden;pointer-events:none}.project-caption{min-height:calc(3.2em + 28px)}.project-message-text{animation:.3s ease-out project-message-in}@keyframes project-message-in{0%{opacity:.25;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@media (min-width:1000px) and (min-height:700px) and (prefers-reduced-motion:no-preference){.project-section{min-height:calc(100svh + var(--story-steps,3) * 60svh);padding:0 4%}.project-section-inner{flex-direction:column;height:calc(100svh - 96px);padding:20px 0 16px;display:flex;position:sticky;top:96px}.project-eyebrow{flex:none;padding-bottom:16px}.project-content{flex:1;grid-template-rows:auto minmax(0,1fr);column-gap:4vw;min-height:0}.project-heading,.project-dark .project-heading{padding:0 0 18px}.project-heading>p{margin-bottom:10px}.project-heading h2{font-size:clamp(42px,4.8vw,80px)}.project-heading h3{margin-top:11px;font-size:clamp(13px,1.2vw,18px)}.project-view-project{min-height:40px;padding:8px 17px;font-size:11px}.project-story,.project-dark .project-story{flex-direction:column;height:100%;min-height:0;padding-top:28px;display:flex}.project-message{padding:20px 22px 12px}.project-message p{min-height:8.4em;margin-top:12px;font-size:clamp(16px,1.4vw,22px)}.project-story-controls{gap:14px}.project-story-controls button{min-height:36px;font-size:10px}.project-scroll-hint{color:#87877c;justify-content:space-between;align-items:center;margin-top:9px;font-size:10px;display:flex}.project-guide{flex:1;justify-content:flex-end;min-height:0;margin-top:12px}.project-robot-slot{width:min(24vw,30svh);height:min(24vw,30svh)}.project-highlights{gap:6px 12px;margin-top:20px}.project-highlights li{font-size:9px}.project-gallery,.project-dark .project-gallery{flex-direction:column;height:100%;min-height:0;margin:0;display:flex}.project-gallery figure{flex-direction:column;flex:1;min-height:0;display:flex}.project-screen{aspect-ratio:auto;flex:1;min-height:0}.project-browser{flex:none;height:34px}.project-caption{flex:none;padding:8px 14px;font-size:10px}.project-gallery-controls{flex:none;padding:0 9px 8px}.project-gallery-tabs button{min-height:36px;padding:6px 11px;font-size:10px}.project-section-footer{flex:none;justify-content:center;margin-top:14px;padding-top:6px}.project-section-footer>span{display:none}.project-caption{min-height:calc(3.2em + 16px)}.project-section-footer a{min-height:32px;font-size:11px}}@media (prefers-reduced-motion:reduce){.project-message-text{animation:none}.project-section-footer a>span{transition:none}}
@media (max-width:760px){[data-nextsection],[data-skills],.project-section{scroll-margin-top:88px}[data-speech],[data-aboutcopy],#skills-tree,[data-mobile-skills],.project-heading,.project-title-row,.project-message,.project-gallery{min-inline-size:0}[data-aboutcopy],.project-heading h2,.project-heading h3,.project-message-copy,.project-caption{overflow-wrap:anywhere}.project-heading>p{max-inline-size:100%;line-height:1.6}.project-message{padding-inline:clamp(18px,5.2vw,26px)}.project-story-controls{flex-wrap:wrap;gap:4px 10px}.project-story-controls button{min-block-size:44px;min-inline-size:44px;padding-inline:2px;line-height:1.4}.project-browser{gap:8px;min-block-size:44px;padding-inline:10px}.project-browser-dots,.project-full-view{flex-shrink:0}.project-browser-address{white-space:nowrap;text-overflow:ellipsis;min-inline-size:0;overflow:hidden}.project-full-view{min-block-size:44px;min-inline-size:44px}.project-gallery-controls{gap:6px;padding-inline:8px}.project-gallery-tabs{gap:3px;min-inline-size:0}.project-gallery-tabs button{min-block-size:44px;min-inline-size:44px;padding-inline:clamp(7px,2.2vw,12px)}.project-view-count{flex-shrink:0;padding-inline-end:2px}.project-caption{gap:10px;padding-inline:14px}.project-caption-index{flex-shrink:0}.project-section-footer{align-items:flex-start}.project-section-footer a{flex-shrink:0;min-block-size:44px}}@media (max-width:360px){.project-message p{font-size:19px;line-height:1.5}.project-gallery-controls{flex-wrap:wrap}.project-view-count{margin-inline-start:auto}}@media (max-width:760px) and (pointer:coarse){[data-portrait]{touch-action:pan-y}.robot-journey,.robot-journey button{pointer-events:none}}@media (max-width:1000px) and (max-height:500px) and (orientation:landscape) and (pointer:coarse){.project-full-view{min-block-size:44px;min-inline-size:44px}.project-browser{min-block-size:44px}[data-portrait]{touch-action:pan-y}[data-nextsection]{grid-template-columns:minmax(0,1fr);gap:24px;min-height:0;padding-top:56px;padding-bottom:100px}[data-robotanchor]{width:140px;margin-top:0}[data-speech]{padding:24px}[data-aboutcopy]{font-size:clamp(20px,3vw,26px)}.project-content,.project-dark .project-content{grid-template-columns:minmax(0,1fr)}.project-heading,.project-dark .project-heading{grid-area:1/1}.project-story,.project-dark .project-story{grid-area:2/1;padding-top:0}.project-gallery,.project-dark .project-gallery{grid-area:3/1;margin-top:26px}.project-guide{align-items:flex-end;height:0;margin:0}.project-dark .project-guide{align-items:flex-start}.project-robot-slot{width:84px;height:0}.project-guide-signature{display:none}.robot-journey,.robot-journey button{pointer-events:none}}@media (max-width:1000px) and (max-height:500px) and (orientation:landscape) and (pointer:coarse) and (prefers-reduced-motion:reduce){.project-guide{height:auto;margin-top:12px}.project-robot-slot{height:84px}}
