:root{--brown:#3a1d14;--butter:#f4eba9;--orange:#f3a9bc;--rose:#c2557a;--sage:#cfe7e4;--ink:#2a140d;--pink:#ffd6df;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}html{scroll-behavior:smooth;scroll-padding-top:env(safe-area-inset-top,0px)}*{box-sizing:border-box;margin:0}body{background:var(--brown);color:var(--ink);font-family:DM Sans,system-ui,sans-serif;overflow-x:hidden}html{overflow-x:clip}h1,h2,h3{letter-spacing:-.04em;font-family:Bricolage Grotesque,Arial Black,sans-serif;font-weight:800;line-height:.9}section{padding:clamp(48px,8vw,110px) clamp(20px,6vw,90px)}h2.t{color:var(--brown);margin-bottom:12px;font-size:clamp(44px,8vw,110px)}nav{top:env(safe-area-inset-top,0px);z-index:50;flex-wrap:wrap;justify-content:center;gap:8px;padding:14px;display:flex;position:fixed;left:0;right:0}nav a{background:var(--butter);color:var(--brown);border-radius:99px;padding:7px 14px;font-size:.8rem;font-weight:700;text-decoration:none;transition:all .2s;box-shadow:0 2px 10px #0003}nav a:hover{background:var(--orange);color:var(--brown);transform:translateY(-3px)rotate(-3deg)}.hero{--mx:50%;--my:40%;background:radial-gradient(circle 38vmax at var(--mx) var(--my),#6e3b3f 0,var(--brown) 70%);justify-content:center;align-items:flex-end;min-height:100svh;display:flex;position:relative;overflow:hidden}.L{will-change:transform;position:absolute}.big{letter-spacing:-.05em;color:var(--orange);pointer-events:none;justify-content:center;font-family:Bricolage Grotesque;font-size:clamp(78px,23vw,390px);font-weight:800;line-height:.85;display:flex;top:11vh;left:0;right:0}.big span{animation:.9s cubic-bezier(.3,1.6,.5,1) both drop;display:inline-block}.big span:first-child{animation-delay:.1s}.big span:nth-child(2){animation-delay:.2s}.big span:nth-child(3){animation-delay:.3s}.big span:nth-child(4){animation-delay:.4s}.big span:nth-child(5){animation-delay:.5s}.big span:nth-child(6){animation-delay:.6s}@keyframes drop{0%{opacity:0;transform:translateY(-120%)rotate(-25deg)scale(.4)}to{opacity:1;transform:none}}.sig{color:var(--butter);z-index:4;white-space:nowrap;pointer-events:none;margin-left:-4vw;font-family:Mrs Saint Delafield,cursive;font-size:clamp(56px,12vw,190px);line-height:1;top:calc(11vh + 17vw);left:50%}.sig i{clip-path:inset(0 100% 0 0);font-style:normal;animation:1.2s ease-out .9s forwards wipe;display:block;transform:rotate(-6deg)}@keyframes wipe{to{clip-path:inset(0)}}.me{z-index:3;pointer-events:none;height:min(80vh,760px);margin-left:calc(min(78vh,740px)/-4.16667);animation:1s cubic-bezier(.2,1.2,.4,1) .5s both rise;bottom:0;left:50%}@keyframes rise{0%{opacity:0;transform:translateY(60%)}to{opacity:1;transform:none}}.me img{filter:drop-shadow(0 20px 40px #0008);height:100%}.st{z-index:5;white-space:nowrap;cursor:default;border-radius:99px;padding:9px 16px;font-size:clamp(.72rem,1.3vw,1rem);font-weight:700;animation:.7s cubic-bezier(.3,1.9,.5,1) both pop}.st b{animation:3s ease-in-out infinite bob;display:inline-block}@keyframes pop{0%{opacity:0;transform:scale(0)rotate(-40deg)}to{transform:scale(1) rotate(var(--r,0deg));opacity:1}}@keyframes bob{50%{transform:translateY(-9px)}}.tag{z-index:6;max-width:270px;color:var(--butter);animation:1s 1.4s both fade;position:absolute;bottom:12vh;left:clamp(20px,5vw,80px)}.tag b{color:#fff;letter-spacing:-.03em;margin-bottom:10px;font-family:Bricolage Grotesque;font-size:1.7rem;line-height:1;display:block}.tag em{color:var(--orange);border-right:3px solid var(--orange);padding-right:3px;font-style:normal;animation:.8s infinite blink}@keyframes blink{50%{border-color:#0000}}@keyframes fade{0%{opacity:0;transform:translateY(20px)}}.cta{background:var(--orange);color:var(--brown);border-radius:99px;margin-top:16px;padding:12px 22px;font-weight:700;text-decoration:none;transition:transform .15s;display:inline-block}.scroll{z-index:6;color:var(--butter);writing-mode:vertical-rl;font-size:.8rem;font-weight:700;animation:1s 1.6s both fade;position:absolute;bottom:7vh;right:clamp(20px,5vw,80px)}.scroll:after{content:"";background:var(--orange);width:2px;height:50px;margin:10px auto 0;animation:1.4s infinite bob;display:block}.about{background:var(--butter);grid-template-columns:1.2fr 1fr;align-items:center;gap:40px;display:grid}.about h2{color:var(--brown);font-size:clamp(56px,10vw,140px)}.about p{max-width:520px;margin:22px 0;line-height:1.65}.pill{border:2px solid var(--brown);background:#fff8;border-radius:99px;margin:0 6px 8px 0;padding:6px 14px;font-size:.85rem;font-weight:700;transition:all .2s;display:inline-block}.pill:hover{background:var(--orange);color:var(--brown);border-color:var(--orange);transform:rotate(-4deg)scale(1.08)}.stats{flex-wrap:wrap;gap:26px;margin-top:20px;display:flex}.stats div b{color:var(--rose);letter-spacing:-.04em;font-family:Bricolage Grotesque;font-size:3rem;display:block}.stats div span{font-size:.85rem;font-weight:700}.frame{background:var(--sage);aspect-ratio:1;transform-style:preserve-3d;border-radius:44px 44px 44px 120px;justify-content:center;align-items:flex-end;transition:transform .2s;display:flex;position:relative}.avw{border-radius:inherit;justify-content:center;align-items:flex-end;width:100%;height:100%;display:flex;position:absolute;inset:0;overflow:hidden}.fl{width:100%}.av3d{aspect-ratio:1;cursor:pointer;transform-origin:50% 100%;touch-action:manipulation;width:100%;height:auto;display:block;scale:1.04}.hi{z-index:3;background:var(--brown);color:var(--butter);border-radius:24px 24px 4px;padding:12px 20px;font:800 1.1rem Bricolage Grotesque;animation:2.4s ease-in-out infinite wv;position:absolute;top:-14px;right:-6px}@keyframes wv{50%{transform:rotate(-6deg)scale(1.08)}}.heart{pointer-events:none;z-index:4;font-size:1.6rem;animation:1.6s ease-out forwards hup;position:absolute;bottom:30%}@keyframes hup{to{opacity:0;transform:translateY(-220px)scale(1.4)}}.strip{background:var(--orange);white-space:nowrap;margin:10px 0;padding:16px 0;overflow:hidden;transform:rotate(-1.5deg)scale(1.03)}.strip div{color:var(--brown);letter-spacing:-.03em;font-family:Bricolage Grotesque;font-size:clamp(1.4rem,3vw,2.4rem);font-weight:800;animation:22s linear infinite mq;display:inline-block}.strip:hover div{animation-play-state:paused}@keyframes mq{to{transform:translate(-50%)}}.skills{background:var(--sage);position:relative}.hint{color:var(--rose);margin-bottom:34px;font-weight:700}.notes{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:26px;display:grid}.note{background:var(--butter);box-shadow:6px 8px 0 var(--brown);touch-action:none;-webkit-user-select:none;user-select:none;rotate:var(--r);translate:var(--x,0px) var(--y,0px);cursor:grab;border-radius:6px;padding:26px;transition:box-shadow .2s,scale .2s,rotate .35s,opacity .8s,transform .8s cubic-bezier(.2,1,.3,1);position:relative}.note:first-child{--r:-2deg}.note:nth-child(2){--r:1.6deg;background:#ffd5df}.note:nth-child(3){--r:-1deg;background:#fff}.note:nth-child(4){--r:2deg}.note:hover{scale:1.03}.note[data-drag]{box-shadow:14px 18px 0 var(--brown);cursor:grabbing;transition:box-shadow .2s,scale .2s;scale:1.06}.note:before{content:"";background:#f3a9bc99;width:46px;height:18px;margin-left:-23px;position:absolute;top:-10px;left:50%;transform:rotate(-3deg)}.note h3{margin-bottom:12px;font-size:1.5rem}.note p{font-size:.95rem;line-height:1.6}@media (pointer:coarse){.note{touch-action:pan-y}}.work{background:var(--brown);color:var(--butter)}.work h2.t{color:var(--sage)}.proj{background:var(--butter);color:var(--brown);transform-style:preserve-3d;border-radius:32px;grid-template-columns:1fr 1fr;align-items:center;gap:30px;margin-bottom:28px;padding:clamp(20px,3vw,40px);transition:transform .15s,box-shadow .3s,opacity .8s;display:grid}.proj--sage{background:var(--sage)}.proj:hover{box-shadow:0 30px 60px #0007}.proj h3{margin-bottom:12px;font-size:clamp(34px,4.5vw,60px)}.proj p{margin-bottom:14px;line-height:1.6}.btn{background:var(--brown);color:var(--butter);border-radius:99px;margin-right:8px;padding:10px 18px;font-size:.9rem;font-weight:700;text-decoration:none;transition:transform .15s;display:inline-block}.btn:hover{background:var(--orange);color:var(--brown)}.zoomable{cursor:zoom-in}.shots{justify-content:center;align-items:center;gap:12px;display:flex}.shots img{border-radius:16px;max-width:100%;box-shadow:0 8px 24px #0003}.shots img.full{width:100%}.shots.cc{gap:14px;padding:0}.shots.cc .w{z-index:1;flex:none;width:64%;margin:0;position:relative}.shots img.ph{z-index:2;width:30%;box-shadow:none;filter:drop-shadow(0 14px 22px #0004);border-radius:0;flex:none;margin-left:0;position:relative}.tour{margin:34px 0 10px}.tour h3{color:var(--sage);margin-bottom:8px;font-size:clamp(30px,4vw,54px)}.tour>p{max-width:620px;margin-bottom:20px;line-height:1.6}.tg{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;display:grid}.tg figure{background:var(--butter);color:var(--brown);border-radius:22px;padding:12px;transition:transform .25s}.tg figure:hover{transform:translateY(-8px)rotate(-1deg)}.tg img{cursor:zoom-in;aspect-ratio:16/10;object-fit:cover;object-position:top;border-radius:12px;width:100%;display:block}.tg figcaption{padding:10px 4px 2px;font-size:.9rem;font-weight:700}.cs{background:var(--pink);color:var(--brown);border-radius:32px;margin-top:10px;padding:clamp(20px,3vw,40px)}.cs h3{margin-bottom:8px;font-size:clamp(32px,4.5vw,60px)}.cs>p{max-width:640px;margin-bottom:18px;line-height:1.6}.tabs{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.tabs button{border:2px solid var(--brown);color:var(--brown);cursor:pointer;background:0 0;border-radius:99px;padding:8px 16px;font:700 .85rem DM Sans;transition:all .2s}.tabs button.on,.tabs button:hover{background:var(--brown);color:var(--butter)}.viewer{background:#fff;border-radius:20px;place-items:center;min-height:240px;padding:14px;display:grid;position:relative}.viewer img{object-fit:contain;cursor:zoom-in;max-width:100%;max-height:560px;display:none}.viewer img.on{animation:.5s fade;display:block}.viewer small{color:var(--rose);font-weight:700;position:absolute;bottom:8px;right:16px}.cap{margin-top:12px;font-weight:500;line-height:1.5}.jgrid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.jgrid figure{background:#fff;border-radius:16px;margin:0;padding:8px;transition:transform .25s;box-shadow:0 8px 24px #0002}.jgrid figure:hover{transform:translateY(-6px)rotate(-1deg)}.jgrid img{aspect-ratio:4/3;object-fit:cover;object-position:top;cursor:zoom-in;border-radius:10px;width:100%;display:block}.jgrid figcaption{color:var(--brown);padding:8px 4px 2px;font-size:.85rem;font-weight:700}.ncwwrap{flex-direction:column;align-items:center;gap:16px;width:100%;display:flex}.ncwwrap img{cursor:zoom-in;max-width:100%;display:block}.ncwwrap .dk{border:1px solid #0002;border-radius:16px;width:100%;box-shadow:0 8px 24px #0003}.ncwwrap .phs{justify-content:center;align-items:flex-start;gap:22px;width:100%;display:flex}.ncwwrap .bz{background:#1c1c1e;border-radius:32px;width:31%;padding:7px;position:relative;box-shadow:0 14px 30px #0004,inset 0 0 0 1.5px #3a3a3c}.ncwwrap .bz:before{content:"";z-index:2;background:#000;border-radius:9px;width:30%;height:8px;margin-left:-15%;position:absolute;top:13px;left:50%}.ncwwrap .bz img{width:100%;box-shadow:none;background:#fff;border:0;border-radius:25px;padding:0;display:block}.lb{z-index:200;cursor:zoom-out;background:#000d;place-items:center;padding:20px;display:none;position:fixed;inset:0}.lb.on{display:grid}.lb img{background:#fff;border-radius:12px;max-width:100%;max-height:100%}.exp{background:var(--sage)}.tl{gap:20px;display:grid}.job{border-left:8px solid var(--orange);background:#fff9;border-radius:12px;grid-template-columns:200px 1fr;gap:20px;padding:22px 26px;transition:transform .25s;display:grid}.job:hover{background:#fff;transform:translate(14px)scale(1.01)}.job .d{color:var(--rose);font-weight:700}.job h3{margin-bottom:8px;font-size:1.5rem}.job li{margin:0 0 6px 18px;line-height:1.5}.ach{background:var(--brown)}.bubbles{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px;display:grid}.bub{background:var(--butter);color:var(--brown);border-radius:26px 26px 26px 4px;padding:24px;font-weight:500;line-height:1.5;transition:all .25s}.bub:hover{background:var(--orange);color:var(--brown);transform:translateY(-8px)rotate(-2deg)}.bub b{margin-bottom:6px;font-family:Bricolage Grotesque;font-size:1.25rem;display:block}.contact{background:var(--brown);color:var(--sage);padding-top:40px}.contact h2{color:var(--sage);font-size:clamp(60px,12vw,190px)}.contact .mail{overflow-wrap:anywhere;background:var(--butter);max-width:100%;color:var(--brown);border-radius:99px;margin:30px 0;padding:16px 30px;font-size:1.1rem;font-weight:700;text-decoration:none;display:inline-block}.contact .links{flex-wrap:wrap;gap:22px;display:flex}.contact .links a{color:var(--butter)}footer{background:var(--brown);color:#fff8;text-align:center;padding:24px;font-size:.85rem}.rv{opacity:0;transition:all .8s cubic-bezier(.2,1,.3,1);transform:translateY(40px)scale(.97)}.rv.on{opacity:1;transform:none}.cur-dot,.cur-ring{will-change:translate;z-index:99;pointer-events:none;opacity:0;border-radius:50%;transition:opacity .3s;display:none;position:fixed;top:0;left:0;transform:translate(-50%,-50%)}.cur-dot.ready,.cur-ring.ready{opacity:1}.cur-dot{background:var(--rose);width:8px;height:8px}.cur-ring{border:2px solid var(--rose);width:38px;height:38px;color:var(--brown);justify-content:center;align-items:center;font:700 11px DM Sans;transition:width .25s,height .25s,background .25s,opacity .3s}.cur-ring.h{background:var(--orange);width:76px;height:76px}@media (hover:hover) and (pointer:fine){.cur-dot,.cur-ring{display:flex}body,a,button{cursor:none}}@media (width<=800px){.about,.proj,.job{grid-template-columns:1fr}nav{gap:6px;padding:10px 8px}nav a{padding:6px 10px;font-size:.72rem}.tag{background:#3a1d14d9;border-radius:18px;max-width:none;padding:14px 16px;inset:auto 14px 3vh}.tag b{font-size:1.35rem}.me{height:62vh;margin-left:-9.362vh}.sig{margin-left:0;font-size:15vw;top:calc(11vh + 24vw);left:auto;right:6vw}.st.x{display:none}.st-0{top:48vh!important;left:4vw!important;right:auto!important}.st-1{top:40vh!important;left:auto!important;right:4vw!important}.contact .mail{padding:14px 20px;font-size:clamp(.85rem,4vw,1.1rem)}.scroll{display:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.rv{opacity:1;transform:none}}
