@font-face{font-family:Nebulica;src:url('/assets/nebulica-completa-v2.ttf') format('truetype');font-weight:900;font-display:swap}
@font-face{font-family:Poppins;src:url('/assets/poppins.ttf') format('truetype');font-weight:100 900;font-display:swap}
:root{--paper:#f0ebdd;--ink:#142130;--accent:#a74e3e;--rule:#14213033}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.65 Poppins,Arial,sans-serif}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible{outline:3px solid var(--accent);outline-offset:6px}.wrap{padding-inline:clamp(22px,5vw,88px);max-width:1680px;margin-inline:auto}.skip{position:fixed;left:12px;top:-100px;z-index:10;background:var(--ink);color:var(--paper);padding:12px}.skip:focus{top:12px}.topbar{height:104px;display:flex;align-items:center;gap:25px;border-bottom:1px solid var(--rule)}.brand{display:block;flex-shrink:0}.brand img{width:185px;height:auto;display:block}.top-note,.eyebrow,.visual-heading,.number,.tools{font-size:10px;font-weight:600;letter-spacing:.08em}.top-note{margin-left:auto}.top-link{font-size:13px;padding:12px 0;white-space:nowrap}.top-link span{font-size:22px;margin-left:16px}.hero{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(30px,5vw,90px);padding-top:42px;padding-bottom:55px}.eyebrow{margin:0 0 22px;line-height:1.7}h1,h2,h3,.footer-title,.visual-index{font-family:Nebulica,Arial,sans-serif;font-weight:900}h1{font-size:clamp(44px,4.9vw,77px);line-height:1.04;letter-spacing:-.035em;margin:0 0 22px}h1 span{color:var(--accent)}.intro{font-size:clamp(15px,1.15vw,18px);max-width:560px;margin:0 0 12px}.scope{font-size:13px;max-width:505px;margin:0 0 23px}.actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;max-width:550px}.action{display:flex;align-items:center;gap:12px;border:1px solid var(--ink);min-height:56px;padding:11px 15px;font-size:13px;font-weight:600;transition:background .18s,color .18s,transform .18s}.action svg{width:23px;height:23px;fill:currentColor;flex-shrink:0}.action b{font-size:22px;margin-left:auto;line-height:1}.action.primary{background:var(--accent);border-color:var(--accent);color:var(--paper)}.action:hover{background:var(--ink);border-color:var(--ink);color:var(--paper);transform:translateY(-2px)}.direct-contact{display:flex;flex-wrap:wrap;gap:7px 23px;font-size:12px;margin-top:17px}.direct-contact a{padding-block:4px}.direct-contact span{font-size:10px;color:var(--accent);white-space:nowrap}.direct-contact a:hover,.text-link:hover,.top-link:hover{color:var(--accent)}.visual{position:relative;min-height:565px;isolation:isolate;border-bottom:1px solid var(--rule);background:linear-gradient(90deg,transparent 49.9%,#14213009 50%,transparent 50.2%)}.visual-heading{display:flex;justify-content:space-between;border-top:1px solid var(--rule);padding-top:11px}.piece{position:absolute;display:block;background:var(--ink);box-shadow:0 12px 28px #14213021;transition:transform .3s;overflow:hidden}.piece img{display:block;width:100%;height:calc(100% - 29px);object-fit:cover}.piece span{display:flex;align-items:center;justify-content:space-between;height:29px;padding:0 10px;font-size:9px;letter-spacing:.06em;color:var(--paper)}.piece b{font-size:16px}.poster{left:0;top:55px;width:49%;height:430px;transform:rotate(-5deg);z-index:2}.poster img{object-position:center}.identity{right:0;top:72px;width:59%;height:210px;transform:rotate(5deg);z-index:3}.identity img{object-fit:contain;background:#f3eddb}.editorial{right:-1%;top:305px;width:65%;height:210px;transform:rotate(-3deg);z-index:4}.editorial img{object-fit:contain;background:#f0eee7}.piece:hover,.piece:focus-visible{transform:rotate(0deg) translateY(-8px);z-index:5}.visual-index{position:absolute;bottom:0;left:0;font-size:27px;line-height:1.02;color:var(--accent);padding-bottom:12px;z-index:1}.capabilities{padding-top:33px;padding-bottom:0;border-top:1px solid var(--rule)}.section-line{display:flex;gap:25px;justify-content:space-between;align-items:baseline}.section-line .eyebrow{flex-shrink:0}h2{font-size:clamp(28px,3vw,44px);line-height:1.15;letter-spacing:-.025em;margin:0 0 25px}.section-line h2{font-size:clamp(24px,2.7vw,38px)}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;padding-bottom:28px}.number{color:var(--accent)}h3{font-size:26px;line-height:1.15;margin:17px 0 12px;letter-spacing:-.02em}.service-grid p{font-size:13px;max-width:355px;margin:0}.tools{margin:0;padding:18px 0;border-top:1px solid var(--rule);display:flex;justify-content:space-between;gap:15px;font-size:9px}.tools span{font-weight:400}.working{background:var(--ink);color:var(--paper);display:grid;grid-template-columns:1fr 1fr;gap:60px;padding-top:46px;padding-bottom:46px}.working .eyebrow{color:#dca58d}.working h2{font-size:clamp(29px,3.1vw,47px);margin:0}.working h2 span{color:#dca58d}.working-copy p{font-size:14px;max-width:540px;margin:0 0 16px}.working-copy .small{font-size:12px;color:#c6c8c5}.text-link{display:inline-flex;gap:35px;align-items:center;padding:8px 0;border-bottom:1px solid #f0ebdd88;font-size:12px}.text-link:hover{color:#dca58d}footer{display:flex;justify-content:space-between;gap:30px;padding-top:32px;padding-bottom:34px}footer .eyebrow{font-size:9px;margin-bottom:9px}.footer-title{font-size:clamp(22px,2.8vw,36px);line-height:1.15;margin:0}.footer-contact{display:flex;flex-direction:column;align-items:flex-end;font-size:13px;gap:7px}.footer-contact a:last-child{font-size:11px;text-decoration:underline;text-underline-offset:5px}.footer-contact a:hover{color:var(--accent)}
@media(min-width:1500px){.hero{padding-top:55px;padding-bottom:65px}.visual{min-height:600px}.poster{height:470px}.identity{height:240px}.editorial{top:340px;height:230px}.visual-index{font-size:30px}}
@media(max-width:1000px){.top-note{display:none}.top-link{margin-left:auto}.hero{gap:30px}h1{font-size:clamp(43px,5.5vw,60px)}.visual{min-height:565px}.poster{top:70px;height:350px;width:55%}.identity{top:105px;height:180px;width:62%}.editorial{top:330px;height:175px;width:75%}.visual-index{font-size:23px}.service-grid{gap:24px}.tools{flex-direction:column;gap:5px}.working{gap:35px}}
@media(max-width:700px){.topbar{height:80px;gap:18px}.brand img{width:143px}.top-link{font-size:11px}.top-link span{margin-left:5px;font-size:18px}.hero{display:flex;flex-direction:column;padding-top:26px;padding-bottom:28px;gap:25px}.eyebrow{font-size:9px;letter-spacing:.045em;margin-bottom:17px}h1{font-size:clamp(38px,9.8vw,64px);line-height:1.06;margin-bottom:19px}.desktop-break{display:none}.intro{font-size:15px;line-height:1.6}.scope{font-size:12px;margin-bottom:20px}.actions{max-width:none;gap:8px}.action{font-size:12px;min-height:56px;padding:12px;gap:9px}.action svg{width:21px;height:21px}.action b{font-size:20px}.direct-contact{font-size:12px;gap:5px 17px;margin-top:12px}.visual{min-height:365px;margin-top:5px}.visual-heading{font-size:8px}.poster{top:45px;height:280px;width:45%;left:2%;transform:rotate(-4deg)}.identity{top:52px;height:135px;width:57%;right:1%;transform:rotate(4deg)}.editorial{top:207px;height:135px;width:62%;right:0}.piece span{height:25px;font-size:8px;padding:0 8px}.piece img{height:calc(100% - 25px)}.visual-index{font-size:18px}.capabilities{padding-top:26px}.section-line{display:block}.section-line .eyebrow{margin-bottom:10px}.section-line h2{font-size:29px;margin-bottom:23px}.service-grid{grid-template-columns:1fr;gap:21px;padding-bottom:25px}.service-grid article{display:grid;grid-template-columns:1fr 1.35fr;gap:9px 18px;border-top:1px solid var(--rule);padding-top:16px}.number{grid-column:1/-1;font-size:9px}h3{font-size:22px;margin:0}.service-grid p{font-size:12px;line-height:1.65;max-width:none}.tools{font-size:8px;letter-spacing:.03em;padding:15px 0}.working{grid-template-columns:1fr;gap:25px;padding-top:30px;padding-bottom:32px}.working h2{font-size:33px}.working-copy p{font-size:13px}.working-copy .small{font-size:11px}footer{display:block;padding-top:26px;padding-bottom:28px}.footer-title{font-size:29px}.footer-contact{align-items:flex-start;margin-top:22px;font-size:13px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.action,.piece{transition:none}}

/* A single, finite sequence. The copy and contact controls remain still. */
.action{border-width:2px;box-shadow:3px 3px 0 var(--ink);min-height:58px}
.action:nth-child(2){background:var(--ink);color:var(--paper)}
.action:nth-child(3){background:#ded5e8}.action:nth-child(4){background:#d7e3db}
.action b{font-size:26px}.action:hover{background:var(--ink);color:var(--paper);transform:translate(-1px,-2px);box-shadow:5px 5px 0 var(--accent)}
.action:nth-child(2):hover{background:var(--accent);border-color:var(--accent)}
.work-stack{display:flex;flex-direction:column;min-height:565px;background:none;border-bottom:0}
.visual-heading{flex-shrink:0;min-height:37px;gap:12px}.visual-heading span:last-child{white-space:nowrap;font-variant-numeric:tabular-nums}
.stack-stage{position:relative;flex:1;min-height:480px;isolation:isolate}
.stack-card{position:absolute;top:42px;left:11%;width:78%;height:380px;background:#e5e0d5;box-shadow:0 10px 25px #14213020;transform:translate(var(--x,0px),var(--y,0px)) rotate(var(--turn));transition:transform .75s cubic-bezier(.2,.7,.2,1),opacity .65s;opacity:1;visibility:visible}
.stack-card:nth-child(4n+1){--x:-28px;--y:10px}.stack-card:nth-child(4n+2){--x:22px;--y:-7px}.stack-card:nth-child(4n+3){--x:-14px;--y:35px}.stack-card:nth-child(4n){--x:30px;--y:24px}
.stack-card img{width:100%;height:calc(100% - 34px);object-fit:contain;display:block}.stack-card:nth-child(odd) img{object-fit:cover}
.stack-card>span{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--ink);color:var(--paper);height:34px;padding:0 11px}.stack-card small{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stack-card b{font-size:21px}
.stack-card:nth-last-child(n+5){visibility:hidden;pointer-events:none}
.sequence-ready .stack-card{visibility:visible;opacity:0;pointer-events:none;transform:translate(var(--x),calc(var(--y) + 35px)) rotate(calc(var(--turn) + 5deg)) scale(.96)}
.sequence-ready .stack-card.is-visible{opacity:1;pointer-events:auto;transform:translate(var(--x),var(--y)) rotate(var(--turn)) scale(1)}
.stack-card:focus-visible{outline:3px solid var(--accent);outline-offset:5px;z-index:30!important;transform:translate(var(--x),var(--y)) rotate(0deg)}
.stack-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:42px;border-top:1px solid var(--rule);font-size:10px}.stack-controls>div{display:flex;gap:12px}.stack-controls button{background:transparent;color:var(--ink);font:inherit;border:0;border-bottom:1px solid var(--ink);padding:10px 2px;cursor:pointer;min-height:42px}.stack-controls button:hover{color:var(--accent)}.stack-controls button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}[hidden]{display:none!important}
@media(min-width:1500px){.stack-stage{min-height:510px}.stack-card{height:420px}}
@media(max-width:1000px) and (min-width:701px){.stack-card{width:84%;left:8%;height:365px;top:55px}.stack-card:nth-child(4n){--x:10px}.stack-card:nth-child(4n+1){--x:-10px}.stack-card:nth-child(4n+2){--x:12px}}
@media(max-width:700px){.action{min-height:58px;box-shadow:2px 2px 0 var(--ink)}.actions{gap:11px}.work-stack{min-height:385px}.stack-stage{min-height:320px}.stack-card{top:27px;width:79%;height:255px;left:10.5%}.stack-card:nth-child(4n+1){--x:-12px;--y:9px}.stack-card:nth-child(4n+2){--x:13px;--y:-3px}.stack-card:nth-child(4n+3){--x:-8px;--y:20px}.stack-card:nth-child(4n){--x:14px;--y:14px}.stack-card>span{height:30px;padding:0 8px;gap:7px}.stack-card img{height:calc(100% - 30px)}.stack-card small{font-size:8px}.stack-controls{font-size:9px}.visual-heading{font-size:8px}}
@media(prefers-reduced-motion:reduce){.stack-card,.action{transition:none!important}}

@media(max-width:700px){.action:nth-child(4){font-size:11px}.action:nth-child(4) span{white-space:nowrap}}

/* Unframed images keep the proportions of the original work. */
.stack-stage{--card-h:380px}
.stack-card{left:50%;top:50%;width:min(78%,calc(var(--card-h) * var(--ratio)));height:auto;aspect-ratio:var(--ratio);background:transparent;box-shadow:0 7px 18px #14213029;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) rotate(var(--turn))}
.stack-card img,.stack-card:nth-child(odd) img{width:100%;height:100%;object-fit:contain;display:block;aspect-ratio:var(--ratio)}
.sequence-ready .stack-card{transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y) + 25px)) rotate(calc(var(--turn) + 5deg)) scale(.96)}
.sequence-ready .stack-card.is-visible{transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) rotate(var(--turn)) scale(1)}
.stack-card:focus-visible{transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) rotate(0deg)}
@media(min-width:1500px){.stack-stage{--card-h:420px}}
@media(max-width:1000px) and (min-width:701px){.stack-stage{--card-h:365px}.stack-card{top:50%;left:50%;width:min(80%,calc(var(--card-h) * var(--ratio)));height:auto}}
@media(max-width:700px){.stack-stage{--card-h:255px}.stack-card{top:50%;left:50%;width:min(79%,calc(var(--card-h) * var(--ratio)));height:auto}.stack-card img{height:100%}}

.action.primary{background:#386652;border-color:#386652;color:var(--paper)}
.action:nth-child(3){background:var(--accent);border-color:var(--accent);color:var(--paper)}
.action.primary:hover,.action:nth-child(3):hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}

/* Hide the deck from the first paint, then deal opaque cards from the right viewport edge. */
body{overflow-x:clip}
.stack-stage{overflow:visible}
.has-js .stack-card,.has-js .sequence-ready .stack-card{visibility:hidden;opacity:1;transition:none;animation:none;pointer-events:none;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) rotate(var(--turn))}
.has-js .sequence-ready .stack-card.is-visible{visibility:visible;opacity:1;pointer-events:auto;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) rotate(var(--turn))}
.has-js .sequence-ready .stack-card.is-visible.is-entering{animation:deal-card .78s cubic-bezier(.2,.65,.24,1) both}
@keyframes deal-card{
  0%{opacity:1;transform:translate(calc(100vw + 100%),calc(-50% + var(--y) - 24px)) rotate(calc(var(--turn) - 12deg))}
  80%{opacity:1;transform:translate(calc(-50% + var(--x) + 7px),calc(-50% + var(--y) - 3px)) rotate(calc(var(--turn) + 1deg))}
  100%{opacity:1;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) rotate(var(--turn))}
}
@media(prefers-reduced-motion:reduce){.has-js .sequence-ready .stack-card.is-visible.is-entering{animation:none!important}}

/* Keep the moving deck outside the document's scroll anchoring and layout. */
html{scroll-behavior:auto;overflow-x:clip;overflow-anchor:none}
body{overflow-x:visible;overflow-anchor:none}
.work-stack,.stack-stage,.stack-card{overflow-anchor:none}
.stack-stage{height:480px;min-height:0;flex:0 0 480px;contain:layout style;isolation:isolate}
.stack-card{backface-visibility:hidden}
.stack-card.is-visible{will-change:transform}
.is-offscreen .stack-card{animation-play-state:paused!important}
.direct-contact a[href^="tel:"]{font-size:17px;font-weight:700;line-height:1.5}
.direct-contact a[href^="tel:"] span{font-size:11px;font-weight:500}
.footer-contact a[href^="tel:"]{font-size:18px;font-weight:700}
@media(min-width:1500px){.stack-stage{height:510px;flex-basis:510px}}
@media(max-width:700px){.stack-stage{height:320px;flex-basis:320px}.direct-contact{align-items:center}.direct-contact a[href^="tel:"]{font-size:17px}}

/* A persistent deck: moving a card never opens its project. */
.stack-stage{clip-path:inset(-60px -100vw -60px -24px)}
.stack-card{padding:0;border:0;border-radius:0;color:inherit;font:inherit;cursor:grab;touch-action:pan-y;user-select:none;-webkit-user-select:none;--move-x:0px;--move-y:0px}
.stack-card img{pointer-events:none;-webkit-user-drag:none;user-select:none}
.stack-card.is-dragging{cursor:grabbing;animation:none!important;box-shadow:0 14px 30px #14213040}
.has-js .sequence-ready .stack-card.is-visible,.stack-card:focus-visible{transform:translate(calc(-50% + var(--x) + var(--move-x)),calc(-50% + var(--y) + var(--move-y))) rotate(var(--turn))}
.stack-card:focus-visible{outline:3px solid var(--accent);outline-offset:5px}
.stack-selection{display:flex;justify-content:space-between;gap:14px;align-items:center;min-height:42px;font-size:10px;border-top:1px solid var(--rule)}
.stack-selection>a{font-size:11px;white-space:nowrap;padding:10px 0;border-bottom:1px solid var(--ink)}
.stack-selection>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@keyframes deal-card{
  0%{opacity:1;transform:translate(calc(100vw + 100%),calc(-50% + var(--y) - 24px)) rotate(calc(var(--turn) - 12deg))}
  80%{opacity:1;transform:translate(calc(-50% + var(--x) + var(--move-x) + 7px),calc(-50% + var(--y) + var(--move-y) - 3px)) rotate(calc(var(--turn) + 1deg))}
  100%{opacity:1;transform:translate(calc(-50% + var(--x) + var(--move-x)),calc(-50% + var(--y) + var(--move-y))) rotate(var(--turn))}
}
@media(max-width:700px){.stack-controls{font-size:9px;gap:8px}.stack-controls>div{gap:9px}.stack-selection{font-size:9px}}

/* Direct contact details: email first, telephone directly below. */
.direct-contact{flex-direction:column;align-items:flex-start;gap:2px}
