@font-face{font-family:Azeret Mono;font-style:normal;font-display:swap;font-weight:300;src:url(../media/azeret-mono-latin-ext-300-normal.0sjlcc85h-0nl.woff2)format("woff2"),url(../media/azeret-mono-latin-ext-300-normal.2a35nf2e156a0.woff)format("woff");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:Azeret Mono;font-style:normal;font-display:swap;font-weight:300;src:url(../media/azeret-mono-latin-300-normal.0b81ncfjq81ni.woff2)format("woff2"),url(../media/azeret-mono-latin-300-normal.3rxhu7qvfpaxm.woff)format("woff");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}
@font-face{font-family:Azeret Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/azeret-mono-latin-ext-400-normal.0f8n9iatf0uk6.woff2)format("woff2"),url(../media/azeret-mono-latin-ext-400-normal.04a264pf8ktto.woff)format("woff");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:Azeret Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/azeret-mono-latin-400-normal.0qfnslku0j673.woff2)format("woff2"),url(../media/azeret-mono-latin-400-normal.1d70rig-icyhr.woff)format("woff");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}
@font-face{font-family:Azeret Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../media/azeret-mono-latin-ext-500-normal.3_wup7i03h59n.woff2)format("woff2"),url(../media/azeret-mono-latin-ext-500-normal.3egdfjb6ujlfu.woff)format("woff");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:Azeret Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../media/azeret-mono-latin-500-normal.1ukogfheyi7bw.woff2)format("woff2"),url(../media/azeret-mono-latin-500-normal.14wmjpwvdeeb-.woff)format("woff");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}
:root{--paper:#f2f0f6;--ink:#536f9d;--accent:#536f9d;--panel:#f9f8fc;--muted:#536f9d;--line:#a7aec5;--credit:#9ba9c5;--flower:#cb9ea6;--stitch-blue:#536f9d;--stitch-pink:#cb9ea6;--film:#536f9d;--serif:Georgia, "Times New Roman", serif;--h1:clamp(34px, 3.3vw, 42px);--sans:"Azeret Mono", ui-monospace, "SF Mono", Menlo, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--paper:#191d28;--ink:#e5e9f9;--accent:#a9c6ed;--panel:#234e76;--muted:#b9cce0;--line:#7e9bb9;--credit:#5f6472;--flower:#a9c6ed;--stitch-blue:#a9c6ed;--stitch-pink:#e7b7bf;--film:#2c3d5c;--body-glow:0 0 5px #e5e9f933, 0 0 13px #adccff14;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{background-color:var(--paper);color:var(--ink);font-family:var(--sans);margin:0;font-size:10px;font-weight:300;line-height:1.5;transition:background-color .25s,color .25s}[data-theme=dark] body,[data-theme=dark] button,[data-theme=dark] input,[data-theme=dark] textarea,[data-theme=dark] select{text-shadow:var(--body-glow)}a{color:inherit;text-underline-offset:5px}button,input{font:inherit}button{color:inherit;cursor:pointer}button:disabled{cursor:wait;opacity:.6}a,button{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:6px}h1,h2,h3,h4,p,figure{margin:0}h1,h2,h3,h4{font-weight:400;-webkit-mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='p' x='0' y='0' width='100%25' height='100%25' color-interpolation-filters='sRGB'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' seed='4' stitchTiles='stitch'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1' result='fine'/%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.12' numOctaves='3' seed='11' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1' result='wear'/%3E%3CfeComposite in='fine' in2='wear' operator='arithmetic' k2='1' k3='1'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 4 2 0 0 -1.5'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' fill='white' filter='url(%23p)'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='p' x='0' y='0' width='100%25' height='100%25' color-interpolation-filters='sRGB'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' seed='4' stitchTiles='stitch'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1' result='fine'/%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.12' numOctaves='3' seed='11' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1' result='wear'/%3E%3CfeComposite in='fine' in2='wear' operator='arithmetic' k2='1' k3='1'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 4 2 0 0 -1.5'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' fill='white' filter='url(%23p)'/%3E%3C/svg%3E");-webkit-mask-size:220px 220px;mask-size:220px 220px;-webkit-mask-repeat:repeat;mask-repeat:repeat}h1,h2,h3,h4,blockquote{font-family:var(--serif)}[data-theme=dark] h1,[data-theme=dark] h2,[data-theme=dark] h3,[data-theme=dark] h4{filter:drop-shadow(0 0 3px #f1f7ff80)drop-shadow(0 0 14px #adccff57);-webkit-mask-image:none;mask-image:none}[data-theme=dark] .logo,[data-theme=dark] .rail-name,[data-theme=dark] blockquote{text-shadow:0 0 5px #f1f7ff70,0 0 18px #adccff47}em{font-weight:400}.wrap{width:min(1320px,84%);margin-inline:auto}.site-header{align-items:center;gap:36px;min-height:80px;padding:20px 22px;display:flex}.logo{font-family:var(--serif);letter-spacing:-.04em;white-space:nowrap;isolation:isolate;font-size:20px;line-height:1;text-decoration:none;position:relative}.logo span{vertical-align:top;margin-left:.22em;font-size:.78em;display:inline-block}.logo:before{content:"";z-index:-1;pointer-events:none;border-top:1px solid;border-right:1px solid;border-radius:50%;position:absolute;inset:-.22em -.08em -.25em .22em;transform:rotate(6deg)}.site-header nav{align-items:center;gap:34px;margin-left:auto;display:flex}.site-header nav a{padding:8px 0;text-decoration:none;position:relative}.site-header nav a:after{content:"";transform-origin:0;background:currentColor;height:1px;transition:transform .2s;position:absolute;bottom:1px;left:0;right:0;transform:scaleX(0)}.site-header nav a:hover:after,.site-header nav a[aria-current=page]:after{transform:scaleX(1)}.theme-toggle{border:1px solid var(--ink);background:0 0;border-radius:999px;align-items:center;padding:2px;display:flex;position:relative;overflow:hidden}.theme-toggle:before{content:"";border-left:1px solid var(--line);height:22px;position:absolute;left:-18px}.theme-toggle span{z-index:1;border-radius:50%;place-items:center;width:28px;height:24px;font-size:15px;line-height:1;transition:color .3s;display:grid;position:relative}.theme-toggle:after{content:"";width:28px;height:24px;transition:transform .42s cubic-bezier(.34,1.4,.5,1);transition:transform .75s linear(0, .043, .153, .306, .479, .652, .812, .949, 1.057, 1.134, 1.182, 1.203, 1.203, 1.186, 1.158, 1.124, 1.088, 1.053, 1.023, .998, .979, .967, .96, .958, .96, .965, .971, .978, .986, .992, .998, 1.003, 1.006, 1.008, 1.009, 1.009, 1.008, 1.007, 1.005, 1.004, 1);background:#f1dce6;border-radius:50%;position:absolute;top:2px;left:2px}[data-theme=dark] .theme-toggle:after{background:#6588c2;transform:translate(28px)}.theme-toggle .chosen{color:#283953}[data-theme=dark] .theme-toggle .chosen{color:#fff}@media (hover:hover) and (pointer:fine){html[data-cursor=rabbit]{cursor:url(/cursor/rabbit.png) 6 14,auto;cursor:image-set(url(/cursor/rabbit.png) 1x, url(/cursor/rabbit@2x.png) 2x) 6 14, auto}html[data-cursor=rabbit] :is(a[href],button:not(:disabled),summary,label){cursor:url(/cursor/rabbit-link.png) 12 28,pointer;cursor:image-set(url(/cursor/rabbit-link.png) 1x, url(/cursor/rabbit-link@2x.png) 2x) 12 28, pointer}html[data-cursor=rabbit] :is(textarea,input:not([type=checkbox],[type=radio],[type=button],[type=submit])){cursor:url(/cursor/rabbit-text.png) 12 13,text;cursor:image-set(url(/cursor/rabbit-text.png) 1x, url(/cursor/rabbit-text@2x.png) 2x) 12 13, text}}.cursor-toggle{width:28px;height:30px;color:color-mix(in srgb, var(--ink) 78%, var(--paper));background:0 0;border:0;place-items:center;padding:0;display:none;position:relative}[data-theme=dark] .cursor-toggle{color:var(--ink)}@media (hover:hover) and (pointer:fine){.cursor-toggle{display:grid}}.cursor-toggle span{background:currentColor;width:24px;height:24px;transition:opacity .2s;transform:translateY(-1px);-webkit-mask:url(/cursor/rabbit.png) 50%/24px no-repeat;mask:url(/cursor/rabbit.png) 50%/24px no-repeat}.cursor-toggle:after{content:"";background:currentColor;height:1px;transition:transform .2s;position:absolute;top:50%;left:6px;right:6px;transform:rotate(-30deg)scaleX(0)}[data-cursor=standard] .cursor-toggle span{opacity:.35}[data-cursor=standard] .cursor-toggle:after{transform:rotate(-30deg)scaleX(1)}.hero{padding:0;container-type:inline-size}.hero-stage{--u:min(1px, calc(100cqw / 1075));width:calc(1075 * var(--u));height:calc(480 * var(--u));margin:0 auto;position:relative}.hero .hero-stage>*{left:calc(var(--x) * var(--u));top:calc(var(--y) * var(--u));width:calc(var(--w) * var(--u));position:absolute}.hero-copy{--x:173;--y:142;--w:330;z-index:3}.hero h1{font-size:calc(42 * var(--u));letter-spacing:-.05em;margin-bottom:calc(30 * var(--u) - .12em);text-shadow:.5px 0 var(--ink);padding-bottom:.12em;line-height:.92}.hero-copy p{max-width:42ch;font-size:max(11px, calc(13 * var(--u)));line-height:1.4}.hero-art{--x:551;--y:40;--w:360;z-index:1}.hero-motif{pointer-events:none}.hero-art>.hero-motif{z-index:2;position:absolute}.hero-art>.m-star{width:8.9%;color:var(--ink);top:-4.4%;left:-8.3%}.hero-art>.m-vine{width:21.9%;top:.8%;left:96.1%}.hero-art>.m-thistle{width:28.9%;top:63.3%;left:94.7%}.hero-art>.m-sparkle-f{width:5.6%;top:101.7%;left:2.2%}.m-tulip{--x:6;--y:279;--w:134}.m-bunny{--x:32;--y:96;--w:95}.m-sparkle-big{--x:123;--y:55;--w:50}.m-sparkle-a{--x:40;--y:76;--w:19}.m-sparkle-b{--x:138;--y:220;--w:20}.m-sparkle-c{--x:464;--y:116;--w:19}.m-sparkle-d{--x:455;--y:292;--w:36}.m-sparkle-e{--x:491;--y:283;--w:12}.m-lamb{--x:364;--y:316;--w:80}.hero .stitch:where(.stitch-bunny,.stitch-lamb,[class*=stitch-sparkle]){background:var(--stitch-blue)}@media (max-width:900px){.hero{padding:35px 0 28px}.hero-stage{justify-items:center;gap:30px;width:100%;height:auto;display:grid}.hero .hero-stage>*{width:auto;position:static}.hero-stage>.hero-motif{position:absolute}.hero-stage>.hero-copy{width:min(330px,88%)}.hero h1{font-size:var(--h1);letter-spacing:-.045em;margin-bottom:calc(24px - .12em);line-height:.94}.hero-copy p{font-size:12px}.hero-stage>.hero-art{width:min(360px,68%);margin-bottom:26px;position:relative;top:0;left:0}.hero-stage>.m-tulip{width:11%;max-width:70px;top:auto;bottom:12%;left:0}.hero-stage>.m-sparkle-big{width:30px;top:0;left:auto;right:4%}.hero-stage>.m-sparkle-d{width:22px;top:34%;left:3%}.m-bunny,.m-lamb,.m-sparkle-a,.m-sparkle-b,.m-sparkle-c,.m-sparkle-e{display:none}}.artwork{aspect-ratio:1;width:100%;position:relative}.artwork>svg{position:absolute}.artwork img{object-fit:cover;width:100%;height:100%;display:block}.day-art{filter:url(#cyanotype-light-palette);mix-blend-mode:darken;opacity:.84}[data-theme=dark] .day-art{filter:url(#cyanotype-dark-palette);mix-blend-mode:lighten;opacity:1;clip-path:inset(3% 3.2% 3.7% 3.3%);--no-dividers:linear-gradient(to right, #000 32%, transparent 32% 34.85%, #000 34.85% 65%, transparent 65% 67.85%, #000 67.85%), linear-gradient(to bottom, #000 32%, transparent 32% 34.6%, #000 34.6% 64.45%, transparent 64.45% 67%, #000 67%);-webkit-mask-image:var(--no-dividers);-webkit-mask-composite:source-in;-webkit-mask-image:var(--no-dividers);mask-image:var(--no-dividers);-webkit-mask-composite:source-in;mask-composite:intersect}[data-theme=dark] .artwork{isolation:isolate}[data-theme=dark] .artwork:before{content:"";z-index:-1;filter:blur(6px);pointer-events:none;background:radial-gradient(closest-side,#a9c6ed33,#a9c6ed12 60%,#0000);position:absolute;inset:-14%}.pixel-star{width:38px;color:var(--ink)}.stitch{background:var(--stitch-pink);width:96px;display:block;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.stitch-thistle,.stitch-rabbit,.stitch-lamb,.play-sparkle{background:var(--stitch-blue)}[data-theme=dark] .stitch{background:var(--ink);filter:drop-shadow(0 0 3px #f1f7ff80)drop-shadow(0 0 14px #adccff57)}.site-rail{background:var(--paper);flex-direction:column;padding:26px 32px 0;display:flex;overflow:hidden auto}.site-rail>*{flex-shrink:0}.site-rail .site-header{grid-template-columns:1fr auto auto;align-items:center;gap:26px 12px;width:auto;min-height:0;margin-inline:0;padding:0;display:grid}.site-rail .site-header nav{flex-direction:column;grid-area:auto/1/auto/-1;align-items:flex-start;gap:0;margin:0;font-size:12px;line-height:14px}.site-rail .site-header nav a{padding:5px 0}.site-rail .theme-toggle:before{display:none}.site-rail .logo{justify-self:start;font-size:20px}.logo-doily{line-height:0;display:block}.logo-doily:before{display:none}.logo-doily img{width:72px;height:auto;display:block}:root:not([data-theme=dark]) .logo-doily .logo-dark,[data-theme=dark] .logo-doily .logo-light{display:none}.site-rail .logo-doily,.site-rail .cursor-toggle,.site-rail .theme-toggle{align-self:start}.site-rail .cursor-toggle{grid-area:1/2;margin-right:-6px}.site-rail .theme-toggle{grid-area:1/3}.site-rail{container-type:inline-size}.rail-name{font-family:var(--serif);white-space:nowrap;grid-column:1/-1;margin:0;padding-left:.075em;font-size:14.65cqi;line-height:1}.rail-intro{grid-column:1/-1;max-width:34ch;font-size:11px;line-height:1.45}.rail-lamb{width:127px;margin-top:26px}@media (max-height:800px){.rail-lamb{width:104px;margin-top:20px}}@media (max-height:720px){.rail-lamb{width:84px;margin-top:16px}.rail-sky{flex-basis:120px}}.site-rail .stitch{background:var(--stitch-blue)}button.rail-lamb{cursor:pointer;background:0 0;border:0;padding:0;display:block}.lamb-frames{aspect-ratio:325/401;display:block;position:relative}.lamb-frames>.stitch{width:100%;position:absolute;inset:0}.rail-sky{flex:1 0 140px;position:relative;container-type:size}@container (max-height:250px){.rail-sky>.sky-extra{display:none}}.rail-sky>.stitch{left:var(--x);top:calc(var(--p) * 1%);transform:translateY(calc(var(--p) * -1%));position:absolute}.rail-links{background:var(--paper);justify-content:space-between;gap:12px;margin:10px -32px 0;padding:14px 32px 18px;font-size:9.5px;list-style:none;display:flex;position:sticky;bottom:0}.site-rail[data-scrolls] .rail-links:before{content:"";background:linear-gradient(transparent, var(--paper));pointer-events:none;height:28px;position:absolute;inset:auto 0 100%}.rail-links a{padding-block:8px;text-decoration:none;display:inline-block}.rail-links a:hover{text-decoration:underline}.resume-locked{cursor:default}.resume-locked svg{vertical-align:-.15em;width:auto;height:1.05em;margin-left:.15em}.rail-links .resume-locked{padding-block:8px;display:inline-block}.copied-toast{left:50%;bottom:calc(24px + env(safe-area-inset-bottom));z-index:50;background:var(--ink);color:var(--paper);letter-spacing:.02em;white-space:nowrap;text-shadow:none;pointer-events:none;border-radius:999px;align-items:center;gap:8px;padding:12px 18px;font-size:10px;font-weight:400;line-height:1;animation:.32s cubic-bezier(.2,.7,.2,1) both toast-rise;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 6px 22px #1e28462e}.copied-toast[data-state=out]{animation:.25s ease-in both toast-sink}body:has(.site-rail[data-open]) .copied-toast{bottom:calc(72px + env(safe-area-inset-bottom))}@keyframes toast-rise{0%{opacity:0;transform:translate(-50%,14px)}}@keyframes toast-sink{to{opacity:0;transform:translate(-50%,10px)}}.rail-bar,.rail-scrim{display:none}@media (min-width:901px){.site-split{grid-template-columns:300px minmax(0,1fr);display:grid}.site-rail{border-right:1px dotted var(--line);height:100dvh;position:sticky;top:0}.site-main{padding-inline:clamp(24px,3.5vw,56px)}.site-main .wrap{width:min(1320px,100%)}.home{padding-top:34px}.site-main .project-grid,.site-main .project-grid.featured{grid-template-columns:repeat(2,minmax(0,1fr));gap:44px 32px}.site-main .project-grid.featured>:nth-child(n){grid-column:auto}.site-main .film{margin-inline:calc(50% - 50vw + 150px)}.site-main .play-canvas{left:300px}.site-main .play-hint{left:calc(50% + 150px)}}@media (max-width:900px){.rail-bar{z-index:10;background:var(--paper);align-items:center;padding:10px 20px;display:flex;position:sticky;top:0}.rail-bar[data-open]{z-index:33;pointer-events:none;background:0 0}.rail-bar[data-open] .rail-menu{pointer-events:auto}.rail-menu{background:0 0;border:0;place-items:center;width:44px;height:44px;display:grid}.rail-menu span,.rail-menu span:before,.rail-menu span:after{background:currentColor;width:20px;height:1.5px;display:block}.rail-menu span{position:relative}.rail-menu span:before,.rail-menu span:after{content:"";transition:top .2s,transform .2s;position:absolute;left:0}.rail-menu span:before{top:-6px}.rail-menu span:after{top:6px}.rail-menu span{transition:background-color .2s}.rail-bar .rail-menu[aria-expanded=true] span{box-shadow:none;background-color:#0000}.rail-menu[aria-expanded=true] span:before{top:0;transform:rotate(45deg)}.rail-menu[aria-expanded=true] span:after{top:0;transform:rotate(-45deg)}[data-theme=dark] .rail-menu span,[data-theme=dark] .rail-menu span:before,[data-theme=dark] .rail-menu span:after{box-shadow:var(--body-glow)}.site-rail{z-index:31;visibility:hidden;width:min(300px,100vw - 64px);height:100dvh;padding-top:74px;transition:transform .3s,visibility 0s linear .3s;position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.site-rail[data-open]{visibility:visible;transition:transform .3s;transform:none;box-shadow:0 0 40px #141a282e}.rail-scrim{z-index:30;opacity:0;visibility:hidden;background:#191d2859;transition:opacity .3s,visibility 0s linear .3s;display:block;position:fixed;inset:0}.rail-scrim[data-open]{opacity:1;visibility:visible;transition:opacity .3s}[data-theme=dark] .rail-scrim{background:#080a1099}.home>.work-section:first-of-type{margin-top:6px}body:has(.play-canvas) .rail-bar{background:0 0}body:has(.play-canvas) .rail-bar:not([data-open]):before{content:"";z-index:-1;background:linear-gradient(var(--paper) 72%, transparent);pointer-events:none;position:absolute;inset:0 calc(50% - 50vw) -24px}body:has(.chapter-nav) .rail-bar:not([data-open]){position:relative}}.work-section{margin-bottom:74px;padding-top:28px}.hero+.work-section{border-top:1px solid var(--line);padding-top:14px}.section-title{align-items:center;gap:18px;margin-bottom:23px;font-size:clamp(22px,2.2vw,28px);line-height:1.1;display:flex}.section-title>span{font-family:var(--sans);color:var(--accent);font-size:.9em}.section-title i{border-top:2px dotted var(--line);flex:1;margin-left:8px}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;display:grid}@media (min-width:651px){.project-grid.featured{grid-template-columns:repeat(6,minmax(0,1fr))}.project-grid.featured>*{grid-column:span 2}.project-grid.featured>:nth-child(-n+2),.project-grid.featured>:nth-child(3):nth-last-child(2),.project-grid.featured>:nth-child(4):last-child{grid-column:span 3}}.placeholder{aspect-ratio:2.3;text-align:center;background:var(--panel);color:var(--ink);border:1px solid color-mix(in srgb, var(--line) 24%, transparent);place-items:center;padding:24px;font-size:10px;display:grid;position:relative;overflow:hidden}.placeholder:before{content:"";pointer-events:none;background:linear-gradient(130deg,#0000 20%,#ffffff18 55%,#0000 85%);position:absolute;inset:0}.placeholder span{position:relative}.project-grid .placeholder{aspect-ratio:16/10}.project-image-link{text-decoration:none;display:block;overflow:hidden}.project-image-frame{overflow:hidden}.project-thumbnail{aspect-ratio:16/10;object-fit:cover;width:100%;transition:transform .4s;display:block}.project-image-link .placeholder,.project-image-link .project-thumbnail{transition:transform .4s,background-color .3s}.project-card:hover .project-image-link .placeholder,.project-card:hover .project-image-link .project-thumbnail{transform:scale(1.025)}.eyebrow{text-transform:uppercase;letter-spacing:.23em;font-size:8.5px;font-weight:500}.project-card .eyebrow{margin:17px 0 4px}.project-card h3{letter-spacing:-.025em;padding-bottom:.06em;font-size:clamp(19px,1.8vw,24px);line-height:1.08}.project-link{align-items:center;gap:.6em;width:fit-content;min-height:44px;margin-top:2px;text-decoration:none;display:flex}.project-link>span{transition:transform .2s}.project-link:hover>span{transform:translate(6px)}.progress-note{color:var(--muted);margin-top:8px}.text-link{width:fit-content;margin-top:14px;text-decoration-thickness:1px;display:block}.site-footer{margin-top:64px}.footer-contact{border-top:1px solid var(--line);grid-template-columns:40px 1.1fr 1fr;align-items:center;gap:38px;padding:58px 5%;display:grid;position:relative}.footer-contact h2{padding-bottom:.14em;font-size:clamp(28px,2.8vw,36px);line-height:1}.footer-contact .text-link:first-child{margin-top:0}.footer-rabbit{width:110px;position:absolute;bottom:28px;right:5%}.footer-bottom{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:25px;padding:30px 0 44px;display:flex}.footer-credit{color:var(--credit);text-shadow:none;font-size:10px}.footer-bottom>span{color:var(--muted);font-size:9.5px}.footer-bottom>a:last-child{font-size:10px;text-decoration:none}.page-content{padding-top:52px}.page-title{font-size:var(--h1);letter-spacing:-.035em;margin-bottom:calc(32px - .12em);padding-bottom:.12em;line-height:.94}.page-content>.page-title,.about-hero{grid-template-columns:1.05fr 1fr;gap:8%;padding:0 6% 60px;display:grid}.bio{max-width:490px;font-size:11px}.bio p{margin-bottom:18px}.currently{margin:26px 0 8px}.currently p{margin-bottom:6px;font-style:italic}.currently ul{margin:0;padding:0;list-style:none}.currently li{margin-bottom:4px}.currently li>span{width:1.6em;display:inline-block}.about-contact{margin-top:30px}.about-contact h2{margin-bottom:4px;font-size:clamp(22px,2.2vw,28px)}.about-contact .text-link{margin-top:8px}body:has(.about-contact,.case-page,main.case-gate) .footer-contact{display:none}.portrait-composition{align-self:center;padding-bottom:24%;position:relative;container-type:inline-size}.portrait-composition>.portrait-photo{aspect-ratio:3/4;object-fit:cover;border:1px solid color-mix(in srgb, var(--line) 24%, transparent);width:60%;height:auto;margin-left:auto;display:block}.cat-pile{color:var(--ink);-webkit-user-select:none;user-select:none;font-family:Hiragino Kaku Gothic ProN,Hiragino Sans,Yu Gothic,Meiryo,Noto Sans JP,sans-serif;font-size:3.6cqw;line-height:1.3;position:absolute;bottom:0;left:-3%}.cat-pile-row{white-space:pre;height:1.3em;display:flex}.cat-pile-row span{text-align:center;flex:none;width:.5em}.cat-pile-row span.wide{width:1em}.ornament{z-index:1;width:28cqw;color:var(--ink);cursor:pointer;background:0 0;border:0;padding:0;position:absolute;top:-7cqw;left:17%}.ornament canvas{aspect-ratio:72/88;width:100%;image-rendering:pixelated;display:block}.ornament:focus-visible{outline:2px solid var(--ink);outline-offset:4px}.portrait-composition>.stitch{width:95px;position:absolute;bottom:14cqw;right:-9%}.about-section{margin-top:35px;margin-bottom:65px;padding-inline:6%}.experience-company{margin-bottom:22px}.experience-company h3{font-size:clamp(19.5px,1.5vw,24px)}.experience-list{border-top:1px dotted var(--line)}.experience{border-bottom:1px dotted var(--line)}.experience summary{cursor:pointer;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) 190px 28px;align-items:baseline;gap:20px;padding:20px 6px;list-style:none;display:grid}.experience summary::-webkit-details-marker{display:none}.experience-role{font-family:var(--serif);font-size:19px;line-height:1.2}.experience summary>span:not(.experience-role){font-size:10px}.experience summary i{text-align:right;font-size:22px;font-style:normal;transition:rotate .25s}.experience[open] summary i{rotate:45deg}.experience-body{max-width:640px;padding:0 6px 22px}.experience-location{letter-spacing:.04em;margin-bottom:6px;font-size:9.5px}.experience-projects{flex-wrap:wrap;gap:6px;margin:12px 0 0;padding:0;list-style:none;display:flex}.experience-projects>li>:is(a,span){border:1px dotted var(--line);border-radius:999px;padding:3px 11px;font-size:9.5px;text-decoration:none;display:inline-block}.experience-projects a:hover{border-style:solid}.postcards{grid-template-columns:minmax(200px,250px) minmax(0,460px);justify-content:center;align-items:center;gap:48px;padding:30px 0;display:grid}.postcard-inbox{gap:6px;display:grid}.postcard-inbox button{text-align:left;background:0 0;border:1px solid #0000;border-radius:12px;grid-template-columns:38px minmax(0,1fr) 8px;align-items:center;gap:12px;padding:10px 12px;display:grid}.postcard-inbox button[aria-pressed=true]{background:var(--panel);border-color:color-mix(in srgb, var(--line) 50%, transparent)}.postcard-inbox strong{font-size:10px;font-weight:500;display:block}.postcard-inbox small{opacity:.8;text-overflow:ellipsis;white-space:nowrap;font-size:9.5px;display:block;overflow:hidden}.postcard-avatar{background:#536f9d;border-radius:50%;flex:none;place-items:center;width:38px;height:38px;display:grid}.postcard-avatar img{width:82%;height:82%}.postcard-dot{background:var(--stitch-pink);border-radius:50%;width:8px;height:8px}.postcard-dot.is-read{visibility:hidden}.postcard-stage{min-width:0}.postcard-stack{position:relative}.postcard-slot{perspective:1600px}.postcard-slot.is-entering{z-index:1;animation:.9s cubic-bezier(.25,.8,.3,1) both postcard-enter;position:relative}.postcard-slot.is-leaving{pointer-events:none;animation:1.1s both postcard-tuck-x,1.1s both postcard-tuck-y,1.1s both postcard-tuck-tilt,1.1s both postcard-tuck-depth,1.1s step-end both postcard-tuck-layer;position:absolute;inset:0}@keyframes postcard-tuck-x{0%{animation-timing-function:cubic-bezier(.3,.55,.55,1);transform:translate(0)}45%{animation-timing-function:cubic-bezier(.45,0,.3,1);transform:translate(106%)}to{transform:translate(0)}}@keyframes postcard-tuck-y{0%{animation-timing-function:cubic-bezier(.3,.6,.5,1);translate:0}20%{animation-timing-function:cubic-bezier(.45,0,.55,1);translate:0 -12%}62%{animation-timing-function:cubic-bezier(.45,0,.4,1);translate:0 12%}to{translate:0}}@keyframes postcard-tuck-tilt{0%{animation-timing-function:cubic-bezier(.3,.6,.5,1);rotate:none}25%{rotate:calc(var(--dir) * 8deg);animation-timing-function:cubic-bezier(.45,0,.35,1)}to{rotate:none}}@keyframes postcard-tuck-depth{0%{animation-timing-function:cubic-bezier(.3,.6,.5,1);scale:1}25%{animation-timing-function:cubic-bezier(.45,0,.55,1);scale:1.03}65%{animation-timing-function:cubic-bezier(.45,0,.4,1);scale:.92}to{scale:1}}@keyframes postcard-tuck-layer{0%{z-index:2}42%{z-index:0}}@keyframes postcard-enter{0%{transform:translateY(1.5%) scale(.97) rotate(calc(var(--dir) * 1.2deg))}}.postcard{aspect-ratio:3/2;transform-style:preserve-3d;color:#536f9d;text-shadow:none;transition:transform .8s cubic-bezier(.3,.7,.2,1);position:relative;container-type:inline-size}.postcard.is-turned{transform:rotateY(180deg)}.postcard-face{backface-visibility:hidden;margin:0;position:absolute;inset:0;box-shadow:0 14px 30px #2b3a5a2e}.postcard-front svg{width:100%;height:100%;display:block}.postcard-back{background:#536f9d;padding:3.4cqw;transform:rotateY(180deg)}.postcard-paper{background:#fbf8f1;border-radius:2cqw;grid-template-columns:1.3fr 1px 1fr;gap:0 4cqw;height:100%;padding:3.5cqw 4cqw;display:grid;position:relative}.postcard-message{flex-direction:column;gap:1.8cqw;min-height:0;display:flex}.postcard .postcard-message .stitch{filter:none;background:#cb9ea6;width:34cqw}.postcard-message blockquote{font:clamp(11.5px, 2.75cqw, 17px) / 1.5 var(--serif);margin:0}.postcard-message mark{color:inherit;-webkit-box-decoration-break:clone;box-decoration-break:clone;background:linear-gradient(#0000 52%,#cb9ea666 52% 94%,#0000 94%);padding:0 .1em}.postcard-rule{background:#536f9d73}.postcard-address{flex-direction:column;justify-content:center;gap:3.2cqw;padding-top:12cqw;display:flex}.postcard-address span{min-height:3.6cqw;font:italic clamp(10px, 2.6cqw, 16px) / 1.2 var(--serif);border-bottom:1px solid #536f9d73;padding-bottom:.6cqw;display:block}.postcard-address b{font:500 clamp(8px, 1.6cqw, 10px) / 1 var(--sans);letter-spacing:.1em;text-transform:uppercase;margin-right:1cqw}.postcard-stamp{filter:drop-shadow(0 1px 1px #0002);width:12cqw;position:absolute;top:3cqw;right:3.5cqw;rotate:3deg}.postcard-seal{filter:drop-shadow(0 2px 3px #0003);width:15cqw;height:auto;position:absolute;bottom:2.5cqw;right:3cqw;rotate:-8deg}.postcard-turn{cursor:pointer;background:0 0;border:0;position:absolute;inset:0}.postcard-hint{text-align:center;margin:16px 0 0;font-size:10px}.postcard-controls{justify-content:center;align-items:center;gap:25px;margin-top:12px;font-size:10px;display:none}.postcard-controls button{background:0 0;border:0;min-width:44px;min-height:44px;font-size:23px}:is(body:has(.film),body:has(.postcards)){overflow-x:clip}.film{scrollbar-width:none;background:radial-gradient(circle, var(--paper) 4px, transparent 4.5px) 0 8px / 22px 16px repeat-x, radial-gradient(circle, var(--paper) 4px, transparent 4.5px) 0 calc(100% - 8px) / 22px 16px repeat-x, var(--film);background-attachment:local;margin-inline:calc(50% - 50vw);padding:30px 0;overflow-x:auto}.film::-webkit-scrollbar{display:none}.film-track{width:max-content;display:flex}.film .frame{cursor:zoom-in;background:0 0;border:0;flex:none;padding:0 7px;position:relative}.film .frame img{filter:grayscale()sepia()hue-rotate(180deg)saturate(1.4)brightness(1.02)contrast(.95);width:auto;height:140px;transition:filter .9s;display:block}.film .frame:hover img,.film .frame:focus-visible img,.film .frame.is-current img{filter:none}.film .frame:focus-visible{outline:2px solid var(--paper);outline-offset:-4px}.film-controls{align-items:center;gap:12px;margin-top:12px;display:flex}.film-controls button{min-width:30px;min-height:30px;color:var(--ink);background:0 0;border:0;place-items:center;padding:0;font-size:10px;display:grid}.film-controls svg{width:16px;height:16px}.film-steps{gap:2px;margin-right:auto;display:flex}.film-speed{border:1px solid var(--line);border-radius:999px;gap:0;padding:2px;display:flex}.film-speed button{border-radius:999px;min-width:34px;min-height:24px}.film-speed button[aria-pressed=true]{background:var(--ink);color:var(--paper);text-shadow:none}.film-controls .film-play{border:1px solid var(--line);border-radius:50%}.photo-viewer{background:0 0;border:0;max-width:min(92vw,1100px);padding:0}.photo-viewer::backdrop{background:#191d28e6}.photo-viewer img{max-width:100%;max-height:80vh;margin:0 auto;display:block}.photo-viewer figcaption{color:#f2f0f6;text-shadow:none;justify-content:center;align-items:center;gap:18px;margin-top:12px;font-size:10px;display:flex}.photo-viewer button{min-width:44px;min-height:44px;color:inherit;background:0 0;border:0;font-size:20px}.photo-viewer :focus-visible{outline-color:#f2f0f6}.photo-viewer button:last-child{text-underline-offset:4px;font-size:10px;text-decoration:underline}body:has(.play-canvas){overflow:hidden}body:has(.play-canvas) .site-footer{display:none}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.play-canvas{touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;background-image:radial-gradient(color-mix(in srgb, var(--ink) 22%, transparent) 1px, transparent 1.3px);background-size:28px 28px;position:fixed;inset:0;overflow:hidden}.play-canvas.is-dragging{cursor:grabbing}.play-canvas:focus-visible{outline-offset:-6px}.play-piece{margin:0;position:absolute}.play-piece img{z-index:1;pointer-events:none;width:100%;height:auto;display:block;position:relative;box-shadow:0 8px 20px #2b3a5a24}.play-piece figcaption{z-index:3;background:color-mix(in srgb, var(--paper) 88%, transparent);width:fit-content;max-width:max(100%,150px);margin-top:6px;padding:3px 7px 4px 0;position:relative}.play-piece figcaption span{letter-spacing:.18em;text-transform:uppercase;opacity:.7;margin-bottom:4px;font-size:8.5px;font-weight:500;line-height:1;display:block}.play-piece b{font:italic 400 15px/1.2 var(--serif);display:block}.play-piece small{font:300 10px/1.45 var(--sans);opacity:.85;margin-top:2px;display:block}.play-corner{z-index:4;pointer-events:none;width:210px;height:250px;position:fixed;bottom:24px;right:3%}.play-corner .stitch{position:absolute}[data-theme=light] .play-corner .stitch{filter:drop-shadow(0 0 1.5px var(--paper)) drop-shadow(0 0 1.5px var(--paper)) drop-shadow(0 0 5px var(--paper))}.play-corner .play-bunny{width:150px;bottom:0;right:0}.play-corner .play-sparkle-one{width:40px;top:22px;left:0}.play-corner .play-sparkle-two{width:20px;bottom:70px;left:26px}.play-corner .play-sparkle-three{width:20px;top:0;right:4px}.play-hint{z-index:5;color:#283953;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font:400 10px var(--sans);letter-spacing:.12em;text-transform:uppercase;text-shadow:none;white-space:nowrap;pointer-events:none;background:#f1dce6e6;border:1px solid #dfb9cb;border-radius:999px;gap:10px;margin:0;padding:10px 18px;display:flex;position:fixed;bottom:26px;left:50%;translate:-50%;box-shadow:0 0 12px 1px #f1dce6b3}[data-theme=dark] .play-hint{color:#fff;background:#6588c2e6;border-color:#7d9ccf;box-shadow:0 0 12px 1px #6588c280}.skip-link{background:var(--paper);z-index:20;padding:12px 20px;position:fixed;top:-100px;left:15px}.skip-link:focus{top:15px}.case-gate{align-content:center;justify-items:center;min-height:650px;padding:40px 0 80px;display:grid}.case-gate[data-checking]{visibility:hidden;animation:0s 3s forwards gate-reveal!important}@keyframes gate-reveal{to{visibility:visible}}.case-gate .back-link{justify-self:start;margin-bottom:30px;font-size:10px}.password-row{border:1px solid var(--line);max-width:430px;display:flex}.password-row input{min-width:0;color:var(--ink);background:0 0;border:0;flex:1;padding:14px}.password-row button{background:0 0;border:0;min-width:54px;padding:0 13px;font-size:9.5px}.primary-button{border:1px solid var(--ink);background:var(--ink);color:var(--paper);text-align:left;white-space:nowrap;justify-content:space-between;align-items:center;gap:28px;min-height:38px;margin-top:14px;padding:7px 16px;display:inline-flex}.primary-button span{font-size:15px;line-height:1}.form-message{min-height:44px;padding-top:12px;font-size:10px}.gate-note{color:var(--muted);margin-top:16px;font-size:10px}.gate-card{background:color-mix(in srgb, var(--paper) 90%, transparent);border:1px solid color-mix(in srgb, var(--line) 45%, transparent);border-radius:16px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:56px;width:min(720px,100%);padding:40px 40px 34px;display:grid;box-shadow:0 12px 40px #282e501f}[data-theme=dark] .gate-card{border-color:color-mix(in srgb, var(--line) 14%, transparent);box-shadow:0 14px 44px #00000059}.case-gate .gate-card{box-shadow:none;background:0 0;border:0;border-radius:0;padding:0}.bunny-ring{aspect-ratio:1939/1452;width:100%;height:auto;display:block}[data-theme=dark] .bunny-ring{filter:drop-shadow(0 0 3px #f1f7ff80)drop-shadow(0 0 14px #adccff57)}.gate-card .eyebrow{align-items:center;gap:8px;margin-bottom:18px;display:flex}.gate-card .eyebrow svg{width:10px;height:auto}.gate-card :is(h1,h2){letter-spacing:-.02em;margin:-6px 0 calc(18px - .12em);padding-bottom:.12em;font-size:clamp(20px,1.8vw,25px);line-height:1}.gate-card label{margin-bottom:8px;font-size:10px;display:block}.gate-card .password-row{background:color-mix(in srgb, var(--paper) 70%, transparent);max-width:260px}.gate-card .password-row button[type=button]{border-right:1px solid var(--line)}.password-row .gate-go{background:var(--ink);color:var(--paper);min-width:46px;padding:0 14px;font-size:15px}.password-row .gate-go:disabled{opacity:.6}.gate-card .form-message{min-height:26px}.gate-card .gate-note{margin-top:0}.gate-shake-0{animation:.4s gate-shake-0}.gate-shake-1{animation:.4s gate-shake-1}@keyframes gate-shake-0{20%,60%{transform:translate(-5px)}40%,80%{transform:translate(5px)}}@keyframes gate-shake-1{20%,60%{transform:translate(-5px)}40%,80%{transform:translate(5px)}}@media (max-width:700px){.gate-card{text-align:center;grid-template-columns:1fr;gap:22px;padding:34px 24px 28px}.gate-card .bunny-ring{width:min(220px,64%);margin:0 auto}.gate-card .eyebrow{justify-content:center}.gate-card .password-row{margin-inline:auto}.gate-card label{text-align:left;max-width:260px;margin-inline:auto}}.work-gate{position:relative}.work-gate[data-locked]{max-height:100dvh;overflow:hidden}html:not([data-work-open]):has(.work-gate[data-locked]){overscroll-behavior:none;overflow:hidden}.work-wall{z-index:6;overscroll-behavior:contain;-webkit-backdrop-filter:blur(6px)saturate(.6);backdrop-filter:blur(6px)saturate(.6);background:color-mix(in srgb, var(--paper) 23%, transparent);place-content:safe center;justify-items:center;padding:24px 16px;transition:opacity .6s,-webkit-backdrop-filter .6s,backdrop-filter .6s;display:grid;position:absolute;inset:0;overflow:auto}[data-theme=dark] .work-wall{background:color-mix(in srgb, var(--paper) 33%, transparent)}.work-wall[data-opening]{opacity:0;-webkit-backdrop-filter:blur();backdrop-filter:blur();pointer-events:none}html[data-work-open] .work-wall{display:none}html[data-work-open] .work-gate[data-locked]{max-height:none;overflow:visible}@media (min-width:901px){.work-wall{position:fixed;left:300px}}.sheep-loader{justify-items:center;gap:14px;display:grid}.sheep-field{width:min(280px,72vw);height:140px;position:relative;overflow:hidden}.sheep-ground{background:repeating-linear-gradient(90deg, var(--line) 0 4px, transparent 4px 8px);height:1px;position:absolute;bottom:0;left:0;right:0}.sheep-fence{fill:none;width:46px;stroke:var(--stitch-pink);stroke-width:1.6px;stroke-linecap:round;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.sheep-lamb{z-index:1;aspect-ratio:325/401;width:50px;position:absolute;bottom:0;left:-50px}.sheep-lamb>.stitch{background:var(--stitch-blue);width:100%;position:absolute;inset:0}.gate-loading{place-items:center;min-height:650px;display:grid}.intro{z-index:100;background:var(--paper);opacity:0;visibility:hidden;place-items:center;transition:opacity .4s,visibility 0s .4s;display:grid;position:fixed;inset:0}html[data-intro]{overflow:hidden}html[data-intro] .intro{opacity:1;visibility:visible;transition:none;animation:0s 6s forwards intro-fallback}@keyframes intro-fallback{to{opacity:0;visibility:hidden}}html[data-intro] :is(.site-rail .site-header>*,.site-rail nav a,.rail-lamb,.rail-sky,.rail-links,.rail-menu,.home .section-title,.work-wall .gate-card,.project-grid.featured .project-card :is(.eyebrow,h3,.project-link),main:not(.home)){animation:6s entrance-hold}html[data-intro] .project-grid.featured .project-thumbnail{animation:6s entrance-hold-low}html[data-entering] :is(.site-rail .site-header>*,.site-rail nav a,.rail-lamb,.rail-sky,.rail-links,.rail-menu,.home .section-title,.work-wall .gate-card,main:not(.home)){animation:entrance-rise .48s cubic-bezier(.2, .7, .2, 1) var(--d,.2s) backwards}html[data-entering] .project-grid.featured .project-thumbnail{animation:1.1s cubic-bezier(.55,0,.2,1) .2s backwards entrance-slide}html[data-entering] .project-grid.featured .project-card :is(.eyebrow,h3,.project-link){animation:.52s cubic-bezier(.2,.7,.2,1) .695s backwards entrance-rise-short}.site-rail .logo{--d:.2s}.site-rail .cursor-toggle{--d:.225s}.site-rail .theme-toggle{--d:.25s}.rail-name{--d:.3s}.rail-intro{--d:.35s}.site-rail nav a:first-child{--d:.4s}.site-rail nav a:nth-child(2){--d:.45s}.site-rail nav a:nth-child(3){--d:.5s}.rail-lamb{--d:.6s}.rail-sky{--d:.65s}.rail-links{--d:.7s}.home .section-title,.work-wall .gate-card{--d:.75s}@media (max-width:900px){.home .section-title{--d:.2s}}main:not(.home){--d:.25s}@keyframes entrance-hold{0%,to{opacity:0}}@keyframes entrance-hold-low{0%,to{transform:translateY(100%)}}@keyframes entrance-rise{0%{opacity:0;transform:translateY(14px)}}@keyframes entrance-rise-short{0%{opacity:0;transform:translateY(10px)}}@keyframes entrance-slide{0%{transform:translateY(100%)}}.case-page{width:min(940px,84%)}.case-top{justify-content:space-between;gap:20px;margin-bottom:40px;padding-inline:6%;display:flex}.case-top button{background:0 0;border:0;min-height:44px;text-decoration:underline}.case-preview-notice{border:1px dotted var(--line);width:fit-content;color:var(--muted);letter-spacing:.04em;margin:0 6% 28px;padding:8px 12px;font-size:9.5px}.case-preview-notice span{color:var(--accent);margin-inline:7px}.case-header{padding:0 6% 35px}.case-header .eyebrow{margin-bottom:15px}.case-header .page-title{margin-bottom:calc(25px - .12em)}.case-summary{max-width:700px;font-size:13px}.case-meta{grid-template-columns:repeat(4,1fr);gap:30px;margin:35px 0;display:grid}.case-meta dt{letter-spacing:.2em;text-transform:uppercase;margin-bottom:8px;font-size:8.5px}.case-meta dd{margin:0}.chapter-nav{z-index:5;background:var(--paper);border-block:1px dotted var(--line);justify-content:center;gap:26px;padding:19px 10px;font-size:9.5px;display:flex;position:sticky;top:0;overflow:auto}.chapter-nav a{white-space:nowrap;text-decoration:none}.case-section{border-bottom:1px dotted var(--line);grid-template-columns:180px minmax(0,1fr);gap:30px;padding:55px 0;scroll-margin-top:70px;display:grid}.case-section h2{align-self:start;padding-bottom:.12em;font-size:24px;line-height:1;position:sticky;top:80px}.case-section h2 span{margin-bottom:8px;font-size:18px;display:block}.case-section-content{min-width:0}.case-section-content h3{margin-bottom:10px;font-size:21px;line-height:1.1}.case-section-content :where(ul,ol){margin:0;padding:0;list-style:none}.case-section-content :where(blockquote){margin:0}.case-section .placeholder{aspect-ratio:2.5}.case-text{white-space:pre-line;max-width:780px;margin-bottom:24px;font-size:11px}.case-media{max-width:1000px;margin:10px 0 30px}.case-header .case-media{max-width:none;margin:0}.case-media figcaption,.case-testimonials figcaption{color:var(--muted);margin-top:10px;font-size:9.5px}.case-media figcaption:before,.case-testimonials figcaption:before{content:"✦ ";color:var(--accent)}.case-frame{background:var(--panel);border:1px solid color-mix(in srgb, var(--line) 30%, transparent);display:block;position:relative;overflow:hidden}.case-frame img,.case-frame video{width:100%;height:auto;display:block}.case-frame:has(>video){width:fit-content;max-width:100%}.case-frame video{width:auto;max-width:100%;max-height:80vh}.case-links{flex-wrap:wrap;gap:20px;margin-top:16px;display:flex}.case-list{margin:10px 0 30px}.case-list .eyebrow{color:var(--muted);margin-bottom:12px}.case-list li{max-width:720px;margin-bottom:8px;font-size:11px}.case-list li:before{content:"✦ ";color:var(--accent)}.video-toggle{border:1px solid var(--ink);background:var(--paper);border-radius:50%;place-items:center;width:44px;height:44px;font-size:9.5px;display:grid;position:absolute;bottom:10px;right:10px}.case-quotes{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:8px 0 30px;display:grid}.case-quotes li{border-top:1px solid var(--ink);padding-top:14px}.case-quotes blockquote{font-size:14px;line-height:1.3}.case-statement{margin:40px 0}.case-statement p:last-child{max-width:900px;font-family:var(--serif);margin-top:12px;font-size:clamp(19.5px,2vw,27px);line-height:1.2}.flow-viewer{margin-top:40px}.case-section-content>.flow-viewer:first-child{margin-top:0}.flow-viewer>.eyebrow{color:var(--muted);margin-bottom:14px}.flow-tabs{border-bottom:1px solid var(--ink);gap:6px;display:flex;overflow-x:auto}.flow-tabs button{white-space:nowrap;background:0 0;border:1px solid #0000;border-bottom:0;min-height:44px;padding:12px 16px;font-size:10px}.flow-tabs button[aria-selected=true]{border-color:var(--ink);background:var(--panel);font-weight:500}.flow-stack{display:grid}.flow-stack>.flow-panel{grid-area:1/1}.flow-stack>.flow-panel[aria-hidden=true]{visibility:hidden}.flow-panel{grid-template-columns:minmax(0,1fr) minmax(0,2.4fr);align-items:start;gap:32px;padding-top:24px;display:grid}.flow-panel h3{font-size:22.5px}.flow-panel .case-media{margin:0}.flow-panel .case-frame{aspect-ratio:5/4;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line) transparent;overflow-y:auto}.flow-screens .flow-panel .case-frame{aspect-ratio:auto;overflow:hidden}.flow-panel .case-frame:has(>video){aspect-ratio:auto;overflow:hidden}.flow-hint{color:var(--muted);margin-top:8px;font-size:9.5px}.flow-count{color:var(--muted);margin-bottom:14px;font-size:9.5px}.case-principles{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.case-principles:not(:last-child){margin-bottom:40px}.case-principles>li{background:var(--panel);padding:28px}@media (min-width:1001px){.case-principles:has(>li:nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.case-principles:has(>li:nth-child(3):last-child)>li{padding:22px}}.case-principles p{max-width:640px;margin-bottom:14px}.case-principles blockquote{border-left:2px solid var(--flower);margin:10px 0 16px;padding-left:16px;font-size:15px}.case-principles .case-media{margin:18px 0 0}.case-principles .case-frame{background:var(--paper)}[data-theme=dark] .case-principles>li{background:#252f42}.case-tags{flex-wrap:wrap;gap:8px;margin:10px 0 16px;display:flex}.case-tags li{border:1px dotted var(--line);padding:4px 12px;font-size:10px}.case-awards{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-bottom:36px;display:grid}.case-awards li{border-top:1px solid var(--ink);padding-top:16px}.case-awards span{color:var(--accent);margin-bottom:6px;font-size:13px;display:block}.case-awards p{color:var(--muted)}.case-testimonials{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;display:grid}.case-testimonials blockquote{white-space:pre-line;font-size:13px;line-height:1.35}.case-stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:24px;margin:0 0 36px;display:grid}.case-stats div{border-top:1px solid var(--ink);flex-direction:column-reverse;justify-content:flex-end;padding-top:12px;display:flex}.case-stats dd{font-family:var(--serif);margin:0 0 8px;font-size:clamp(25.5px,2.5vw,39px);line-height:1}.case-stats dt{color:var(--muted);font-size:10px}.keep-exploring{margin-top:60px}.explore-grid{overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:var(--line) transparent;grid-auto-columns:220px;grid-auto-flow:column;gap:20px;margin:-4px 0 0;padding:4px 0 14px;list-style:none;display:grid;overflow-x:auto}.explore-grid>li{scroll-snap-align:start}.explore-card{text-decoration:none;display:block}.explore-card img{aspect-ratio:16/10;object-fit:cover;border:1px solid color-mix(in srgb, var(--line) 30%, transparent);width:100%;transition:transform .2s;display:block}.explore-card:hover img{transform:translateY(-3px)}.explore-card .eyebrow{margin:10px 0 3px;display:block}.explore-card h3{letter-spacing:-.02em;padding-bottom:.06em;font-size:16px;line-height:1.1}.explore-link{margin-top:6px;display:block}.explore-card:hover .explore-link{text-decoration:underline}.empty-state{text-align:center;padding:90px 20px}.reveal-ready{opacity:0;transition:opacity .6s,transform .6s;transform:translateY(15px)}.reveal-ready.revealed{opacity:1;transform:none}@media (max-width:1000px){.site-header{gap:25px;padding-inline:0}.site-header nav,.project-grid{gap:22px}.experience summary{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) 150px 28px;gap:16px}.experience-role{font-size:16.5px}.about-hero{gap:6%;padding-inline:3%}.about-section{padding-inline:3%}.bio{font-size:11px}.postcards{grid-template-columns:minmax(190px,240px) minmax(0,460px);gap:32px}.chapter-nav{justify-content:start;gap:22px}.case-quotes,.case-testimonials,.case-principles,.flow-panel{grid-template-columns:1fr}}@media (max-width:650px){.wrap{width:85%}.site-header{grid-template-columns:1fr auto;gap:18px 14px;min-height:96px;padding-block:20px 10px;display:grid}.logo{font-size:18px}.site-header nav{grid-area:2/1/auto/3;justify-content:space-between;gap:18px;margin:0;font-size:10px}.theme-toggle{grid-area:1/2}.theme-toggle:before{display:none}.hero+.work-section{padding-top:20px}.section-title{flex-wrap:nowrap;gap:10px;margin-bottom:20px;font-size:22px}.section-title i{min-width:20px}.project-grid{grid-template-columns:1fr;gap:35px}.placeholder{aspect-ratio:1.85}.project-card h3{font-size:21px}.project-card .eyebrow{margin-top:15px}.work-section{margin-bottom:48px}.footer-contact{grid-template-columns:1fr;gap:22px;padding:35px 0}.footer-contact>.pixel-star{width:30px}.footer-contact>.footer-rabbit{width:84px;bottom:20px;right:0}.footer-contact h2{font-size:28px}.site-footer{margin-top:45px}.footer-bottom{flex-wrap:wrap;padding-block:25px 35px}.footer-credit{width:100%;font-size:9.5px}.footer-bottom>a:last-child{font-size:9.5px}.page-content{padding-top:30px}.about-hero{grid-template-columns:1fr;gap:30px;padding:0}.about-section{padding-inline:0}.bio{font-size:11px}.portrait-composition{width:88%;margin:15px auto 40px}.portrait-composition .stitch{width:65px;right:-8%}.experience summary{grid-template-columns:minmax(0,1fr) 28px;gap:2px 12px;padding-inline:0}.experience summary>span{grid-column:1}.experience summary i{grid-area:1/2}.experience-body{padding-inline:0}.about-section .section-title{font-size:22px}.about-section .section-title i{display:none}.postcard-paper{grid-template-columns:1.7fr 1px .9fr;gap:0 2.5cqw;padding:3cqw}.postcard-address{padding-top:14cqw}.postcard-stamp{width:13cqw}.film .frame img{height:110px}.play-corner{width:120px;height:145px;bottom:78px;right:12px}.play-corner .play-bunny{width:86px}.play-corner .play-sparkle-one{width:24px;top:12px}.play-corner .play-sparkle-two{width:12px;bottom:40px;left:14px}.play-corner .play-sparkle-three{width:12px}.case-gate{min-height:0;padding:30px 0}.gate-loading{min-height:60vh}.case-gate .back-link{margin-bottom:18px}.case-header,.case-top{padding-inline:0}.case-preview-notice{margin-inline:0}.case-meta{grid-template-columns:1fr 1fr;gap:20px}.case-top{align-items:center;font-size:10px}.case-summary{font-size:12px}.case-section{grid-template-columns:1fr;gap:20px;padding:35px 0}.case-section h2{font-size:26px;position:static}.case-section h2 span{margin-right:10px;font-size:15px;display:inline}.case-text{font-size:11px}.case-awards{grid-template-columns:1fr}.case-principles>li{padding:20px}.case-quotes blockquote,.case-testimonials blockquote{font-size:13px}.case-section .placeholder{aspect-ratio:1.5}.chapter-nav{gap:20px;margin-inline:-6%;padding-inline:6%}.explore-grid{scroll-snap-type:x mandatory;scrollbar-width:none;grid-auto-columns:170px;gap:14px;padding-bottom:4px}.explore-grid::-webkit-scrollbar{display:none}.explore-card h3{font-size:15px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}.reveal-ready{opacity:1;transform:none}.film{scrollbar-width:thin;scrollbar-color:var(--paper) var(--film)}.film::-webkit-scrollbar{height:8px;display:block}.film::-webkit-scrollbar-thumb{background:var(--paper)}}.logo{width:fit-content}@media (max-width:760px){.postcards{grid-template-columns:minmax(0,460px);justify-content:center}.postcard-inbox{display:none}.postcard-controls{display:flex}}@media (max-width:400px){.film-controls{gap:8px}}
