.minimal-site{--paper:#f3f0e8;--ink:#171717;--muted:#6f6c65;--blue:#1d4ed8;--coral:#f15b3f;--lime:#b8df4e;--line:#17171733;--page-y:0px;--page-progress:0;background:radial-gradient(circle at 18% 8%, #ffffffd1, transparent 24rem), var(--paper);min-height:100vh;color:var(--ink);cursor:default;font-family:Manrope Variable,Helvetica Neue,sans-serif;overflow:clip}.minimal-site *,.minimal-site :before,.minimal-site :after{box-sizing:border-box}.minimal-site a{color:inherit;text-decoration:none}.minimal-site em{font-family:Square Peg,cursive;font-style:normal;font-weight:400}.minimal-site [data-reveal],.minimal-site [data-reveal].is-visible{opacity:1}.minimal-loader{z-index:9999;background:var(--paper);place-content:center;justify-items:center;gap:1rem;animation:.52s 1.55s forwards minimal-loader-out;display:grid;position:fixed;inset:0}.minimal-loader-mark{font:400 clamp(4rem,8vw,7rem)/.8 Square Peg,cursive}.minimal-loader p{letter-spacing:.15em;text-transform:uppercase;margin:0;font:400 .72rem/1 IBM Plex Mono,monospace}.minimal-loader-line{background:#17171726;width:8rem;height:2px;overflow:hidden}.minimal-loader-line span{background:var(--coral);transform-origin:0;width:100%;height:100%;animation:1.4s cubic-bezier(.65,0,.35,1) both minimal-loading;display:block}@keyframes minimal-loading{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes minimal-loader-out{to{opacity:0;visibility:hidden;pointer-events:none}}.minimal-cursor{z-index:8000;pointer-events:none;opacity:0;border:1px solid #17171773;border-radius:50%;place-items:center;width:2.7rem;height:2.7rem;transition:width .25s,height .25s,margin .25s,background .25s,opacity .2s;display:grid;position:fixed;top:-1.35rem;left:-1.35rem}.minimal-cursor[data-active=true]{opacity:1}.minimal-cursor span{opacity:0;text-transform:uppercase;font:500 .55rem/1 IBM Plex Mono,monospace;transition:opacity .2s}.minimal-cursor[data-hover=true]{background:var(--lime);border-color:var(--ink);width:4.2rem;height:4.2rem;margin:-.75rem 0 0 -.75rem}.minimal-cursor[data-hover=true] span{opacity:1}.minimal-progress{z-index:5000;background:0 0;height:2px;position:fixed;inset:0 0 auto}.minimal-progress span{background:var(--coral);height:100%;transform:scaleX(var(--page-progress));transform-origin:0;display:block}.minimal-sound-toggle{z-index:5200;min-width:3.35rem;color:var(--ink);letter-spacing:.08em;text-transform:uppercase;-webkit-backdrop-filter:blur(1rem);backdrop-filter:blur(1rem);cursor:pointer;background:#f3f0e8b8;border:1px solid #17171747;border-radius:999px;align-items:center;gap:.38rem;padding:.48rem .58rem;font:600 .46rem/1 IBM Plex Mono,monospace;transition:background .22s,transform .22s;display:flex;position:fixed;bottom:clamp(1rem,2vw,2rem);left:clamp(1rem,2vw,2rem);box-shadow:0 .35rem 1.2rem #17171712}.minimal-sound-toggle:hover{transform:translateY(-.15rem)}.minimal-sound-toggle small{font:inherit;letter-spacing:inherit}.minimal-sound-bars{align-items:center;gap:2px;height:.75rem;display:flex}.minimal-sound-bars i{transform-origin:50%;background:currentColor;border-radius:2px;width:2px;height:35%;display:block}.minimal-sound-toggle.is-playing .minimal-sound-bars{color:var(--coral)}.minimal-sound-toggle.is-playing .minimal-sound-bars i{animation:.75s ease-in-out infinite alternate minimal-sound-bars}.minimal-sound-toggle.is-playing .minimal-sound-bars i:nth-child(2){animation-delay:-.38s}.minimal-sound-toggle.is-playing .minimal-sound-bars i:nth-child(3){animation-delay:-.16s}.minimal-sound-toggle.is-blocked{background:#b8df4edb}@keyframes minimal-sound-bars{to{height:100%}}.minimal-header{z-index:100;grid-template-columns:1fr auto;align-items:center;padding:1.4rem clamp(1.2rem,3.2vw,3.8rem);display:grid;position:absolute;inset:0 0 auto}.minimal-logo{letter-spacing:.01em;font:400 2.7rem/.8 Square Peg,cursive}.minimal-logo span{color:var(--coral)}.minimal-header nav{letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:clamp(1rem,2.2vw,2.4rem);font-size:.72rem;font-weight:650;display:flex}.minimal-header nav a{padding:.65rem 0;position:relative}.minimal-header nav a:after{content:"";transform-origin:100%;background:currentColor;height:1px;transition:transform .25s;position:absolute;inset:auto 0 .35rem;transform:scaleX(0)}.minimal-header nav a:hover:after{transform-origin:0;transform:scaleX(1)}.minimal-header nav a:focus-visible:after{transform-origin:0;transform:scaleX(1)}.minimal-header .minimal-version-link{border:1px solid var(--ink);border-radius:999px;padding:.7rem 1rem}.minimal-header .minimal-version-link:after{display:none}.minimal-menu-button{background:var(--ink);border-radius:50%;width:2.8rem;height:2.8rem;display:none}.minimal-menu-button span{background:var(--paper);width:1rem;height:1px;margin:.28rem auto;display:block}.minimal-hero{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1.2fr) minmax(24rem,.8fr);min-height:100svh;padding:clamp(7rem,12vh,9rem) clamp(1.2rem,3.2vw,3.8rem) clamp(2rem,5vh,4rem);display:grid;position:relative}.minimal-hero-copy{z-index:2;flex-direction:column;justify-content:center;display:flex;position:relative}.minimal-hero [data-intro]{opacity:0;animation:.85s cubic-bezier(.16,.82,.16,1) 1.7s forwards minimal-intro}.minimal-hero [data-intro]:nth-child(2){animation-delay:1.79s}.minimal-hero [data-intro]:nth-child(3){animation-delay:1.88s}.minimal-hero-art[data-intro]{animation-delay:1.95s}@keyframes minimal-intro{0%{opacity:0;transform:translateY(2rem)}to{opacity:1;transform:translateY(0)}}.minimal-eyebrow{letter-spacing:.16em;margin:0 0 clamp(2rem,5vh,4rem);font:500 .68rem/1.2 IBM Plex Mono,monospace}.minimal-hero h1{letter-spacing:-.075em;margin:0;font-size:clamp(4.4rem,8.7vw,9rem);font-weight:680;line-height:.76}.minimal-hero h1 em{color:var(--blue);letter-spacing:-.025em;font-size:1.1em;display:inline-block;position:relative;transform:rotate(-2deg)}.minimal-hero h1 em:after{content:"";border-top:3px solid var(--coral);border-radius:50%;width:52%;height:.09em;position:absolute;bottom:-.03em;right:3%;transform:rotate(-2deg)}.minimal-hero-bottom{justify-content:space-between;align-items:end;gap:2rem;width:min(52rem,92%);margin-top:clamp(3rem,7vh,6rem);display:flex}.minimal-hero-bottom>p{color:#363530;max-width:34rem;margin:0;font-size:clamp(1rem,1.35vw,1.25rem);line-height:1.55}.minimal-round-link{letter-spacing:.07em;text-transform:uppercase;flex:none;align-items:center;gap:.7rem;font-size:.72rem;font-weight:700;display:flex}.minimal-round-link span{border:1px solid var(--ink);border-radius:50%;place-items:center;width:3.2rem;height:3.2rem;transition:transform .25s,background .25s;display:grid}.minimal-round-link:hover span{background:var(--lime);transform:rotate(-35deg)}.minimal-hero-art{opacity:0;min-height:32rem;position:relative}.minimal-scene{z-index:0;opacity:.9;position:absolute;inset:-8% -20% 7% -10%}.minimal-photo-wrap{z-index:1;aspect-ratio:3/4;border:1px solid var(--ink);width:min(24vw,23rem);transform:translateY(calc(var(--page-y) * .055)) rotate(2.5deg);border-radius:48% 48% 3rem 3rem;position:absolute;top:12%;right:2%;overflow:hidden;box-shadow:.9rem .9rem #1d4ed81f}.minimal-photo-wrap img{object-fit:cover;object-position:50% 32%;filter:saturate(.78)contrast(1.02);width:100%;height:100%}.minimal-hand-note{z-index:2;color:var(--ink);background:#f3f0e8f0;border:1px solid #171717b3;border-radius:.75rem;margin:0;padding:.55rem .8rem .45rem;font:400 clamp(1.4rem,2vw,2.05rem)/.95 Indie Flower,cursive;position:absolute;bottom:7%;right:3%;transform:rotate(-5deg);box-shadow:.4rem .45rem #b8df4ed9}.minimal-scribble{border-bottom:2px solid var(--coral);border-radius:50%;width:8rem;height:2.5rem;position:absolute;bottom:2%;right:2%;transform:rotate(-8deg)}.minimal-marquee{border-bottom:1px solid var(--line);background:var(--ink);color:var(--paper);overflow:hidden}.minimal-marquee div{align-items:center;width:max-content;padding:.95rem 0;animation:28s linear infinite minimal-marquee;display:flex}.minimal-marquee span{letter-spacing:.12em;white-space:nowrap;font:600 .75rem/1 IBM Plex Mono,monospace}.minimal-marquee i{color:var(--lime);margin:0 2rem;font-style:normal}@keyframes minimal-marquee{to{transform:translate(-50%)}}.minimal-section{padding:clamp(6rem,11vw,11rem) clamp(1.2rem,3.2vw,3.8rem)}.minimal-section-index{color:var(--muted);letter-spacing:.11em;text-transform:uppercase;align-items:center;gap:.8rem;margin-bottom:clamp(4rem,7vw,7rem);font:500 .67rem/1 IBM Plex Mono,monospace;display:flex}.minimal-section-index span{border:1px solid var(--line);width:2.2rem;height:2.2rem;color:var(--ink);border-radius:50%;place-items:center;display:grid}.minimal-about{border-bottom:1px solid var(--line)}.minimal-about-grid{grid-template-columns:minmax(0,1.4fr) minmax(20rem,.6fr);gap:clamp(3rem,8vw,9rem);display:grid}.minimal-about h2,.minimal-skills-head h2{letter-spacing:-.065em;margin:0;font-size:clamp(3.4rem,6.4vw,7rem);font-weight:590;line-height:.92}.minimal-about h2 em,.minimal-skills-head h2 em{color:var(--blue);letter-spacing:-.02em;font-size:1.14em}.minimal-about-copy{align-self:end}.minimal-about-copy p{color:#45423d;margin:0 0 1.35rem;font-size:clamp(1rem,1.3vw,1.16rem);line-height:1.75}.minimal-signature{color:var(--coral);margin-top:2rem;font:400 4.5rem/.8 Square Peg,cursive;transform:rotate(-5deg)}.minimal-about-portrait{aspect-ratio:2;border:1px solid var(--ink);background:#d8d5cd;border-radius:1.35rem;width:100%;margin:clamp(4rem,8vw,8rem) 0 0;position:relative;overflow:hidden}.minimal-about-portrait:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000 45%,#171717b8);position:absolute;inset:0}.minimal-about-portrait img{object-fit:cover;object-position:50% 29%;filter:saturate(.78)contrast(1.04);width:100%;height:100%}.minimal-about-portrait figcaption{z-index:1;color:#fff;text-align:right;position:absolute;bottom:clamp(1.5rem,4vw,4rem);right:clamp(1.5rem,4vw,4.5rem)}.minimal-about-portrait figcaption span{letter-spacing:.12em;text-transform:uppercase;margin-bottom:1rem;font:500 .62rem/1 IBM Plex Mono,monospace;display:block}.minimal-about-portrait figcaption strong{font:400 clamp(2rem,3.5vw,4rem)/.92 Indie Flower,cursive}.minimal-projects{border-bottom:1px solid var(--line)}.minimal-project-list{gap:1rem;display:grid}.minimal-project{border:1px solid var(--ink);background:#eeeae0;border-radius:1.35rem;grid-template-columns:minmax(20rem,.78fr) minmax(0,1.22fr);min-height:min(38rem,75vh);transition:transform .35s,box-shadow .35s;display:grid;overflow:hidden}.minimal-project:hover{box-shadow:.8rem .8rem 0 var(--ink);transform:translateY(-.45rem)rotate(-.25deg)}.minimal-project-copy{flex-direction:column;padding:clamp(1.5rem,3vw,3.2rem);display:flex}.minimal-project-meta{letter-spacing:.1em;text-transform:uppercase;justify-content:space-between;gap:1rem;font:500 .66rem/1 IBM Plex Mono,monospace;display:flex}.minimal-project h3{letter-spacing:-.07em;margin:auto 0 1.2rem;font-size:clamp(3rem,5.4vw,6rem);font-weight:620;line-height:.85}.minimal-project strong{max-width:28rem;margin-bottom:1rem;font-size:clamp(1.1rem,1.8vw,1.55rem);line-height:1.25}.minimal-project-copy p{color:#47443d;max-width:33rem;margin:0 0 2rem;line-height:1.65}.minimal-project-copy small{text-transform:uppercase;border:1px solid;border-radius:999px;width:fit-content;padding:.55rem .75rem;font:500 .62rem/1 IBM Plex Mono,monospace}.minimal-project-media{background:#d8d5cd;min-height:26rem;position:relative;overflow:hidden}.minimal-project-media video{object-fit:cover;width:100%;height:100%;transition:transform .8s cubic-bezier(.2,.7,.1,1)}.minimal-project-media.is-desktop{background:#090d14;place-items:center;display:grid}.minimal-project-media.is-desktop video{object-fit:contain;object-position:center}.minimal-project-media.is-mobile{isolation:isolate;background:radial-gradient(circle at 50% 45%,#ffffffe0 0 22%,#0000 22.5%),linear-gradient(135deg,#e8e3d7,#c9c2b4);place-items:center;display:grid}.minimal-project-media.is-mobile:before{content:"";z-index:-1;aspect-ratio:1;border:1px solid #17171747;border-radius:50%;width:min(70%,31rem);position:absolute}.minimal-project-media.is-mobile:after{content:"mobile / app";letter-spacing:.11em;text-transform:uppercase;font:500 .58rem/1 IBM Plex Mono,monospace;position:absolute;bottom:1.25rem;left:1.2rem}.minimal-project-media.is-mobile video{aspect-ratio:9/19.2;object-fit:cover;border:.52rem solid #171717;border-radius:2.15rem;width:min(39%,17rem);height:auto;max-height:84%;box-shadow:0 2rem 4rem #17171740,inset 0 0 0 1px #ffffff4d}.minimal-project:hover video{transform:scale(1.035)}.minimal-project:hover .minimal-project-media.is-desktop video{transform:none}.minimal-project:hover .minimal-project-media.is-mobile video{transform:translateY(-.35rem)rotate(1deg)}.minimal-project-arrow{background:var(--paper);width:3.7rem;height:3.7rem;color:var(--ink);border-radius:50%;place-items:center;font-size:1.3rem;display:grid;position:absolute;bottom:1.2rem;right:1.2rem}.tone-blue .minimal-project-copy{background:#cbdaf9}.tone-rose .minimal-project-copy{background:#f1cdc8}.tone-green .minimal-project-copy{background:#dce8ba}.tone-orange .minimal-project-copy{background:#f1d0aa}.minimal-skills{background:var(--ink);color:var(--paper)}.minimal-skills .minimal-section-index{color:#a8a59d}.minimal-skills .minimal-section-index span{color:var(--paper);border-color:#f3f0e840}.minimal-skills-head{grid-template-columns:1fr minmax(18rem,.44fr);align-items:end;gap:4rem;margin-bottom:clamp(4rem,8vw,8rem);display:grid}.minimal-skills-head h2 em{color:var(--lime)}.minimal-skills-head>p{color:#bdb9b0;margin:0;line-height:1.7}.minimal-skill-grid{border-top:1px solid #f3f0e838;border-left:1px solid #f3f0e838;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.minimal-skill-grid article{border-bottom:1px solid #f3f0e838;border-right:1px solid #f3f0e838;min-height:24rem;padding:clamp(1.5rem,3.2vw,3.5rem)}.minimal-skill-grid article>span{color:var(--lime);font:500 .7rem/1 IBM Plex Mono,monospace}.minimal-skill-grid h3{letter-spacing:-.055em;margin:3.5rem 0 1.2rem;font-size:clamp(2rem,3.4vw,3.8rem);font-weight:550}.minimal-skill-grid p{color:#bdb9b0;max-width:36rem;margin:0 0 2rem;line-height:1.7}.minimal-skill-grid article div{flex-wrap:wrap;gap:.45rem;display:flex}.minimal-skill-grid small{border:1px solid #f3f0e859;border-radius:999px;padding:.5rem .65rem;font-size:.65rem}.minimal-skills-note{width:fit-content;color:var(--lime);text-align:right;margin:clamp(3rem,6vw,6rem) 0 0 auto;font:400 clamp(2rem,3.4vw,3.8rem)/.92 Indie Flower,cursive;transform:rotate(-2deg)}.minimal-method{border-bottom:1px solid var(--line);position:relative}.minimal-method-line{border-top:1px solid var(--ink);grid-template-columns:repeat(4,1fr);display:grid}.minimal-method-line div{border-right:1px solid var(--line);padding:1.3rem .5rem 4rem 0;position:relative}.minimal-method-line div:last-child{border-right:0}.minimal-method-line span{font:500 .65rem/1 IBM Plex Mono,monospace}.minimal-method-line strong{letter-spacing:-.05em;margin-top:3rem;font-size:clamp(1.8rem,3vw,3.3rem);font-weight:560;display:block}.minimal-method-line div:before{content:"";background:var(--coral);border-radius:50%;width:.7rem;height:.7rem;position:absolute;top:-.35rem;left:0}.minimal-method-note{width:fit-content;color:var(--blue);margin:5rem 0 0 auto;font:400 clamp(2rem,3.4vw,3.7rem)/.92 Indie Flower,cursive;transform:rotate(-3deg)}.minimal-contact{background:var(--blue);color:#fff;min-height:88vh;padding:clamp(6rem,11vw,10rem) clamp(1.2rem,3.2vw,3.8rem) 2rem;position:relative;overflow:hidden}.minimal-contact>p{z-index:3;max-width:38rem;margin:0;font-size:clamp(1rem,1.5vw,1.3rem);line-height:1.55;position:relative}.minimal-contact h2{z-index:1;letter-spacing:-.085em;white-space:normal;margin:clamp(4rem,7vw,7rem) 0 clamp(2rem,3vw,3rem);font-size:clamp(4.5rem,9.8vw,10.5rem);font-weight:600;line-height:.72;position:relative}.minimal-contact h2 span{color:var(--lime);font:400 1.15em/.5 Square Peg,cursive}.minimal-contact-actions{z-index:1;flex-wrap:wrap;gap:.8rem;display:flex;position:relative}.minimal-contact-actions a{letter-spacing:.08em;text-transform:uppercase;border:1px solid #ffffffb3;border-radius:999px;padding:1rem 1.35rem;font-size:.72rem;font-weight:700;transition:background .25s,color .25s}.minimal-contact-actions a:hover{background:var(--lime);border-color:var(--lime);color:var(--ink)}.minimal-contact-photo{z-index:2;aspect-ratio:3/4;background:var(--paper);width:clamp(10rem,16vw,16rem);color:var(--ink);border:1px solid #ffffffb3;border-radius:46% 46% 1.2rem 1.2rem;padding:.45rem;position:absolute;top:clamp(2.5rem,5vw,5rem);right:clamp(2rem,5vw,5rem);transform:rotate(4deg);box-shadow:1rem 1rem #b8df4ebf}.minimal-contact-photo img{object-fit:cover;object-position:50% 34%;border-radius:inherit;filter:saturate(.84);width:100%;height:100%}.minimal-contact-photo span{z-index:1;color:#fff;white-space:nowrap;background:#171717c2;border-radius:.5rem;padding:.32rem .55rem;font:400 1.35rem/1 Indie Flower,cursive;position:absolute;bottom:.7rem;right:.6rem;transform:rotate(-4deg)}.minimal-footer{z-index:1;letter-spacing:.07em;text-transform:uppercase;border-top:1px solid #ffffff59;grid-template-columns:1fr 1fr auto auto;align-items:end;gap:2rem;margin-top:clamp(8rem,17vw,16rem);padding-top:1.4rem;font:500 .63rem/1.5 IBM Plex Mono,monospace;display:grid;position:relative}@media (max-width:980px){.minimal-header{position:absolute}.minimal-header nav{z-index:-1;background:var(--ink);color:var(--paper);opacity:0;pointer-events:none;flex-direction:column;justify-content:center;padding:6rem 2rem;font-size:1.3rem;transition:opacity .3s;display:flex;position:fixed;inset:0}.minimal-header nav.is-open{opacity:1;pointer-events:auto}.minimal-menu-button{z-index:2;display:block;position:relative}.minimal-hero{grid-template-columns:1fr;min-height:auto;padding-top:9rem}.minimal-hero-art{min-height:42rem}.minimal-photo-wrap{width:min(56vw,23rem);right:12%}.minimal-scene{inset:-5% 0 0}.minimal-about-grid,.minimal-skills-head{grid-template-columns:1fr}.minimal-about-copy{max-width:40rem;margin-left:auto}.minimal-about-portrait{aspect-ratio:4/3}.minimal-project{grid-template-columns:1fr}.minimal-project-copy{min-height:30rem}.minimal-project-media{min-height:33rem}.minimal-project-media.is-mobile video{width:min(44%,16rem)}}@media (max-width:680px){.minimal-site [data-reveal]{opacity:1}.minimal-cursor{display:none}.minimal-hero{min-height:100svh;padding-top:7rem}.minimal-eyebrow{margin-bottom:2rem}.minimal-hero h1{font-size:clamp(3.8rem,18vw,6.2rem);line-height:.79}.minimal-hero-bottom{flex-direction:column;align-items:start;width:100%;margin-top:2.8rem}.minimal-hero-art{min-height:30rem}.minimal-photo-wrap{width:63vw;max-width:19rem;top:10%;right:11%;box-shadow:.55rem .55rem #1d4ed81f}.minimal-hand-note{font-size:1.35rem;bottom:1.5rem;right:0}.minimal-scene{inset:-10% -20% -5%}.minimal-section{padding-top:5.5rem;padding-bottom:5.5rem}.minimal-section-index{margin-bottom:3.2rem}.minimal-about h2,.minimal-skills-head h2{font-size:clamp(3.1rem,14vw,4.7rem)}.minimal-about-grid{gap:3rem}.minimal-about-portrait{aspect-ratio:3/4}.minimal-about-portrait:after{background:linear-gradient(#0000 45%,#171717bf)}.minimal-about-portrait img{object-position:48% 44%}.minimal-about-portrait figcaption{bottom:1.5rem;right:1.25rem}.minimal-project{border-radius:1rem;min-height:0}.minimal-project-copy{min-height:27rem}.minimal-project h3{font-size:3.6rem}.minimal-project-media{min-height:22rem}.minimal-project-media.is-mobile{min-height:30rem}.minimal-project-media.is-mobile video{border-width:.42rem;border-radius:1.7rem;width:min(48%,13.5rem);max-height:86%}.minimal-skill-grid{grid-template-columns:1fr}.minimal-skill-grid article{min-height:22rem}.minimal-method-line{grid-template-columns:repeat(2,1fr)}.minimal-method-line div{border-bottom:1px solid var(--line)}.minimal-method-note{margin-top:3.5rem}.minimal-contact{min-height:100svh}.minimal-contact-photo{width:9.5rem;margin:0 0 4rem auto;position:relative;top:auto;right:auto}.minimal-contact h2{white-space:normal;margin:4rem 0;font-size:22vw;line-height:.72}.minimal-footer{grid-template-columns:1fr;margin-top:8rem}}@media (prefers-reduced-motion:reduce){.minimal-site *,.minimal-site :before,.minimal-site :after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.minimal-site [data-reveal],.minimal-hero [data-intro]{opacity:1!important;transform:none!important}.minimal-photo-wrap{transform:rotate(2.5deg)}.minimal-scene{display:none}}
