/* [ALESENSO] AS3.5 — estratto da CSS inline, 20260923-1 */
/* Consolidamento del 23/09/2026: barra, menu e pie' di pagina sono
   stati tolti da qui e vivono solo in base.css. I valori della scala
   tipografica e dei contrasti sono stati scritti dentro le regole a
   cui appartengono, al posto delle correzioni che base.css imponeva
   con selettori gonfiati. */

/* Regole specifiche di progetto. Caricato DOPO base.css e comune.css. */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root { --cream: #F7F3EE; --warm: #EDE7DC; --sand: #D8CEBC; --sand-lt: #EAE3D6; --ink: #1C1916; --ink-mid: #4A433A; --ink-lt: #8C8078; --red: #C0432A; --red-lt: #D9593E; --red-pale: #F5E8E3; --ff-serif: 'Cormorant Garamond', Georgia, serif; --ff-sans: 'DM Sans', system-ui, sans-serif; --ease: cubic-bezier(.4, 0, .2, 1); --ease-out: cubic-bezier(0, 0, .2, 1); }
html { scroll-behavior: smooth; }
body { background: var(--cream); color: var(--ink); font-family: var(--ff-sans); font-weight: 300; line-height: 1.65; overflow-x: hidden; }
::-webkit-scrollbar { width: 3px; }
::-webkit-scrollbar-track { background: var(--cream); }
::-webkit-scrollbar-thumb { background: var(--sand); border-radius: 2px; }
.hero { min-height: 92vh; position: relative; overflow: hidden; background: var(--ink); display: flex; flex-direction: column; justify-content: flex-end; }
.hero-bg { position: absolute; inset: 0; background: radial-gradient(ellipse 80% 60% at 65% 30%, rgba(192,67,42,.18), transparent 65%), radial-gradient(ellipse 50% 70% at 15% 75%, rgba(192,67,42,.08), transparent 55%), linear-gradient(150deg, #2E2318 0%, #1C1916 45%, #110E0C 100%); transform: scale(1.03); transition: transform 7s ease; }
.hero.loaded .hero-bg { transform: scale(1); }
.hero-grain { position: absolute; inset: 0; z-index: 1; pointer-events: none; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.04'/%3E%3C/svg%3E"); opacity: .45; }
.hero-vignette { position: absolute; inset: 0; z-index: 2; background: linear-gradient( to bottom, rgba(28,25,22,.55) 0%, transparent 28%, transparent 48%, rgba(28,25,22,.65) 75%, rgba(28,25,22,.97) 100% ); }
.hero-content { position: relative; z-index: 3; padding: 0 3.5rem 5rem; display: grid; grid-template-columns: 1fr auto; align-items: flex-end; gap: 4rem; }
.hero-left {}
.hero-breadcrumb { display: flex; align-items: center; gap: .6rem; font-size:1.05rem; letter-spacing: .15em; text-transform: uppercase; color:rgba(247,243,238,.8); margin-bottom: 1.6rem; opacity: 0; animation: fadeUp .7s var(--ease) .2s forwards; }
.hero-breadcrumb a { color: inherit; text-decoration: none; transition: color .2s; }
.hero-breadcrumb a:hover { color: rgba(247,243,238,.85); }
.hero-breadcrumb .sep { opacity: .35; }
.hero-type-badge { display: inline-flex; align-items: center; gap: .5rem; padding: .3rem .9rem; background: rgba(192,67,42,.7); backdrop-filter: blur(4px); border-radius: 2px; font-size:1.05rem; letter-spacing: .12em; text-transform: uppercase; color: rgba(247,243,238,.9); margin-bottom: 1.2rem; opacity: 0; animation: fadeUp .7s var(--ease) .3s forwards; }
.hero-title { font-family: var(--ff-serif); font-size: clamp(3.8rem, 9vw, 10rem); font-weight: 300; line-height: .9; letter-spacing: -.02em; color: var(--cream); opacity: 0; animation: fadeUp .9s var(--ease) .4s forwards; }
.hero-title em { font-style: italic; color: rgba(217,89,62,.85); }
.hero-subtitle { font-family: var(--ff-serif); font-size: clamp(1.1rem, 2vw, 1.5rem); font-weight: 300; font-style: italic; color:rgba(247,243,238,.8); margin-top: .8rem; opacity: 0; animation: fadeUp .7s var(--ease) .55s forwards; }
.hero-meta-row { display: flex; gap: 3rem; flex-wrap: wrap; margin-top: 2.5rem; padding-top: 2rem; border-top: 1px solid rgba(247,243,238,.55); opacity: 0; animation: fadeUp .7s var(--ease) .65s forwards; }
.hero-meta-item {}
.hero-meta-label { font-size:1.05rem; letter-spacing:.12em; text-transform: uppercase; color:rgba(247,243,238,.8); margin-bottom: .25rem; }
.hero-meta-value { font-family: var(--ff-serif); font-size: 1rem; font-weight: 300; color: rgba(247,243,238,.98); }
.hero-stats { display: flex; flex-direction: column; gap: 2px; opacity: 0; animation: fadeUp .8s var(--ease) .7s forwards; }
.hero-stat { background: rgba(247,243,238,.06); backdrop-filter: blur(8px); border: 1px solid rgba(247,243,238,.08); padding: 1rem 1.8rem; text-align: right; min-width: 160px; }
.hero-stat-num { font-family: var(--ff-serif); font-size: 2.4rem; font-weight: 300; color: var(--red-lt); line-height: 1; }
.hero-stat-label { font-size:1.05rem; letter-spacing: .13em; text-transform: uppercase; color: rgba(247,243,238,.78); margin-top: .2rem; }
.hero-scroll-cue { position: absolute; right: 3.5rem; bottom: 5rem; z-index: 3; display: flex; flex-direction: column; align-items: center; gap: .8rem; font-size:1.05rem; letter-spacing: .15em; text-transform: uppercase; color:rgba(247,243,238,.8); animation: fadeIn 1s var(--ease) 1.2s both; }
.scroll-line { width: 1px; height: 50px; background: linear-gradient(to bottom, rgba(247,243,238,.3), transparent); animation: scrollPulse 2s ease infinite 1.5s; }
.intro { background: var(--cream); padding: 7rem 0 5rem; }
.intro-grid { max-width: 1200px; margin: 0 auto; padding: 0 3.5rem; display: grid; grid-template-columns: 1fr 1.15fr; gap: 7rem; align-items: start; }
.intro-left {}
.section-label { display: flex; align-items: center; gap: 1rem; font-size:1.05rem; letter-spacing:.12em; text-transform: uppercase; color: var(--red); margin-bottom: 1.4rem; }
.section-label::after { content: ''; flex: 0 0 36px; height: 1px; background: var(--red); }
h2.section-title { font-family: var(--ff-serif); font-size: clamp(2.2rem, 3.5vw, 3.8rem); font-weight: 300; line-height: 1.05; letter-spacing: -.01em; }
h2.section-title em { font-style: italic; color: var(--red); }
.intro-body { font-size:1.15rem; color: var(--ink-mid); line-height: 1.9; }
.intro-body p { margin-bottom: 1.4rem; }
.intro-body p:first-of-type { font-family: var(--ff-serif); font-size: 1.35rem; font-weight: 300; line-height: 1.6; color: var(--ink); }
.intro-right {}
.project-datasheet { background: var(--warm); padding: 2.8rem; border-radius: 3px; position: sticky; top: 6rem; }
.ds-title { font-size:1.05rem; letter-spacing:.12em; text-transform: uppercase; color:var(--ink-mid); margin-bottom: 2rem; padding-bottom: 1.2rem; border-bottom: 1px solid var(--sand); }
.ds-row { display: flex; gap: 1rem; justify-content: space-between; padding: .85rem 0; border-bottom: 1px solid rgba(216,206,188,.5); }
.ds-row:last-child { border-bottom: none; padding-bottom: 0; }
.ds-label { font-size:1.05rem; letter-spacing: .1em; text-transform: uppercase; color:var(--ink-mid); flex-shrink: 0; padding-top: .1rem; }
.ds-value { font-family: var(--ff-serif); font-size:1.15rem; font-weight: 300; color: var(--ink); text-align: right; line-height: 1.4; }
.ds-value .accent { color: var(--red); }
.artists-row { margin-top: 2rem; padding-top: 1.8rem; border-top: 1px solid var(--sand); }
.artists-label { font-size:1.05rem; letter-spacing:.12em; text-transform: uppercase; color:var(--ink-mid); margin-bottom: 1rem; }
.artist-chip { display: inline-flex; align-items: center; gap: .5rem; padding: .35rem .85rem .35rem .5rem; background: var(--cream); border: 1px solid var(--sand); border-radius: 20px; font-size:1.05rem; color: var(--ink-mid); margin: .25rem; text-decoration: none; transition: all .22s; }
.artist-chip:hover { border-color: var(--red); color: var(--red); }
.artist-avatar { width: 22px; height: 22px; border-radius: 50%; background: var(--sand); flex-shrink: 0; display: flex; align-items: center; justify-content: center; font-size: .6rem; font-weight: 500; color: var(--ink-mid); }
.artist-chip.lead .artist-avatar { background: var(--red); color: #fff; }
.works-section { background: var(--warm); padding: 6rem 0; }
.works-header { max-width: 1200px; margin: 0 auto; padding: 0 3.5rem; display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 3.5rem; }
.works-count { font-family: var(--ff-serif); font-size: 1rem; font-weight: 300; color:var(--ink-mid); }
.works-count strong { color: var(--red); font-weight: 300; }
.works-filters { display: flex; gap: .4rem; flex-wrap: wrap; }
.wf-btn { padding: .4rem 1rem; font-family: var(--ff-sans); font-size:1.05rem; letter-spacing: .1em; text-transform: uppercase; background: transparent; border: 1px solid var(--sand); color: var(--ink-mid); cursor: pointer; border-radius: 2px; transition: all .22s; white-space: nowrap; }
.wf-btn.active { background: var(--ink); color: var(--cream); border-color: var(--ink); }
.wf-btn:hover:not(.active) { border-color: var(--ink-mid); color: var(--ink); }
.view-toggle { display: flex; gap: .3rem; margin-left: 1rem; }
.vt-btn { width: 34px; height: 34px; background: transparent; border: 1px solid var(--sand); border-radius: 2px; cursor: pointer; display: flex; align-items: center; justify-content: center; color: var(--ink-lt); transition: all .2s; }
.vt-btn.active { background: var(--ink); color: var(--cream); border-color: var(--ink); }
.vt-btn svg { width: 14px; height: 14px; }
.works-grid { max-width: 1200px; margin: 0 auto; padding: 0 3.5rem; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.8rem; }
.work-item { cursor: pointer; display: flex; flex-direction: column; transition: transform .3s var(--ease); }
.work-item:hover { transform: translateY(-4px); }
.work-item[data-span="wide"] { grid-column: span 2; }
.work-item[data-span="tall"] {}
.work-thumb { position: relative; overflow: hidden; border-radius: 2px; background: var(--sand); flex-shrink: 0; }
.work-item:not([data-span]) .work-thumb { aspect-ratio: 4/3; }
.work-item[data-span="wide"] .work-thumb { aspect-ratio: 16/7; }
.work-item[data-span="tall"] .work-thumb { aspect-ratio: 3/4; }
.wt-1 { background: linear-gradient(135deg, #D4C0A8, #C8AE90); }
.wt-2 { background: linear-gradient(135deg, #C2B09A, #B4A080); }
.wt-3 { background: linear-gradient(135deg, #CCB89E, #BEA882); }
.wt-4 { background: linear-gradient(135deg, #D8C8B0, #C8B898); }
.wt-5 { background: linear-gradient(135deg, #BEB090, #B0A07A); }
.wt-6 { background: linear-gradient(135deg, #CAB89E, #BCA882); }
.wt-7 { background: linear-gradient(135deg, #D0C0A8, #C0AE90); }
.work-overlay { position: absolute; inset: 0; background: rgba(28,25,22,0); display: flex; align-items: center; justify-content: center; transition: background .3s var(--ease); }
.work-item:hover .work-overlay { background: rgba(28,25,22,.3); }
.work-zoom-icon { width: 46px; height: 46px; background: rgba(247,243,238,.12); backdrop-filter: blur(6px); border-radius: 50%; display: flex; align-items: center; justify-content: center; opacity: 0; transform: scale(.8); transition: all .28s var(--ease); }
.work-item:hover .work-zoom-icon { opacity: 1; transform: scale(1); }
.work-zoom-icon svg { width: 18px; height: 18px; stroke: #fff; fill: none; stroke-width: 1.5; }
.work-author-badge { position: absolute; top: .9rem; right: .9rem; padding: .22rem .65rem; background: rgba(192,67,42,.85); backdrop-filter: blur(4px); border-radius: 2px; font-size:1.05rem; letter-spacing: .1em; text-transform: uppercase; color: #fff; }
.work-number { position: absolute; bottom: .8rem; left: .8rem; font-family: var(--ff-serif); font-size:1.05rem; color:rgba(247,243,238,.8); font-style: italic; }
.work-caption { padding: 1rem 0 .2rem; }
.work-caption-title { font-family: var(--ff-serif); font-size:1.45rem; font-weight: 300; font-style: italic; color: var(--ink); line-height: 1.25; margin-bottom: .35rem; }
.work-caption-meta { font-size:1.05rem; color:var(--ink-mid); line-height: 1.55; }
.work-caption-author { display: inline-block; font-size:1.05rem; letter-spacing: .08em; color: var(--red); margin-top: .25rem; }
.works-list { max-width: 1200px; margin: 0 auto; padding: 0 3.5rem; display: none; }
.works-list.active { display: block; }
.works-grid.active { display: grid; }
.list-item { display: grid; grid-template-columns: 160px 1fr auto; gap: 2rem; align-items: start; padding: 1.8rem 0; border-top: 1px solid var(--sand); cursor: pointer; transition: background .2s; }
.list-item:last-child { border-bottom: 1px solid var(--sand); }
.list-thumb { aspect-ratio: 4/3; border-radius: 2px; overflow: hidden; background: var(--sand); flex-shrink: 0; transition: transform .3s; }
.list-item:hover .list-thumb { transform: scale(1.03); }
.list-body {}
.list-title { font-family: var(--ff-serif); font-size: 1.4rem; font-weight: 300; font-style: italic; color: var(--ink); margin-bottom: .5rem; transition: color .22s; }
.list-item:hover .list-title { color: var(--red); }
.list-meta { font-size:1.15rem; color:var(--ink-mid); line-height: 1.65; }
.list-author { font-size:1.05rem; color: var(--red); margin-top: .35rem; }
.list-action { display: flex; align-items: center; font-size:1.05rem; letter-spacing: .1em; text-transform: uppercase; color:var(--ink-mid); gap: .4rem; white-space: nowrap; padding-top: .4rem; }
.list-item:hover .list-action { color: var(--red); }
.lightbox { position: fixed; inset: 0; z-index: 500; background: rgba(16,13,11,.97); display: flex; flex-direction: column; opacity: 0; pointer-events: none; transition: opacity .35s var(--ease); }
.lightbox.open { opacity: 1; pointer-events: all; }
.lb-topbar { position: absolute; top: 0; left: 0; right: 0; z-index: 10; display: flex; justify-content: space-between; align-items: center; padding: 1.2rem 2rem; background: linear-gradient(to bottom, rgba(16,13,11,.8), transparent); }
.lb-project-name { font-size:1.05rem; letter-spacing: .15em; text-transform: uppercase; color:rgba(247,243,238,.8); }
.lb-project-name span { color: rgba(247,243,238,.65); }
.lb-nav-counter { font-family: var(--ff-serif); font-size: 1rem; font-weight: 300; color:rgba(247,243,238,.8); }
.lb-nav-counter em { color: rgba(247,243,238,.75); font-style: normal; }
.lb-close { width: 42px; height: 42px; background: rgba(247,243,238,.08); border: none; border-radius: 50%; cursor: pointer; color: rgba(247,243,238,.7); display: flex; align-items: center; justify-content: center; transition: background .22s, color .22s; font-size: 1.1rem; }
.lb-close:hover { background: var(--red); color: #fff; }
.lb-main { flex: 1; display: flex; overflow: hidden; }
.lb-image-col { flex: 1; position: relative; display: flex; align-items: center; justify-content: center; padding: 5rem 1.5rem 0; }
.lb-image-wrap { max-width: 100%; max-height: 100%; position: relative; }
.lb-image-wrap img { max-width: 100%; max-height: calc(100vh - 9rem); object-fit: contain; display: block; transition: opacity .3s; }
.lb-img-placeholder { width: min(700px, 80vw); aspect-ratio: 16/10; border-radius: 3px; display: flex; align-items: center; justify-content: center; position: relative; overflow: hidden; }
.lb-img-placeholder svg { opacity: .15; }
.lb-arrow { position: absolute; top: 50%; transform: translateY(-50%); width: 52px; height: 52px; background: rgba(247,243,238,.07); backdrop-filter: blur(6px); border: 1px solid rgba(247,243,238,.1); border-radius: 50%; cursor: pointer; z-index: 5; display: flex; align-items: center; justify-content: center; transition: all .25s; color: rgba(247,243,238,.6); }
.lb-arrow:hover { background: var(--red); border-color: var(--red); color: #fff; }
.lb-arrow svg { width: 18px; height: 18px; stroke: currentColor; fill: none; stroke-width: 1.5; }
.lb-arrow-prev { left: 1.2rem; }
.lb-arrow-next { right: 1.2rem; }
.lb-info-panel { width: 380px; flex-shrink: 0; background: rgba(28,25,22,.8); backdrop-filter: blur(16px); border-left: 1px solid rgba(247,243,238,.07); display: flex; flex-direction: column; overflow-y: auto; padding-top: 5rem; scrollbar-width: thin; scrollbar-color: rgba(247,243,238,.1) transparent; }
.lb-info-inner { padding: 2rem 2.5rem 3rem; }
.lb-work-num { font-family: var(--ff-serif); font-size: 4rem; font-weight: 300; line-height: 1; color: rgba(247,243,238,.06); margin-bottom: -.5rem; margin-left: -.1em; }
.lb-work-title { font-family: var(--ff-serif); font-size: clamp(1.8rem, 3vw, 2.4rem); font-weight: 300; font-style: italic; color: rgba(247,243,238,.9); line-height: 1.1; margin-bottom: .7rem; }
.lb-work-author { font-size:1.05rem; letter-spacing: .12em; text-transform: uppercase; color: var(--red-lt); margin-bottom: 1.8rem; }
.lb-data { border-top: 1px solid rgba(247,243,238,.08); padding-top: 1.5rem; margin-bottom: 1.5rem; }
.lb-data-row { display: flex; justify-content: space-between; gap: 1rem; padding: .6rem 0; border-bottom: 1px solid rgba(247,243,238,.05); }
.lb-data-row:last-child { border-bottom: none; }
.lb-data-label { font-size:1.05rem; letter-spacing: .13em; text-transform: uppercase; color:rgba(247,243,238,.8); flex-shrink: 0; }
.lb-data-value { font-family: var(--ff-serif); font-size: .95rem; font-weight: 300; color: rgba(247,243,238,.7); text-align: right; line-height: 1.4; }
.lb-description { font-size:1.15rem; color:rgba(247,243,238,.8); line-height: 1.8; margin-bottom: 1.8rem; border-top: 1px solid rgba(247,243,238,.08); padding-top: 1.5rem; }
.lb-description p { margin-bottom: .9rem; }
.lb-artwork-link { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.3rem; background: rgba(192,67,42,.15); border: 1px solid rgba(192,67,42,.25); border-radius: 3px; text-decoration: none; transition: all .25s; margin-bottom: 1.8rem; }
.lb-artwork-link:hover { background: rgba(192,67,42,.25); border-color: rgba(192,67,42,.4); }
.lb-artwork-link-text { font-size:1.05rem; letter-spacing: .1em; text-transform: uppercase; color: var(--red-lt); }
.lb-artwork-link-icon { width: 28px; height: 28px; background: var(--red); border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.lb-artwork-link-icon svg { width: 12px; height: 12px; stroke: #fff; fill: none; stroke-width: 2; }
.lb-thumbs { padding: 1.5rem 2.5rem 2.5rem; border-top: 1px solid rgba(247,243,238,.06); margin-top: auto; }
.lb-thumbs-label { font-size:1.05rem; letter-spacing: .15em; text-transform: uppercase; color:rgba(247,243,238,.8); margin-bottom: 1rem; }
.lb-thumbs-row { display: flex; gap: .5rem; overflow-x: auto; scrollbar-width: none; }
.lb-thumbs-row::-webkit-scrollbar { display: none; }
.lb-thumb { flex: 0 0 52px; height: 38px; border-radius: 2px; cursor: pointer; opacity: .35; border: 2px solid transparent; transition: all .22s; overflow: hidden; }
.lb-thumb.active { opacity: 1; border-color: var(--red); }
.lb-thumb:hover { opacity: .75; }
.lt-1 { background: linear-gradient(135deg, #D4C0A8, #C8AE90); }
.lt-2 { background: linear-gradient(135deg, #C2B09A, #B4A080); }
.lt-3 { background: linear-gradient(135deg, #CCB89E, #BEA882); }
.lt-4 { background: linear-gradient(135deg, #D8C8B0, #C8B898); }
.lt-5 { background: linear-gradient(135deg, #BEB090, #B0A07A); }
.lt-6 { background: linear-gradient(135deg, #CAB89E, #BCA882); }
.lt-7 { background: linear-gradient(135deg, #D0C0A8, #C0AE90); }
.chapter { position: relative; }
.chapter-marker { position: absolute; left: 3.5rem; top: 3rem; display: flex; flex-direction: column; align-items: center; gap: .5rem; }
.chapter-num { font-family: var(--ff-serif); font-size:1.05rem; color: var(--red); letter-spacing: .08em; }
.chapter-line { width: 1px; height: 40px; background: linear-gradient(to bottom, var(--red), transparent); }
.chapter-body { max-width: 1200px; margin: 0 auto; padding: 6rem 3.5rem 6rem 8rem; }
.locations-section { background: var(--cream); }
.locations-list { margin-top: 3rem; }
.location-item { display: grid; grid-template-columns: 52px 1fr 1fr auto; gap: 2rem; align-items: start; padding: 1.8rem 0; border-top: 1px solid var(--sand); }
.location-item:last-child { border-bottom: 1px solid var(--sand); }
.loc-num { font-family: var(--ff-serif); font-size: 2rem; font-weight: 300; color: var(--sand); line-height: 1; }
.loc-title { font-family: var(--ff-serif); font-size: 1.3rem; font-weight: 300; font-style: italic; color: var(--ink); margin-bottom: .3rem; transition: color .22s; cursor: pointer; }
.loc-title:hover { color: var(--red); }
.loc-artist { font-size:1.05rem; color: var(--red); margin-bottom: .2rem; }
.loc-address { font-size:1.15rem; color:var(--ink-mid); }
.loc-coords { font-size:1.05rem; color:var(--ink-mid); font-variant-numeric: tabular-nums; }
.loc-map-btn { display: flex; align-items: center; gap: .4rem; padding: .55rem 1rem; font-family: var(--ff-sans); font-size:1.05rem; letter-spacing: .1em; text-transform: uppercase; background: transparent; border: 1px solid var(--sand); color:var(--ink-mid); cursor: pointer; border-radius: 2px; text-decoration: none; transition: all .22s; white-space: nowrap; }
.loc-map-btn:hover { border-color: var(--red); color: var(--red); }
.loc-map-btn svg { width: 12px; height: 12px; }
.credits-section { background: var(--warm); padding: 5rem 0; }
.credits-grid { max-width: 1200px; margin: 0 auto; padding: 0 3.5rem; display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem; margin-top: 3rem; }
.credit-card { padding: 1.8rem; background: var(--cream); border: 1px solid var(--sand-lt); border-radius: 3px; }
.credit-role { font-size:1.05rem; letter-spacing: .14em; text-transform: uppercase; color: var(--red); margin-bottom: .5rem; }
.credit-name { font-family: var(--ff-serif); font-size:1.15rem; font-weight: 300; color: var(--ink); line-height: 1.3; }
.credit-sub { font-size:1.05rem; color:var(--ink-mid); margin-top: .25rem; }
.related-section { background: var(--cream); padding: 5rem 0 7rem; }
.related-grid { max-width: 1200px; margin: 0 auto; padding: 0 3.5rem; display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; margin-top: 3.5rem; }
.related-card { text-decoration: none; display: block; cursor: pointer; }
.related-img { aspect-ratio: 4/3; border-radius: 2px; background: var(--sand); margin-bottom: 1.1rem; position: relative; overflow: hidden; transition: transform .3s; }
.related-card:hover .related-img { transform: scale(1.02); }
.ri-1 { background: linear-gradient(135deg, #CFC5B0, #C0B09A); }
.ri-2 { background: linear-gradient(135deg, #BEB0A0, #B0A088); }
.ri-3 { background: linear-gradient(135deg, #D4C8B2, #C8BC9E); }
.related-tag { font-size:1.05rem; letter-spacing: .12em; text-transform: uppercase; color: var(--red); margin-bottom: .35rem; }
.related-title { font-family: var(--ff-serif); font-size: 1.25rem; font-weight: 300; font-style: italic; color: var(--ink); transition: color .22s; }
.related-card:hover .related-title { color: var(--red); }
.related-meta { font-size:1.05rem; color:var(--ink-mid); margin-top: .3rem; }
.reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.visible { opacity: 1; transform: none; }
.reveal-d1 { transition-delay: .1s; }
.reveal-d2 { transition-delay: .2s; }
.reveal-d3 { transition-delay: .3s; }
.reveal-d4 { transition-delay: .4s; }
@keyframes fadeUp { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes scrollPulse { 0%,100% { transform: scaleY(1); opacity: .3; } 50% { transform: scaleY(1.5); opacity: .65; } }
@media (max-width: 1000px) { .hero-content { padding: 0 1.5rem 3.5rem; grid-template-columns: 1fr; gap: 2rem; } .hero-stats { flex-direction: row; } .hero-stat { min-width: auto; text-align: left; } .intro-grid { grid-template-columns: 1fr; gap: 3rem; padding: 0 1.5rem; } .project-datasheet { position: static; } .works-header { padding: 0 1.5rem; flex-direction: column; align-items: flex-start; gap: 1.2rem; } .works-grid { grid-template-columns: repeat(2,1fr); padding: 0 1.5rem; } .work-item[data-span="wide"] { grid-column: span 1; } .works-list { padding: 0 1.5rem; } .list-item { grid-template-columns: 100px 1fr; } .list-action { display: none; } .chapter-marker { display: none; } .chapter-body { padding: 4rem 1.5rem; } .lb-info-panel { width: 320px; } .credits-grid { grid-template-columns: repeat(2,1fr); } .related-grid { grid-template-columns: repeat(2,1fr); padding: 0 1.5rem; } }
@media (max-width: 680px) { .works-grid { grid-template-columns: 1fr; } .lb-main { flex-direction: column; } .lb-image-col { padding-top: 4.5rem; min-height: 50vh; } .lb-info-panel { width: 100%; max-height: 45vh; padding-top: 0; } .lb-arrow-prev { left: .5rem; } .lb-arrow-next { right: .5rem; } .credits-grid { grid-template-columns: 1fr 1fr; } .related-grid { grid-template-columns: 1fr; } .location-item { grid-template-columns: 40px 1fr; } .loc-coords, .loc-map-btn { display: none; } }
.lb-logo { display:block; }
.lb-logo img { height:32px; filter:brightness(0) invert(1); opacity:.6; }
#cms-loader { position: fixed; inset: 0; z-index: 9999; background: var(--cream); display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 1.2rem; transition: opacity .5s ease, visibility .5s ease; }
#cms-loader.hidden { opacity: 0; visibility: hidden; pointer-events: none; }
.loader-wordmark { font-family: var(--ff-serif); font-size: 1.6rem; font-weight: 400; letter-spacing: .08em; color: var(--ink); }
.loader-wordmark span { color: var(--red); }
.loader-bar { width: 120px; height: 1px; background: var(--sand); position: relative; overflow: hidden; }
.loader-bar::after { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: var(--red); animation: loader-sweep 1.4s ease-in-out infinite; }
@keyframes loader-sweep { 0% { left: -100%; } 50% { left: 0%; } 100% { left: 100%; } }
#progetto-logo { margin-bottom: 1.8rem; display: none; }
#progetto-logo img { width: 100%; height: auto; max-height: 240px; object-fit: contain; object-position: left center; display: block; }

/* ══════════════════════════════════════════════════════════
   SCHEDA OPERA STANDARD (23/09/2026)

   Fino a oggi progetto.php costruiva le schede delle opere a mano,
   con stili scritti in linea: corpo del titolo 1rem, metadati
   .75rem in --ink-lt. Gli stili in linea vincono su qualunque
   foglio, quindi quelle schede erano rimaste fuori da entrambi i
   passaggi tipografici e dalla correzione di contrasto.

   Ora la pagina usa as35_stampa_scheda_opera(), lo stesso markup di
   categorie, archivio e home. Queste regole sono copiate da
   elenco.css perché progetto.css non carica comune.css.

   Le vecchie .work-item / .work-thumb / .work-caption restano per
   il lightbox e per gli elenchi in riga: non sono più usate dalle
   schede.
   ══════════════════════════════════════════════════════════ */
.work-card { cursor: pointer; display: flex; flex-direction: column; text-decoration: none; transition: transform .3s var(--ease); }
.work-card:hover { transform: translateY(-4px); }
.wc-thumb { position: relative; overflow: hidden; border-radius: 2px; background: var(--sand); }
.wc-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.wc-overlay { position: absolute; inset: 0; background: rgba(28,25,22,0); display: flex; align-items: center; justify-content: center; transition: background .3s; }
.work-card:hover .wc-overlay { background: rgba(28,25,22,.32); }
.ov-icon { opacity: 0; transform: scale(.8); transition: all .28s var(--ease); width: 44px; height: 44px; background: rgba(247,243,238,.12); backdrop-filter: blur(6px); border-radius: 50%; display: flex; align-items: center; justify-content: center; }
.ov-icon svg { width: 17px; height: 17px; stroke: #fff; fill: none; stroke-width: 1.5; }
.work-card:hover .ov-icon { opacity: 1; transform: scale(1); }
.wc-caption { padding: .8rem 0 .2rem; }
.wc-title { font-family: var(--ff-serif); font-weight: 300; font-style: italic; color: var(--ink); line-height: 1.2; margin-bottom: .22rem; transition: color .22s;font-size:1.45rem}
.work-card:hover .wc-title { color: var(--red); }
.wc-meta { color:var(--ink-mid); line-height: 1.5;font-size:1.05rem}
