@font-face { font-display:swap; font-family:Italiana; src:url('/vendor/fonts/italiana/files/italiana-latin-400-normal.woff2') format('woff2'); } @font-face { font-display:swap; font-family:Manrope; src:url('/vendor/fonts/manrope/files/manrope-latin-400-normal.woff2') format('woff2'); font-weight:400; } @font-face { font-display:swap; font-family:Manrope; src:url('/vendor/fonts/manrope/files/manrope-latin-600-normal.woff2') format('woff2'); font-weight:600; } @font-face { font-display:swap; font-family:'DM Mono'; src:url('/vendor/fonts/dm-mono/files/dm-mono-latin-400-normal.woff2') format('woff2'); }
:root { --ink:#171611; --paper:#e8e2d7; --cream:#f4f0e8; --brick:#a6543c; --line:rgba(23,22,17,.18); --display:'Italiana', Georgia, serif; --sans:'Manrope', sans-serif; --mono:'DM Mono', monospace; }
* { box-sizing:border-box; } html { scroll-behavior:smooth; } body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans); font-size:14px; overflow-x:hidden; } body.menu-open { overflow:hidden; } a { color:inherit; text-decoration:none; } button { font:inherit; color:inherit; }
.grain { position:fixed; inset:0; z-index:30; pointer-events:none; opacity:.13; 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='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E"); }
.site-header { position:absolute; z-index:20; left:0; right:0; top:0; display:flex; align-items:center; justify-content:space-between; padding:28px clamp(22px,4vw,64px); color:var(--cream); mix-blend-mode:difference; }
.brand { font-family:var(--display); font-size:27px; letter-spacing:-.055em; line-height:1; } .brand span { font-style:italic; }
.menu-button { border:0; background:transparent; display:flex; align-items:center; gap:14px; cursor:pointer; padding:8px 0; } .menu-label,.eyebrow,.hero-side,.hero-scroll,figcaption,.menu-note { font:10px/1.2 var(--mono); letter-spacing:.1em; text-transform:uppercase; }
.menu-icon { width:29px; height:15px; display:grid; align-content:center; gap:6px; } .menu-icon i { display:block; height:1px; background:currentColor; transform-origin:center; transition:transform .45s cubic-bezier(.16,1,.3,1); }.menu-button:hover .menu-icon i:first-child { transform:translateX(6px); }.menu-button:hover .menu-icon i:last-child { transform:translateX(-5px); }
.overlay-menu { position:fixed; z-index:15; inset:0; visibility:hidden; opacity:0; display:flex; flex-direction:column; justify-content:center; padding:clamp(30px,6vw,100px); background:#1e211c; color:var(--cream); transition:opacity .55s ease,visibility .55s; }.overlay-menu.open { visibility:visible; opacity:1; }.overlay-menu .eyebrow { color:#bdb8ab; margin:0 0 28px; }.menu-links { display:grid; gap:7px; }.menu-links a { width:max-content; display:flex; align-items:baseline; gap:20px; font:clamp(45px,8vw,116px)/.88 var(--display); letter-spacing:-.06em; transition:color .3s, transform .45s cubic-bezier(.16,1,.3,1); }.menu-links a:hover { color:#d88967; transform:translateX(18px); }.menu-links sup { font:10px var(--mono); letter-spacing:.08em; }.menu-note { position:absolute; bottom:38px; right:clamp(30px,6vw,100px); color:#bdb8ab; }
.hero { min-height:100svh; background:#252923; color:var(--cream); position:relative; padding:clamp(145px,18vh,220px) clamp(22px,8vw,128px) 45px; display:grid; grid-template-columns:minmax(260px,.95fr) minmax(260px,.78fr); gap:6vw; overflow:hidden; }.hero::after { content:''; position:absolute; inset:0; background:radial-gradient(circle at 80% 15%,rgba(196,126,92,.25),transparent 25%); pointer-events:none; }.hero-copy { z-index:1; align-self:center; }.hero-copy .eyebrow { color:#cac6b9; margin-bottom:32px; }.hero h1 { margin:0; max-width:650px; font:clamp(55px,7.4vw,118px)/.82 var(--display); letter-spacing:-.07em; }.hero h1 span,.hero h1 em { display:block; }.hero h1 em { color:#d98766; font-weight:400; }.round-link { border:1px solid rgba(244,240,232,.65); border-radius:50%; width:132px; aspect-ratio:1; display:flex; justify-content:center; flex-direction:column; padding:0 22px; margin-top:54px; font:11px/1.4 var(--mono); transition:background .3s,color .3s; }.round-link b { font:24px var(--display); margin-top:4px; }.round-link:hover { background:var(--cream); color:var(--ink); }.hero-art { position:relative; z-index:1; margin:0; align-self:center; height:min(64vh,690px); overflow:hidden; }.hero-art img { height:100%; width:100%; object-fit:cover; filter:saturate(.65) contrast(.95); }.hero-art figcaption { position:absolute; bottom:13px; left:14px; color:var(--cream); mix-blend-mode:difference; }.hero-side { z-index:1; position:absolute; right:28px; bottom:100px; writing-mode:vertical-rl; color:#d8d1c3; }.hero-scroll { z-index:1; position:absolute; left:clamp(22px,8vw,128px); bottom:45px; display:flex; align-items:center; gap:10px; color:#b8b4a9; }.hero-scroll span { height:1px; width:60px; background:currentColor; }
.section-pad { padding:clamp(95px,13vw,210px) clamp(22px,8vw,128px); }.eyebrow { color:#7b766b; }.manifesto { min-height:95vh; display:grid; align-content:space-between; }.manifesto h2,.works h2,.contact h2 { margin:70px 0; max-width:1040px; font:clamp(54px,7.4vw,120px)/.9 var(--display); letter-spacing:-.065em; font-weight:400; }.manifesto-bottom { margin-left:auto; max-width:530px; display:grid; gap:35px; }.manifesto-bottom p,.works-intro { font-size:16px; line-height:1.7; }.text-link { display:inline-flex; align-items:center; gap:12px; width:max-content; padding-bottom:8px; border-bottom:1px solid var(--ink); font-size:12px; }.text-link span { font-size:18px; }.image-pause { position:relative; height:min(80vw,920px); overflow:hidden; background:#3f332c; }.image-pause img { width:100%; height:115%; object-fit:cover; filter:saturate(.55); }.image-pause p { position:absolute; z-index:1; bottom:24px; left:clamp(22px,8vw,128px); margin:0; color:var(--cream); font:clamp(35px,6vw,90px)/1 var(--display); letter-spacing:-.05em; }
.works { background:var(--cream); }.works-head { display:flex; justify-content:space-between; gap:60px; align-items:end; margin-bottom:80px; }.works h2 { margin:20px 0 0; }.works-intro { width:min(370px,100%); margin:0 0 8px; }.works-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(28px,5vw,85px) clamp(16px,3vw,55px); }.art-card { background:transparent; border:0; padding:0; text-align:left; cursor:pointer; position:relative; color:var(--ink); }.art-card:nth-child(even) { margin-top:clamp(55px,11vw,180px); }.art-visual { position:relative; overflow:hidden; aspect-ratio:4/5; background:#b8a89a; }.art-visual img { width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.16,1,.3,1),filter .5s; }.art-overlay { position:absolute; inset:0; display:flex; justify-content:space-between; align-items:flex-end; padding:20px; background:linear-gradient(transparent 45%,rgba(16,16,13,.73)); color:var(--cream); opacity:0; transition:opacity .45s; }.art-overlay span { font:10px var(--mono); text-transform:uppercase; letter-spacing:.1em; }.art-overlay b { font:38px var(--display); font-weight:400; }.art-card:hover .art-overlay { opacity:1; }.art-card:hover img { transform:scale(1.07); filter:saturate(.8); }.art-meta { display:flex; justify-content:space-between; gap:20px; padding:14px 0 0; border-top:1px solid var(--line); margin-top:12px; }.art-meta h3 { margin:0; font:clamp(25px,3vw,43px)/.9 var(--display); letter-spacing:-.05em; font-weight:400; }.art-meta p { margin:4px 0 0; font:10px var(--mono); text-transform:uppercase; letter-spacing:.08em; color:#716c60; }.status { align-self:start; border:1px solid var(--line); border-radius:999px; padding:6px 9px; white-space:nowrap; font:9px var(--mono); letter-spacing:.07em; text-transform:uppercase; }.status[data-status='venduto'] { background:#292d26; color:white; border-color:#292d26; }.status[data-status='in esposizione'] { border-color:#a6543c; color:#93432c; }.more-works { margin-top:95px; }.contact { min-height:85vh; color:var(--cream); background:#a6543c; position:relative; overflow:hidden; }.contact::before { content:'MG'; position:absolute; right:-.04em; top:-.18em; font:clamp(300px,56vw,1000px)/1 var(--display); color:rgba(255,255,255,.08); letter-spacing:-.13em; }.contact .eyebrow,.contact-small { color:#f0c8b7; position:relative; }.contact h2 { position:relative; margin:70px 0 55px; }.contact h2 em { font-weight:400; }.contact-mail { position:relative; display:inline-block; font:clamp(30px,5vw,75px)/1 var(--display); border-bottom:1px solid rgba(255,255,255,.65); padding-bottom:12px; letter-spacing:-.04em; }.contact-mail span { font-family:var(--sans); font-size:.6em; }.contact-small { position:relative; margin-top:80px; font:10px/1.7 var(--mono); text-transform:uppercase; letter-spacing:.08em; } footer { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:25px clamp(22px,4vw,64px); background:#1e211c; color:#e8e2d7; font:10px var(--mono); text-transform:uppercase; letter-spacing:.08em; } footer .brand { font-size:22px; } footer a:last-child { border-bottom:1px solid #aaa397; padding-bottom:3px; }
.artwork-dialog { width:min(950px,calc(100vw - 32px)); padding:0; border:0; background:var(--cream); color:var(--ink); box-shadow:0 25px 90px rgba(0,0,0,.35); }.artwork-dialog::backdrop { background:rgba(17,18,14,.8); backdrop-filter:blur(5px); }.dialog-close { position:absolute; z-index:2; top:15px; right:18px; width:38px; height:38px; border:1px solid rgba(255,255,255,.5); border-radius:50%; color:white; background:rgba(0,0,0,.2); font-size:27px; cursor:pointer; }.dialog-grid { display:grid; grid-template-columns:1.1fr .9fr; }.dialog-grid img { width:100%; height:100%; min-height:500px; object-fit:cover; }.dialog-info { padding:clamp(35px,6vw,80px); display:flex; flex-direction:column; align-items:start; }.dialog-info h2 { margin:65px 0 16px; font:clamp(42px,5vw,68px)/.9 var(--display); letter-spacing:-.055em; font-weight:400; }.dialog-info p { line-height:1.65; }.dialog-info .status { margin-top:auto; }.dialog-info .price { margin-top:18px; font:23px var(--display); }.cursor { display:none; }
@media (pointer:fine) { .cursor { display:block; position:fixed; z-index:50; pointer-events:none; width:10px; height:10px; border-radius:50%; background:var(--cream); mix-blend-mode:difference; transform:translate(-50%,-50%); } }
@media (max-width:700px) { .site-header { padding-top:22px; }.menu-label { display:none; }.hero { min-height:780px; display:block; padding-top:130px; }.hero h1 { font-size:clamp(54px,15vw,78px); }.hero-art { position:absolute; z-index:0; inset:0; height:auto; opacity:.35; }.hero-art img { object-position:62% center; }.hero-copy { position:relative; }.hero-side { right:14px; }.hero-scroll { bottom:28px; }.manifesto { min-height:auto; }.manifesto h2,.works h2,.contact h2 { margin:42px 0; }.works-head { display:block; margin-bottom:45px; }.works-intro { margin-top:30px; }.works-grid { gap:45px 13px; }.art-card:nth-child(even) { margin-top:55px; }.art-meta { display:block; }.art-meta .status { display:inline-block; margin-top:12px; }.dialog-grid { grid-template-columns:1fr; }.dialog-grid img { min-height:300px; max-height:48vh; }.dialog-info h2 { margin-top:25px; }.dialog-info .status { margin-top:35px; }.menu-links a { font-size:clamp(45px,14vw,75px); }.menu-note { left:30px; right:auto; } footer { flex-wrap:wrap; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation-duration:.01ms!important; transition-duration:.01ms!important; scroll-behavior:auto!important; } }

/* A consistent gallery wall: equal stages, complete photographs, quiet captions. */
html { scrollbar-gutter:stable; }
.menu-button { width:94px; height:44px; flex-shrink:0; justify-content:space-between; padding:0; }
.menu-label { width:42px; text-align:left; }
.menu-icon { position:relative; display:block; width:29px; height:24px; flex-shrink:0; }
.menu-icon i { position:absolute; left:0; top:50%; width:29px; }
.menu-icon i:first-child { transform:translateY(-4px); }
.menu-icon i:last-child { transform:translateY(4px); }
.menu-button:hover .menu-icon i:first-child { transform:translateY(-5px); }
.menu-button:hover .menu-icon i:last-child { transform:translateY(5px); }
.menu-button[aria-expanded='true'] .menu-icon i:first-child { transform:rotate(45deg); }
.menu-button[aria-expanded='true'] .menu-icon i:last-child { transform:rotate(-45deg); }
.menu-button:focus-visible { outline:1px solid currentColor; outline-offset:8px; border-radius:2px; }
.cursor { display:none; }
.works-grid { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:clamp(44px,5vw,80px) clamp(22px,3vw,48px); }
.works-grid .art-card { width:100%; min-width:0; margin:0; grid-column:auto; display:block; }
.art-visual { display:block; width:100%; aspect-ratio:4/3; overflow:hidden; isolation:isolate; background:#e7e0d5; }
.art-visual img { display:block; width:100%; height:100%; object-fit:contain; filter:none; }
.art-card:hover img { transform:scale(1.018); filter:none; }
.art-overlay { background:transparent; padding:16px; align-items:flex-end; justify-content:flex-end; }
.art-overlay b { display:grid; place-items:center; width:38px; height:38px; border-radius:50%; background:var(--cream); color:var(--ink); font:19px var(--sans); box-shadow:0 2px 12px #0001; }
.art-card:focus-visible .art-overlay { opacity:1; }
.art-meta { border-top:0; padding:20px 0 0; margin:0; flex-wrap:wrap; row-gap:14px; }
.art-meta h3 { font-size:clamp(27px,2.8vw,43px); line-height:1.05; }
.art-meta p { color:#514d45; line-height:1.5; margin-top:9px; }
.status { border-color:#777168; color:#25231e; }
@media (max-width:700px) { .menu-button { width:44px; justify-content:center; }.works-grid { grid-template-columns:1fr; gap:44px; }.art-meta { display:flex; }.art-meta .status { margin-top:0; } }

/* Artwork staging: images stay whole; written information lives on paper, never over paint. */
.journey { background:#252923; color:var(--cream); padding:clamp(30px,4vh,50px) 0; overflow:hidden; }
.journey-heading { padding:0 clamp(22px,6vw,90px); display:flex; justify-content:space-between; align-items:end; gap:25px; margin-bottom:28px; }
.journey-heading .eyebrow { color:#c0b9ab; margin:0 0 14px; }
.journey h2 { font:clamp(38px,4.5vw,72px)/1 var(--display); letter-spacing:-.045em; margin:0; font-weight:400; }
.journey-hint,.journey-footer { font:10px/1.5 var(--mono); text-transform:uppercase; letter-spacing:.08em; }
.journey-hint { color:#c0b9ab; white-space:nowrap; }.journey-hint span { margin-left:12px; font-size:21px; }
.journey-window { overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scrollbar-width:thin; scrollbar-color:#b5ab98 transparent; }
.journey-track { display:flex; width:max-content; gap:clamp(20px,3vw,48px); padding:0 18vw; }
.journey-card { border:0; padding:0; background:var(--cream); color:var(--ink); width:clamp(320px,44vw,850px); flex:0 0 auto; text-align:left; cursor:pointer; scroll-snap-align:center; }
.journey-photo { display:block; height:clamp(280px,55vh,650px); background:#e4ddcf; overflow:hidden; }
.journey-photo img { display:block; width:100%; height:100%; object-fit:contain; transition:transform .8s cubic-bezier(.16,1,.3,1); }
.journey-card:hover img { transform:scale(1.025); }
.journey-caption { display:flex; align-items:center; flex-wrap:wrap; gap:14px; padding:20px 24px; min-height:80px; }
.journey-number { font:10px var(--mono); color:#655e51; }
.journey-name { font:clamp(26px,2.5vw,40px)/1 var(--display); letter-spacing:-.04em; flex:1; }
.journey-caption .status { align-self:center; }
.journey-footer { display:flex; align-items:center; justify-content:space-between; gap:30px; padding:26px clamp(22px,6vw,90px) 0; color:#c0b9ab; }
.journey-progress { height:1px; background:#ffffff30; flex:1; max-width:260px; display:none; }.journey-progress i { display:block; height:100%; width:100%; background:#d98766; transform:scaleX(0); transform-origin:left; }
.journey--pinned { height:100svh; display:flex; flex-direction:column; justify-content:center; }.journey--pinned .journey-window { overflow:hidden; }.journey--pinned .journey-track { will-change:transform; }.journey--pinned .journey-progress { display:block; }
.journey-card:focus-visible { outline:2px solid #d98766; outline-offset:-2px; }
@media (max-width:900px) { .journey-heading { display:block; }.journey-hint { margin-top:18px; }.journey-track { padding:0 7vw; gap:18px; }.journey-card { width:86vw; }.journey-photo { height:52svh; max-height:520px; }.journey-caption { padding:17px; gap:10px; }.journey-footer>span { display:none; }.journey-footer { justify-content:flex-end; } }
.hero-art { height:auto; align-self:center; background:var(--paper); padding:clamp(10px,1.5vw,18px); }
.hero-art-image { aspect-ratio:16/10; overflow:hidden; background:#e5ded2; }
.hero-art img { display:block; width:100%; height:100%; object-fit:contain; object-position:center; filter:none; }
.hero-art figcaption { position:static; display:flex; justify-content:space-between; align-items:center; gap:18px; padding:14px 4px 1px; color:var(--ink); background:transparent; mix-blend-mode:normal; font:10px/1.3 var(--mono); letter-spacing:.08em; text-transform:uppercase; }
.hero-art figcaption span { color:#716c60; }.hero-art figcaption b { font-weight:500; text-align:right; }
.image-pause { height:auto; background:var(--cream); overflow:visible; }
.image-pause-visual { height:auto; width:100%; overflow:hidden; background:#d9d2c5; }
.image-pause img { display:block; width:100%; height:auto; object-fit:contain; filter:none; transform:none; }
.image-pause-caption { display:flex; justify-content:space-between; align-items:center; gap:30px; padding:clamp(22px,3vw,45px) clamp(22px,8vw,128px); background:var(--cream); color:var(--ink); border-bottom:1px solid var(--line); }
.image-pause-caption p { position:static; margin:0; color:var(--ink); font:clamp(34px,5vw,80px)/.92 var(--display); letter-spacing:-.05em; }
.image-pause-caption span { max-width:210px; color:#514d45; font:10px/1.6 var(--mono); letter-spacing:.08em; text-transform:uppercase; }
@media (max-width:700px) { .hero { padding-bottom:90px; }.hero-art { position:relative; inset:auto; z-index:1; opacity:1; margin-top:44px; padding:9px; }.hero-art-image { aspect-ratio:4/3; }.hero-art figcaption { display:grid; gap:5px; padding:12px 4px 3px; }.hero-art figcaption b { text-align:left; }.image-pause-visual { height:auto; }.image-pause-caption { display:grid; gap:12px; }.image-pause-caption span { max-width:none; } }
