:root{--paper:#ffffff;--card:#fafafa;--surface:#ffffff;--ink:#111111;--muted:#737373;--line:#e5e5e5;--chip:#f5f5f5;--chip-hover:#ebebeb;--link:#111111;--btn:#171717;--btn-hover:#000000;--on-btn:#ffffff;--edge:#171717;--tint-a:#fde5d8;--tint-b:#d9e9f8;--tint-c:#e5efc0;--spot:rgba(255,255,255,0.9);--doodle:#171717;--c-orange:#c99582;--c-blue:#a8cdf0;--c-green:#c4d76a;--hero-gray:#737373;--app-ai:#ff9a00;--app-ps:#31a8ff;--app-pr:#9999ff;--app-ae:#d291ff;--serif:"Fraunces","Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;--hand:"Caveat Brush","Segoe Print","Bradley Hand","Comic Sans MS",cursive;--pad:clamp(20px,4vw,48px);--maxw:1240px;--ease:cubic-bezier(0.2,0.7,0.2,1);--font:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text",Inter,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;color-scheme:light}*,:after,:before{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(env(safe-area-inset-top, 0px) + 72px);-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font);font-size:1rem;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:clip}body,dd,dl,figure,h1,h2,h3,h4,p{margin:0}a{color:inherit}::selection{background:rgba(238,115,72,.3)}button{font:inherit;color:inherit}img{max-width:100%}:focus-visible{outline:2px solid var(--link);outline-offset:3px;border-radius:6px}.progress{position:fixed;top:0;left:0;right:0;height:2px;background:var(--c-orange);transform:scaleX(0);transform-origin:0 50%;z-index:40;pointer-events:none}.site-header{position:sticky;top:0;z-index:30;padding-top:env(safe-area-inset-top,0);background:color-mix(in srgb,var(--paper) 78%,transparent);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid transparent;transition:border-color .3s}.site-header.scrolled{border-bottom-color:color-mix(in srgb,var(--line) 70%,transparent)}.bar{position:relative;max-width:var(--maxw);margin:0 auto;padding:6px var(--pad);display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{font-family:var(--hand);font-weight:400;font-size:2.15rem;line-height:1;letter-spacing:.01em;white-space:nowrap;text-decoration:none;padding:2px 4px 4px;transition:transform .4s cubic-bezier(.3,1.7,.5,1)}.brand:hover{transform:rotate(-4deg) scale(1.06)}.nav{display:flex;align-items:center;gap:clamp(14px,2.6vw,30px);font-size:.9rem}.nav a{position:relative;text-decoration:none;padding:6px 0;opacity:.85;transition:opacity .2s,color .2s}.nav a:after{content:"";position:absolute;left:0;right:0;bottom:2px;height:2px;border-radius:2px;background:var(--link);transform:scaleX(0);transition:transform .35s var(--ease)}.nav a:hover,.nav a[data-active=true]{opacity:1;color:var(--link)}.nav a[data-active=true]:after{transform:scaleX(1)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 24px;flex:none;white-space:nowrap;border:0;background:var(--chip);color:var(--ink);font-weight:500;font-size:1rem;text-decoration:none;cursor:pointer;transition:background-color .2s,transform .25s var(--ease)}.btn:hover{background:var(--chip-hover)}.btn:active{transform:scale(.97)}.btn-dark,.btn-solid{background:var(--btn);color:var(--on-btn)}.btn-dark:hover,.btn-solid:hover{background:var(--btn-hover);transform:translateY(-1px)}.link{color:var(--link);text-decoration:none;font-size:1.05rem;padding:10px 6px}.link:hover{text-decoration:underline}.round{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;border:0;background:var(--chip);cursor:pointer;transition:background-color .2s,transform .25s var(--ease)}.round:hover{background:var(--chip-hover)}.round:active{transform:scale(.92)}.round svg{width:18px;height:18px}.nav .round{width:40px;height:40px}.js [data-reveal]{opacity:0;transform:translateY(30px);transition:opacity .9s var(--ease) var(--d,0s),transform .9s var(--ease) var(--d,0s)}.js [data-reveal].in{opacity:1;transform:none}.no-reveal [data-reveal]{opacity:1!important;transform:none!important}.hero-stage{--mx:0;--my:0;position:relative;max-width:1440px;min-height:500px;max-height:calc(100svh - 130px);margin:0 auto;aspect-ratio:1440/700}.hero-copy{position:absolute;left:50%;top:52%;z-index:2;width:min(92%,11.2em);font-size:clamp(1.9rem,min(3.4vw,6svh),3.25rem);text-align:center;translate:-50% -50%;transform:translateY(calc(var(--hero-p, 0) * 56px));opacity:calc(1 - var(--hero-p, 0) * .75);will-change:transform,opacity}.hero-title{font-family:var(--serif);font-size:1em;font-weight:500;line-height:1.1;letter-spacing:-.022em;margin-bottom:.9em;text-wrap:balance}.hl-name{color:var(--ink)}.hl-rest{color:var(--hero-gray)}.hero-title .w{overflow:hidden;vertical-align:top;padding:.1em .04em .2em;margin:-.1em -.04em -.2em}.hero-title .w,.hero-title .w>span{display:inline-block}.js .hero-title .w>span{animation:rise 1s cubic-bezier(.2,.75,.2,1) both;animation-delay:calc(var(--i, 0) * 70ms + .15s)}.no-reveal .hero-title .w>span{animation:none}.badge{display:inline-flex;align-items:center;gap:10px;padding:7px 16px;margin-bottom:20px;border-radius:999px;background:var(--chip);font-size:.9rem;font-weight:500}.hero-actions{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px 12px;font-size:1rem}.btn-ghost{background:transparent;box-shadow:inset 0 0 0 1.5px var(--ink)}.btn-ghost:hover{background:var(--chip)}.hero-note{margin-top:14px;font-size:.85rem;color:var(--muted)}.dot{position:relative;flex:none;width:8px;height:8px}.dot,.dot:after{border-radius:50%;background:#30d158}.dot:after{content:"";animation:ping 2.2s cubic-bezier(0,0,.2,1) infinite}.art,.dot:after{position:absolute;inset:0}.art{width:100%;height:100%;overflow:visible;pointer-events:none}.art-narrow{display:none}.art .line{fill:none;stroke:var(--doodle);stroke-width:3.4;stroke-linecap:round;stroke-linejoin:round}.art .fill{stroke:none;translate:5px 4px}.art .f-orange{fill:var(--c-orange)}.art .f-blue{fill:var(--c-blue)}.art .f-green{fill:var(--c-green)}.art .f-ink{fill:var(--doodle);translate:0 0}.art .f-ai{fill:#330000}.art .f-ps{fill:#001e36}.art .f-ae,.art .f-pr{fill:#00005b}.art .f-fr{fill:#f24e1e}.art .f-fs{fill:#ff7262}.art .f-fp{fill:#a259ff}.art .f-fb{fill:#1abcfe}.art .f-fg{fill:#0acf83}.art .f-cl{fill:#d97757}.art .f-gp{fill:#ffffff}.art .f-iguwhite{fill:#fffdfa}.art .f-iguink{fill:#17294f;translate:0 0}.art .fill.tile{translate:3px 3px}.art .letter{stroke-width:5.4}.art .l-ai{stroke:var(--app-ai)}.art .l-ps{stroke:var(--app-ps)}.art .l-pr{stroke:var(--app-pr)}.art .l-ae{stroke:var(--app-ae)}.art .l-cl{stroke:#fff1e6;stroke-width:4.6}.art .l-gp{stroke:#f4fffb;stroke-width:4.2}.art .l-igu{stroke:#17294f}.art .l-igu.thin{stroke-width:2.2}.art .l-igu.feather{stroke-width:4.2}.art .dot,.art .ground{fill:var(--doodle)}.art .hit{fill:transparent;pointer-events:all}.igu-card{position:absolute;left:0;top:0;z-index:6;min-width:230px;max-width:300px;padding:12px 18px 13px;background:var(--surface);border:1.5px solid var(--edge);border-radius:16px;box-shadow:4px 4px 0 var(--edge);pointer-events:none;opacity:0;transform:translateY(8px) scale(.9) rotate(-3deg);transition:opacity .2s,transform .4s cubic-bezier(.3,1.7,.5,1)}.igu-card[data-open=true]{opacity:1;transform:rotate(-1.5deg)}.igu-card strong{display:block;font-family:var(--serif);font-size:1.08rem;font-weight:500;line-height:1.2;letter-spacing:-.01em}.igu-card span{display:block;margin-top:3px;font-size:.85rem;color:var(--muted)}.art g.a-sip{transform-box:view-box;transform-origin:0 0;animation:sip 6s ease-in-out infinite}.art .steamwrap{animation:steamwrap 6s ease-in-out infinite}.art .a-type{animation:type .9s ease-in-out infinite alternate}.art .trail{fill:none;stroke:var(--doodle);stroke-width:2.6;stroke-linecap:round;stroke-dasharray:2 9;opacity:.5}.js .art .belt-trail{opacity:0;animation:fade-in-half 1.2s ease .4s forwards}.art .steam{fill:none;stroke:var(--doodle);stroke-width:3;stroke-linecap:round;opacity:0;animation:steam 3.2s ease-in-out infinite}.art .steam:nth-of-type(2){animation-delay:.7s}.art .steam:nth-of-type(3){animation-delay:1.4s}.art.dd{position:relative;inset:auto;display:block;flex:none;width:var(--w,2rem);height:auto;overflow:visible}.art.dd.float{animation:bob var(--dur,6s) ease-in-out infinite alternate}.art.dd .trail{fill:none;stroke:var(--doodle);stroke-width:2.6;stroke-linecap:round;stroke-dasharray:2 8;opacity:.7}.js .art.dd .draw{animation-play-state:paused}.js .art.dd.in .draw,.js .in .art.dd .draw{animation-play-state:running}.art .par{transform:translate(calc(var(--mx, 0) * var(--k, 1) * 16px),calc(var(--my, 0) * var(--k, 1) * 11px));transition:transform .7s cubic-bezier(.2,.7,.2,1)}.art .pop{transform-box:fill-box;transform-origin:center;transition:transform .5s cubic-bezier(.3,1.7,.5,1)}@media (hover:hover){.art .pop:hover{transform:scale(1.35) rotate(12deg)}}.art [class^=a-]{transform-box:fill-box;transform-origin:center}.art .a-bob{animation:bob var(--dur,7s) ease-in-out var(--dl,0s) infinite alternate}.art .a-sway{animation:sway var(--dur,8s) ease-in-out var(--dl,0s) infinite alternate}.art .a-twinkle{animation:twinkle var(--dur,3s) ease-in-out var(--dl,0s) infinite alternate}.art .a-spin{animation:spin var(--dur,16s) linear infinite}.art .a-cursor{animation:cursor var(--dur,5s) ease-in-out var(--dl,0s) infinite alternate}.art .a-nod{transform-origin:50% 100%;animation:nod 5.5s ease-in-out infinite alternate}.art .a-nod-body{animation:nod-body 5.5s ease-in-out infinite alternate}.art .a-breathe{transform-origin:50% 100%;animation:breathe 3.6s ease-in-out infinite alternate}.art .a-tail{transform-origin:100% 100%;animation:tail 2.8s ease-in-out infinite alternate}.art .a-cat-head{transform-origin:20% 100%;animation:nod 4.6s ease-in-out infinite alternate}.art .zzz path{animation:zzz 3.6s ease-in-out infinite;opacity:0}.art .zzz path:nth-child(2){animation-delay:.9s}.art .zzz path:nth-child(3){animation-delay:1.8s}.js .art .draw{stroke-dasharray:1 2;stroke-dashoffset:1;animation:draw 1.5s cubic-bezier(.4,0,.2,1) forwards;animation-delay:var(--s,0s)}.js .art .dot,.js .art .fill{opacity:0;animation:fade-in .7s ease forwards;animation-delay:calc(var(--s, 0s) + .9s)}.js .art .ground{transform-box:fill-box;transform-origin:0 50%;animation:grow 1.4s cubic-bezier(.4,0,.2,1) both}.no-reveal .art .dot,.no-reveal .art .draw,.no-reveal .art .fill,.no-reveal .art .ground{animation:none;stroke-dashoffset:0;opacity:1}.marquee{--h:clamp(260px,46vh,480px);margin-top:clamp(10px,1.6vw,24px);overflow:hidden;padding:14px 0 22px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}.marquee-track{display:flex;gap:14px;width:max-content;padding-right:14px;animation:marquee 80s linear infinite}.marquee:focus-within .marquee-track,.marquee:hover .marquee-track{animation-play-state:paused}.marquee figure{flex:none;height:var(--h);transition:transform .6s cubic-bezier(.3,1.5,.5,1)}.marquee figure:nth-child(odd){transform:rotate(-1.4deg)}.marquee figure:nth-child(2n){transform:rotate(1.2deg) translateY(6px)}@media (hover:hover){.marquee figure:hover{transform:rotate(0deg) scale(1.03)}}.marquee .work-btn{height:100%;border-radius:22px}.marquee img{height:100%;width:auto}.work-btn{display:block;width:100%;padding:0;border:0;background:var(--chip);overflow:hidden;cursor:zoom-in}.work-btn img{display:block;transition:transform .9s var(--ease)}@media (hover:hover){.work-btn:hover img{transform:scale(1.045)}}h2{font-family:var(--serif);font-size:clamp(2.1rem,4.4vw,3.5rem);line-height:1.08;letter-spacing:-.025em;font-weight:500}.soft{color:var(--hero-gray)}.mark-wrap{position:relative;display:inline-block}.art.dd.mark{position:absolute;left:-2%;bottom:-.2em;width:104%;height:.3em}.art.dd.mark .line{stroke:var(--c-orange);stroke-width:5}.meta{font-size:.85rem;color:var(--muted)}.about{max-width:var(--maxw);margin:0 auto;padding:clamp(72px,10vw,140px) var(--pad)}.about-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,9fr);gap:clamp(20px,3vw,48px)}.avatar-wrap{position:relative;margin:28px 0 0 14px}.avatar,.avatar-wrap{width:96px;height:96px}.avatar{border-radius:50%;display:block;animation:float 6s ease-in-out infinite}.art.dd.avatar-ring{position:absolute;left:50%;top:50%;width:128px;height:128px;translate:-50% -50%}.art.dd.avatar-spark{position:absolute;right:-18px;top:-14px}.lead{font-family:var(--serif);font-size:clamp(1.4rem,2.5vw,2.05rem);line-height:1.3;letter-spacing:-.015em;font-weight:500;max-width:34em;margin-bottom:clamp(28px,4vw,52px)}.lead-strong{color:var(--ink)}.lead-rest{color:var(--hero-gray)}.facts{max-width:760px}.facts>div{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,3fr);gap:8px 24px;padding:20px 0 18px}.facts>div:before{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:var(--line);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 6' preserveAspectRatio='none'%3E%3Cpath d='M1 3.4C60 2 110 4.4 180 3C250 1.7 300 4.2 370 3.2C440 2.2 500 4.3 599 2.6' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") 0 0 /100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 6' preserveAspectRatio='none'%3E%3Cpath d='M1 3.4C60 2 110 4.4 180 3C250 1.7 300 4.2 370 3.2C440 2.2 500 4.3 599 2.6' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") 0 0 /100% 100% no-repeat}.facts .chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:0}.facts .chips span{display:inline-block;padding:6px 14px;border-radius:999px;background:var(--chip);color:var(--ink);font-size:.9rem;line-height:1.3;transition:transform .4s cubic-bezier(.3,1.7,.5,1),background-color .2s}@media (hover:hover){.facts .chips span:hover{background:var(--chip-hover);transform:translateY(-2px) rotate(-2deg)}}.facts dt{font-weight:600;grid-column:1;grid-row:1}.facts dd{color:var(--muted);grid-column:2}.facts dd+dd{margin-top:6px}.facts dd strong{color:var(--ink);font-weight:600}.projects{max-width:var(--maxw);margin:0 auto;padding:clamp(72px,10vw,140px) var(--pad) clamp(56px,8vw,110px)}.projects-head{max-width:640px;margin:0 auto clamp(36px,5vw,64px);text-align:center}.projects-head p{margin-top:24px;color:var(--muted);font-size:clamp(1rem,1.4vw,1.15rem);line-height:1.5}.project-grid{display:grid;grid-template-columns:minmax(0,820px);justify-content:center;gap:clamp(20px,2.6vw,36px)}.project-card{position:relative;display:flex;flex-direction:column;padding:14px 14px 18px;background:var(--surface);border:1.5px solid color-mix(in srgb,var(--line) 80%,transparent);border-radius:30px;box-shadow:0 30px 60px -38px rgba(42,27,20,.35);color:inherit;text-decoration:none;transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .3s}@media (hover:hover){.project-card:hover{transform:translateY(-6px);border-color:var(--edge);box-shadow:0 40px 70px -36px rgba(42,27,20,.45)}}.pc-top{display:flex;gap:12px;padding:6px 8px 14px}.pc-mark{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:var(--tint);color:var(--ink);font-size:.85rem;font-weight:700;letter-spacing:.02em;box-shadow:0 0 0 1.5px var(--line),0 8px 16px -8px rgba(42,27,20,.3)}.pc-name{font-weight:600;font-size:.98rem}.pc-tags{gap:6px}.pc-tags span{padding:4px 11px;border-radius:999px;background:var(--chip);font-size:.78rem;font-weight:600}.pc-cover{aspect-ratio:16/10;border-radius:20px;background:var(--tint)}.pc-cover img{transition:transform .9s var(--ease)}@media (hover:hover){.project-card:hover .pc-cover img{transform:scale(1.04)}}.pc-body{display:block;padding:22px 10px 4px}.pc-body h3{font-family:var(--serif);font-size:clamp(1.4rem,2.1vw,1.75rem);font-weight:500;line-height:1.18;letter-spacing:-.02em}.pc-text{display:block;margin-top:12px;line-height:1.55}.pc-meta,.pc-text{color:var(--muted)}.pc-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:20px;padding:0 10px;font-size:.9rem}.pc-go{display:grid;place-items:center;border-radius:50%;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink);transition:background-color .3s,color .3s,transform .5s cubic-bezier(.3,1.7,.5,1)}.pc-go svg{width:18px;height:18px}@media (hover:hover){.project-card:hover .pc-go{background:var(--c-orange);box-shadow:inset 0 0 0 1.5px #2a1b14;color:#2a1b14;transform:rotate(-35deg)}}.label{font-size:.78rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.zoom{padding:0;border:0;background:none;overflow:hidden;cursor:zoom-in}.zoom,.zoom img{display:block;width:100%}.zoom img{height:auto;transition:transform .9s var(--ease)}@media (hover:hover){.zoom:hover img{transform:scale(1.025)}}.case-layout{max-width:1440px;margin:0 auto;padding:0 var(--pad);display:grid;grid-template-columns:200px minmax(0,1fr);gap:clamp(24px,4vw,64px)}.case-side{position:sticky;top:calc(env(safe-area-inset-top, 0px) + 72px);align-self:start;padding-top:40px}.case-back{display:inline-flex;align-items:center;gap:8px;font-weight:500;text-decoration:none}.case-back svg{width:18px;height:18px;transition:transform .4s var(--ease)}.case-back:hover svg{transform:translateX(-4px)}.case-nav ul{display:grid;gap:2px;margin:28px 0 0;padding:0;list-style:none}.case-nav li a{position:relative;display:block;padding:7px 0;color:var(--muted);font-size:1.02rem;text-decoration:none;transition:color .25s,transform .35s var(--ease)}.case-nav li a:before{content:"";position:absolute;left:-16px;top:50%;width:7px;height:7px;margin-top:-3.5px;border-radius:50%;background:var(--c-orange);transform:scale(0);transition:transform .4s cubic-bezier(.3,1.7,.5,1)}.case-nav li a:hover{color:var(--ink)}.case-nav li a[data-active=true]{color:var(--ink);font-weight:600;transform:translateX(4px)}.case-nav li a[data-active=true]:before{transform:scale(1)}.case-main{width:100%;max-width:1040px;margin:0 auto;padding-bottom:clamp(40px,6vw,80px)}.case-hero{padding:clamp(28px,5vw,64px) 0 clamp(8px,2vw,24px)}.case-title{max-width:17em;margin:14px 0 18px;font-family:var(--serif);font-size:clamp(2.1rem,4.6vw,3.6rem);font-weight:500;line-height:1.1;letter-spacing:-.025em;text-wrap:balance}.case-lead{max-width:40em;color:var(--muted);font-size:clamp(1.05rem,1.6vw,1.25rem);line-height:1.5}.case-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:20px 28px;margin:34px 0 0;padding:22px 0;border-top:1.5px solid var(--line);border-bottom:1.5px solid var(--line)}.case-meta dt{margin-bottom:4px;color:var(--muted);font-size:.76rem;letter-spacing:.12em;text-transform:uppercase}.case-meta dd{font-weight:500}.case-live{margin-top:26px}.case-cover{margin-top:clamp(28px,4vw,48px);overflow:hidden;border-radius:28px;background:var(--tint,var(--card))}.case-section{padding-top:clamp(48px,7vw,100px)}.blk+.blk{margin-top:clamp(40px,5.5vw,72px)}.blk-title{max-width:20em;margin-top:14px;font-size:clamp(1.8rem,3.4vw,2.7rem);line-height:1.15;letter-spacing:-.022em;text-wrap:balance}.blk-sub{margin-top:12px}.blk-sub,.intro-text{color:var(--muted);font-size:1.05rem}.intro-text{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:20px 48px;margin-top:28px;line-height:1.65}.intro-text strong,.split p strong{color:var(--ink);font-weight:600}.c-grid,.f-images,.picker-cards,.t-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:34px}.c-card{display:flex;flex-direction:column;overflow:hidden;background:var(--surface);border:1.5px solid var(--line);border-radius:26px;transition:transform .45s var(--ease),box-shadow .45s var(--ease)}@media (hover:hover){.c-card:hover{transform:translateY(-4px);box-shadow:0 26px 50px -34px rgba(42,27,20,.45)}}.c-card .zoom{background:var(--card)}.c-card h3{margin:20px 22px 8px;font-size:1.15rem;font-weight:600;text-align:center}.c-card p{padding:0 22px 26px;color:var(--muted);font-size:.97rem;line-height:1.55;text-align:center}.f-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:28px}.f-icon{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:var(--tint-a)}.f-item:nth-child(2) .f-icon{background:var(--tint-b)}.f-item:nth-child(3) .f-icon{background:var(--tint-c)}.f-item h3{margin:16px 0 8px;font-size:1.2rem;font-weight:600}.f-item p{color:var(--muted);line-height:1.6}.f-images{margin-top:44px}.f-images .zoom,.figure .zoom{border:1.5px solid var(--line);border-radius:26px;background:var(--card)}.picker-head{text-align:center}.picker-head .blk-title{margin-inline:auto}.picker-card{display:flex;flex-direction:column;align-items:center;padding:0 0 26px;overflow:hidden;background:var(--surface);border:1.5px solid var(--line);border-radius:26px;color:inherit;font:inherit;text-align:center;cursor:pointer;transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .3s}.picker-card:hover{transform:translateY(-4px)}.picker-card[aria-pressed=true]{border-color:var(--edge);box-shadow:5px 5px 0 var(--edge)}.picker-media{display:block;width:100%;aspect-ratio:4/3;overflow:hidden;background:var(--card)}.picker-media img{display:block;width:100%;height:100%;object-fit:cover}.picker-card strong{margin:20px 18px 6px;font-size:1.15rem}.picker-text{padding:0 22px;color:var(--muted);font-size:.95rem;line-height:1.5}.picker-preview{margin:28px 0 0;overflow:hidden;border:1.5px solid var(--line);border-radius:28px;background:var(--card);animation:picker-in .55s var(--ease)}.picker-preview figcaption{padding:12px 0 14px;text-align:center}.split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:20px clamp(24px,5vw,80px);align-items:start}.split h3{max-width:12em;font-size:clamp(1.3rem,2vw,1.6rem);font-weight:600;line-height:1.25}.split p{color:var(--muted);font-size:1.05rem;line-height:1.65}.figure{margin-inline:0}.figure figcaption{margin-top:12px;text-align:center}.t-grid{counter-reset:takeaway}.t-item{padding:26px;background:var(--card);border:1.5px solid color-mix(in srgb,var(--line) 80%,transparent);border-radius:24px}.t-item:before{counter-increment:takeaway;content:counter(takeaway);display:grid;place-items:center;width:38px;height:38px;margin-bottom:16px;border-radius:50%;background:var(--c-orange);color:#2a1b14;font-weight:700}.t-item h3{margin-bottom:8px;font-size:1.15rem;font-weight:600;line-height:1.3}.t-item p{color:var(--muted);line-height:1.6}.case-end{display:flex;flex-direction:column;align-items:center;gap:14px;padding-top:clamp(56px,8vw,110px);text-align:center;color:var(--muted)}@keyframes picker-in{0%{opacity:0;transform:translateY(16px)}}.about-page{position:relative}.page-title{font-family:var(--serif);font-size:clamp(2.1rem,4.4vw,3.5rem);font-weight:500;line-height:1.08;letter-spacing:-.025em}.about-end{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad) clamp(56px,8vw,110px);display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:28px 48px}.art.dd.art-scene{height:auto}.about-cta{max-width:28em;color:var(--muted)}.about-cta div{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.contact{position:relative;padding:clamp(88px,11vw,170px) var(--pad) clamp(70px,9vw,120px);text-align:center}.contact:before,.site-footer:before{content:"";position:absolute;left:max(var(--pad),calc((100% - var(--maxw)) / 2 + var(--pad)));right:max(var(--pad),calc((100% - var(--maxw)) / 2 + var(--pad)));top:0;height:6px;background:var(--line);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 6' preserveAspectRatio='none'%3E%3Cpath d='M1 3.4C60 2 110 4.4 180 3C250 1.7 300 4.2 370 3.2C440 2.2 500 4.3 599 2.6' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") 0 0 /100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 6' preserveAspectRatio='none'%3E%3Cpath d='M1 3.4C60 2 110 4.4 180 3C250 1.7 300 4.2 370 3.2C440 2.2 500 4.3 599 2.6' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") 0 0 /100% 100% no-repeat}.contact-inner{position:relative;max-width:820px;margin:0 auto}.contact h2{margin:16px auto 18px;font-size:clamp(2.2rem,5.2vw,4.1rem);line-height:1.08;text-wrap:balance}.contact .sub{max-width:34em;margin:0 auto;color:var(--muted);font-size:1.1rem}.contact-mail{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px;margin-top:34px}.mail{display:inline-block;padding:14px 26px;border-radius:999px;box-shadow:inset 0 0 0 1.5px var(--ink);font-size:clamp(1.05rem,2.4vw,1.5rem);font-weight:600;letter-spacing:-.01em;text-decoration:none;overflow-wrap:anywhere;transition:background-color .3s,color .3s,transform .4s var(--ease)}.mail:hover{background:var(--ink);color:var(--paper);transform:translateY(-2px)}.copy .check{width:18px;height:18px}.copy .check path{stroke-dasharray:24;stroke-dashoffset:24;animation:draw .4s ease forwards}.copy-msg{flex-basis:100%;min-height:1.3em;color:var(--muted);font-size:.9rem}.contact-links{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 28px;margin:18px 0 0;padding:0;list-style:none}.contact-links a{position:relative;display:inline-flex;align-items:center;gap:5px;padding:4px 0;font-weight:500;text-decoration:none}.contact-links svg{width:16px;height:16px;transition:transform .4s cubic-bezier(.3,1.7,.5,1)}.contact-links a:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;border-radius:2px;background:var(--c-orange);transform:scaleX(0);transform-origin:0 50%;transition:transform .4s var(--ease)}.contact-links a:hover:after{transform:scaleX(1)}.contact-links a:hover svg{transform:translate(2px,-2px)}.art.dd.c-plane{left:-4%;top:-3%;width:clamp(110px,14vw,170px)}.art.dd.c-plane,.art.dd.c-spark{position:absolute;height:auto}.art.dd.c-spark-a{right:3%;top:4%;width:2.2rem}.art.dd.c-spark-b{right:-2%;top:46%;width:1.7rem}.site-footer{position:relative;padding:22px var(--pad) calc(26px + env(safe-area-inset-bottom, 0px))}.footer-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px 24px;max-width:calc(var(--maxw) - 2 * var(--pad));margin:0 auto;padding-top:16px;color:var(--muted);font-size:.9rem}.footer-sign{display:flex;align-items:baseline;gap:14px}.footer-hand{color:var(--ink);font-family:var(--hand);font-size:2rem;line-height:1;text-decoration:none;transition:transform .4s cubic-bezier(.3,1.7,.5,1)}.footer-hand:hover{display:inline-block;transform:rotate(-5deg) scale(1.06)}.footer-nav{display:flex;gap:24px;justify-content:center}.footer-nav a,.to-top{position:relative;color:var(--ink);text-decoration:none}.footer-nav a:after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;border-radius:2px;background:var(--c-orange);transform:scaleX(0);transform-origin:0 50%;transition:transform .4s var(--ease)}.footer-nav a:hover:after{transform:scaleX(1)}.footer-end{display:flex;align-items:center;justify-content:flex-end;gap:8px 24px}.footer-made{display:inline-flex;align-items:center;gap:8px}.art.dd.footer-heart{width:1.05rem;height:auto}.to-top{display:inline-flex;align-items:center;gap:8px;font-weight:500}.to-top svg{width:18px;height:18px;transition:transform .45s cubic-bezier(.3,1.7,.5,1)}.to-top:hover svg{transform:translateY(-4px)}@media (max-width:1100px){html{scroll-padding-top:calc(env(safe-area-inset-top, 0px) + 112px)}.case-layout{grid-template-columns:minmax(0,1fr);gap:0}.case-side{min-width:0;position:sticky;top:calc(env(safe-area-inset-top, 0px) + 76px);z-index:15;margin:0 calc(var(--pad) * -1);padding:0;background:color-mix(in srgb,var(--paper) 88%,transparent);-webkit-backdrop-filter:saturate(180%) blur(16px);backdrop-filter:saturate(180%) blur(16px);border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent)}.case-nav{display:flex;align-items:center;gap:14px;padding:10px var(--pad);overflow-x:auto;scrollbar-width:none}.case-nav::-webkit-scrollbar{display:none}.case-back{flex:none}.case-nav ul{display:flex;gap:6px;margin:0}.case-nav li a{padding:8px 14px;border-radius:999px;background:var(--chip);font-size:.92rem;white-space:nowrap}.case-nav li a:before{display:none}.case-nav li a[data-active=true]{background:var(--btn);color:var(--on-btn);transform:none}}@media (max-width:800px){.c-grid,.f-grid,.f-images,.footer-row,.picker-cards,.split,.t-grid{grid-template-columns:1fr}.footer-row{justify-items:center;text-align:center}.footer-sign{flex-direction:column;align-items:center;gap:2px}.footer-end{justify-content:center;flex-wrap:wrap}.about-end{flex-direction:column;align-items:flex-start}}@media (max-width:520px){.art.dd.c-plane{left:0;top:-8%;width:96px}.art.dd.c-spark-b,.pc-tags{display:none}.nav{gap:12px;font-size:.86rem}}.lightbox{border:0;padding:0;background:var(--surface);color:var(--ink);width:min(1180px,94vw);max-width:none;max-height:92vh;border-radius:26px;overflow:hidden}.lightbox::backdrop{background:rgba(0,0,0,.6);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.lightbox[open]{animation:pop .3s var(--ease)}.lightbox[open]::backdrop{animation:fade .3s ease-out}.lb-body{display:grid;grid-template-columns:minmax(0,1fr) 320px;max-height:92vh}.lb-img{background:var(--card);display:flex;align-items:center;justify-content:center;padding:16px;overflow:hidden;touch-action:pan-y}.lb-img img{display:block;max-width:100%;max-height:calc(92vh - 32px);width:auto;height:auto;border-radius:14px;user-select:none}.lb-img img.from-right{animation:slide-from-right .4s var(--ease)}.lb-img img.from-left{animation:slide-from-left .4s var(--ease)}.lb-info{padding:28px 24px 24px;display:flex;flex-direction:column;gap:12px;overflow:auto}.lb-info h3{font-family:var(--serif);font-size:1.6rem;line-height:1.15;letter-spacing:-.02em;font-weight:500}.lb-count{font-size:.85rem;color:var(--muted)}.lb-nav{display:flex;gap:8px;margin-top:auto;padding-top:12px}.lb-close{position:absolute;top:10px;right:10px;z-index:2;width:44px;height:44px;border-radius:50%;border:0;background:var(--chip);color:var(--ink);display:grid;place-items:center;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:background-color .2s,transform .25s var(--ease)}.lb-close:hover{background:var(--chip-hover);transform:rotate(90deg)}.lb-close svg{width:18px;height:18px}@keyframes steamwrap{0%,45%{opacity:1}55%,88%{opacity:0}to{opacity:1}}@keyframes sip{0%,45%{transform:none}62%,80%{transform:rotate(52deg)}to{transform:none}}@keyframes type{to{transform:translateY(2.5px)}}@keyframes fade-in-half{to{opacity:.5}}@keyframes steam{0%{opacity:0;transform:translateY(8px)}35%,60%{opacity:.9}to{opacity:0;transform:translateY(-14px)}}@keyframes fade-in{to{opacity:1}}@keyframes grow{0%{transform:scaleX(0)}}@keyframes bob{to{transform:translateY(-10px) rotate(var(--rot,4deg))}}@keyframes sway{0%{transform:translateX(-7px) rotate(-3deg)}to{transform:translateX(7px) rotate(3deg)}}@keyframes twinkle{to{transform:scale(.7) rotate(24deg);opacity:.75}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes cursor{to{transform:translate(12px,14px) rotate(6deg) scale(.94)}}@keyframes nod{0%{transform:rotate(-1.8deg)}to{transform:rotate(1.4deg)}}@keyframes nod-body{to{transform:translateY(1.5px)}}@keyframes breathe{to{transform:scaleY(1.045)}}@keyframes tail{0%{transform:rotate(3deg)}to{transform:rotate(-7deg)}}@keyframes zzz{0%{opacity:0;transform:translateY(6px)}30%,60%{opacity:1}to{opacity:0;transform:translate(8px,-14px)}}@keyframes rise{0%{transform:translateY(112%)}}@keyframes ping{75%,to{transform:scale(2.8);opacity:0}}@keyframes marquee{to{transform:translateX(-50%)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes drift-a{to{transform:translate(-90px,70px) scale(1.15)}}@keyframes drift-b{to{transform:translate(110px,-50px) scale(1.2)}}@keyframes draw{to{stroke-dashoffset:0}}@keyframes pop{0%{opacity:0;transform:translateY(14px) scale(.98)}}@keyframes fade{0%{opacity:0}}@keyframes slide-from-right{0%{opacity:0;transform:translateX(48px)}}@keyframes card-in{0%{opacity:0;transform:translateY(26px) scale(.98)}}@keyframes slide-from-left{0%{opacity:0;transform:translateX(-48px)}}@media (max-width:899px){.hero-stage{display:flex;flex-direction:column;align-items:center;min-height:0;max-height:none;aspect-ratio:auto;padding-top:18px}.art-wide{display:none}.art-narrow{display:block;position:relative;inset:auto;width:min(100%,520px);height:auto;margin-top:4px}.hero-copy{position:static;translate:none;width:min(94%,22em);font-size:clamp(1.85rem,8vw,2.7rem);transform:translateY(calc(var(--hero-p, 0) * 30px));padding:0 var(--pad)}}@media (max-width:900px){.about-grid,.facts>div{grid-template-columns:1fr}.facts dd,.facts dt{grid-column:1;grid-row:auto}.lb-body{grid-template-columns:1fr;overflow:auto}.lb-img img{max-height:58vh}.lb-info{padding:18px 18px 20px}.lb-nav{margin-top:8px}.lb-close{background:var(--surface)}}@media (max-width:520px){.nav .hide-sm{display:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js [data-reveal]{opacity:1;transform:none;transition:none}.avatar,.dot:after,.js .hero-title .w>span{animation:none}.hero-copy{transform:none;opacity:1}.art *,.art :before,.art.dd.float{animation:none!important}.art .draw{stroke-dashoffset:0!important}.art .dot,.art .fill{opacity:1!important}.art .par{transform:none}.marquee{overflow-x:auto;-webkit-mask-image:none;mask-image:none;scrollbar-width:none}.marquee-track{animation:none;padding-left:var(--pad)}.marquee-track figure[aria-hidden=true]{display:none}.work-btn img{transition:none}.lb-img img,.lightbox[open],.lightbox[open]::backdrop{animation:none}}.bar.nav{display:grid;grid-template-columns:1fr auto 1fr;max-width:760px;gap:42px;min-height:76px}.nav-left{display:flex;justify-content:flex-end}.nav-right{display:flex;align-items:center;gap:30px}.nav .brand{color:var(--ink);font-size:3.2rem;line-height:1}.nav .brand:after{display:none}.selected-title{text-align:center;font-family:var(--serif);font-size:clamp(1.8rem,3.5vw,2.7rem);font-weight:500;margin:48px var(--pad) 28px}.about-page .about{padding-top:clamp(38px,5vw,64px);padding-bottom:64px}.about-side{position:relative}.about-side:before{content:"";position:absolute;z-index:-1;top:75px;left:-22px;width:170px;height:170px;border-radius:45% 55% 60% 40%;background:#f3eddb;transform:rotate(-12deg)}.about-page .facts{padding:12px 24px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(135deg,#fffdfa,#f8f3ec)}.about-page .facts>div:first-child:before{display:none}@media (max-width:600px){.bar.nav{gap:18px;padding-inline:16px;min-height:70px}.nav-right{gap:12px}.nav .brand{font-size:2.6rem}.nav a{white-space:nowrap;font-size:.8rem}.about-side{display:flex;align-items:center;justify-content:space-between;padding-right:20px}.about-side:before{top:0;left:auto;right:5px;width:110px;height:110px}.about-side .avatar-wrap{margin-top:0}.about-page .facts{padding:8px 18px}}.case-indoles .case-title{max-width:15ch;font-size:clamp(2.7rem,5.3vw,5.1rem);line-height:1.06}.case-indoles .case-lead{max-width:52em}.case-indoles .case-section{padding-top:clamp(56px,7vw,100px)}.story-showcase{border-radius:28px;padding:clamp(24px,4vw,48px);overflow:hidden}.story-blue{background:#e9ebfa;color:#202957}.story-sage{background:#e7eddf;color:#293c2e}.story-peach{background:#f7e8e3;color:#613629}.story-lavender{background:#efeaf7;color:#403050}.story-caption{max-width:660px;margin-bottom:36px}.story-caption .label{color:inherit;opacity:.75}.story-caption h2{font-family:var(--serif);font-size:clamp(1.8rem,3.2vw,2.8rem);font-weight:500;line-height:1.15;margin:12px 0 18px;letter-spacing:-.025em}.story-caption>p:last-child{font-size:1.03rem;line-height:1.75}.story-screens{display:flex;align-items:flex-start;justify-content:center;gap:clamp(18px,3vw,34px)}.story-screen{min-width:0}.story-phone{flex:1;max-width:255px;padding-inline:4px}.story-phone:nth-child(2){margin-top:36px}.device-frame{background:#fff;overflow:hidden;border:6px solid #242622;box-shadow:0 20px 35px -20px #1a221a66}.story-phone .device-frame{position:relative;padding:7px;overflow:visible;border:1px solid #626262;border-radius:39px;background:linear-gradient(145deg,#4b4b4d,#171719 18%,#050506 52%,#353537);box-shadow:0 28px 48px -24px #11172299,inset 0 0 0 1px #ffffff24,inset 0 0 0 3px #050506;isolation:isolate}.story-phone .device-frame:before{left:-4px;top:76px;height:30px;border-radius:3px 0 0 3px;box-shadow:0 45px 0 #252527,0 82px 0 #252527}.story-phone .device-frame:after,.story-phone .device-frame:before{content:"";position:absolute;z-index:3;width:3px;background:#252527}.story-phone .device-frame:after{right:-4px;top:108px;height:61px;border-radius:0 3px 3px 0}.device-top{height:20px;display:flex;align-items:center;justify-content:center;gap:5px;background:#fff}.story-phone .device-top{position:absolute;z-index:4;top:15px;left:50%;width:66px;height:19px;padding:0;border-radius:999px;background:#050505;transform:translateX(-50%);box-shadow:0 1px 2px #0008;pointer-events:none}.story-phone .device-top span:first-child{width:5px;height:5px;margin-left:43px;border-radius:50%;background:#17233a;box-shadow:inset 0 0 0 1px #304368}.story-phone .device-top span:not(:first-child){display:none}.story-screen .zoom{border-radius:0}.story-screen .zoom img{width:100%;border-radius:0;object-fit:contain}.story-screen.story-phone .zoom{overflow:hidden;padding-top:26px;border-radius:31px;background:#fff;clip-path:inset(0 round 31px)}.story-screen.story-phone .zoom img{display:block;width:100%;border-radius:31px;object-fit:contain}.story-screen figcaption{text-align:center;font-size:.86rem;line-height:1.5;padding:16px 4px 0}.story-browser{flex:3;align-self:center}.story-browser .device-frame{border:1px solid #ffffffaa;border-radius:12px}.story-browser .device-top{justify-content:flex-start;padding-left:12px;height:26px;background:#f6f5f2}.story-browser .device-top span{width:6px;height:6px;background:#c9c7c0;border-radius:50%}.has-browser .story-phone{flex:1;max-width:215px;margin-top:0}.story-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:30px}.story-steps article{padding:26px;border-radius:20px;background:#e9ebfa}.story-steps article:nth-child(2){background:#f7e8e3}.story-steps article:nth-child(3){background:#e7eddf}.step-number{font-family:var(--serif);font-size:2.5rem;color:#746c87}.story-steps h3{margin:18px 0 12px;font-size:1.15rem}.story-palette p,.story-steps p{line-height:1.7;color:var(--muted)}.story-palette{padding:32px;border:1px solid var(--line);border-radius:24px}.story-palette .blk-title{margin:12px 0 18px}.palette-swatches{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:28px 0}.palette-swatches span{display:block;height:86px;border-radius:12px;border:1px solid #00000010;margin-bottom:12px}.palette-swatches small,.palette-swatches strong{display:block;font-size:.82rem}.palette-swatches small{color:var(--muted);margin-top:5px}.story-type{display:flex;align-items:center;gap:26px;border-top:1px solid var(--line);padding-top:20px}.story-type>span{font-family:"Instrument Serif",Georgia,serif;font-size:5rem;line-height:1;color:#2f3fbf}@media (max-width:700px){.story-steps{grid-template-columns:1fr}.story-screens{flex-wrap:wrap;gap:24px}.has-browser .story-phone,.story-phone{flex:0 1 245px;max-width:245px}.story-phone:nth-child(2){margin-top:0}.story-browser{flex:1 0 100%}.story-showcase{padding:24px 18px}.palette-swatches{grid-template-columns:repeat(2,1fr)}.story-palette{padding:24px}}@media (min-width:900px){.hero-stage{width:92%;max-width:1280px;min-height:460px}.hero-copy{font-size:clamp(1.9rem,min(3.05vw,5.6svh),2.9rem)}}@media (max-width:899px){.hero-copy{font-size:clamp(1.8rem,7.5vw,2.5rem)}.hero-stage .art-narrow{width:min(94%,480px)}}.work-shelf{padding:42px 0 24px}.work-shelf .selected-title{margin:10px 20px 26px;font-size:clamp(2rem,3.5vw,3rem)}.work-shelf .marquee{--h:clamp(260px,32vw,400px);padding-block:22px 28px}.work-shelf .marquee-track{gap:24px;padding-right:24px}.work-shelf .marquee .work-btn{border-radius:12px}.shelf-note{text-align:center;color:var(--muted);font-size:.8rem;margin:10px 20px}.projects{padding-top:64px;padding-bottom:80px}.projects-head{display:flex;justify-content:center;margin-bottom:40px}.projects-head h2{font-size:clamp(2.3rem,4vw,3.5rem)}.project-grid{grid-template-columns:minmax(0,1fr);gap:56px}.project-card{grid-template-columns:minmax(0,1fr) auto;gap:0 40px;border:0;background:none;padding:0;border-radius:0;box-shadow:none}.project-card:hover{box-shadow:none;transform:none}.pc-top{grid-column:1/-1;grid-row:1;padding:0 0 16px;align-items:center;gap:8px}.pc-mark{display:none}.pc-name{font-size:.9rem}.pc-tags{display:flex;margin-left:auto}.pc-tags span{font-size:.7rem;background:none;border:0;padding:0}.pc-cover{grid-column:1/-1;grid-row:2;aspect-ratio:16/9;border-radius:18px;padding:clamp(16px,4vw,54px);background:#e6ecdf;box-shadow:none}.pc-cover img{border-radius:8px;object-position:top;box-shadow:0 18px 36px -22px #26332760}.project-card:hover .pc-cover img{transform:translateY(-5px) scale(1.015)}.pc-body{grid-column:1;grid-row:3;padding:28px 0 0;max-width:750px}.pc-body h3{font-size:clamp(1.8rem,3vw,2.8rem);max-width:26ch}.pc-text{max-width:65ch;font-size:.92rem;line-height:1.7;margin-top:16px}.pc-meta{grid-column:2;grid-row:3;padding:34px 0 0;align-self:start;white-space:nowrap;border:0;gap:16px}.project-category{display:none}.project-read{font-size:.82rem;color:var(--ink);font-weight:600}.pc-go{width:42px;height:42px;background:#eee9df;border:0}.reach-out{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,90px);align-items:center;max-width:1144px;margin:0 auto;padding:64px 0 72px;border-top:1px solid var(--line)}.reach-heading h2{font-family:var(--serif);font-weight:500;font-size:clamp(2.4rem,3.6vw,3.4rem);line-height:1.13;letter-spacing:-.035em;margin:18px 0 28px}.reach-description{max-width:32em;color:var(--muted);line-height:1.75;font-size:.95rem}.reach-details{position:relative;padding-top:52px;min-width:0}.reach-details .reach-plane{position:absolute;top:-24px;right:16px;rotate:-8deg}.reach-note{font-family:var(--hand);font-size:1.35rem;color:var(--muted)}.reach-email{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:clamp(1.05rem,1.65vw,1.5rem);font-weight:500;letter-spacing:-.03em;text-decoration:none;padding:14px 0 18px;border-bottom:1px solid var(--line)}.reach-email>span:first-child{overflow-wrap:anywhere}.reach-email>span:last-child{font-size:1.6rem;color:var(--link);transition:transform .2s}.reach-email:hover>span:last-child{transform:translate(3px,-3px)}.reach-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding-top:22px}.reach-actions .btn{font-size:.82rem;padding:12px 18px}.reach-actions .copy{background:transparent;border:1px solid var(--line);color:var(--muted)}.reach-actions .copy:hover{background:var(--chip);color:var(--ink)}.reach-actions .copy-msg:empty{display:none}.portfolio-footer{background:#f5f1ea;border-top:1px solid #eae2d7;padding:40px var(--pad) 0}.footer-main{display:grid;grid-template-columns:2fr 1fr 1fr;gap:48px;max-width:1144px;margin:0 auto 32px}.footer-logo{font-family:var(--hand);font-size:3.1rem;line-height:1;text-decoration:none}.footer-logo span{color:var(--c-orange)}.footer-identity p{color:var(--muted);font-size:.82rem;line-height:1.7;margin-top:12px}.footer-column{display:flex;flex-direction:column;align-items:flex-start;gap:9px;font-size:.87rem}.footer-column>p{font-size:.7rem;letter-spacing:.08em;color:var(--muted);margin-bottom:5px}.footer-column a{padding:4px 0;text-decoration:none;text-underline-offset:5px}.footer-column a:hover{text-decoration:underline;text-decoration-color:var(--c-orange)}.footer-column a span{display:inline-block;margin-left:12px;color:var(--muted)}.footer-bottom{margin:0 auto;padding:20px 0 24px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:.75rem;color:var(--muted)}.footer-top{display:inline-flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink)}.footer-top span{width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;font-size:1rem}.footer-top:hover span{background:var(--paper)}.pc-tags span{display:inline-flex;align-items:center;gap:9px;color:var(--link);font-family:var(--serif);font-size:.86rem;font-style:italic;font-weight:500;letter-spacing:-.01em}.pc-tags span:before{content:"";width:22px;height:1.5px;border-radius:2px;background:var(--c-orange);transform:rotate(-5deg)}.portfolio-footer{padding:34px var(--pad) 0;background:#f4efe7;border-top-color:#e5dccf}.footer-topline{max-width:1144px;margin:0 auto;min-height:156px;display:grid;grid-template-columns:1fr 1fr auto;gap:32px;align-items:center}.footer-identity{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.footer-logo{font-size:clamp(3rem,6vw,4.2rem);letter-spacing:-.04em}.footer-availability{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:.75rem}.footer-availability .dot{width:8px;height:8px}.footer-note{color:var(--ink);font-family:var(--serif);font-size:clamp(1.45rem,2.5vw,2rem);line-height:1.2}.footer-contact{display:inline-flex;align-items:center;gap:16px;padding:13px 17px;border:1px solid #d4c6b5;border-radius:999px;text-decoration:none;font-size:.85rem;transition:background .2s,transform .2s}.footer-contact:hover{background:#fffdfa;transform:translateY(-2px)}.footer-contact span{color:var(--link);font-size:1.1rem}.footer-bottom{max-width:1144px;padding:18px 0 calc(22px + env(safe-area-inset-bottom, 0px))}.footer-links{display:flex;align-items:center;justify-content:center;gap:clamp(14px,2.5vw,30px)}.footer-links a{color:var(--muted);text-decoration:none;transition:color .2s}.footer-links a:hover{color:var(--ink)}.footer-links a span{margin-left:3px;color:var(--link)}.footer-top{white-space:nowrap}.footer-top span{width:34px;height:34px;background:#fffdfa88}.art .knot-ink{fill:#000000;translate:0 0}.art .gemini-paint .fill{translate:2px 2px}@media (max-width:1240px){.reach-out{margin-inline:var(--pad)}}@media (max-width:700px){.work-shelf{padding-top:28px}.projects{padding-block:50px 56px}.project-card{grid-template-columns:1fr}.pc-top{padding:0 0 12px}.pc-cover{aspect-ratio:16/10;padding:18px;border-radius:12px}.pc-cover img{object-fit:contain;background:white}.pc-body{padding-top:22px}.pc-meta{grid-column:1;grid-row:4;padding-top:20px}.reach-out{grid-template-columns:1fr;gap:32px;padding-block:44px}.reach-heading h2{font-size:clamp(2.2rem,9vw,3rem)}.reach-details{padding-top:0}.reach-details .reach-plane{top:-40px;right:6px;width:56px}.reach-email{font-size:clamp(.98rem,4.1vw,1.4rem);gap:8px}.reach-actions .btn{padding:12px 15px}.footer-topline{grid-template-columns:1fr auto;gap:22px 12px;padding:16px 0 28px}.footer-identity,.footer-note{grid-column:1}.footer-note{grid-row:2}.footer-contact{grid-column:2;grid-row:2;font-size:.76rem;padding:11px 13px}.footer-bottom{display:grid;grid-template-columns:1fr auto;gap:16px 12px;font-size:.7rem}.footer-links{grid-row:1;grid-column:1/-1;justify-content:flex-start;flex-wrap:wrap;gap:8px 18px}.footer-bottom>span,.footer-top{grid-row:2}}@media (prefers-reduced-motion:reduce){.project-card:hover .pc-cover img,.reach-email:hover>span:last-child{transform:none}}@media (min-width:701px){:root{--maxw:1120px}.bar.nav{max-width:700px;min-height:66px;gap:34px}.nav .brand{font-size:2.75rem}.nav-right{gap:25px}.hero-stage{width:88%;max-width:1120px;min-height:410px}.hero-copy{font-size:clamp(1.75rem,min(2.65vw,5svh),2.55rem)}.work-shelf{padding-top:32px}.work-shelf .selected-title{margin-bottom:18px;font-size:clamp(1.8rem,3vw,2.55rem)}.work-shelf .marquee{--h:clamp(230px,27vw,330px);padding-block:16px 22px}.projects{max-width:1040px;padding-top:48px;padding-bottom:64px}.projects-head{margin-bottom:30px}.projects-head h2{font-size:clamp(2rem,3.3vw,2.9rem)}.project-grid{max-width:920px;margin-inline:auto;gap:48px}.pc-cover{aspect-ratio:2/1;padding:clamp(16px,3vw,38px)}.pc-body{padding-top:22px}.pc-body h3{font-size:clamp(1.6rem,2.5vw,2.25rem)}.case-layout{max-width:1240px;grid-template-columns:180px minmax(0,1fr);gap:clamp(24px,3.5vw,52px)}.case-main{max-width:920px}.case-hero{padding-top:clamp(24px,4vw,48px)}.case-title{font-size:clamp(2rem,3.8vw,3.15rem)}.case-indoles .case-title{font-size:clamp(2.35rem,4.4vw,4.25rem)}.case-lead{font-size:clamp(1rem,1.35vw,1.13rem)}.case-cover{margin-top:clamp(22px,3vw,36px);border-radius:22px}.case-indoles .case-section,.case-section{padding-top:clamp(42px,5.5vw,72px)}.blk+.blk{margin-top:clamp(34px,4.5vw,58px)}.blk-title{font-size:clamp(1.65rem,2.8vw,2.3rem)}.story-showcase{padding:clamp(20px,3vw,38px);border-radius:22px}.story-caption h2{font-size:clamp(1.65rem,2.7vw,2.35rem)}.reach-out{max-width:1040px;padding:52px 0 58px;gap:clamp(32px,5vw,70px)}.reach-heading h2{font-size:clamp(2.1rem,3vw,2.85rem)}.footer-bottom,.footer-topline{max-width:1040px}.footer-topline{min-height:132px}.footer-logo{font-size:clamp(2.7rem,5vw,3.6rem)}.footer-note{font-size:clamp(1.25rem,2vw,1.7rem)}}.btn{min-height:50px;padding-inline:26px;border-radius:999px}.btn-ghost{box-shadow:inset 0 0 0 1px #d4d4d4}.projects{width:min(100%,1160px);max-width:1160px;padding:clamp(58px,7vw,96px) var(--pad)}.projects-head{margin-bottom:clamp(36px,5vw,66px)}.projects-head h2{font-family:var(--font);font-size:clamp(2.2rem,4vw,3.8rem);font-weight:500;letter-spacing:-.055em}.project-grid{width:100%;max-width:none;gap:48px}.project-card{display:grid;grid-template-columns:minmax(240px,.72fr) minmax(0,2.2fr);gap:18px;min-height:clamp(390px,42vw,530px)}.pc-cover,.pc-info{border:1px solid #eeeeee;border-radius:26px;background:#fff}.pc-info{display:flex;flex-direction:column;justify-content:space-between;gap:36px;padding:clamp(22px,3vw,34px)}.pc-info h3{font-size:clamp(1.5rem,2vw,2rem);font-weight:500;line-height:1.1;letter-spacing:-.04em}.pc-info p{margin-top:18px;color:var(--muted);font-size:clamp(.92rem,1.25vw,1.08rem);line-height:1.65}.pc-open{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:58px;padding:0 22px;border:1px solid #d4d4d4;border-radius:999px;text-decoration:none;transition:background .2s,color .2s,transform .2s}.pc-open svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.pc-open:hover{color:#fff;background:#171717;border-color:#171717;transform:translateY(-2px)}.pc-cover{grid-column:auto;grid-row:auto;aspect-ratio:auto;padding:clamp(18px,2.4vw,30px);overflow:hidden;background:#fafafa}.pc-cover,.pc-cover img{display:block;width:100%;height:100%}.pc-cover img{border-radius:22px;object-fit:cover;object-position:center top;box-shadow:none;transition:transform .7s var(--ease)}.project-card:hover .pc-cover img{transform:scale(1.015)}.connect-footer{padding:18px;background:#fff}.connect-card{max-width:1160px;margin:0 auto;padding:clamp(34px,5.5vw,76px);border:1px solid #eeeeee;border-radius:28px}.connect-intro h2{max-width:21ch;font-family:var(--font);font-size:clamp(1.9rem,3.5vw,3.5rem);font-weight:400;line-height:1.12;letter-spacing:-.05em;text-wrap:balance}.connect-intro>p{margin-top:clamp(34px,5vw,66px);font-family:var(--font);font-size:clamp(1.55rem,2.8vw,2.7rem);line-height:1.15;letter-spacing:-.045em}.connect-intro>p span{color:var(--c-orange)}.connect-button{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:58px;margin-top:clamp(36px,5vw,68px);padding:0 26px;border-radius:999px;color:#fff;background:#171717;text-decoration:none;font-size:1.1rem;transition:background .2s,transform .2s}.connect-button:hover{background:#000;transform:translateY(-2px)}.connect-button svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.connect-meta{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-top:clamp(58px,8vw,100px);padding-top:clamp(34px,5vw,58px);border-top:1px solid var(--line)}.connect-label{display:block;margin-bottom:18px;color:var(--muted);font-size:.95rem}.connect-email{font-size:clamp(1.05rem,2vw,1.55rem);text-decoration:none}.connect-email:hover{text-decoration:underline;text-underline-offset:6px}.connect-social{display:flex;gap:10px}.connect-social a{display:grid;place-items:center;width:48px;height:48px;border:1px solid #d4d4d4;border-radius:14px;color:#171717;text-decoration:none;font-size:1rem;font-weight:700;transition:background .2s,color .2s}.connect-social a:hover{color:#fff;background:#171717}@media (max-width:760px){.projects{padding-block:66px}.project-card{grid-template-columns:1fr;min-height:0;gap:0;overflow:hidden;border:1px solid #eeeeee;border-radius:26px;background:#fff}.pc-cover,.pc-info{border:0;border-radius:0}.pc-info{min-height:0;padding:26px 24px 20px;gap:26px}.pc-cover{height:auto;aspect-ratio:auto;padding:0 14px 14px;background:#fff}.pc-cover img{width:100%;aspect-ratio:16/10;border-radius:18px;object-fit:cover}.connect-footer{padding:10px}.connect-card{padding:34px 24px;border-radius:22px}.connect-intro h2{font-size:clamp(1.75rem,7.4vw,2.4rem)}.connect-intro>p{font-size:clamp(1.35rem,5.6vw,1.85rem)}.connect-button{width:100%}.connect-meta{grid-template-columns:1fr;gap:30px}.connect-email{overflow-wrap:anywhere}}@media (min-width:761px){.case-layout{max-width:1120px;grid-template-columns:160px minmax(0,1fr);gap:clamp(22px,3vw,42px)}.case-main{max-width:840px}.case-side{padding-top:30px}.case-nav li a{font-size:.9rem}.case-title{font-size:clamp(1.9rem,3.2vw,2.8rem)}.case-indoles .case-title{font-size:clamp(2.2rem,3.7vw,3.55rem)}.case-lead{font-size:clamp(.96rem,1.15vw,1.05rem)}.case-indoles .case-section,.case-section{padding-top:clamp(38px,4.5vw,60px)}.blk+.blk{margin-top:clamp(30px,3.8vw,48px)}.blk-title{font-size:clamp(1.5rem,2.3vw,2rem)}.story-caption h2{font-size:clamp(1.5rem,2.25vw,2rem)}}.case-indoles .case-title{font-family:var(--font);font-size:clamp(2rem,3.6vw,3.2rem);font-weight:500;letter-spacing:-.045em;line-height:1.12;max-width:22ch}.case-indoles .blk-title,.case-indoles .story-caption h2{font-family:var(--font);font-size:clamp(1.5rem,2.4vw,2rem);font-weight:500;letter-spacing:-.035em;line-height:1.2}.case-indoles .case-meta dt,.case-indoles .label{font-family:var(--font);font-size:.75rem;font-weight:500;letter-spacing:.035em}.case-indoles .case-lead{font-size:1rem;line-height:1.75}.case-indoles .case-meta{padding:22px;gap:22px;border:1px solid var(--line);border-radius:22px;background:var(--card);font-size:.88rem}.case-indoles .case-nav li a{padding:9px 12px;border:1px solid transparent;border-radius:999px;font-size:.82rem}.case-indoles .case-nav li a:before{display:none}.case-indoles .case-nav li a[data-active=true]{background:var(--card);border-color:var(--line);color:var(--ink);font-weight:500;transform:none}.case-indoles .story-showcase{border:1px solid var(--line);border-radius:24px;background:var(--card);color:var(--ink)}.case-indoles .story-caption>p:last-child{color:var(--muted);font-size:.95rem}.case-indoles .story-steps article{background:var(--card);border:1px solid var(--line);padding:22px}.case-indoles .step-number{font-family:var(--font);font-size:1.4rem;color:var(--muted)}.case-indoles .story-steps h3{font-weight:500;font-size:1.05rem}.case-indoles .story-steps p{font-size:.9rem}.case-indoles .btn{min-height:44px;font-size:.88rem;padding:12px 22px}.case-indoles .case-end{border-top:1px solid var(--line);margin-top:44px;padding-top:32px}@media (max-width:760px){.case-indoles .case-meta{grid-template-columns:repeat(2,minmax(0,1fr));padding:18px}.case-indoles .case-meta dd{overflow-wrap:anywhere}.case-indoles .story-type{gap:16px}.case-indoles .case-section{scroll-margin-top:140px}}:root{--section-heading:clamp(1.9rem,3.15vw,2.65rem);--content-width:1160px}.case-title,.lb-info h3,.story-caption h2,h1,h2,h3{font-family:var(--font)}.hero .hero-title{font-family:var(--serif)}.projects-head h2,.work-shelf .selected-title{font-family:var(--font);font-size:var(--section-heading);font-weight:500;line-height:1.15;letter-spacing:-.045em}.projects .art.dd.mark .line,.work-shelf .art.dd.mark .line{stroke:var(--hero-gray)}.site-header,.site-header.scrolled{padding:14px var(--pad) 10px;background:transparent;border:0;backdrop-filter:none;-webkit-backdrop-filter:none}.site-header .bar.nav{display:flex;justify-content:space-between;width:100%;max-width:calc(var(--content-width) - 2 * var(--pad));min-height:60px;padding:8px 20px;gap:20px;border:1px solid var(--line);border-radius:999px;background:#ffffffed;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.site-header .nav .brand{font-size:2.1rem;padding:0 4px}.site-header .nav-right{display:flex;gap:4px}.site-header .nav-right a{padding:8px 15px;border:1px solid transparent;border-radius:999px;font-size:.86rem}.site-header .nav-right a[data-active=true]{border-color:var(--line);background:var(--card)}.site-header .nav a:after{display:none}.connect-footer{max-width:var(--content-width);margin-inline:auto;padding:0 var(--pad) 24px}.connect-card{padding:clamp(26px,3.5vw,44px);border-radius:26px}.connect-intro{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:36px;align-items:center}.connect-intro h2{max-width:28ch;font-size:clamp(1.6rem,2.45vw,2.35rem);line-height:1.18}.connect-intro>p{grid-column:1;margin-top:16px;font-size:clamp(1.05rem,1.5vw,1.3rem);letter-spacing:-.025em}.connect-button{grid-column:2;grid-row:1/3;min-height:48px;margin:0;padding-inline:22px;font-size:.95rem}.connect-meta{margin-top:32px;padding-top:24px;gap:24px;align-items:start}.connect-label{margin-bottom:10px;font-size:.82rem}.connect-email{font-size:clamp(.95rem,1.5vw,1.15rem)}.connect-social a{width:40px;height:40px;border-radius:12px}@media (max-width:760px){.site-header{padding:10px 12px}.site-header .bar.nav{min-height:54px;padding:6px 10px;gap:6px}.site-header .nav .brand{font-size:1.8rem}.site-header .nav-right{gap:0}.site-header .nav-right a{padding:7px 8px;font-size:.75rem}.connect-intro{grid-template-columns:1fr;gap:0}.connect-button{grid-column:1;grid-row:auto;justify-self:start;width:auto;margin-top:24px}.connect-meta{grid-template-columns:1fr;gap:22px}.connect-card{padding:26px 22px}}