:root{
  --paper:#e9e8e4;
  --ink:#11110f;
  --line:rgba(17,17,15,.22);
  --soft:rgba(17,17,15,.56);
  --pad:clamp(18px,2.2vw,38px);
  --radius:18px;
  --ease:cubic-bezier(.2,.75,.2,1);
}
*{box-sizing:border-box}html.lenis{height:auto}.lenis.lenis-smooth{scroll-behavior:auto}.lenis.lenis-stopped{overflow:hidden}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,Arial,sans-serif;overflow-x:hidden}button,a{color:inherit;font:inherit}a{text-decoration:none}button{background:none;border:0;cursor:pointer}::selection{background:var(--ink);color:var(--paper)}
.shell{width:100%;padding-left:var(--pad);padding-right:var(--pad)}
.micro{font:400 10px/1.25 "DM Mono",monospace;letter-spacing:.08em;text-transform:uppercase}
.noise{position:fixed;inset:0;pointer-events:none;z-index:1000;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");mix-blend-mode:multiply}
#field{position:fixed;inset:0;width:100%;height:100%;z-index:-2;pointer-events:none}#field.is-2d{opacity:.45}
.tag{position:fixed;left:0;top:0;z-index:1100;pointer-events:none;background:#111;color:#eee;padding:12px 14px;border-radius:6px;width:236px;opacity:0;scale:.9;transition:opacity .25s var(--ease),scale .3s var(--ease);font:400 9px/1.5 "DM Mono",monospace;letter-spacing:.06em;text-transform:uppercase;will-change:transform}.tag.is-on{opacity:1;scale:1}.tag__head{display:flex;justify-content:space-between;border-bottom:1px solid #333;padding-bottom:8px;margin-bottom:9px}.tag__copy{margin:0;font:400 12px/1.3 Inter,sans-serif;text-transform:none;letter-spacing:-.01em}
.cursor{position:fixed;z-index:1200;width:64px;height:64px;border:1px solid rgba(17,17,15,.55);border-radius:50%;pointer-events:none;transform:translate(-50%,-50%) scale(.25);opacity:0;display:grid;place-items:center;transition:transform .3s var(--ease),background .3s,color .3s,border .3s,opacity .2s;mix-blend-mode:difference;color:#fff}.cursor span{font:500 8px/1 "DM Mono",monospace;letter-spacing:.08em}.cursor.is-active{opacity:1;transform:translate(-50%,-50%) scale(1);background:#fff;border-color:#fff}.cursor.is-visible{opacity:1}
.loader{position:fixed;inset:0;z-index:2000;background:#111;color:#eee;display:flex;flex-direction:column;justify-content:space-between;padding:var(--pad);transition:transform 1.1s var(--ease);transform-origin:top}.loader.is-done{transform:translateY(-102%)}.loader__mark{font-size:clamp(88px,20vw,320px);font-weight:900;letter-spacing:-.09em;line-height:.75}.loader__rail{height:1px;background:#454545;position:relative}.loader__rail i{position:absolute;left:0;top:0;height:1px;width:0;background:#fff}.loader__meta{display:flex;justify-content:space-between;font:400 10px "DM Mono",monospace}
.nav{position:fixed;top:0;left:0;z-index:700;height:64px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid transparent;transition:background .35s,border .35s;mix-blend-mode:difference;color:#fff}.nav.scrolled{background:rgba(233,232,228,.92);backdrop-filter:blur(14px);border-color:var(--line);mix-blend-mode:normal;color:var(--ink)}.nav__logo{font-weight:900;letter-spacing:-.06em}.nav__center{font:400 9px "DM Mono",monospace;letter-spacing:.09em}.nav__right{display:flex;justify-content:flex-end;gap:20px}.nav__button{font:400 9px "DM Mono",monospace;letter-spacing:.08em}
.hero{min-height:100svh;padding-top:90px;padding-bottom:var(--pad);display:flex;flex-direction:column;justify-content:space-between;position:relative}.hero__micro{padding-top:5px}.hero__title{margin:0;font-size:clamp(145px,31vw,585px);line-height:.66;letter-spacing:-.105em;font-weight:900;white-space:nowrap;transform:translateX(-.035em);transform-origin:0 0;will-change:transform}.hero__title span{display:inline-block;transform:translateY(115%)}body.is-ready .hero__title span{animation:heroIn 1.05s var(--ease) forwards}.hero__title span:nth-child(2){animation-delay:.05s}.hero__title span:nth-child(3){animation-delay:.1s}.hero__title span:nth-child(4){animation-delay:.15s}@keyframes heroIn{to{transform:translateY(0)}}.hero__footer{display:grid;grid-template-columns:1.2fr 1fr 1fr;align-items:end;gap:28px}.hero__statement{margin:0;font-size:clamp(20px,2.2vw,36px);line-height:1.03;letter-spacing:-.04em}.hero__coord{display:grid;gap:5px}.hero__scroll{text-align:right;padding:0;justify-self:end}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:currentColor;margin-right:7px;animation:pulse 1.5s infinite}@keyframes pulse{50%{opacity:.2}}
.manifesto{position:relative;z-index:2;min-height:60svh;padding-top:7vh;padding-bottom:10vh;display:grid;grid-template-columns:1fr 6fr 1.2fr;align-items:start;border-top:1px solid var(--line);gap:28px}.manifesto__copy{font-size:clamp(42px,6.4vw,112px);font-weight:600;letter-spacing:-.066em;line-height:.92;margin:0}.manifesto__copy span{font-family:"DM Mono",monospace;font-weight:300;font-size:.72em;letter-spacing:-.06em}.manifesto__copy .w{display:inline-block;font-style:normal;will-change:opacity}.manifesto__aside{align-self:end}
.works{border-top:1px solid var(--line)}.works__header{height:70px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.project{position:relative;min-height:160px;border-bottom:1px solid var(--line);overflow:hidden;cursor:pointer}.project__row{position:relative;z-index:2;display:grid;grid-template-columns:60px 1fr 250px 80px;gap:18px;align-items:center;padding:26px var(--pad);min-height:160px;transition:color .45s var(--ease)}.project__num,.project__meta,.project__year{font:400 10px/1.3 "DM Mono",monospace}.project__name{font-size:clamp(40px,6.2vw,102px);font-weight:700;letter-spacing:-.065em;line-height:.85}.project-list{will-change:transform;transform-origin:50% 50%}.project__media{position:absolute;inset:10px var(--pad);z-index:0;clip-path:inset(100% 0 0 0 round 14px);transition:clip-path .7s var(--ease);overflow:hidden;background:var(--accent)}.project:hover .project__media,.project.is-touch-open .project__media{clip-path:inset(0 0 0 0 round 14px)}.project:hover .project__row,.project.is-touch-open .project__row{color:var(--media-ink)}.project__media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.05),transparent 45%)}
.visual{position:absolute;inset:0;display:grid;place-items:center;overflow:hidden}.visual--editorial{background:linear-gradient(135deg,#efe9df,#cfcbc4)}.visual--editorial::before{content:"DIPTYCH";font-size:clamp(95px,17vw,280px);font-family:Georgia,serif;font-style:italic;letter-spacing:-.09em;transform:rotate(-4deg);opacity:.96}.visual--editorial::after{content:"WEDDINGS / MEXICO / DOCUMENTARY";position:absolute;bottom:12%;right:4%;font:400 10px "DM Mono",monospace;letter-spacing:.12em}
.visual--system{background:#d6ff36;background-image:linear-gradient(rgba(0,0,0,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,.14) 1px,transparent 1px);background-size:42px 42px}.visual--system::before{content:"01  02  03  04  05\A CEREMONY — PORTRAITS — SUNSET — RECEPTION";white-space:pre;font:500 clamp(15px,2vw,28px)/2 "DM Mono",monospace;transform:rotate(-5deg);border:1px solid;padding:20px;background:#d6ff36;box-shadow:10px 10px 0 #111}
.visual--dark{background:#0d0d0d}.visual--dark::before{content:"EXPERIENCE";font-size:clamp(90px,16vw,260px);font-weight:800;color:#f1f0ea;letter-spacing:-.08em;filter:blur(.2px);transform:perspective(700px) rotateX(14deg) rotateY(-9deg);-webkit-mask-image:radial-gradient(circle 24vw at var(--mx,50%) var(--my,50%),#000 0%,rgba(0,0,0,.35) 55%,rgba(0,0,0,.1) 100%);mask-image:radial-gradient(circle 24vw at var(--mx,50%) var(--my,50%),#000 0%,rgba(0,0,0,.35) 55%,rgba(0,0,0,.1) 100%)}.visual--dark::after{content:"MOVE TO REVEAL";color:#f1f0ea;position:absolute;right:4%;bottom:10%;font:400 10px "DM Mono",monospace}
.visual--tiles{background:#b8c6bb;padding:4%;grid-template-columns:repeat(4,1fr);gap:12px}.visual--tiles i{display:block;height:66%;width:100%;border:1px solid #151a16;border-radius:100px;background:linear-gradient(180deg,rgba(255,255,255,.6),rgba(255,255,255,0));transform:translateY(var(--y,0))}.visual--tiles i:nth-child(2){--y:20%}.visual--tiles i:nth-child(3){--y:-10%}.visual--tiles i:nth-child(4){--y:30%}
.visual--terminal{background:#ff5d35;align-items:start;justify-items:start;padding:5%}.visual--terminal::before{content:"> SYSTEM ONLINE\A> MODULES LOADED\A> INTERFACE ACTIVE\A> BUILD / TEST / IMPROVE_";white-space:pre;font:500 clamp(18px,2.7vw,42px)/1.55 "DM Mono",monospace}.visual--terminal::after{content:"WAD";position:absolute;right:4%;bottom:-8%;font-size:clamp(150px,28vw,460px);font-weight:900;letter-spacing:-.11em;opacity:.15}
.visual--signal{background:#f2d64b}.visual--signal::before{content:"";width:82%;height:34%;background:repeating-linear-gradient(90deg,#16130a 0 3px,transparent 3px 10px);clip-path:polygon(0 45%,3% 42%,6% 58%,9% 24%,12% 72%,15% 35%,18% 60%,21% 10%,24% 85%,27% 38%,30% 59%,33% 33%,36% 74%,39% 18%,42% 63%,45% 40%,48% 89%,51% 24%,54% 70%,57% 49%,60% 57%,63% 12%,66% 81%,69% 31%,72% 58%,75% 43%,78% 71%,81% 27%,84% 61%,87% 38%,90% 78%,93% 31%,96% 64%,100% 45%,100% 55%,0 55%)}
.lab{padding-top:14vh;padding-bottom:14vh}.lab__head{height:60px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.lab__stage{position:relative;display:block;width:100%;height:min(76svh,760px);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#111;color:#eee;perspective:1000px}.lab__copy{position:absolute;left:5%;top:8%;z-index:2}.lab__copy h2{font-size:clamp(46px,7vw,118px);line-height:.86;letter-spacing:-.07em;margin:0 0 26px}.lab__copy p{max-width:440px;font-size:14px;line-height:1.5;color:#b8b8b8}.lab__orb{position:absolute;width:clamp(210px,33vw,520px);aspect-ratio:1;border-radius:50%;right:8%;top:50%;transform:translateY(-50%);border:1px solid #5a5a5a;background:radial-gradient(circle at 35% 35%,#f4f4f1 0 4%,#505050 5%,#101010 60%);box-shadow:inset -40px -60px 90px #000,0 0 120px rgba(255,255,255,.05);will-change:transform}.lab__stats{position:absolute;left:5%;bottom:72px;z-index:2;display:grid;grid-template-columns:repeat(4,auto);gap:38px;font:400 9px/1.6 "DM Mono",monospace;letter-spacing:.08em;color:#9a9a9a}.lab__stats strong{display:block;font:700 clamp(30px,3.6vw,60px)/1 Inter,sans-serif;color:#eee;letter-spacing:-.05em;margin-bottom:6px}.lab__orb span{position:absolute;font:500 10px "DM Mono",monospace}.lab__orb span:nth-child(1){left:16%;top:48%}.lab__orb span:nth-child(2){right:18%;top:34%}.lab__orb span:nth-child(3){bottom:17%;left:47%}.lab__ticker{position:absolute;left:0;right:0;bottom:0;border-top:1px solid #333;white-space:nowrap;overflow:hidden;font:400 10px "DM Mono",monospace}.lab__ticker div{display:inline-block;padding:14px 0;animation:ticker 18s linear infinite}@keyframes ticker{to{transform:translateX(-50%)}}
.archive{padding-bottom:16vh}.archive__top{display:grid;grid-template-columns:1fr 2fr;border-top:1px solid var(--line);padding:18px 0 65px}.archive__top p{margin:0;font-size:clamp(22px,3vw,46px);line-height:1;letter-spacing:-.04em}.archive__grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.archive-card{min-height:250px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px;display:flex;flex-direction:column;justify-content:space-between;transition:background .35s,color .35s}.archive-card:hover{background:#111;color:#eee}.archive-card h3{font-size:clamp(28px,3vw,56px);letter-spacing:-.06em;line-height:.9;margin:0}.archive-card__meta{display:flex;justify-content:space-between;font:400 9px "DM Mono",monospace}
.closing{min-height:100svh;background:#111;color:#eee;display:flex;flex-direction:column;justify-content:space-between;padding-top:90px;padding-bottom:var(--pad)}.closing h2{font-size:clamp(110px,21vw,360px);line-height:.7;letter-spacing:-.09em;margin:0;font-weight:800}.closing h2 span{font-family:Georgia,serif;font-style:italic;font-weight:400}.closing__bottom{border-top:1px solid #333;padding-top:18px;display:flex;justify-content:space-between}.closing__bottom a{font-size:clamp(18px,2vw,30px);letter-spacing:-.03em}
.index-panel{position:fixed;inset:0;z-index:900;overflow:hidden;background:#111;color:#eee;transform:translateY(-102%);transition:transform .8s var(--ease);display:flex;flex-direction:column;padding:var(--pad)}.index-panel.is-open{transform:translateY(0)}.index-panel__head,.index-panel__foot{display:flex;justify-content:space-between;font:400 10px "DM Mono",monospace}.index-panel__body{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;justify-content:safe center}.index-link{display:grid;grid-template-columns:70px 1fr auto;gap:20px;align-items:baseline;border-bottom:1px solid #333;padding:12px 0;transition:opacity .2s}.index-link:hover{opacity:.45}.index-link strong{font-size:min(clamp(42px,7vw,108px),9vh);letter-spacing:-.065em}.index-link span{font:400 9px "DM Mono",monospace}
.project-modal{position:fixed;inset:0;z-index:850;background:var(--paper);transform:translateY(105%);transition:transform .85s var(--ease);overflow:auto}.project-modal.is-open{transform:translateY(0)}.project-modal__close{position:fixed;z-index:4;right:var(--pad);top:var(--pad);font:500 10px "DM Mono",monospace;background:#111;color:#fff;border-radius:999px;padding:13px 17px}.project-modal__media{height:66svh;margin:var(--pad);border-radius:var(--radius);overflow:hidden;position:relative}.project-modal__content{padding:3vh var(--pad) 14vh;display:grid;grid-template-columns:1.4fr 1fr;gap:8vw}.project-modal__content h2{font-size:clamp(64px,11vw,170px);line-height:.78;letter-spacing:-.075em;margin:0}.project-modal__content .modal-info{padding-top:16px;border-top:1px solid var(--line);display:grid;gap:34px}.project-modal__content p{font-size:clamp(20px,2.5vw,40px);line-height:1.05;letter-spacing:-.04em;margin:0}.modal-meta{font:400 10px/1.5 "DM Mono",monospace;text-transform:uppercase}
.magnetic{display:inline-block}
@media(max-width:900px){.nav__center{display:none}.nav{grid-template-columns:1fr 1fr}.hero__footer{grid-template-columns:1fr 1fr}.hero__coord{display:none}.manifesto{grid-template-columns:1fr;padding-top:12vh}.manifesto__index,.manifesto__aside{display:none}.project__row{grid-template-columns:35px 1fr auto;min-height:125px}.project__meta{display:none}.project__name{font-size:clamp(36px,10vw,70px)}.lab__orb{right:-10%;top:64%}.lab__copy{left:7%;right:7%}.lab__stats{grid-template-columns:repeat(2,auto);gap:14px 34px;left:7%;bottom:56px}.archive__grid{grid-template-columns:1fr 1fr}.archive__top{grid-template-columns:1fr;gap:30px}.project-modal__content{grid-template-columns:1fr}.project-modal__media{height:54svh}.index-link{grid-template-columns:45px 1fr}.index-link>span:last-child{display:none}}
@media(max-width:620px){.nav__right{gap:12px}.hero__title{font-size:35vw}.hero__footer{grid-template-columns:1fr}.hero__scroll{text-align:left}.manifesto__copy{font-size:14vw}.project__row{padding-left:18px;padding-right:18px}.works__header{padding-left:18px;padding-right:18px}.project__year{display:none}.archive__grid{grid-template-columns:1fr}.closing h2{font-size:28vw}.closing__bottom{flex-direction:column;gap:20px}.cursor,.tag{display:none}.lab__stats{display:none}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.cursor{display:none}}

/* ---------------- Console ---------------- */
.console{position:fixed;left:var(--pad);right:var(--pad);bottom:var(--pad);z-index:960;height:min(46svh,520px);display:flex;flex-direction:column;background:#111;color:#eee;border-radius:var(--radius);border:1px solid #2a2a2a;box-shadow:0 30px 90px rgba(0,0,0,.45);transform:translateY(115%);transition:transform .8s var(--ease);overflow:hidden}
.console.is-open{transform:none}
.console__head{display:flex;align-items:center;gap:16px;padding:12px 16px;border-bottom:1px solid #2a2a2a;font:400 9px "DM Mono",monospace;letter-spacing:.08em;text-transform:uppercase;flex:none}
.console__tabs{display:flex;gap:4px}
.console__tab{font:400 9px "DM Mono",monospace;letter-spacing:.08em;padding:5px 10px;border-radius:999px;color:#7d7d7d;transition:color .3s,background .3s}
.console__tab.is-on{background:#eee;color:#111}
.console__scope{font:400 9px "DM Mono",monospace;letter-spacing:.08em;padding:5px 10px;border:1px solid #3a3a3a;border-radius:999px;color:#c9c9c9}
.console__scope:hover{border-color:#eee;color:#eee}
.console__right{margin-left:auto;display:flex;align-items:center;gap:18px;color:#6f6f6f}
.console__right button{font:400 9px "DM Mono",monospace;letter-spacing:.08em;color:#9a9a9a}
.console__right button:hover{color:#eee}
.console__log{flex:1;min-height:0;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:9px;scrollbar-width:thin;scrollbar-color:#3a3a3a transparent;overscroll-behavior:contain}
.console__log::-webkit-scrollbar{width:4px}.console__log::-webkit-scrollbar-thumb{background:#3a3a3a;border-radius:2px}
.cline{display:grid;grid-template-columns:42px 1fr;gap:12px;font:400 11px/1.55 "DM Mono",monospace;word-break:break-word}
.cline::before{content:attr(data-prefix);color:#5c5c5c;font-size:9px;letter-spacing:.08em;padding-top:2px}
.cline--user span{color:#fff}
.cline--bot span{color:#d6d6d6}
.cline--tool span,.cline--sys span{color:#8a8a8a;font-size:9px;letter-spacing:.09em;text-transform:uppercase}
.cline--tool::before{color:#d6ff36}
.console__chips{display:flex;flex-wrap:wrap;gap:7px;padding:0 16px 12px}
.console__chips:empty{display:none}
.console__chip{font:400 9px "DM Mono",monospace;letter-spacing:.05em;text-transform:uppercase;padding:8px 12px;border:1px solid #333;border-radius:999px;color:#b6b6b6;text-align:left;transition:border-color .3s,color .3s,background .3s}
.console__chip:hover{border-color:#eee;color:#111;background:#eee}
.console__form{display:flex;align-items:center;gap:12px;padding:14px 16px;border-top:1px solid #2a2a2a;flex:none}
.console__caret{font:500 12px "DM Mono",monospace;color:#d6ff36}
.console__input{flex:1;background:none;border:0;outline:0;color:#fff;font:400 13px "DM Mono",monospace;caret-color:#d6ff36}
.console__input::placeholder{color:#5c5c5c;letter-spacing:.06em;text-transform:uppercase;font-size:10px}
.console__input:disabled{opacity:.4}
.console__send{font:400 9px "DM Mono",monospace;letter-spacing:.08em;color:#9a9a9a}
.console__send:hover{color:#eee}
.console[data-status="streaming"] .console__caret{animation:pulse 1s infinite}
.console[data-status="offline"] .console__caret{color:#ff5d35}
.console__mail,.proposal{margin:4px 0 4px 54px;padding:14px;border:1px solid #333;border-radius:10px;background:#161616;display:grid;gap:9px}
.console__mail-sub{font:400 9px "DM Mono",monospace;letter-spacing:.08em;text-transform:uppercase;color:#8a8a8a}
.console__mail p{margin:0;font:400 12px/1.5 Inter,sans-serif;color:#d6d6d6;white-space:pre-wrap}
.console__mail-go{justify-self:start;font:500 9px "DM Mono",monospace;letter-spacing:.08em;background:#eee;color:#111;padding:9px 13px;border-radius:999px}
.console__mail-go:hover{background:#d6ff36}
.proposal h3{margin:0;font:700 22px/1.05 Inter,sans-serif;letter-spacing:-.04em;color:#fff}
.proposal__sum{margin:0;font:400 13px/1.45 Inter,sans-serif;color:#c2c2c2}
.proposal__block{display:grid;gap:5px;font:400 11px/1.5 "DM Mono",monospace;color:#c2c2c2;padding-top:9px;border-top:1px solid #2a2a2a}
.proposal__block .micro{color:#6f6f6f}
.proposal__block .is-out{color:#6f6f6f}
.proposal__phase{display:grid;gap:2px;padding:3px 0}
.proposal__phase strong{font:500 10px "DM Mono",monospace;letter-spacing:.07em;color:#d6ff36}
.proposal__phase span{color:#9a9a9a;font-size:10px}
/* Filter + ask-in-modal */
.project.is-dim,.archive-card.is-dim{opacity:.16;pointer-events:none;transition:opacity .5s var(--ease)}
.filter-chip{border:1px solid var(--line);border-radius:999px;padding:6px 11px;cursor:pointer;transition:background .3s,color .3s}
.filter-chip:hover{background:var(--ink);color:var(--paper)}
.modal-ask{grid-column:1/-1;border-top:1px solid var(--line);padding-top:16px;display:grid;gap:12px}
.modal-ask__chips{display:flex;flex-wrap:wrap;gap:8px}
.ask-chip{font:400 10px "DM Mono",monospace;letter-spacing:.04em;padding:9px 13px;border:1px solid var(--line);border-radius:999px;text-align:left;transition:background .3s,color .3s,border-color .3s}
.ask-chip:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
@media(max-width:620px){
  .console{inset:0;height:100dvh;border-radius:0;border:0}
  .console__hint{display:none}
  .cline{grid-template-columns:30px 1fr;gap:8px}
  .console__mail,.proposal{margin-left:0}
  .nav__right{gap:10px}
}
