#side-projects{padding-top:clamp(20rem,35rem,50rem)}.contains-carousel .screen-group:has(> .card){--card-bleed:clamp(4rem, 12vw, 15rem);--bleed-room:3rem;--bleed-clip:calc(var(--card-bleed) + var(--bleed-room));--bleed-clip-end:clamp(3rem, 6vw, 6rem);padding-block:var(--bleed-clip) calc(var(--bleed-clip-end) + .5rem);margin-block:calc(-1 * var(--bleed-clip)) calc(-1 * var(--bleed-clip-end))}.contains-carousel .screen-group:has(> .card.mini-project){--group-gap:clamp(1.5rem, 4vw, 4rem);--callout-w:min(100%, clamp(375px, 28%, 420px));--card-floor:clamp(18rem, 100% - var(--group-gap), 56rem);--card-w:max(var(--card-floor), calc(100% - var(--callout-w) - 2 * var(--group-gap)));gap:var(--group-gap)}.screen-group>.callout-section{flex:0 0 var(--callout-w);min-width:0;max-width:none}.screen-group:has(> .card.mini-project)>.callout-section{align-self:flex-end;margin-block:0 7.5rem}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.screen-group:has(> .card.mini-project)>.callout-section{align-self:stretch;margin-block:0;padding-bottom:7.5rem;container-type:size}.screen-group:has(> .card.mini-project) .callout-content{animation:callout-drift ease-in-out both;animation-timeline:--arrow-reveal;animation-range:entry calc(100% - 10rem) contain 100%}}@keyframes callout-drift{from{translate:0 0}to{translate:0 calc(100cqh - 100%)}}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference) and (max-width:30rem){.screen-group:has(> .card.mini-project) .callout-content{animation:callout-drift linear both;animation-timeline:--arrow-reveal;animation-range:entry calc(100% - 8rem) exit calc(100% - 15.5rem - var(--callout-h,0px))}}}.screen-group>.card.mini-project{flex:0 0 var(--card-w);min-width:0}.contains-carousel .screen-group:has(> .card)>.callout-section+.card{scroll-snap-align:none}.card.mini-project{container-type:inline-size;isolation:isolate;border:1px solid transparent;transition:background-color .6s ease,color .6s ease,border-color .6s ease}.card.mini-project.canvas{overflow-x:clip}.card.mini-project::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;opacity:0;pointer-events:none;transition:opacity .6s ease}.card.solitaire::before{background:var(--pattern-solitaire)}.card.canvas::before{background:var(--pattern-canvas)}.card.notes::before{background:var(--pattern-notes)}@media (hover:hover) and (pointer:fine){.card.mini-project:hover::before{opacity:1}.card.canvas:hover{color:#000}.card.notes:hover{color:#000;border-color:rgba(0,0,0,.14)}.button.primary.solitaire:hover{background:var(--color-solitaire);color:#fff}.button.primary.canvas:hover{background:var(--color-canvas);color:#fff}.button.primary.notes:hover{background:var(--color-notes);color:#000}}.button.secondary .button-glyph{transition:transform .2s ease}@media (hover:hover) and (pointer:fine){.button.secondary:hover .button-glyph{transform:translate(2px,-2px)}}.button.desktop-only .small-screen-label{display:none}@media (max-width:1023px){.button.desktop-only{background-color:var(--color-bg-muted);color:var(--color-text-secondary);pointer-events:none;cursor:default}.button.desktop-only .button-glyph,.button.desktop-only .desktop-label{display:none}.button.desktop-only .small-screen-label{display:inline}}@media (prefers-reduced-motion:reduce){.card.mini-project,.card.mini-project::before{transition:none}}.callout-section{min-width:clamp(320px,50vw,600px);max-width:800px;margin-top:clamp(2rem,4vw,4rem)}.callout-title{font-size:clamp(1.8rem, 2.8vw, 32px);line-height:1.4;font-weight:400;margin-bottom:.5rem}.callout-subtitle{opacity:.6;font-size:clamp(1.2rem, 2.8vw, 24px);line-height:1.5;font-weight:400;margin-bottom:1rem}.arrow-wrap{clip-path:inset(-4px -4px -4px 0)}.arrow{display:block;width:100%;overflow:visible;transform:translateX(calc((1 - var(--p,1)) * -85%))}.screen-group-wrapper:has(.arrow){view-timeline:--arrow-reveal block}@supports (animation-timeline:view()){.arrow{animation:arrow-grow linear both;animation-timeline:--arrow-reveal;animation-range:entry 10% cover 45%}@keyframes arrow-grow{from{transform:translateX(-85%)}to{transform:translateX(0)}}}@media (prefers-reduced-motion:reduce){.arrow{animation:none;transform:none}}@media (min-width:1000px){#side-projects{margin-top:10rem}.portfolio .card.mini-project{flex-direction:row;min-height:700px}.card.mini-project .fig-container{width:50%}.mini-project .contentContainer{max-width:45cqi}.mini-project #solitaireiPhone{width:20vw;width:34cqi}.mini-project #notesiPad{width:30vw;width:51cqi}.mini-project #canvasMacBook{width:50vw;width:85cqi}.mini-project.solitaire figure{margin-top:-3.4cqi}.mini-project.notes figure{margin-bottom:40%}.mini-project.canvas figure{margin-bottom:15%;margin-left:40%}.canvas .fig-container,.solitaire .fig-container{margin-top:-2rem}.notes .fig-container{margin-top:-16cqi}figure.solitaireHero{top:calc(-1 * var(--card-bleed));left:0}}@media (max-width:999.98px){.portfolio .card.mini-project{flex-direction:column-reverse;justify-content:flex-end;min-height:0;row-gap:1.5rem;--stack-phone-w:clamp(11rem, 50cqi, 18rem);--stack-fig-ratio:1.6;--stack-fig-h:calc(var(--stack-phone-w) * var(--stack-fig-ratio))}.card.mini-project .fig-container,.card.mini-project.canvas>figure{display:flex;align-items:flex-end;height:var(--stack-fig-h);margin-top:0}.card.mini-project figure{position:relative;top:auto;left:auto;margin:0}.mini-project .device{flex-shrink:0}.mini-project .contentContainer{max-width:none}.mini-project #solitaireiPhone{width:45vw;width:var(--stack-phone-w)}.mini-project #notesiPad{width:80vw;width:min(100cqi,30rem)}.mini-project #canvasMacBook{width:130vw;width:min(150cqi,46rem)}}@media (max-width:1520px){.contains-carousel .screen-group:has(> .card)>.callout-section+.card{scroll-snap-align:start}}.screen-group-wrapper:has(.card.mini-project) .screen-indicator .dot:nth-child(2){background:var(--color-notes);box-shadow:inset 0 0 0 1px rgba(0,0,0,.14)}.screen-group-wrapper:has(.card.mini-project) .screen-indicator .dot:nth-child(3){background:var(--color-canvas)}.screen-group-wrapper:has(.card.mini-project) .screen-indicator .dot:nth-child(4){background:var(--color-solitaire)}.mini-project.canvas .canvas-selection{--sel-color:var(--color-canvas);--sel-pad:10px;--handle:14px;position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:1rem;padding:var(--sel-pad);margin:calc(-1 * var(--sel-pad));margin-bottom:calc(1.5rem - var(--sel-pad));background-color:transparent;outline:2px solid transparent;transition:background-color .2s ease,outline-color .2s ease}.mini-project.canvas .canvas-selection::after{content:"";position:absolute;inset:calc(-1 * var(--handle)/ 2 - 1px);pointer-events:none;--fill:linear-gradient(#fff, #fff);--stroke:linear-gradient(var(--sel-color), var(--sel-color));--in:calc(var(--handle) - 4px);background:var(--fill) 2px 2px/var(--in) var(--in),var(--fill) calc(100% - 2px) 2px/var(--in) var(--in),var(--fill) 2px calc(100% - 2px)/var(--in) var(--in),var(--fill) calc(100% - 2px) calc(100% - 2px)/var(--in) var(--in),var(--stroke) 0 0/var(--handle) var(--handle),var(--stroke) 100% 0/var(--handle) var(--handle),var(--stroke) 0 100%/var(--handle) var(--handle),var(--stroke) 100% 100%/var(--handle) var(--handle);background-repeat:no-repeat;opacity:0;transform:scale(.97);transition:opacity .2s ease,transform .2s ease}@media (hover:hover) and (pointer:fine){.mini-project.canvas:hover .canvas-selection{background-color:#fff;outline-color:var(--sel-color)}.mini-project.canvas:hover .canvas-selection::after{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.mini-project.canvas .canvas-selection,.mini-project.canvas .canvas-selection::after{transition:none}.mini-project.canvas .canvas-selection::after{transform:none}}.mini-project.solitaire .playing-card{--pc-ink:#1D4FC4;--pc-pad:1.125rem;--pc-band:6px;--pc-radius:12px;--pc-tilt:0deg;position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:flex-start;gap:1rem;padding:var(--pc-pad);margin:calc(-1 * var(--pc-pad));margin-bottom:calc(1.5rem - var(--pc-pad));transition:color .3s ease,transform .3s ease}.mini-project.solitaire .playing-card::after,.mini-project.solitaire .playing-card::before{content:"";position:absolute;z-index:-1;pointer-events:none;opacity:0;transform:translateY(6px) scale(.98);transition:opacity .3s ease,transform .3s cubic-bezier(.2, .8, .2, 1)}.mini-project.solitaire .playing-card::before{inset:0;border-radius:var(--pc-radius);background:repeating-linear-gradient(45deg,var(--pc-ink) 0 1px,transparent 1px 4px),repeating-linear-gradient(-45deg,var(--pc-ink) 0 1px,transparent 1px 4px),#fff;box-shadow:0 1px 2px rgba(0,0,0,.25),0 10px 24px rgba(0,0,0,.28)}.mini-project.solitaire .playing-card::after{inset:var(--pc-band);border-radius:calc(var(--pc-radius) - var(--pc-band));border:1.5px solid var(--pc-ink);background:#fff}@media (hover:hover) and (pointer:fine){.mini-project.solitaire:hover .playing-card{color:#000;transform:rotate(var(--pc-tilt))}.mini-project.solitaire:hover .playing-card::after,.mini-project.solitaire:hover .playing-card::before{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.mini-project.solitaire .playing-card,.mini-project.solitaire .playing-card::after,.mini-project.solitaire .playing-card::before{transition:none}.mini-project.solitaire .playing-card,.mini-project.solitaire .playing-card::after,.mini-project.solitaire .playing-card::before{transform:none}}.card.mini-project.notes{--notes-rule:27px;--notes-rule-shift:6px;--notes-line:rgba(0,0,0,.14);--pattern-notes:linear-gradient(var(--color-notes), var(--color-notes)) 0 0/100% 25% no-repeat,linear-gradient(to top, var(--notes-line) 1px, transparent 1px) 0 calc(100% - var(--notes-rule-shift))/100% var(--notes-rule),#fff}@supports (width:round(1px,1px)){.card.mini-project.notes{--notes-rule:round(1.35 * clamp(1rem, 2vw, 20px), 1px)}}.mini-project.notes .contentContainer{gap:var(--notes-rule)}.mini-project.notes h3{line-height:calc(2 * var(--notes-rule));margin-bottom:0}.mini-project.notes .projectContent>p,.mini-project.notes .projectPlatform,.mini-project.notes .tag{line-height:var(--notes-rule)}.mini-project.notes .projectContent{gap:calc(3 * var(--notes-rule) - 2.5rem - 8px)}.mini-project.notes .tagList{row-gap:calc(var(--notes-rule) - 8px)}@media not ((hover:hover) and (pointer:fine)){.card.mini-project.is-snapped::before{opacity:1}.card.canvas.is-snapped{color:#000}.card.notes.is-snapped{color:#000;border-color:rgba(0,0,0,.14)}.mini-project.canvas.is-snapped .canvas-selection{background-color:#fff;outline-color:var(--sel-color)}.mini-project.canvas.is-snapped .canvas-selection::after{opacity:1;transform:scale(1)}.mini-project.solitaire.is-snapped .playing-card{color:#000;transform:rotate(var(--pc-tilt))}.mini-project.solitaire.is-snapped .playing-card::after,.mini-project.solitaire.is-snapped .playing-card::before{opacity:1;transform:none}}