@font-face{font-family:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/public-sans-vietnamese-wght-normal-CtlIRbEm.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/public-sans-latin-ext-wght-normal-MQgHevqp.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/public-sans-latin-wght-normal-DdeTHZLK.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.linen-experience{width:100%}.linen-stage{aspect-ratio:1.19;isolation:isolate;outline:none;width:100%;position:relative}.linen-stage canvas{opacity:0;touch-action:pinch-zoom;border-radius:5px;width:100%;height:100%;transition:opacity 1s cubic-bezier(.22,1,.36,1);display:block}.linen-stage.is-ready canvas{opacity:1}.linen-drag-hint{color:#a4a797;text-align:center;pointer-events:none;-webkit-user-select:none;user-select:none;width:108px;margin:0;font-family:Caveat,cursive;font-size:25px;font-weight:400;line-height:.95;position:absolute;top:45%;left:-3%;transform:rotate(-9deg)}.linen-drag-hint svg{stroke:currentColor;stroke-width:1.15px;stroke-linecap:round;opacity:.65;width:88px;height:12px;margin:4px auto 0;display:block}@media (width<=760px){.linen-drag-hint{width:140px;font-size:23px;top:7%;left:4%;transform:rotate(-7deg)}.linen-hint-break{display:none}.linen-drag-hint svg{width:110px;margin-top:1px}}.linen-stage canvas:focus-visible{outline-offset:-18px;outline:1px solid #999779}.scene-loading{color:#898879;letter-spacing:.015em;place-content:center;margin:0;font-size:12px;display:grid;position:absolute;inset:0}.scene-loading span{display:inline}.linen-controls{z-index:1;justify-content:space-between;align-items:center;gap:20px;width:320px;max-width:calc(100% - 48px);margin:-36px auto 0;display:flex;position:relative}.opening-control{align-items:center;gap:13px;display:flex}.opening-control label{white-space:nowrap;color:#666759;font-size:10px}.opening-control input{appearance:none;cursor:ew-resize;accent-color:#8d9176;background:0 0;width:60px;height:44px;margin:0}.opening-control input::-webkit-slider-runnable-track{background:#d8d9ce;border-radius:3px;height:2px}.opening-control input::-webkit-slider-thumb{appearance:none;background:#fffffa;border-radius:50%;width:10px;height:10px;margin-top:-4px;box-shadow:0 0 0 1px #abaf9c,0 1px 3px #6d755329}.opening-control input::-moz-range-track{background:#d8d9ce;border-radius:3px;height:2px}.opening-control input::-moz-range-thumb{background:#fffffa;border:1px solid #abaf9c;border-radius:50%;width:10px;height:10px}.opening-control input:focus-visible{outline-offset:4px;border-radius:5px;outline:2px solid #737d65}.breeze-button{white-space:nowrap;color:#767a67;background:0 0;border-radius:8px;justify-content:center;align-items:center;gap:7px;height:44px;padding:0 4px;font-size:10px;transition:color .2s,background .2s;display:flex}.breeze-button:hover:not(:disabled){color:#3e4934;background:#e9ecdf80}.breeze-button:active:not(:disabled){transform:translateY(1px)}.breeze-button:disabled{opacity:.45}.linen-instructions{text-align:center;color:#6d7162;margin:12px 0 0;font-size:10px;line-height:1.6}.linen-fallback{background:0 0;position:absolute;inset:12% 15%;-webkit-mask-image:linear-gradient(#0000,#000 10% 90%,#0000);mask-image:linear-gradient(#0000,#000 10% 90%,#0000)}.still-window{background:linear-gradient(130deg,#f8efd0,#d5dfc2 65%,#eff2e1);border:10px ridge #ded9c8;position:absolute;inset:12% 18% 9%;box-shadow:12px 14px 25px #514b3226}.still-window:after{content:"";background:#ded9c8;position:absolute;inset:0 49%;box-shadow:3px 1px 5px #5c63432b}.still-rod{background:linear-gradient(#796d52,#b4a282,#60523d);border-radius:8px;height:5px;position:absolute;top:8%;left:0;right:0;box-shadow:3px 8px 5px #35331f33}.still-curtain{opacity:.88;clip-path:polygon(0 0,100% 0,97% 65%,92% 95%,82% 100%,59% 98%,35% 100%,0 98%);background:repeating-linear-gradient(90deg,#eeeadc,#f9f2df 13%,#b9b3a1 22%,#f4eedf 27%);width:45%;position:absolute;top:10%;bottom:0}.still-curtain--left{left:3%}.still-curtain--right{right:3%;transform:scaleX(-1)}@media (width<=600px){.linen-stage{aspect-ratio:.93}.linen-controls{gap:12px;width:300px;max-width:calc(100% - 48px);margin-top:-40px}.opening-control{gap:9px}.opening-control input{width:57px}.linen-instructions{margin-top:8px}}@media (prefers-reduced-motion:reduce){.linen-stage canvas{transition:none}}.still-window{background:radial-gradient(circle at 72% 25%,#fff8db 0 5%,#0000 22%),linear-gradient(#baddeb,#f5e5c6 70%)}.still-window:before{content:"";clip-path:polygon(0 30%,12% 30%,12% 12%,24% 12%,24% 40%,35% 40%,35% 18%,43% 18%,43% 0,49% 0,49% 18%,56% 18%,56% 47%,69% 47%,69% 25%,82% 25%,82% 43%,100% 43%,100% 100%,0 100%);background:repeating-linear-gradient(90deg,#0000 0 8px,#d1d4c84d 8px 10px),repeating-linear-gradient(0deg,#929ea1 0 7px,#74878d 7px 10px);position:absolute;inset:30% 0 0}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/caveat-latin-400-normal-D6LQsQ_v.woff2)format("woff2"),url(/assets/caveat-latin-400-normal-BzhAQZkN.woff)format("woff")}@font-face{font-family:Pixelify Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/pixelify-sans-latin-400-normal-DLrIX9QE.woff2)format("woff2"),url(/assets/pixelify-sans-latin-400-normal-JapMNN6Z.woff)format("woff")}.loading-screen{z-index:100;background:var(--paper);color:var(--ink);touch-action:none;place-items:center;transition:opacity .5s cubic-bezier(.22,1,.36,1);display:grid;position:fixed;inset:0}.loading-screen.is-leaving{opacity:0;pointer-events:none}.loading-name{aspect-ratio:2;width:min(880px,94vw);max-height:76svh;position:relative}.loading-name canvas{width:100%;height:100%;display:block}.loading-name-fallback{text-align:center;align-content:center;font-family:Pixelify Sans,monospace;font-size:clamp(32px,8vw,94px);line-height:1.05;display:grid;position:absolute;inset:0}.loading-skip{right:max(28px,env(safe-area-inset-right));bottom:max(24px,env(safe-area-inset-bottom));min-height:44px;color:inherit;letter-spacing:.01em;background:0 0;align-items:center;gap:20px;padding:8px 0 8px 12px;font-size:12px;display:flex;position:absolute}.loading-skip span{font-size:19px;transition:transform .2s}.loading-skip:hover span{transform:translate(2px,-2px)}.loading-skip:focus-visible{outline-offset:6px;outline:2px solid}@media (prefers-reduced-motion:reduce){.loading-screen{transition:none}}.story-word--identity{font-weight:inherit;cursor:help}.word-reveal--identity{perspective:1100px}.holo-host{aspect-ratio:1.55;perspective:1100px;-webkit-user-select:none;user-select:none;width:100%}.holo-card{--rx:0deg;--ry:0deg;--fx:50%;--fy:50%;--gx:42%;--gy:35%;--foil:.3;--reveal:0;--flip:0;isolation:isolate;width:100%;height:100%;transform:rotateX(var(--rx)) rotateY(var(--ry));color:#334438;background:linear-gradient(115deg,#e5e9cd,#d8e4cf 40%,#e9dfcd 75%,#dce8dc);border:1px solid #fff9;border-radius:15px;position:relative;overflow:hidden;box-shadow:0 2px 3px #333c2920,0 16px 36px -9px #303d3540,inset 0 0 0 3px #ffffff26}.holo-foil,.holo-lines,.holo-glare{pointer-events:none;position:absolute;inset:0}.holo-foil{background:repeating-linear-gradient(10deg,#ffaaa5 8%,#fff3a1 16%,#caffaa 24%,#a3f4ef 32%,#a5b9ff 40%,#e5a4f6 48%,#ffaaa5 56%) 0 0/380% 380%;background-position:var(--fx) var(--fy);mix-blend-mode:overlay;filter:contrast(2.3)saturate(1.5);opacity:var(--foil)}.holo-lines{mix-blend-mode:overlay;opacity:.24;background:repeating-linear-gradient(96deg,#fff8 0,#0000 2px,#0002 3px,#0000 5px)}.holo-content{justify-content:space-between;align-items:center;gap:14px;display:flex;position:absolute;inset:23px}.holo-text{text-shadow:0 1px #ffffff70;flex-direction:column;justify-content:center;align-self:stretch;min-width:0;display:flex}.holo-name{letter-spacing:-.055em;font-size:35px;font-weight:550;line-height:1.15}.holo-caption{letter-spacing:-.01em;white-space:nowrap;margin-top:8px;font-size:13px}.holo-photo{isolation:isolate;background:#62775c;border-radius:7px;flex:0 0 41%;height:100%;position:relative;overflow:hidden;box-shadow:0 0 0 1px #324b3426,inset 0 1px 3px #0002}.holo-photo img{object-fit:cover;object-position:50% 42%;filter:grayscale()sepia(.35)contrast(1.08);mix-blend-mode:luminosity;width:100%;height:100%;display:block}.holo-photo img.holo-photo-negative{filter:grayscale()invert();opacity:var(--flip);position:absolute;inset:0;-webkit-mask-image:linear-gradient(125deg,#0000 5%,#000 70%);mask-image:linear-gradient(125deg,#0000 5%,#000 70%)}.holo-glare{background:radial-gradient(farthest-corner circle at var(--gx) var(--gy),#fff9,transparent 65%);mix-blend-mode:soft-light;border-radius:inherit;box-shadow:inset 0 1px 1px #fff9,inset 0 -1px 1px #42563826}@media (prefers-reduced-motion:reduce){.holo-card{transform:none}}@media (width<=360px){.holo-content{gap:10px;inset:18px}.holo-name{font-size:30px}.holo-caption{font-size:12px}}[hidden]{display:none!important}.story{color:#72746e;width:400px;margin-top:44px;line-height:1.85}.story h1{letter-spacing:-.025em;color:#3d4438;margin:0 0 24px;font-size:16px;font-weight:550}.story-chapter{margin-top:40px}.chapter-label{letter-spacing:.045em;color:#74796b;margin-bottom:15px;font-size:10px;font-weight:500;line-height:1.5;display:block}.story-chapter p{margin-bottom:20px}.story-word{font:inherit;color:#3e4439;cursor:pointer;background:0 0;border:0;border-radius:0;margin:0;padding:0;font-weight:600;text-decoration:none;transition:color .18s;display:inline;position:relative}.story-word:hover,.story-word[aria-expanded=true]{color:#20271b}.story-word:focus-visible{outline-offset:4px;border-radius:2px;outline:2px solid #8c9b7d}.story-word--photos,.story-word--lyra{cursor:help}.now-dot{background:#839674;border-radius:50%;width:5px;height:5px;margin:0 7px 1px 0;display:inline-block;box-shadow:0 0 0 3px #e6eadf}.text-link{color:#4b5a40;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:8px 0;font-size:12px;text-decoration:none;display:inline-flex}.text-link:hover{text-underline-offset:4px;text-decoration:underline}.story-work-link{margin-top:8px;font-size:12px}.word-reveal{z-index:25;isolation:isolate;transform-origin:50% 100%;width:min(320px,100vw - 32px);animation:.3s cubic-bezier(.2,.8,.2,1) both reveal-in;position:fixed}.word-reveal:after{content:"";z-index:-1;position:absolute;inset:-12px}.word-reveal--photos,.word-reveal--lyra{height:125px;padding-top:5px}.photo-fan{perspective:650px;height:120px;position:relative}.photo-fan figure{width:96px;height:112px;transform:translateX(calc((var(--i) - 1)*72px)) rotate(calc((var(--i) - 1)*8deg));animation:.32s cubic-bezier(.2,.8,.2,1) both photo-unfold;animation-delay:calc(var(--i)*25ms);transform-origin:50% 100%;background:#fffef9;border:1px solid #e2e0d7;border-radius:9px;margin:0;padding:3px;position:absolute;top:3px;left:calc(50% - 48px);box-shadow:0 1px 2px #38312414,0 5px 12px #38312422}.photo-fan img{object-fit:cover;border-radius:5px;width:100%;height:100%;display:block}.photo-fan--lyra img{object-position:50% 8%}.photo-fan--lyra figure:nth-child(2) img{object-position:50% 50%}@keyframes photo-unfold{0%{opacity:0;transform:translateX(calc((var(--i) - 1)*62px)) translateY(6px) rotate(calc((var(--i) - 1)*5deg)) scale(.97)}to{opacity:1;transform:translateX(calc((var(--i) - 1)*72px)) translateY(0) rotate(calc((var(--i) - 1)*8deg)) scale(1)}}@keyframes reveal-in{0%{opacity:0;filter:blur(4px);transform:translateY(6px)scale(.97)}to{opacity:1;filter:blur();transform:translateY(0)scale(1)}}.work-page{width:650px;max-width:100%;min-height:650px;animation:arrive .65s var(--ease) both;margin:68px auto 0}.work-intro{width:400px;max-width:100%;margin:0 auto}.work-intro h1,.project-detail h1{letter-spacing:-.035em;color:#41493b;margin:0 0 16px;font-family:Georgia,serif;font-size:29px;font-weight:400;line-height:1.3}.work-intro p{color:#737869;margin:0;font-size:14px;line-height:1.75}.project-stack{isolation:isolate;height:360px;margin-top:24px;position:relative}.project-card{text-align:left;width:248px;height:192px;transform:translate(var(--x),var(--y)) rotate(var(--r));transition:transform .45s var(--ease),box-shadow .45s var(--ease);z-index:var(--z);background:#edece4;border-radius:7px;padding:0;position:absolute;top:80px;left:calc(50% - 124px);overflow:hidden;box-shadow:0 2px 3px #30322616,0 13px 22px #3032261c,inset 0 0 0 1px #fff7}.project-card--lyra{--x:-154px;--y:35px;--r:-11deg;--z:1}.project-card--legacy{--x:0px;--y:-22px;--r:3deg;--z:3}.project-card:hover,.project-card:focus-visible{transform:translate(var(--x),calc(var(--y) - 20px)) rotate(0deg);z-index:4;box-shadow:0 20px 35px #30322626}.project-card:active{transform:translate(var(--x),calc(var(--y) - 13px)) rotate(0deg)}.project-card-caption{color:#3a4935;background:linear-gradient(#0000,#f5f3e7ee);flex-direction:column;gap:4px;padding:26px 17px 15px;display:flex;position:absolute;bottom:0;left:0;right:0}.project-card-caption b{letter-spacing:-.02em;font-size:14px;font-weight:550}.project-card-caption>span{color:#64705b;font-size:9px}.card-arrow{opacity:0;font-size:15px;transition:opacity .2s;position:absolute;bottom:20px;right:17px}.project-card:hover .card-arrow,.project-card:focus-visible .card-arrow{opacity:1}.project-art{width:100%;height:100%;position:relative;overflow:hidden}.lyra-art{background:#d5dfcc}.lyra-orbit{border:1px solid #a1b49099;border-radius:50%;width:250px;height:250px;position:absolute;top:-100px;left:-80px}.orbit-two{width:210px;height:210px;top:40px;left:70px}.lyra-ticket{color:#4d653e;background:#faf8eb;border-radius:4px;flex-direction:column;justify-content:space-between;width:45%;height:84%;padding:15px;display:flex;position:absolute;top:14%;left:32%;transform:rotate(-12deg);box-shadow:4px 5px 12px #3a4e2f22}.lyra-ticket>span{letter-spacing:1px;font-size:6px;line-height:1.5}.lyra-ticket b{letter-spacing:-3px;font-family:Georgia,serif;font-size:36px;font-weight:400}.lyra-ticket b span{vertical-align:top;letter-spacing:0;font-size:23px}.lyra-ticket i{opacity:.5;background:repeating-linear-gradient(90deg,#4d653e 0 1px,#0000 1px 3px,#4d653e 3px 5px,#0000 5px 7px);height:13px}.legacy-art{background:#b1a691 repeating-linear-gradient(90deg,#fff0 0 3px,#fff1 3px 4px)}.legacy-label{color:#50483a;letter-spacing:-2px;background:#eeeadf;flex-direction:column;justify-content:center;align-items:center;font-family:Georgia,serif;font-size:35px;display:flex;position:absolute;inset:17% 14% 25%;transform:rotate(-4deg);box-shadow:1px 3px 9px #49413026}.legacy-label span{letter-spacing:1.5px;margin-top:9px;font:6px sans-serif}.stack-hint{text-align:center;color:#797e71;margin:0;font-size:10px}.open-source{width:400px;max-width:100%;margin:80px auto 0}.open-source h2{color:#424b39;margin:0 0 12px;font-size:16px;font-weight:500}.open-source p{color:#737b69;font-size:12px;line-height:1.7}.open-source ul{padding:0;list-style:none}.open-source li{padding:12px 0}.open-source a{color:#414f37;justify-content:space-between;font-size:14px;display:flex}.open-source li p{margin:7px 0 0}.project-detail{width:550px;max-width:100%;animation:project-detail-fallback .45s var(--ease) both;margin:auto}.project-detail h1:focus{outline:none}.project-hero{border-radius:7px;height:285px;overflow:hidden;box-shadow:0 4px 13px #343c2910}.project-hero .lyra-ticket{width:28%;height:80%;padding:23px;top:11%;left:37%}.project-hero .lyra-ticket b{font-size:54px}.project-hero .lyra-ticket>span{font-size:9px}.project-hero .legacy-label{font-size:68px}.project-hero .legacy-label span{font-size:9px}.project-card-caption--detail{padding:46px 24px 20px}.project-card-caption--detail b{font-size:18px}.project-card-caption--detail>span{font-size:10px}.project-information{grid-template-columns:minmax(0,1fr) minmax(0,400px) minmax(0,1fr);gap:0;width:550px;max-width:100%;margin:28px auto 0;display:grid}.project-detail-content{width:400px;min-width:0;max-width:100%}.back-to-work{color:#73796d;grid-template-columns:14px auto;place-self:start;align-items:center;gap:6px;min-height:19px;margin:0;padding:0;display:grid}.back-to-work span{line-height:19px}.back-to-work:hover{color:#394333;text-decoration:none}.back-arrow{width:14px;height:14px;transition:transform .22s var(--ease);display:block}.back-to-work:hover .back-arrow,.back-to-work:focus-visible .back-arrow{transform:translate(-2px)}.project-detail-copy{align-items:center;gap:11px;min-width:0;display:flex}.project-index{color:#687060;font-variant-numeric:tabular-nums;letter-spacing:.04em;background:#f0f1eb;border:1px solid #dfe3d8;border-radius:50%;flex:0 0 34px;place-items:center;height:34px;font-size:9px;font-weight:650;display:grid}.project-identity{min-width:0}.project-detail-copy h1{letter-spacing:-.025em;color:#3f473b;margin:0 0 3px;font-family:Public Sans Variable,sans-serif;font-size:15px;font-weight:600;line-height:1.25}.project-category{color:#6a7064;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:10px;line-height:1.4;overflow:hidden}.project-body{color:#565f4c;width:100%;max-width:100%;margin:18px 0 0;font-size:13px;line-height:1.72}.project-notes{color:#666c60;flex-wrap:wrap;gap:6px;margin:0 0 18px;padding:0;font-size:9px;line-height:1.4;list-style:none;display:flex}.project-notes li{background:#eceee8;border-radius:6px;padding:4px 7px;box-shadow:inset 0 0 0 1px #e5e7e0}.project-narrative{margin:0}.project-narrative strong{color:#41493d;font-weight:600}.project-status{color:#68725f;margin-top:14px;font-size:10px;line-height:1.7}.project-action{margin-top:12px}.legacy-gallery{grid-template-columns:repeat(3,1fr);gap:9px;margin:30px 0 12px;display:grid}.legacy-gallery img{border:5px solid #fffff9;width:100%;height:auto;box-shadow:0 3px 10px #41433313}.legacy-gallery img:first-child{transform:rotate(-4deg)}.legacy-gallery img:last-child{transform:rotate(4deg)}html[data-work-project=lyra] #project-lyra>.smooth-surface,html[data-work-project=legacy] #project-legacy>.smooth-surface,html[data-work-project] .project-detail .project-hero>.smooth-surface{view-transition-name:work-cover}.project-detail .back-to-work{view-transition-name:work-back}.project-detail-copy{view-transition-name:work-copy}.project-detail .project-body{view-transition-name:work-body}html[data-work-transition] .project-detail{animation:none}@supports (view-transition-name:work-cover){.project-detail{animation:none}}@keyframes project-detail-fallback{0%{opacity:0;filter:blur(10px);transform:translateY(8px)}to{opacity:1;filter:blur();transform:none}}@keyframes work-fade-out{to{opacity:0}}@keyframes work-fade-in{0%{opacity:0}to{opacity:1}}@keyframes work-detail-resolve{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes work-detail-dissolve{to{opacity:0;transform:translateY(4px)}}html[data-work-transition]{--work-duration:.64s;--work-ease:cubic-bezier(.22,1,.36,1)}html[data-work-transition=close]{--work-duration:.42s;--work-ease:cubic-bezier(.3,.65,.3,1)}html[data-work-transition] .site-header{view-transition-name:work-navigation}html[data-work-transition] .edge-blur--top{view-transition-name:work-top-edge}html[data-work-transition] .edge-blur--bottom{view-transition-name:work-bottom-edge}html[data-work-transition]::view-transition-group(work-navigation){z-index:50;animation:none}html[data-work-transition]::view-transition-group(work-top-edge){z-index:50;animation:none}html[data-work-transition]::view-transition-group(work-bottom-edge){z-index:50;animation:none}html[data-work-transition]::view-transition-old(work-navigation){display:none}html[data-work-transition]::view-transition-old(work-top-edge){display:none}html[data-work-transition]::view-transition-old(work-bottom-edge){display:none}html[data-work-transition]::view-transition-new(work-navigation){animation:none}html[data-work-transition]::view-transition-new(work-top-edge){animation:none}html[data-work-transition]::view-transition-new(work-bottom-edge){animation:none}html[data-work-transition]::view-transition-old(root){mix-blend-mode:normal}html[data-work-transition]::view-transition-new(root){mix-blend-mode:normal}html[data-work-transition]::view-transition-old(work-cover){mix-blend-mode:normal}html[data-work-transition]::view-transition-new(work-cover){mix-blend-mode:normal}html[data-work-transition]::view-transition-group(work-cover){z-index:40;animation-duration:var(--work-duration);animation-timing-function:var(--work-ease)}html[data-work-transition]::view-transition-image-pair(work-cover){isolation:isolate;border-radius:12px;overflow:clip}html[data-work-transition]::view-transition-old(work-cover){object-fit:cover;object-position:center;width:100%;height:100%;overflow:clip}html[data-work-transition]::view-transition-new(work-cover){object-fit:cover;object-position:center;width:100%;height:100%;overflow:clip}html[data-work-transition]::view-transition-old(work-cover){animation:.12s ease-in both work-fade-out}html[data-work-transition]::view-transition-new(work-cover){animation:.16s ease-out 20ms both work-fade-in}html[data-work-transition=close]::view-transition-image-pair(work-cover){overflow:visible}html[data-work-transition=close]::view-transition-old(work-cover){object-fit:contain;overflow:visible}html[data-work-transition=close]::view-transition-new(work-cover){object-fit:contain;overflow:visible}html[data-work-transition]::view-transition-old(root){animation:.16s ease-out both work-fade-out}html[data-work-transition]::view-transition-new(root){animation:.3s ease-out 80ms both work-fade-in}html[data-work-transition=close]::view-transition-new(root){animation:.24s ease-out 40ms both work-fade-in}html[data-work-transition=open]::view-transition-new(work-back){animation:work-detail-resolve .32s .14s var(--work-ease) both}html[data-work-transition=open]::view-transition-new(work-copy){animation:work-detail-resolve .38s .18s var(--work-ease) both}html[data-work-transition=open]::view-transition-new(work-body){animation:work-detail-resolve .4s .22s var(--work-ease) both}html[data-work-transition=close]::view-transition-old(work-back){animation:.14s ease-out both work-detail-dissolve}html[data-work-transition=close]::view-transition-old(work-copy){animation:.14s ease-out both work-detail-dissolve}html[data-work-transition=close]::view-transition-old(work-body){animation:.14s ease-out both work-detail-dissolve}.story-footer{border-top:1px solid #e2e5d9;align-items:center;width:400px;max-width:calc(100% - 48px);margin-top:95px;padding-top:24px}.footer-signoff{color:#656f59;font-size:11px;line-height:1.7;display:block}.footer-small{color:#7c8272;margin-top:6px;font-size:9px;display:block}.footer-signature{letter-spacing:-1.5px;color:#526046;background:0 0;padding:10px 0 10px 15px;font-family:Georgia,serif;font-size:24px;font-style:italic}.footer-signature span{color:#7b876f;margin-left:12px;font:11px Instrument Sans Variable,sans-serif}@media (width<=600px){.story{width:calc(100% - 40px);max-width:360px;font-size:15px}.work-page{min-height:600px;margin-top:45px;padding:0 16px}.work-intro{width:100%;max-width:360px}.work-intro h1{font-size:26px}.project-stack{height:470px;margin-top:34px}.project-card{width:220px;height:174px;left:calc(50% - 110px)}.project-card--lyra{--x:-28px;--y:0px;--r:-8deg;--z:3}.project-card--legacy{--x:28px;--y:130px;--r:7deg;--z:2}.project-card{top:0}.stack-hint{margin-top:12px}.open-source{margin-top:62px}.project-detail{padding:0 7px}.project-hero{height:235px}.project-hero .lyra-ticket{width:43%;padding:17px;left:29%}.project-hero .legacy-label{font-size:52px}.project-card-caption--detail{padding:36px 18px 16px}.project-card-caption--detail b{font-size:16px}.project-information{flex-direction:column;gap:17px;margin-top:22px;display:flex}.project-detail-content{width:100%}.back-to-work{margin-left:-2px}.project-detail-copy h1{font-size:16px}.project-body{margin-top:20px;font-size:14px}.project-notes{margin-bottom:18px}.story-footer{width:calc(100% - 48px);max-width:360px;margin-top:75px}.word-reveal--photos{z-index:30}.nav-button{width:44px;height:44px}}@media (prefers-reduced-motion:reduce){.word-reveal,.photo-fan figure,.work-page,.project-detail{animation:none}.project-card{transition:none}}.word-reveal.is-closing{pointer-events:none;animation:.18s ease-in both reveal-out}@keyframes reveal-out{to{opacity:0;filter:blur(2px);transform:translateY(5px)scale(.97)}}@media (prefers-reduced-motion:reduce){.word-reveal.is-closing{opacity:0;animation:none}}.footer-socials{align-items:center;gap:2px;margin:12px 0 0 -10px;display:flex}.footer-social{color:#73766e;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;padding:0;transition:color .18s,background .18s,transform .18s;display:inline-flex}a.footer-social:hover{color:#343a2e;background:#e9ebe4}a.footer-social:active{transform:scale(.94)}.footer-social svg{width:16px;height:16px}@media (prefers-reduced-motion:reduce){.footer-social{transition:none}}.smooth-surface{border-radius:0;width:100%;height:100%;position:relative;overflow:hidden}.photo-fan figure{box-shadow:none;filter:drop-shadow(0 1px 2px #38312414)drop-shadow(0 5px 12px #38312422);background:0 0;border:0;border-radius:0;padding:0}.smooth-surface.photo-surface{background:#fffef9;border-radius:9px;padding:1px;overflow:hidden}.photo-fan img{border-radius:8px}.question-surface{background:#f0eee4;padding:19px 22px}.project-card{box-shadow:none;filter:drop-shadow(0 2px 3px #30322616)drop-shadow(0 13px 15px #3032261c);background:0 0;border-radius:0;overflow:visible}.project-card:hover,.project-card:focus-visible{box-shadow:none;filter:drop-shadow(0 16px 20px #30322626)}.project-hero{box-shadow:none;filter:drop-shadow(0 4px 9px #343c2910);border-radius:0;overflow:visible}.project-hero--lyra{filter:none;position:relative}.project-hero-edge-blur{z-index:2;pointer-events:none;position:absolute;inset:0;overflow:hidden}.project-hero-edge-blur i{filter:blur(calc(.4px + var(--layer)*.55px));opacity:.72;-webkit-mask-image:linear-gradient(to bottom,#000 0%,transparent calc(7% + var(--layer)*2%),transparent calc(93% - var(--layer)*2%),#000 100%);mask-image:linear-gradient(to bottom,#000 0%,transparent calc(7% + var(--layer)*2%),transparent calc(93% - var(--layer)*2%),#000 100%);-webkit-mask-image:linear-gradient(to bottom,#000 0%,transparent calc(7% + var(--layer)*2%),transparent calc(93% - var(--layer)*2%),#000 100%);background:url(/images/lyra-handheld-hero.png) 50%/100% 100% no-repeat;position:absolute;inset:0;transform:scale(1.008)}.site-footer.story-footer{border-top:0;justify-content:center;padding-top:0}.story-footer .footer-socials{justify-content:center;margin:0 auto}.introduction.story{letter-spacing:-.015em;width:440px;max-width:calc(100% - 32px);font-size:15px;line-height:1.8;animation:none}.story h1{font:inherit;color:inherit;letter-spacing:inherit;margin-bottom:24px;line-height:1.9}.story>p{margin-bottom:22px}.role-picker{color:#424a3a;white-space:nowrap;font-weight:600;transition:color .18s;display:inline-block;position:relative}.role-picker:hover,.role-picker:focus-within{color:#728356}.role-picker>span{background:#e9ece380;border-radius:4px;padding:2px 5px}.role-chevron{margin-left:5px;font-size:12px}.role-picker select{opacity:0;cursor:pointer;width:100%;height:100%;font:inherit;position:absolute;inset:0}.role-picker:focus-within{outline-offset:3px;border-radius:3px;outline:2px solid #8c9b7d}.reveal-backdrop{z-index:24;pointer-events:none;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:.22s ease-out both focus-in;position:fixed;inset:0}.reveal-backdrop.is-closing{animation:.18s ease-in both focus-out}.story-word[aria-expanded=true]{z-index:26}@keyframes focus-in{0%{-webkit-backdrop-filter:blur();backdrop-filter:blur();opacity:0}to{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:1}}@keyframes focus-out{to{-webkit-backdrop-filter:blur();backdrop-filter:blur();opacity:0}}@media (width<=600px){.introduction.story{width:calc(100% - 40px);max-width:400px;font-size:14px}.story h1{line-height:1.9}}@media (prefers-reduced-motion:reduce){.reveal-backdrop{animation:none}.reveal-backdrop.is-closing{opacity:0}}.role-trigger{color:#397532;font:inherit;font-weight:600;line-height:inherit;vertical-align:baseline;background:#e9f2df;border:0;border-radius:999px;padding:1px 8px;transition:color .18s,background .18s;display:inline}.role-trigger:hover,.role-trigger[aria-expanded=true]{color:#285d23;background:#dceccf}.story:has(.story-word:hover,.story-word:focus-visible,.story-word[aria-expanded=true],.role-trigger:hover,.role-trigger:focus-visible,.role-trigger[aria-expanded=true]) :is(.story-word,.role-trigger,strong,b){z-index:26;animation:.48s cubic-bezier(.25,1,.5,1) both story-emphasis-color;position:relative}@keyframes story-emphasis-color{0%{color:#3e4439;text-shadow:0 0 #0000}58%{color:#74ad61;text-shadow:0 0 10px #71ad5f8c}to{color:#4c8b42;text-shadow:0 0 6px #71ad5f59}}@media (prefers-reduced-motion:reduce){.story:has(.story-word:hover,.story-word:focus-visible,.story-word[aria-expanded=true],.role-trigger:hover,.role-trigger:focus-visible,.role-trigger[aria-expanded=true]) :is(.story-word,.role-trigger,strong,b){color:#4c8b42;text-shadow:0 0 5px #71ad5f45;animation:none}}.role-menu{z-index:35;filter:drop-shadow(0 3px 4px #252a2010)drop-shadow(0 12px 20px #252a2014);width:180px;animation:role-menu-in .18s var(--ease) both;transform-origin:50% 0;position:fixed}.role-menu-surface{background:#fcfcf9;padding:5px;box-shadow:inset 0 0 0 1px #e4e5df}.role-menu-label{color:#6a7064;padding:5px 8px 4px;font-size:10px;line-height:1.4;display:block}.role-option{color:#52584a;text-align:left;background:0 0;border-radius:6px;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:8px;font-size:12px;line-height:1.4;display:flex}.role-option:hover,.role-option:focus{color:#30372a;background:#eeefe8;outline:none}.role-option[aria-checked=true]{color:#397532;font-weight:600}.role-check{color:#397532;width:13px;font-size:11px}@keyframes role-menu-in{0%{opacity:0;transform:translateY(-3px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.legacy-art{background:#b9acc4;display:flex}.legacy-art>img{object-fit:cover;object-position:50% 42%;width:33.333%;min-width:0;height:100%;display:block}.photo-fan img{object-position:50% 42%}.legensy-film{background:#141414;border-radius:12px;width:min(820px,100vw - 40px);margin:36px 0;position:relative;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 8px 28px #25251d12}.legensy-film video{aspect-ratio:1600/626;width:100%;height:auto;display:block}.lyra-project-media{width:min(820px,100vw - 40px);margin-top:32px;position:relative;left:50%;transform:translate(-50%)}.lyra-project-image{background:0 0;border-radius:12px;width:100%;margin:0;overflow:hidden}.lyra-project-image img{width:100%;height:auto;display:block}.lyra-project-image--wide{border-radius:0;width:min(520px,100%);margin-inline:auto;position:relative;overflow:visible}.lyra-project-image--wide:after{content:"";z-index:1;pointer-events:none;-webkit-backdrop-filter:blur(7px);height:24%;position:absolute;inset:-2px 0 auto;-webkit-mask-image:linear-gradient(#000 0%,#000c 42%,#0005 72%,#0000 100%);mask-image:linear-gradient(#000 0%,#000c 42%,#0005 72%,#0000 100%)}.lyra-mockup-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;width:min(620px,100%);margin:28px auto 0;display:grid}.lyra-photo-cover{background:#d1d7d4}.lyra-photo-cover img{object-fit:cover;object-position:center;width:100%;height:100%;display:block}.lyra-photo-cover .dream-cover-blur{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0}.lyra-photo-cover.dream-cover:after{-webkit-backdrop-filter:none;backdrop-filter:none}.work-page.work-gallery-page{width:1120px;max-width:100%;min-height:0;margin-top:24px;padding:0}.work-gallery{isolation:isolate;position:relative}.work-gallery-track{overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;gap:24px;padding:24px 32px 32px;scroll-padding-inline:32px;display:flex;overflow-x:auto}.work-gallery-track::-webkit-scrollbar{display:none}.work-cover{text-align:left;scroll-snap-align:start;background:0 0;border-radius:12px;flex:0 0 340px;min-width:0;padding:0;display:block}.work-cover>.smooth-surface{aspect-ratio:.92;height:auto;transition:transform .3s var(--ease);background:#eeeee8}.work-cover .project-art{position:absolute;inset:0}.work-cover-label{min-height:48px;color:var(--ink);justify-content:space-between;align-items:center;gap:16px;padding:12px 0;font-size:13px;font-weight:500;display:flex}.work-cover:hover .work-cover-label{color:#526446}.legacy-art.dream-cover{background:#d4c4ab;display:block}.legacy-art.dream-cover>img{object-fit:cover;object-position:50% 42%;width:100%;height:100%}.dream-cover-blur{pointer-events:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);position:absolute;inset:0;-webkit-mask-image:radial-gradient(at 50% 48%,#0000 48%,#0002 62%,#0008 82%,#000 100%);mask-image:radial-gradient(at 50% 48%,#0000 48%,#0002 62%,#0008 82%,#000 100%)}.dream-cover:after{content:"";pointer-events:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:absolute;inset:0;-webkit-mask-image:radial-gradient(at 50% 48%,#0000 65%,#0001 76%,#0006 90%,#000 108%);mask-image:radial-gradient(at 50% 48%,#0000 65%,#0001 76%,#0006 90%,#000 108%)}.project-hero--legacy>.smooth-surface,.project-hero--islero>.smooth-surface{-webkit-mask-image:linear-gradient(90deg,#0000,#0001 1%,#0005 3%,#000b 5%,#000e 7%,#000 10% 90%,#000e 93%,#000b 95%,#0005 97%,#0001 99%,#0000),linear-gradient(#0000,#0001 1%,#0005 3%,#000b 5%,#000e 7%,#000 10% 90%,#000e 93%,#000b 95%,#0005 97%,#0001 99%,#0000);mask-image:linear-gradient(90deg,#0000,#0001 1%,#0005 3%,#000b 5%,#000e 7%,#000 10% 90%,#000e 93%,#000b 95%,#0005 97%,#0001 99%,#0000),linear-gradient(#0000,#0001 1%,#0005 3%,#000b 5%,#000e 7%,#000 10% 90%,#000e 93%,#000b 95%,#0005 97%,#0001 99%,#0000);-webkit-mask-composite:source-in;mask-composite:intersect}.work-cover:focus-visible{outline-offset:6px}.open-source{margin-top:48px}.open-source h2{margin-bottom:4px}.open-source ul{margin:0}.open-source li:first-child{padding-top:0}.open-source a{font-weight:700;text-decoration:none}.open-source li p{margin-top:2px}#open-source-title{color:#2f6f55;letter-spacing:-.015em;transform-origin:0;width:fit-content;transition:filter .24s ease,transform .24s var(--ease);font-weight:650}@supports ((-webkit-background-clip:text) or (background-clip:text)){#open-source-title{color:#0000;background-image:linear-gradient(105deg,#16735a 0%,#90a328 16%,#e35d35 32%,#287daf 48%,#7a4fd0 64%,#db4f78 80%,#16735a 100%);background-position:0%;background-size:300% 100%;-webkit-background-clip:text;background-clip:text}#open-source-title:hover{filter:saturate(1.55)contrast(1.08)drop-shadow(0 3px 8px #ca744b28);animation:1.25s linear infinite source-title-colors;transform:translateY(-2px)scale(1.015)}}@keyframes source-title-colors{0%{background-position:0%}to{background-position:150%}}@media (prefers-reduced-motion:reduce){#open-source-title:hover{background-position:50%;animation:none;transform:none}}.work-cover .dream-cover-blur,.work-cover .dream-cover:after,.work-gallery .gallery-edge{display:none}.gallery-controls{gap:0;padding:0 28px;display:flex}.gallery-controls button{color:#757970;background:0 0;border-radius:12px;place-items:center;width:36px;height:44px;display:grid;position:relative}.gallery-controls button:before{content:"";z-index:-1;background:#eeefe9;border-radius:10px;position:absolute;inset:8px 4px}.gallery-controls button{isolation:isolate}.gallery-controls button:hover:not(:disabled):before{background:#e2e6db}.gallery-controls button:disabled{color:#c2c5bd}.gallery-edge{z-index:2;pointer-events:none;background:linear-gradient(to right,var(--paper),transparent);width:32px;position:absolute;top:0;bottom:0}.gallery-edge--left{left:0}.gallery-edge--right{right:0;transform:scaleX(-1)}.gallery-edge i{-webkit-backdrop-filter:blur(calc(1px + var(--layer)*2px));backdrop-filter:blur(calc(1px + var(--layer)*2px));-webkit-mask-image:linear-gradient(to right,#000,transparent calc(35% + var(--layer)*20%));mask-image:linear-gradient(to right,#000,transparent calc(35% + var(--layer)*20%));position:absolute;inset:0}@media (width<=760px){.work-page.work-gallery-page{margin-top:32px}.work-gallery-track{gap:16px;padding-inline:24px;scroll-padding-inline:24px}.work-cover{flex-basis:clamp(200px,64vw,260px);max-width:260px}.gallery-controls{padding-inline:16px}.gallery-edge{width:24px}}@media (prefers-reduced-motion:reduce){.work-cover>.smooth-surface,.work-cover-label>span{transition:none}}.role-menu{border-radius:12px;max-height:calc(100dvh - 24px);overflow-y:auto}.word-reveal{z-index:30;max-height:calc(100dvh - 24px)}html[data-work-project=islero] #project-islero>.smooth-surface{view-transition-name:work-cover}.islero-cover{isolation:isolate;background:#e7d69a url(/images/islero/sunset-background-900.webp) 50%/cover no-repeat}.islero-cover-wordmark{width:84%;height:auto;position:absolute;top:12%;left:8%}.islero-cover-island{object-fit:contain;width:92%;height:77%;position:absolute;top:25%;left:4%}.work-cover .islero-cover-wordmark{width:76%;top:12%;left:12%}.work-cover .islero-cover-island{width:100%;height:auto;top:29%;left:0}.islero-cover--detail .islero-cover-wordmark{width:74%;top:10%;left:13%}.islero-cover--detail .islero-cover-island{width:60%;height:95%;top:18%;left:20%}.islero-authorship{margin:14px 0 10px}.islero-site-link{align-items:center;min-height:44px;font-weight:700;display:inline-flex;position:relative}.islero-link-mascot{pointer-events:none;opacity:0;transform-origin:25% 75%;width:80px;max-width:none;height:80px;transition:opacity .18s,transform .35s cubic-bezier(.22,1,.36,1);position:absolute;top:50%;left:100%;transform:translate(-12px,-40%)scale(.65)rotate(-12deg)}.islero-site-link:is(:hover,:focus-visible) .islero-link-mascot{opacity:1;transform:translateY(-50%)scale(1)rotate(6deg)}@media (hover:none){.islero-site-link .islero-link-mascot{opacity:1;transform:translateY(-50%)scale(.85)}}@media (prefers-reduced-motion:reduce){.islero-link-mascot{transition:none;transform:translateY(-50%)}.islero-site-link:is(:hover,:focus-visible) .islero-link-mascot{transform:translateY(-50%)}}.islero-showcase{width:min(680px,100vw - 48px);margin-top:32px;position:relative;left:50%;transform:translate(-50%)}.islero-feature{margin:0 0 38px}.islero-preview-toolbar{color:#59624f;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:11px;display:flex}.islero-preview-switch{background:#e7eae1;border-radius:20px;gap:3px;padding:3px;display:flex}.islero-preview-switch button{color:#59624f;min-width:56px;min-height:36px;font:inherit;background:0 0;border-radius:17px}.islero-preview-switch button[aria-pressed=true]{color:#34432c;background:#fafbf5;box-shadow:0 1px 4px #34432c14}.islero-landing-preview{background:#d7ddbd;border-radius:10px;position:relative;overflow:hidden}.islero-landing-preview img,.islero-archive-preview{width:100%;height:auto;display:block}.islero-night-scene{opacity:0;pointer-events:none;transition:opacity .4s;position:absolute;inset:0}.islero-landing-preview[data-night=true] .islero-night-scene{opacity:1}.islero-night-scene .islero-cabin-lit{position:absolute;inset:0}.islero-landing-preview[data-night=true] .islero-night-scene[data-ready=true] .islero-cabin-lit{animation:1.55s step-end .4s both islero-preview-ignition}@keyframes islero-preview-ignition{0%,8%,19%,33%{opacity:0}9%,18%{opacity:.28}20%,27%{opacity:.72}28%,32%{opacity:.14}34%,43%{opacity:.96}44%,49%{opacity:.42}50%,57%{opacity:.88}58%,63%{opacity:.68}64%,to{opacity:1}}.islero-archive-preview{border-radius:10px}.islero-feature figcaption{width:400px;max-width:100%;margin:18px auto 0}.islero-feature h2{color:#41493d;letter-spacing:-.015em;margin:0 0 6px;font-size:13px;font-weight:600}.islero-feature p{color:#68725f;margin:0}.islero-feature figcaption .text-link{align-items:center;gap:6px;min-height:36px;margin-top:8px;display:inline-flex}@media (width<=600px){.islero-showcase{width:100%;margin-top:28px}.islero-preview-switch button{min-height:44px}.islero-feature h2{font-size:16px}.islero-preview-toolbar{font-size:12px}}@media (prefers-reduced-motion:reduce){.islero-night-scene{transition:none}.islero-landing-preview[data-night=true] .islero-night-scene[data-ready=true] .islero-cabin-lit{animation:none}}:root{color:#484843;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-optical-sizing:auto;--paper:#f8f8f5;--ink:#393b37;--muted:#7b7c75;--ease:cubic-bezier(.22,1,.36,1);background:#f8f8f5;font-family:Public Sans Variable,sans-serif;font-weight:400}.site-contact{z-index:20;color:#6a7064;flex-direction:column;justify-content:center;align-items:flex-start;gap:5px;min-height:44px;font-size:11px;text-decoration:none;transition:color .2s;display:flex;position:fixed;bottom:24px;left:28px}.site-contact:hover{color:#394333}.site-contact:hover>span:last-child{text-underline-offset:4px;text-decoration:underline}@media (width<=760px){.site-contact{overflow-wrap:anywhere;width:fit-content;max-width:100%;margin-bottom:8px;font-size:12px;position:relative;bottom:auto;left:auto}}*{box-sizing:border-box}body{margin:0}button,a,[role=slider]{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible,[role=slider]:focus-visible{outline-offset:5px;outline:2px solid #697664}button{border:0}button svg{flex:none}::selection{background:#d9dfd1}button:disabled{cursor:default}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:30;background:var(--paper);color:var(--ink);padding:12px;position:fixed;top:12px;left:12px;transform:translateY(-160%)}.skip-link:focus{transform:none}.portfolio{--bottom-blur-height:112px;min-height:100svh;position:relative;overflow:clip}.site-header{z-index:20;view-transition-name:site-header;position:fixed;top:27px;left:50%;transform:translate(-50%)}.navigation{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#efefe994;border:1px solid #fffffdbf;border-radius:40px;align-items:center;gap:5px;padding:5px 7px;display:flex;box-shadow:0 2px 6px #48453404,inset 0 1px 1px #fff9}.nav-button{color:#888b83;width:39px;height:39px;transition:background .25s var(--ease),color .25s,box-shadow .25s,transform .25s var(--ease);background:0 0;border-radius:50%;place-items:center;display:grid;position:relative}.nav-button.is-active{color:#353b30;background:#fffffc;box-shadow:0 1px 3px #343a2814,0 0 0 1px #ebede6,0 0 0 4px #fffffc65}.nav-button:hover{color:#343b2f;transform:translateY(-1px)}.nav-button:active{transform:scale(.93)}.nav-button svg{width:16px;height:16px}.profile-button svg{width:20px;height:20px}.profile-button{color:#888b83}.nav-divider{background:#daddd2;width:1px;height:15px;margin:0 2px}.tooltip{opacity:0;pointer-events:none;white-space:nowrap;color:#fffff9;background:#44483e;border-radius:7px;padding:6px 9px;font-size:11px;font-weight:500;transition:opacity .15s,transform .2s;position:absolute;top:calc(100% + 15px);left:50%;transform:translate(-50%,-3px)}.nav-button:hover .tooltip,.nav-button:focus-visible .tooltip{opacity:1;transform:translate(-50%)}html[data-work-transition]::view-transition-group(site-header){z-index:60;animation-duration:.01ms}html[data-work-transition]::view-transition-old(site-header){mix-blend-mode:normal;animation:none}html[data-work-transition]::view-transition-new(site-header){mix-blend-mode:normal;animation:none}.edge-blur{z-index:10;pointer-events:none;isolation:isolate;height:154px;position:fixed;left:0;right:0}.edge-blur--top{background:linear-gradient(var(--paper),#f8f8f500);top:0}.edge-blur--bottom{height:var(--bottom-blur-height);background:linear-gradient(#f8f8f500,var(--paper));bottom:0}.edge-blur i{-webkit-backdrop-filter:blur(calc(1.5px + var(--layer)*1.8px));backdrop-filter:blur(calc(1.5px + var(--layer)*1.8px));-webkit-mask-image:linear-gradient(to top,transparent calc(var(--layer)*12%),#000 calc(22% + var(--layer)*12%));mask-image:linear-gradient(to top,transparent calc(var(--layer)*12%),#000 calc(22% + var(--layer)*12%));position:absolute;inset:0}.edge-blur--bottom i{-webkit-mask-image:linear-gradient(to bottom,transparent calc(var(--layer)*12%),#000 calc(22% + var(--layer)*12%));mask-image:linear-gradient(to bottom,transparent calc(var(--layer)*12%),#000 calc(22% + var(--layer)*12%))}main{width:100%;padding:105px 24px 0}.linen-section{width:700px;max-width:100%;animation:arrive 1.2s var(--ease) both;margin:0 auto}.introduction{letter-spacing:-.015em;width:360px;max-width:100%;animation:arrive 1.2s .12s var(--ease) both;margin:44px auto 0;font-size:15px;line-height:1.7}.introduction p{margin:0 0 21px}.hello{color:#40473b;font-weight:520}.hello-period{color:#859672}.serif-phrase{color:#555d4c;letter-spacing:-.025em;font-family:Georgia,Times New Roman,serif;font-size:18px;font-style:italic}.introduction .intro-note{color:#737b69;margin-top:27px;font-size:13px;line-height:1.7}.site-footer{width:360px;max-width:calc(100% - 48px);padding-bottom:calc(var(--bottom-blur-height) + 12px);color:#737b69;letter-spacing:.01em;justify-content:space-between;align-items:center;margin:88px auto 0;font-size:10px;display:flex}.footer-signature{color:#78806b}.footer-signature span{color:#9aa38b;margin-left:6px;display:inline-block}.site-header .navigation{isolation:isolate;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transition:border-radius .5s var(--ease);background:#edeee7d9;border:0;border-radius:26px 20px 20px 26px;gap:4px;padding:4px;position:relative;box-shadow:0 3px 12px #343a2810}.site-header .navigation[data-view=work]{border-radius:20px 26px 26px 20px}.site-header .nav-button{z-index:1;width:44px;height:44px;transition:color .25s,transform .35s var(--ease);box-shadow:none;background:0 0;border-radius:50%}.site-header .nav-button.is-active{box-shadow:none;color:#353b30;background:0 0}.nav-selection{pointer-events:none;width:44px;height:44px;transition:transform .55s cubic-bezier(.22,1,.36,1),border-radius .55s var(--ease);background:#fffffa;border-radius:50% 42% 42% 50%;position:absolute;top:4px;left:4px;transform:translate(0);box-shadow:0 2px 5px #343a2810}.navigation[data-view=work] .nav-selection{border-radius:42% 50% 50% 42%;transform:translate(48px)}.site-header .nav-button:active{transform:scale(.88)}@keyframes arrive{0%{opacity:0;filter:blur(5px);transform:translateY(10px)}to{opacity:1;filter:blur();transform:translateY(0)}}@media (width>=1500px){main{padding-top:118px}.site-footer{margin-top:88px}}@media (width<=600px){.portfolio{--bottom-blur-height:82px}.site-header{top:20px}.nav-button{width:40px;height:40px}main{padding:98px 8px 0}.introduction{width:calc(100% - 40px);max-width:320px;margin-top:36px;font-size:15px}.site-footer{width:calc(100% - 48px);max-width:320px;margin-top:66px}.edge-blur--top{height:122px}.tooltip{display:none}}@media (width<=350px){.introduction{font-size:14px}.desktop-break{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.site-contact-label{color:#a4a797;font-family:Caveat,cursive;font-size:21px;font-weight:400;line-height:1;text-decoration:none;transform:rotate(-5deg)}@media (width<=760px){.portfolio{--mobile-gutter:clamp(20px, 5.6vw, 32px);--bottom-blur-height:48px}.site-header{top:max(20px, env(safe-area-inset-top))}.nav-button{width:44px;height:44px}.nav-button svg{width:18px;height:18px}.profile-button svg{width:20px;height:20px}.edge-blur--top{height:100px}main{padding:112px 0 0}.linen-section{width:min(100%,560px);margin-top:-18px}.linen-stage{aspect-ratio:1.08}.linen-controls{width:min(440px, calc(100% - 2 * var(--mobile-gutter)));flex-wrap:wrap;gap:8px 16px;max-width:none;margin-top:-16px}.opening-control{gap:10px}.opening-control label,.breeze-button,.linen-instructions{font-size:12px}.opening-control input{width:clamp(48px,14vw,72px)}.linen-instructions{margin:8px var(--mobile-gutter) 0}.introduction.story{width:min(440px, calc(100% - 2 * var(--mobile-gutter)));max-width:none;margin-top:44px;font-size:16px;line-height:1.65}.story h1{line-height:inherit;margin-bottom:28px}.story>p{margin-bottom:24px}.work-page,.work-page.work-gallery-page{width:100%;max-width:100%;min-height:0;margin-top:24px;padding:0}.work-gallery-track{padding:12px var(--mobile-gutter) 16px;scroll-padding-inline:var(--mobile-gutter);gap:16px}.work-page.work-gallery-page{margin-top:8px}.work-cover{flex-basis:min(340px, calc(100vw - 2 * var(--mobile-gutter) - 24px));max-width:none}.work-cover-label{padding-block:14px;font-size:16px}.gallery-controls{padding-inline:calc(var(--mobile-gutter) - 8px)}.gallery-edge{width:var(--mobile-gutter)}.open-source{width:min(440px, calc(100% - 2 * var(--mobile-gutter)));margin-top:32px}.open-source h2{font-size:18px;line-height:1.4}.open-source p,.open-source a{font-size:14px}.open-source a{align-items:center;min-height:28px}.project-detail{width:min(550px,100%);padding:0}.project-hero{aspect-ratio:3/2;width:calc(100% - 32px);height:auto;margin-inline:auto}.project-hero .lyra-ticket{width:32%;padding:16px;left:34%}.project-hero .lyra-ticket b{font-size:clamp(36px,10vw,54px)}.project-card-caption--detail{padding:36px 20px 18px}.project-card-caption--detail b{font-size:20px}.project-card-caption--detail>span{font-size:12px}.project-information{width:calc(100% - 2 * var(--mobile-gutter));flex-direction:column;gap:16px;margin-top:24px;display:flex}.project-detail-content{width:100%}.text-link{min-height:44px;font-size:14px}.back-to-work{margin:0}.project-detail-copy h1{margin-bottom:4px;font-size:20px;line-height:1.3}.project-category{white-space:normal;font-size:14px;overflow:visible}.project-body{margin-top:24px;font-size:16px;line-height:1.6}.project-notes{gap:6px;margin-bottom:24px;font-size:12px}.project-notes li{padding:6px 9px}.project-status{margin-top:20px;font-size:14px}.legacy-gallery{gap:8px;margin-top:32px}.legacy-gallery img{border-width:3px}.legensy-film{width:calc(100% + 2 * var(--mobile-gutter) - 32px);margin-block:32px}.site-footer.story-footer{width:min(440px, calc(100% - 2 * var(--mobile-gutter)));max-width:none;padding-bottom:calc(64px + env(safe-area-inset-bottom));margin-top:64px}.footer-social{width:44px;height:44px}.footer-socials{gap:8px}.role-option{min-height:44px;font-size:14px}}@media (height<=500px){.portfolio{--bottom-blur-height:32px}.site-header{top:max(12px, env(safe-area-inset-top))}.edge-blur--top{height:80px}main{padding-top:96px}.nav-button,.footer-social{width:44px;height:44px}.role-option{min-height:44px;font-size:14px}}
