@layer theme,base;@layer components{.projects-page{--space-fill:var(--work-fill);--space-ink:var(--work-ink);--space-tint:color-mix(in oklab, var(--color-blue) 6%, var(--color-night));overflow-x:clip}.projects-page[data-space=lab]{--space-fill:var(--lab-fill);--space-ink:var(--lab-ink);--space-tint:color-mix(in oklab, var(--color-purple) 9%, var(--color-night))}.projects-shell{max-width:1440px;margin-inline:auto;padding-inline:1rem}@media (min-width:640px){.projects-shell{padding-inline:1.5rem}}@media (min-width:1024px){.projects-shell{padding-inline:2.5rem}}@media (min-width:1280px){.projects-shell{padding-inline:4rem}}.projects-header{background:var(--space-tint);border-bottom:1px solid var(--projects-rule);padding-block:2rem 1.75rem;position:relative}@media (min-width:1024px){.projects-header{padding-block:3rem 2.25rem}}.projects-intro{gap:.9rem;margin-bottom:1.5rem;display:grid}@media (min-width:1024px){.projects-intro{grid-template-columns:minmax(0,6fr) minmax(0,5fr);align-items:end;gap:3rem;margin-bottom:2rem}}.section-heading.projects-title{font-size:calc(clamp(2.2rem, 1.4rem + 3.4vw, 4.25rem) * var(--text-scale));line-height:1}.projects-heading{font-family:var(--font-display);letter-spacing:-.04em;text-wrap:balance;overflow-wrap:anywhere;font-size:clamp(2.6rem,8vw,6.5rem);font-weight:700;line-height:.95}.projects-nav ul{flex-wrap:wrap;gap:.5rem;display:flex}.projects-nav-link{--nav-fill:var(--work-fill);--nav-ink:var(--work-ink);border:1px solid var(--projects-rule);background:color-mix(in oklab, var(--color-night) 70%, transparent);min-height:2.75rem;font-family:var(--font-heading);font-size:var(--text-sm);color:var(--color-ink);border-radius:9999px;align-items:center;gap:.55rem;padding-inline:1.1rem;font-weight:600;transition:background-color .2s,border-color .2s,color .2s;display:inline-flex}.projects-nav-link[data-section=lab]{--nav-fill:var(--lab-fill);--nav-ink:var(--lab-ink)}.projects-nav-link[data-section=visual]{--nav-fill:var(--visual-fill);--nav-ink:var(--visual-ink)}.projects-nav-link:hover{border-color:var(--nav-ink)}.projects-nav-dot{background:var(--nav-ink);border-radius:9999px;width:.55rem;height:.55rem}.projects-nav-count{font-family:var(--font-mono);font-size:calc(.7rem * var(--text-scale));opacity:.7;font-weight:400}.projects-nav-link[aria-current=page]{background:var(--nav-fill);border-color:var(--nav-fill);color:#fff}.projects-nav-link[aria-current=page] .projects-nav-dot{background:#fff}.projects-section{padding-block:1.5rem 4rem}@media (min-width:1024px){.projects-section{padding-block:3rem 5rem}}.projects-browse{grid-template-columns:minmax(0,1fr);gap:1.5rem;display:grid}@media (min-width:1024px){.projects-browse.has-filters{grid-template-columns:12.5rem minmax(0,1fr);align-items:start;gap:3.5rem}.projects-filters{top:calc(var(--projects-header-h) + 1.5rem);position:sticky}}.projects-filters-title{font-size:var(--text-sm);color:var(--color-ink);margin-bottom:.75rem;font-weight:700;display:none}.projects-results{font-size:var(--text-sm);color:var(--color-ink-muted);margin-top:.75rem}@media (min-width:1024px){.projects-filters-title{display:block}.projects-results{border-top:1px solid var(--projects-rule);margin-top:1rem;padding-top:1rem}}.projects-results-list>:first-child{border-top:0;padding-top:0}.projects-chips{scrollbar-width:none;gap:.4rem;margin-inline:-1rem;padding:.15rem 1rem;display:flex;position:relative;overflow-x:auto}.projects-chips::-webkit-scrollbar{display:none}@media (max-width:1023.98px){.projects-chips{-webkit-mask-image:linear-gradient(90deg,#000 85%,#0000);mask-image:linear-gradient(90deg,#000 85%,#0000)}}@media (min-width:1024px){.projects-chips{flex-direction:column;gap:.15rem;margin-inline:0;padding-inline:0;overflow:visible}.projects-chips .projects-chip{border-color:#0000;border-radius:.6rem;justify-content:space-between;width:100%;min-height:2.6rem;padding-inline:.85rem}.projects-chips .projects-chip:hover{border-color:var(--projects-rule)}}.projects-chip{border:1px solid var(--projects-rule);min-height:2.5rem;font-family:var(--font-heading);font-size:var(--text-sm);white-space:nowrap;color:var(--color-ink-muted);border-radius:9999px;align-items:center;gap:.45rem;padding-inline:.95rem;font-weight:500;transition:background-color .2s,color .2s,border-color .2s;display:inline-flex}.projects-chip:hover{color:var(--color-ink);border-color:var(--space-ink)}.projects-chip[aria-pressed=true]{background:var(--space-fill);border-color:var(--space-fill);color:#fff}.projects-count{font-family:var(--font-mono);font-size:calc(.7rem * var(--text-scale));opacity:.75}.projects-draft{border:1px dashed var(--space-ink);font-family:var(--font-mono);font-size:calc(11px * var(--text-scale));color:var(--space-ink);border-radius:9999px;padding:.1rem .6rem;display:inline-block}.work-row,.lab-tile{animation:.55s cubic-bezier(.2,.7,.2,1) both projects-enter}@keyframes projects-enter{0%{opacity:0;translate:0 12px}}.work-row{border-top:1px solid var(--projects-rule);gap:1.5rem;padding-block:2.5rem;display:grid;position:relative}@media (min-width:1024px){.work-row{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:center;gap:3rem;padding-block:3rem}.work-row[data-flip=true] .work-row-text{order:2}}.work-row-text{flex-direction:column;order:2;gap:1rem;display:flex}@media (min-width:1024px){.work-row-text{order:0}}.work-row-kicker{font-size:var(--text-sm);color:var(--color-ink-muted);font-weight:600}.work-row-title{font-family:var(--font-display);letter-spacing:-.03em;text-wrap:balance;font-size:clamp(2rem,3.6vw,3.2rem);font-weight:700;line-height:1}.work-row-link{background-image:linear-gradient(var(--space-ink), var(--space-ink));background-position:0 100%;background-repeat:no-repeat;background-size:0% 2px;transition:background-size .35s}.work-row-link:after{content:"";z-index:1;position:absolute;inset:0}.group:hover .work-row-link,.work-row-link:focus-visible{background-size:100% 2px}.work-row-link:focus-visible{outline:none}.work-row-link:focus-visible:after{outline:2px solid var(--space-ink);outline-offset:6px}.work-row-cta{font-family:var(--font-heading);font-weight:600;font-size:var(--text-sm);color:var(--color-ink);align-items:center;gap:.4rem;display:inline-flex}.projects-page .group:hover .cta-trailing-icon{transform:translate(2px,-2px)}.work-row-media,.lab-tile-media{border:1px solid var(--projects-rule);background:var(--projects-paper);overflow:hidden}.work-row-media{aspect-ratio:16/10}.work-row-img,.lab-tile-img{object-fit:cover;width:100%;height:100%;transition:scale .7s cubic-bezier(.2,.7,.2,1);display:block}.group:hover .work-row-img,.group:hover .lab-tile-img{scale:1.035}.work-row-img.is-contain,.lab-tile-img.is-contain{object-fit:contain;padding:1.25rem}.work-card{flex-direction:column;gap:1.1rem;height:100%;display:flex;position:relative}.work-card-media{aspect-ratio:16/10;border:1px solid var(--projects-rule);background:var(--projects-paper);overflow:hidden}.work-card-img{object-fit:cover;width:100%;height:100%;transition:scale .7s cubic-bezier(.2,.7,.2,1);display:block}.work-card-img.is-contain{object-fit:contain;padding:1rem}.group:hover .work-card-img{scale:1.03}.work-card-body{flex-direction:column;gap:.55rem;display:flex}.work-card-meta{font-size:var(--text-sm);color:var(--space-ink,var(--work-ink));font-weight:600}.work-card-title{font-family:var(--font-display);font-weight:700;font-size:calc(clamp(1.45rem, 1.2rem + .9vw, 1.9rem) * var(--text-scale));letter-spacing:-.02em;text-wrap:balance;line-height:1.1}.work-card[data-size=large] .work-card-title{font-size:calc(clamp(1.75rem, 1.3rem + 1.6vw, 2.6rem) * var(--text-scale))}.work-card-link{background-image:linear-gradient(var(--space-ink,var(--work-ink)), var(--space-ink,var(--work-ink)));background-position:0 100%;background-repeat:no-repeat;background-size:0% 2px;transition:background-size .35s}.work-card-link:after{content:"";z-index:1;position:absolute;inset:0}.group:hover .work-card-link,.work-card-link:focus-visible{background-size:100% 2px}.work-card-link:focus-visible{outline:none}.work-card-link:focus-visible:after{outline:2px solid var(--space-ink,var(--work-ink));outline-offset:6px}.work-card-summary{max-width:52ch;color:var(--color-ink-muted)}.work-card-role{border-top:1px solid var(--projects-rule);max-width:52ch;font-size:var(--text-sm);color:var(--color-ink);margin-top:.15rem;padding-top:.65rem}.work-card-role-label{color:var(--space-ink,var(--work-ink));margin-right:.35rem;font-weight:700}.home-work-grid{gap:3rem;display:grid;position:relative}@media (max-width:639.98px){.home-work-grid{scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;gap:1rem;margin-inline:-1rem;padding-inline:1rem;scroll-padding-inline:1rem;display:flex;overflow-x:auto}.home-work-grid::-webkit-scrollbar{display:none}.home-work-grid>li{scroll-snap-align:start;flex:0 0 84%}.home-work-grid .work-card-summary{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.home-work-grid>.home-work-all{flex-basis:62%}}.home-work-all-link{border:1px dashed var(--projects-rule);height:100%;min-height:14rem;font-family:var(--font-heading);font-size:var(--text-xl);color:var(--color-ink);border-radius:.25rem;flex-direction:column;justify-content:center;gap:.75rem;padding:1.5rem;font-weight:700;display:flex}.home-work-all-link:hover,.home-work-all-link:focus-visible{border-color:var(--work-ink)}@media (min-width:640px){.home-work-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:3.5rem 2rem}}@media (min-width:1024px){.home-work-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:4.5rem 3rem}.home-work-grid>[data-size=large]{grid-column:span 7}.home-work-grid>[data-size=regular]{grid-column:span 5;align-self:end}}.work-more{border-top:1px solid var(--projects-rule);padding-top:3rem}.work-more-title{font-family:var(--font-heading);font-size:var(--text-xl);font-weight:700}.work-more-grid{gap:2.75rem 2rem;margin-top:2rem;display:grid}@media (max-width:639.98px){.work-more-grid{gap:1.75rem}.work-more-grid .work-card{grid-template-columns:6.5rem minmax(0,1fr);align-items:start;gap:1rem;display:grid}.work-more-grid .work-card-media{aspect-ratio:1}.work-more-grid .work-card-body{gap:.35rem}.work-more-grid .work-card-title{font-size:calc(1.25rem * var(--text-scale))}.work-more-grid .work-card-summary{-webkit-line-clamp:3;font-size:var(--text-sm);-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.work-more-grid .work-card-role{font-size:var(--text-xs)}}@media (min-width:640px){.work-more-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1280px){.work-more-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.open-slot{border-top:1px solid var(--projects-rule);align-items:center;gap:2rem;padding-block:3rem;display:grid}@media (min-width:1024px){.open-slot{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:4rem;padding-block:4rem}}.open-slot-plus{aspect-ratio:16/10;border:1px dashed color-mix(in oklab, var(--space-ink) 55%, transparent);max-height:20rem;position:relative}.open-slot-plus:before,.open-slot-plus:after{content:"";background:var(--space-ink);width:clamp(3rem,9vw,6rem);height:2px;transition:rotate .5s cubic-bezier(.2,.7,.2,1);position:absolute;top:50%;left:50%;translate:-50% -50%}.open-slot-plus:after,.open-slot:hover .open-slot-plus:before{rotate:90deg}.open-slot:hover .open-slot-plus:after{rotate:180deg}.lab-grid{gap:3.5rem 2rem;padding-top:1rem;display:grid}@media (min-width:640px){.lab-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.lab-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:5rem 2.5rem}.lab-tile[data-size=large]{grid-column:span 7}.lab-tile[data-size=medium]{grid-column:span 5;margin-top:4rem}.lab-tile[data-size=small]{grid-column:span 4}}.lab-tile{position:relative}.lab-tile-media{aspect-ratio:4/3;border-radius:6px}.lab-tile[data-size=large] .lab-tile-media{aspect-ratio:16/11}.detail-back{min-height:2.75rem;font-family:var(--font-heading);font-size:var(--text-sm);color:var(--color-ink-muted);align-items:center;gap:.5rem;font-weight:600;display:inline-flex}.detail-back:hover{color:var(--color-ink)}.detail-facts{border-top:1px solid var(--projects-rule)}.detail-fact{border-bottom:1px solid var(--projects-rule);padding-block:.85rem}.detail-cover{border:1px solid var(--projects-rule);background:var(--projects-paper);margin-top:3rem;overflow:hidden}.detail-cover-img{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:82vh;margin-inline:auto;display:block}.detail-sections{gap:3.5rem;padding-block:5rem;display:grid}.detail-section{border-top:1px solid var(--projects-rule);gap:1rem;padding-top:1.5rem;display:grid}@media (min-width:1024px){.detail-section{grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:3rem}}.detail-section.is-reflection{border:1px dashed var(--space-ink);background:var(--space-tint);padding:1.5rem}.detail-action{border:2px solid var(--space-fill);background:var(--space-fill);color:#fff;min-height:3.25rem;font-family:var(--font-heading);font-size:calc(1.05rem * var(--text-scale));letter-spacing:-.01em;box-shadow:0 10px 28px -14px var(--space-fill);border-radius:.5rem;align-items:center;gap:.6rem;padding-inline:1.5rem;font-weight:700;transition:translate .2s,box-shadow .2s;display:inline-flex}.detail-action:hover{box-shadow:0 16px 34px -14px var(--space-fill);translate:0 -2px}.detail-action.is-secondary{color:var(--color-ink);border-color:var(--space-ink);box-shadow:none;background:0 0}.detail-action:focus-visible{outline:3px solid var(--space-ink);outline-offset:3px}.detail-toc-title{font-size:var(--text-sm);color:var(--color-ink);font-weight:700}.detail-toc ul{flex-wrap:wrap;gap:.4rem;margin-top:.6rem;display:flex}.detail-toc a{border:1px solid var(--projects-rule);min-height:2.5rem;font-size:var(--text-sm);color:var(--color-ink-muted);border-radius:9999px;align-items:center;padding-inline:.9rem;font-weight:600;transition:color .2s,border-color .2s;display:inline-flex}.detail-toc a:hover,.detail-toc a:focus-visible{color:var(--color-ink);border-color:var(--space-ink)}.media-wip{position:relative;overflow:hidden}.media-wip-img{filter:blur(14px)saturate(.9);transform:scale(1.06)}.media-wip-badge{background:var(--color-yellow);max-width:calc(100% - 2rem);color:var(--color-ink-dark);font-family:var(--font-heading);font-size:var(--text-sm);text-align:center;border-radius:9999px;padding:.45rem 1rem;font-weight:700;position:absolute;top:50%;left:50%;translate:-50% -50%}.detail-gaps{border:1px dashed var(--color-yellow);max-width:44rem;font-size:var(--text-sm);color:var(--color-ink);border-radius:.75rem;padding:1rem 1.25rem}.detail-gaps-title{color:var(--color-accent);font-weight:700}.detail-gaps ul{margin-top:.5rem;padding-left:1.1rem;list-style:outside}.detail-gaps li+li{margin-top:.25rem}.detail-human-note{border-left:2px solid var(--space-ink);max-width:56ch;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-muted);padding-left:.85rem;line-height:1.6}.model-viewer{margin-top:3rem}.model-picker{flex-wrap:wrap;justify-content:center;gap:.5rem;margin-bottom:1rem;display:flex}.model-stage{aspect-ratio:4/3;border:1px solid var(--projects-rule);background:radial-gradient(circle at 50% 40%, var(--space-tint), var(--projects-paper) 70%);max-height:78vh;margin-inline:auto;position:relative;overflow:hidden}.model-stage[data-lighting=night]{background:radial-gradient(circle at 50% 35%,#4a5680,#1f2440 75%)}@media (max-width:767px){.model-stage{aspect-ratio:4/5}}.model-poster{object-fit:contain;width:100%;height:100%;transition:opacity .4s;position:absolute;inset:0}.model-poster.is-behind{opacity:0}.model-canvas{cursor:grab;touch-action:pan-y;position:absolute;inset:0}.model-canvas:active{cursor:grabbing}.model-controls{flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:1rem;display:flex}.model-text-button{border:1px solid var(--projects-rule);min-height:2.75rem;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink);border-radius:999px;align-items:center;gap:.45rem;padding-inline:1rem;display:inline-flex}.model-text-button:hover{border-color:var(--space-ink)}.detail-section-title{font-family:var(--font-display);letter-spacing:-.02em;font-size:clamp(1.6rem,3vw,2.25rem);font-weight:700;line-height:1.05}.detail-steps{border-top:1px solid var(--projects-rule);max-width:62ch;margin-top:1.75rem}.detail-steps li{border-bottom:1px solid var(--projects-rule);color:var(--color-ink);align-items:baseline;gap:1rem;padding-block:.9rem;display:flex}.detail-book{background:var(--space-tint);border-bottom:1px solid var(--projects-rule);padding-block:3.5rem 4.5rem}.detail-models,.detail-attachments{padding-block:1rem 3rem}.detail-gallery-section{padding-block:2rem 5rem}.detail-gallery{gap:3rem 2rem;display:grid}.detail-gallery-compact{gap:2rem 1.5rem;margin-top:2rem}@media (min-width:768px){.detail-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-gallery-item[data-size=wide]{grid-column:1/-1}}@media (min-width:1024px){.detail-gallery:not(.detail-gallery-compact){gap:4rem 2.5rem}}.detail-gallery-img{border:1px solid var(--projects-rule);background:var(--projects-paper);width:100%;height:auto;display:block}.detail-gallery-item[data-size=wide] .detail-gallery-img{width:auto;max-width:100%;margin-inline:auto}.detail-next{padding-block:3rem 6rem}.detail-next-link{border-top:1px solid var(--projects-rule);flex-direction:column;gap:.75rem;padding-top:2rem;display:flex}.detail-next-title{font-family:var(--font-display);letter-spacing:-.03em;color:var(--color-ink);align-items:center;gap:1rem;font-size:clamp(2rem,6vw,4.5rem);font-weight:700;line-height:1;display:inline-flex}.detail-next-title svg{width:.7em;height:.7em}.book-shelf{flex-wrap:wrap;justify-content:center;gap:2rem 1.25rem;margin-top:2rem;display:flex}.book-shelf>li{flex:0 calc(50% - .625rem)}.book-shelf>li[data-layout=single]{flex-basis:min(100%,26rem)}@media (min-width:640px){.book-shelf>li{flex-basis:calc(33.3333% - .833333rem)}}@media (min-width:1024px){.book-shelf{gap:2.5rem 2rem}.book-shelf>li{flex-basis:calc(16.6667% - 1.66667rem)}}.book-shelf>li:only-child{flex-basis:min(100%,17rem)}.book-shelf>li:first-child:nth-last-child(2),.book-shelf>li:last-child:nth-child(2){flex-basis:min(50% - .625rem,15rem)}.book-shelf>li[data-layout=single]:only-child{flex-basis:min(100%,30rem)}.detail-book-head{text-align:center}.book-shelf-item{text-align:center;cursor:pointer;width:100%;display:block}.book-shelf-cover{transition:translate .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s;display:block;box-shadow:0 1px #00000026,0 16px 30px -14px #00000080}.book-shelf-item:hover .book-shelf-cover,.book-shelf-item:focus-visible .book-shelf-cover{translate:0 -6px;box-shadow:0 1px #00000026,0 26px 40px -16px #0000008c}.book-dialog{--color-ink:#f6f7fb;--color-ink-muted:#c9cdd8;--projects-rule:#ffffff40;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;color:var(--color-ink);background:0 0;border:0;margin:0;padding:1rem;overflow:auto}.book-dialog::backdrop{background:#08090efb}.book-dialog[open] .book-dialog-inner{animation:.4s cubic-bezier(.2,.7,.2,1) both book-rise}@keyframes book-rise{0%{opacity:0;scale:.96}}.book-dialog-inner{--book-reserve:12.5rem;flex-direction:column;justify-content:center;min-height:100%;display:flex}@media (max-width:767px){.book-dialog-inner{--book-reserve:16rem}}.book-dialog-inner:fullscreen{background:#08090e;padding:1rem;overflow:auto}.book-dialog-bar{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.book-dialog-close{color:#fff;border:1px solid #ffffff59;border-radius:9999px;justify-content:center;align-items:center;min-width:2.75rem;min-height:2.75rem;display:inline-flex}.book-dialog-close:hover{background:var(--color-yellow);border-color:var(--color-yellow);color:var(--color-ink-dark)}.book-stage{perspective:2400px;touch-action:none;border-radius:4px;padding-block:.5rem 1rem}.book-stage[data-zoomed]{height:max(16rem, calc(100dvh - var(--book-reserve)));overscroll-behavior:contain;cursor:grab;overflow:auto}.book-stage[data-zoomed]:active{cursor:grabbing}.book-canvas{min-width:100%}.book-spread{cursor:grab;touch-action:pan-y;-webkit-user-select:none;user-select:none;width:min(100%,60rem);margin-inline:auto;transition:translate .7s cubic-bezier(.2,.7,.2,1);position:relative}.book-spread:active{cursor:grabbing}.book-spread:after{content:"";pointer-events:none;z-index:100;background:linear-gradient(90deg,#0000,#0003,#0000);width:3rem;position:absolute;top:0;bottom:0;left:50%;translate:-50%}.book-leaf{transform-origin:0;width:50%;height:100%;transform-style:preserve-3d;transition:transform .75s cubic-bezier(.3,.6,.2,1);position:absolute;top:0;left:50%}.book-leaf[data-flipped=true]{transform:rotateY(-180deg)}.book-face{backface-visibility:hidden;background:#fbfaf7;justify-content:center;align-items:center;display:flex;position:absolute;inset:0;overflow:hidden;box-shadow:0 18px 40px -18px #0009}.book-face-back{transform:rotateY(180deg)}.book-page-img{object-fit:contain;pointer-events:none;width:100%;height:100%}.book-strip-viewport{touch-action:pan-x}.book-strip-viewport[data-zoomed]{height:max(16rem, calc(100dvh - var(--book-reserve)));overscroll-behavior:contain;touch-action:none;cursor:grab;overflow:auto}.book-zoom-page{background:#fbfaf7;max-width:none;display:block;box-shadow:0 18px 40px -18px #0009}.book-controls{flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem 2rem;margin-top:1.25rem;display:flex}.book-nav{align-items:center;gap:1rem;display:flex}.book-status{text-align:center;justify-items:center;gap:.45rem;min-width:17ch;display:grid}.book-progress{background:#ffffff2e;border-radius:9999px;width:100%;max-width:11rem;height:3px;overflow:hidden}.book-progress span{border-radius:inherit;background:var(--color-yellow);height:100%;transition:width .3s;display:block}.book-wip-stack{padding:.75rem 1.5rem .5rem .5rem;display:grid;position:relative}.book-wip-page{translate:calc(var(--i) * .6rem) calc(var(--i) * -.4rem);rotate:calc(var(--i) * 1.5deg);z-index:calc(3 - var(--i));border-radius:.25rem;grid-area:1/1;overflow:hidden;box-shadow:0 18px 40px -22px #0009}.book-wip-badge{z-index:5;background:var(--color-yellow);color:var(--color-ink-dark);font-family:var(--font-heading);font-size:var(--text-sm);border-radius:9999px;padding:.3rem .8rem;font-weight:700;position:absolute;top:1.5rem;left:1.25rem}.book-strip{scroll-snap-type:x mandatory;scrollbar-width:none;display:flex;overflow-x:auto}.book-strip::-webkit-scrollbar{display:none}.book-strip-page{scroll-snap-align:center;flex:0 0 100%;justify-content:center;padding-inline:.5rem;display:flex}.book-strip-page .book-page-img{width:auto;max-width:100%;max-height:max(16rem, calc(100dvh - var(--book-reserve) - 1rem));background:#fbfaf7;height:auto;box-shadow:0 18px 40px -18px #0009}.book-button{border:1px solid var(--projects-rule);min-width:2.75rem;min-height:2.75rem;color:var(--color-ink);border-radius:9999px;justify-content:center;align-items:center;transition:background-color .2s,border-color .2s,color .2s;display:inline-flex}.book-button:hover:not([aria-disabled=true]){background:var(--color-yellow);border-color:var(--color-yellow);color:var(--color-ink-dark)}.book-button[aria-disabled=true]{opacity:.35;cursor:not-allowed}.lightbox{color:#f3eee8;background:#15120f;border:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;padding:0}.lightbox::backdrop{background:#0009}.lightbox[open]{animation:.25s both lightbox-in}@keyframes lightbox-in{0%{opacity:0}}.lightbox-inner{touch-action:pan-y;grid-template-rows:auto minmax(0,1fr) auto;gap:.75rem;height:100%;padding:1rem;display:grid}@media (min-width:768px){.lightbox-inner{padding:1.5rem 2.5rem}}.lightbox-bar,.lightbox-nav{justify-content:space-between;align-items:center;display:flex}.lightbox-nav{justify-content:center;gap:1rem}.lightbox-figure{flex-direction:column;justify-content:center;align-items:center;gap:1rem;min-height:0;display:flex}.lightbox-image{object-fit:contain;-webkit-user-select:none;user-select:none;width:auto;height:auto;max-height:calc(100dvh - 13rem)}.lightbox-caption{text-align:center;flex-direction:column;align-items:center;gap:.35rem;display:flex}.lightbox-title{font-family:var(--font-sans);font-size:calc(1.15rem * var(--text-scale));font-weight:700}.lightbox-button{color:#f3eee8;border:1px solid #ffffff4d;border-radius:9999px;justify-content:center;align-items:center;min-width:2.75rem;min-height:2.75rem;transition:background-color .2s,border-color .2s,color .2s;display:inline-flex}.lightbox-button:hover{background:var(--color-yellow);border-color:var(--color-yellow);color:var(--color-ink-dark)}}@layer utilities;:root{--projects-header-h:77px;--projects-rule:color-mix(in oklab, var(--color-ink-muted) 22%, transparent);--projects-paper:color-mix(in oklab, var(--color-ink) 4%, var(--color-surface));--work-fill:var(--color-blue-safe);--lab-fill:var(--color-purple);--visual-fill:#8f4526;--work-ink:var(--color-blue-ambient);--lab-ink:var(--color-purple-safe);--visual-ink:#e3a07f}:root[data-theme=light]{--work-ink:var(--color-blue-safe);--lab-ink:var(--color-purple);--visual-ink:#8f4526}@media (min-width:1024px){:root{--projects-header-h:63px}}@media (prefers-reduced-motion:reduce){.work-row,.lab-tile,.lightbox[open],.book-dialog[open] .book-dialog-inner{animation:none}.group:hover .work-row-img,.group:hover .work-card-img,.group:hover .lab-tile-img{scale:none}.book-shelf-item:hover .book-shelf-cover,.detail-action:hover{translate:none}}:root[data-a11y-motion=reduce] :is(.work-row,.lab-tile,.lightbox[open],.book-dialog[open] .book-dialog-inner){animation:none}:root[data-a11y-motion=reduce] :is(.group:hover .work-row-img,.group:hover .work-card-img,.group:hover .lab-tile-img){scale:none}:root[data-a11y-motion=reduce] .book-shelf-item:hover .book-shelf-cover{translate:none}:root[data-a11y-contrast=high]{--projects-rule:#fff;--projects-paper:#000;--work-ink:var(--color-yellow);--lab-ink:var(--color-yellow);--visual-ink:var(--color-yellow);--work-fill:#000;--lab-fill:#000;--visual-fill:#000}:root[data-a11y-contrast=high] .projects-page{--space-tint:#000}:root[data-a11y-contrast=high] .detail-action.is-secondary{color:var(--color-yellow);border-color:var(--color-yellow);background:#000}:root[data-a11y-contrast=high] .detail-action{background:var(--color-yellow);border-color:var(--color-yellow);color:#000;box-shadow:none}:root[data-a11y-motion=reduce] .detail-action:hover{translate:none}:root[data-a11y-contrast=high] :is(.projects-nav-link[aria-current=page],.projects-chip[aria-pressed=true]){background:var(--color-yellow);border-color:var(--color-yellow);color:#000}:root[data-a11y-contrast=high] .projects-nav-link[aria-current=page] .projects-nav-dot,:root[data-a11y-contrast=high] .lightbox{background:#000}@media (forced-colors:active){.projects-nav-link[aria-current=page],.projects-chip[aria-pressed=true]{border:2px solid highlight}.book-spread:after{display:none}}:root:has(.projects-page){scroll-padding-top:calc(var(--projects-header-h) + 1rem)}
