@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&display=swap');
:root{--paper:#f0f0eb;--ink:#1d211d;--muted:#8a8e84;--line:#d3d5cc;--accent:#d3f86a;--pad:clamp(22px,4.5vw,88px)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-weight:450;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button{border:0;background:none}img,video{display:block;width:100%;height:100%;object-fit:cover}::selection{background:var(--accent);color:var(--ink)}header{height:100px;padding:0 var(--pad);display:flex;align-items:center;justify-content:space-between;position:relative;z-index:20}.brand{font-size:22px;font-weight:650;letter-spacing:-1px;display:flex;gap:9px;align-items:center}.brand-dot{width:7px;height:7px;border-radius:50%;background:var(--ink)}nav{display:flex;gap:34px;font-size:14px}nav a{position:relative;padding:8px 0}nav a:after{content:'';position:absolute;bottom:1px;left:0;height:1px;background:currentColor;width:100%;transform:scaleX(0);transform-origin:left;transition:transform .3s}nav a:hover:after,nav a[aria-current]:after{transform:scaleX(1)}.menu{display:none}.skip{position:fixed;top:-80px;left:20px;z-index:100;background:var(--accent);padding:15px}.skip:focus{top:10px}:focus-visible{outline:2px solid var(--ink);outline-offset:5px}.meta{font-size:11px;letter-spacing:.09em;text-transform:uppercase}.muted{color:var(--muted)}h1,h2,h3,p{margin:0}h1,h2{font-weight:500;letter-spacing:-.065em;line-height:1}em{font-weight:400;font-style:normal}p{line-height:1.65}button:hover{opacity:.65}.hero{padding:35px var(--pad) 0;overflow:hidden}.hero-kicker{font-size:12px;display:flex;align-items:center;gap:8px}.status-dot{width:6px;height:6px;background:#789a39;border-radius:50%}.hero h1{font-size:clamp(64px,9.3vw,165px);position:relative;z-index:3;pointer-events:none;margin-top:32px;line-height:.97;max-width:1200px}.hero h1 em{padding-left:15vw}.title-star{display:inline-block;font-size:.55em;color:#87a545;vertical-align:middle;margin-left:30px;animation:star-turn 35s linear infinite}.hero-stage{height:390px;max-width:1500px;margin:-35px auto 0;position:relative;perspective:1000px}.floating{position:absolute;border-radius:14px;overflow:hidden;box-shadow:0 15px 32px #1d211d14;will-change:transform;transition:box-shadow .5s}.floating span{position:absolute;bottom:12px;left:14px;padding:5px 9px;border-radius:20px;background:#f0f0ebd9;font-size:10px;opacity:0;transition:opacity .3s}.floating:hover span{opacity:1}.floating:hover{box-shadow:0 22px 50px #1d211d30;z-index:5}.f0{width:24%;height:210px;left:1%;top:18%;transform:rotate(-9deg)}.f1{width:22%;height:190px;left:30%;top:32%;transform:rotate(7deg)}.f2{width:31%;height:225px;right:2%;top:1%;transform:rotate(-5deg)}.f3{width:20%;height:145px;right:21%;top:52%;transform:rotate(7deg)}.f0 video,.f3 img{object-fit:contain;background:#e9e9e4}.stage-caption{position:absolute;bottom:8%;left:0;display:flex;gap:38px;align-items:center;font-size:12px;line-height:1.5}.circle-link{width:45px;height:45px;display:grid;place-items:center;border:1px solid var(--ink);border-radius:50%;font-size:22px;transition:background .3s,transform .3s}.circle-link:hover{background:var(--accent);transform:rotate(45deg)}.hero-baseline{border-top:1px solid var(--line);padding:22px 0;display:flex;justify-content:space-between;font-size:10px;text-transform:uppercase;letter-spacing:.05em}.section{padding:90px var(--pad)}.intro{border-bottom:1px solid var(--line)}.intro h2{font-size:clamp(34px,4.1vw,70px);line-height:1.12;max-width:1100px;margin:42px 0 35px;letter-spacing:-.045em}.intro-bottom{display:flex;align-items:end;justify-content:space-between}.intro-bottom p{font-size:14px;max-width:340px}.text-link{font-size:13px;border-bottom:1px solid var(--ink);padding-bottom:8px;display:inline-flex;gap:30px;align-items:center}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:45px}.section-heading h2{font-size:clamp(36px,4.5vw,70px);margin-top:18px}.work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:65px 28px}.work-card{min-width:0;display:block}.card-image{aspect-ratio:1.45;border-radius:18px;overflow:hidden;position:relative;background:#e6e7e1;transform-style:preserve-3d;transition:transform .65s cubic-bezier(.2,.8,.2,1),border-radius .5s;will-change:transform}.card-image img,.card-image video{transition:transform .9s cubic-bezier(.2,.8,.2,1)}.work-card:hover .card-image img,.work-card:hover .card-image video{transform:scale(1.045)}.work-card[data-category=Oggetti] .card-image video{object-fit:contain}.open-disc{position:absolute;top:50%;left:50%;width:78px;height:78px;display:grid;place-items:center;border-radius:50%;background:var(--accent);font-size:13px;transform:translate(-50%,-30%) scale(.8);opacity:0;transition:transform .4s,opacity .3s;pointer-events:none}.work-card:hover .open-disc,.work-card:focus-visible .open-disc{transform:translate(-50%,-50%) scale(1);opacity:1}.card-caption{display:flex;justify-content:space-between;align-items:center;padding:20px 0 0}.card-caption .meta{font-size:9px;letter-spacing:.04em;color:#70776c}.card-caption h2{font-size:27px;margin-top:9px;letter-spacing:-.04em}.card-index{font-size:11px}.page-heading{padding:65px var(--pad) 0}.eyebrow-row{display:flex;justify-content:space-between;gap:24px}.page-heading h1{font-size:clamp(80px,14vw,220px);margin:28px 0 55px;position:relative;line-height:.96}.sup{font-size:15px;vertical-align:top;letter-spacing:0;display:inline-block;padding:10px;margin:12px}.heading-arrow{position:absolute;right:0;bottom:0;font-size:.8em;font-weight:400}.work-toolbar{border-top:1px solid var(--line);padding-top:26px;display:flex;justify-content:space-between;align-items:center;gap:25px}.work-toolbar p{font-size:13px}.filters{display:flex;gap:6px}.filters button{font-size:11px;padding:10px 18px;border:1px solid var(--line);border-radius:30px;transition:background .3s}.filters button[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.gallery-section{padding-top:50px}.work-card[hidden]{display:none}.about-layout{display:grid;grid-template-columns:1fr 1fr;gap:9vw;align-items:center;padding-top:30px}.about-visual{height:490px;position:relative;border-radius:16px;overflow:hidden;background:#e8e9e3}.about-visual video{object-fit:contain}.about-visual .meta{position:absolute;bottom:25px;left:25px}.about-copy h2{font-size:clamp(36px,4vw,60px);margin-bottom:30px}.about-copy p{font-size:15px;margin:20px 0}.about-copy .text-link{margin-top:20px}.skills{padding-top:35px}.skills>.meta{display:block;margin-bottom:25px}.skills details{border-top:1px solid var(--line)}.skills details:last-child{border-bottom:1px solid var(--line)}.skills summary{list-style:none;display:flex;align-items:center;gap:40px;font-size:clamp(24px,3vw,45px);letter-spacing:-.04em;padding:30px 0;cursor:pointer}.skills summary::-webkit-details-marker{display:none}.skills summary span{font-size:10px;letter-spacing:0;color:var(--muted)}.skills summary b{margin-left:auto;font-size:28px;font-weight:400;transition:transform .3s}.skills details[open] summary b{transform:rotate(45deg)}.skills details p{padding:0 60px 30px;max-width:800px;font-size:15px}.contact-heading h1{font-size:clamp(64px,11vw,175px)}.contact-heading p{font-size:16px}.contact-list>div{border-top:1px solid var(--line);padding:30px 0 40px}.email{display:block;font-size:clamp(20px,4.2vw,67px);letter-spacing:-.04em;margin:20px 0;overflow-wrap:anywhere}.email span{display:inline-block}.copy-email{padding:0;font-size:12px}.copy-status{font-size:12px;margin-left:20px}.social-link{display:block;font-size:30px;margin-top:25px}.project-heading{padding:50px var(--pad) 35px}.back{margin-bottom:45px}.project-heading h1{font-size:clamp(55px,9vw,135px);margin-top:25px}.project-cover{margin:0 var(--pad);height:min(70vw,740px);border-radius:20px;overflow:hidden;background:#e6e7e1;view-transition-name:project-image}.project-cover video,.project-cover img{object-fit:contain}.project-description{display:grid;grid-template-columns:1fr 1fr;gap:10vw}.project-description h2{font-size:clamp(32px,4vw,60px);line-height:1.07}.project-description p{font-size:16px}.project-gallery{display:grid;grid-template-columns:1fr 1fr;gap:25px;padding-top:0}.project-gallery:empty{display:none}.project-gallery img{border-radius:15px;height:auto;aspect-ratio:1.35;object-fit:contain;background:#e6e7e1}.project-gallery img:first-child{grid-column:1/-1;aspect-ratio:1.8}.next-project{border-top:1px solid var(--line);display:flex;flex-direction:column;gap:30px}.next-project>span:last-child{font-size:clamp(38px,7vw,100px);letter-spacing:-.06em}footer{background:#20251e;color:#f0f0eb;padding:60px var(--pad) 25px;border-radius:30px 30px 0 0;margin-top:35px}.footer-cta{display:flex;justify-content:space-between;font-size:clamp(55px,10.5vw,170px);letter-spacing:-.07em;line-height:1.2;margin:25px 0 65px;transition:color .3s}.footer-cta:hover{color:var(--accent)}.footer-cta span{font-weight:400}.footer-bottom{border-top:1px solid #4a5144;padding-top:25px;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:10px}.motion-toggle{font-size:10px;padding:0;color:inherit}.page-contact footer .footer-top{display:none}.page-wipe{position:fixed;inset:0;background:var(--ink);transform:translateY(100%);z-index:90;pointer-events:none;transition:transform .45s cubic-bezier(.76,0,.24,1)}.leaving .page-wipe{transform:translateY(0)}.js .reveal{opacity:0;transform:translateY(30px);transition:opacity .8s,transform .9s cubic-bezier(.2,.8,.2,1)}.js .reveal.visible{opacity:1;transform:none}.js main{animation:page-in .8s both}.paused *, .paused *:before,.paused *:after{animation-play-state:paused!important}.paused .floating{transition:none}body.paused{scroll-behavior:auto}@keyframes page-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes star-turn{to{transform:rotate(360deg)}}@view-transition{navigation:auto}::view-transition-old(root){animation:.35s ease both fade-out}::view-transition-new(root){animation:.55s ease both page-in}@keyframes fade-out{to{opacity:0;transform:translateY(-15px)}}
@media(min-width:1600px){.hero-stage{height:470px}.floating.f0{height:250px}.floating.f1{height:235px}.floating.f2{height:285px}.floating.f3{height:190px}}
@media(max-width:800px){header{height:80px}.brand{font-size:20px}nav{gap:18px;font-size:12px}.hero{padding-top:25px}.hero h1{font-size:11vw;margin-top:30px}.hero h1 em{padding-left:6vw}.title-star{margin-left:12px}.hero-stage{height:365px;margin:25px auto 0}.f0{width:36%;height:160px;top:5%;left:0}.f1{width:32%;height:140px;top:48%;left:27%}.f2{width:47%;height:170px;right:0;top:0}.f3{width:30%;height:120px;right:0;top:53%}.stage-caption{left:0;bottom:0;font-size:10px;gap:20px}.hero-baseline{margin-top:15px}.hero-baseline>span:last-child{display:none}.section{padding:60px var(--pad)}.section-heading{gap:20px}.section-heading h2{font-size:36px}.text-link{font-size:11px;gap:12px}.work-grid{gap:40px 18px}.card-image{border-radius:12px}.card-caption h2{font-size:22px}.card-caption .meta{font-size:8px}.card-index{display:none}.intro-bottom{gap:35px}.page-heading{padding-top:40px}.page-heading h1{margin-bottom:40px}.work-toolbar{align-items:start;flex-direction:column}.about-layout{gap:35px}.about-visual{height:330px}.about-copy p{font-size:13px}.project-description{gap:30px}.project-description p{font-size:14px}.footer-bottom{flex-wrap:wrap}.footer-bottom>span:nth-child(2){display:none}}
@media(max-width:540px){header{height:75px}.menu{display:block;font-size:12px}nav{display:none;position:absolute;top:75px;left:0;right:0;padding:20px var(--pad) 30px;background:var(--paper);flex-direction:column;gap:15px;border-bottom:1px solid var(--line);font-size:24px}.nav-open nav{display:flex}.hero h1{font-size:13vw}.hero h1 em{padding-left:0}.title-star{font-size:.45em;margin-left:5px}.hero-stage{height:350px}.f0{width:45%;height:140px;top:5%}.f1{width:39%;left:7%;top:49%;height:120px}.f2{width:49%;top:14%;height:160px}.f3{right:2%;top:65%;width:40%;height:110px}.stage-caption{bottom:1%;left:0;font-size:9px;max-width:45%;gap:15px}.stage-caption .circle-link{width:32px;height:32px;flex-shrink:0;font-size:17px}.hero-baseline{font-size:8px;padding:18px 0}.intro h2{font-size:34px;margin:30px 0}.intro-bottom{align-items:start;flex-direction:column;gap:25px}.section-heading{align-items:start;flex-direction:column}.section-heading h2{font-size:38px}.work-grid{grid-template-columns:1fr;gap:36px}.card-image{aspect-ratio:1.3}.card-caption h2{font-size:26px}.card-caption .meta{font-size:9px}.card-index{display:block}.page-heading h1{font-size:22vw;letter-spacing:-.07em}.heading-arrow{font-size:.6em}.sup{font-size:12px;margin:0;padding:5px}.filters{gap:4px}.filters button{font-size:10px;padding:10px 14px}.work-toolbar p{font-size:12px}.gallery-section{padding-top:35px}.about-layout{grid-template-columns:1fr;padding-top:0}.about-visual{height:290px}.about-copy h2{font-size:42px}.about-copy p{font-size:15px}.skills summary{gap:20px;font-size:23px}.skills details p{padding-left:30px;padding-right:10px}.contact-heading h1{font-size:18vw}.contact-heading p{font-size:13px}.email{font-size:7vw}.project-heading{padding-top:25px}.project-heading .eyebrow-row{flex-direction:column;gap:12px}.project-heading h1{font-size:13vw}.project-cover{height:65vw;border-radius:12px}.project-description{grid-template-columns:1fr;gap:25px}.project-description h2{font-size:38px}.project-gallery{grid-template-columns:1fr;gap:20px}.project-gallery img:first-child{aspect-ratio:1.35}.footer-cta{font-size:17vw;margin-bottom:40px}footer{padding-top:40px;border-radius:22px 22px 0 0}.footer-bottom{font-size:9px}.footer-bottom .motion-toggle{flex-basis:100%;text-align:left;margin-top:5px}.heading-arrow{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js .reveal{opacity:1;transform:none}::view-transition-group(*){animation:none!important}}

/* Preview media is fitted in full instead of being cropped to the gallery frame. */
.card-image img,.card-image video{object-fit:contain}
.work-card:hover .card-image img,.work-card:hover .card-image video{transform:none}
.consulate-views{padding-top:0}.floor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px 28px}.floor-view{margin:0;min-width:0}.floor-image{aspect-ratio:16/9;background:#e6e7e1;border-radius:16px;overflow:hidden}.floor-image img{display:block;width:100%;height:100%;object-fit:contain}.floor-view figcaption{padding-top:18px}.floor-view h3{font-size:26px;letter-spacing:-.04em;font-weight:500;margin-top:8px}.floor-view .meta{color:#70776c;font-size:9px}@media(max-width:600px){.floor-grid{grid-template-columns:1fr;gap:35px}.floor-image{border-radius:12px}.floor-view h3{font-size:25px}}
.card-description{font-size:13px;line-height:1.6;color:#686e62;max-width:480px;margin-top:15px}.project-facts{display:flex;gap:65px;flex-wrap:wrap;margin:25px 0 38px}.project-facts span{display:block;font-size:12px;color:#74796e;margin-bottom:10px}.project-facts p{font-size:15px;line-height:1.4}@media(max-width:540px){.card-description{font-size:12px;margin-top:12px}.project-facts{gap:25px;margin:25px 0}.project-facts div{flex-basis:100%}}

.scene-cover-label{font-size:12px;padding:16px 0;color:#70776c}.tesi-scenes{padding-top:0}.scene-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px 28px}.scene{margin:0;min-width:0}.scene-player{background:#e6e7e1;border-radius:15px;overflow:hidden}.scene-player video{display:block;width:100%;height:auto;object-fit:contain}.scene figcaption{padding-top:18px}.scene h3{font-size:28px;font-weight:500;letter-spacing:-.04em;margin:8px 0 12px}.scene figcaption p{font-size:15px;line-height:1.6;color:#65685f;max-width:46ch}.scene .meta{font-size:10px}@media(max-width:700px){.scene-grid{grid-template-columns:1fr;gap:36px}.scene h3{font-size:25px}}
