/* base.css — CSS condiviso di unfound.it
   Estratto dagli stili inline il 2026-08-27.
   Il CSS specifico di ogni pagina resta inline nella pagina. */

@font-face { font-family:'Excon'; font-weight:400; font-style:normal; font-display:swap; src:url('/fonts/Excon-Regular.woff') format('woff'); }

@font-face { font-family:'Excon'; font-weight:500; font-style:normal; font-display:swap; src:url('/fonts/Excon-Medium.woff') format('woff'); }

@font-face { font-family:'Excon'; font-weight:700; font-style:normal; font-display:swap; src:url('/fonts/Excon-Bold.woff') format('woff'); }

@font-face { font-family:'Excon'; font-weight:900; font-style:normal; font-display:swap; src:url('/fonts/Excon-Black.woff') format('woff'); }

@font-face { font-family:'Sentient'; font-weight:400; font-style:normal; font-display:swap; src:url('/fonts/Sentient-Regular.woff') format('woff'); }

@font-face { font-family:'Sentient'; font-weight:400; font-style:italic; font-display:swap; src:url('/fonts/Sentient-Italic.woff') format('woff'); }

@font-face { font-family:'Sentient'; font-weight:300; font-style:normal; font-display:swap; src:url('/fonts/Sentient-Light.woff') format('woff'); }

@font-face { font-family:'Sentient'; font-weight:700; font-style:normal; font-display:swap; src:url('/fonts/Sentient-Bold.woff') format('woff'); }

:root {
  --bg:        #e6e1e5;
  --ink:       #1e242b;
  --accent:    #6199ae;
  --pop:       #e1e61e;
  --ink-muted: rgba(30,36,43,0.45);
  --ink-dim:   rgba(30,36,43,0.22);

  --f-display: 'Excon', sans-serif;
  --f-body:    'Sentient', serif;

  --ease: cubic-bezier(.16,1,.3,1);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

body { background: var(--bg); color: var(--ink); font-family: var(--f-body); -webkit-font-smoothing: antialiased; overflow-x: hidden; }

a { color: inherit; text-decoration: none; }

::selection { background: var(--ink); color: var(--bg); }

@keyframes uf-rise { from { opacity: 0; transform: translateY(110%); } to { opacity: 1; transform: translateY(0); } }

@keyframes uf-blink { 0%,49% { opacity: 1; } 50%,100% { opacity: 0; } }

@media (prefers-reduced-motion: reduce) { * { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; } }

#uf-cursor { position: fixed; top: 0; left: 0; width: 10px; height: 10px; border-radius: 50%; background: #fff; mix-blend-mode: difference; pointer-events: none; z-index: 9999; transform: translate(-50%,-50%); transition: width .3s var(--ease), height .3s var(--ease); will-change: transform; }

@media (hover: none) { #uf-cursor { display: none; } }

nav { position: fixed; top: 0; left: 0; width: 100%; display: flex; align-items: center; justify-content: space-between; padding: 22px 32px; z-index: 9000; color: #fff; mix-blend-mode: difference; }

.nav-logo { font-family: var(--f-display); font-weight: 700; font-size: 16px; letter-spacing: 0.02em; }

.nav-logo span { opacity: .55; }

.nav-links { display: flex; align-items: center; gap: 34px; font-family: var(--f-display); font-size: 12.5px; font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase; }

.nav-links a { transition: opacity .2s; }

.nav-links a:hover { opacity: .6; }

.nav-links a[aria-current="page"] { opacity: .5; }

.nav-clock { display: flex; align-items: center; gap: 7px; }

.nav-dot { width: 6px; height: 6px; border-radius: 50%; background: #fff; animation: uf-blink 2s steps(1) infinite; }

.nav-burger { display: none; flex-direction: column; justify-content: center; align-items: flex-end; gap: 5px; width: 30px; height: 30px; background: transparent; border: none; cursor: pointer; padding: 0; z-index: 9600; }

.nav-burger span { display: block; height: 1.5px; background: #fff; transition: transform .3s var(--ease), opacity .3s var(--ease), width .3s var(--ease); }

.nav-burger span:nth-child(1) { width: 22px; }

.nav-burger span:nth-child(2) { width: 16px; }

.nav-burger[aria-expanded="true"] span { width: 22px; }

.nav-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }

.nav-burger[aria-expanded="true"] span:nth-child(2) { transform: translateY(-6.5px) rotate(-45deg); }

@media (max-width: 760px) {
  .nav-hide { display: none !important; }
  .nav-burger { display: flex; }
  .nav-links {
    position: fixed; inset: 0; z-index: 9500;
    background-color: var(--ink); color: var(--bg);
    flex-direction: column; align-items: flex-start; justify-content: center; gap: 26px;
    padding: 32px; mix-blend-mode: normal; isolation: isolate;
    transform: translateX(100%);
    transition: transform .45s var(--ease);
  }
  .nav-links.is-open { transform: translateX(0); }
  .nav-logo { transition: opacity .25s var(--ease); }
  nav.is-menu-open { mix-blend-mode: normal; }
  nav.is-menu-open .nav-logo { opacity: 0; pointer-events: none; }
  nav.is-menu-open .nav-burger span { background: var(--bg); }
  .nav-links a.nav-hide, .nav-links .nav-clock.nav-hide { display: block !important; }
  .nav-links .nav-clock.nav-hide { display: flex !important; }
  .nav-links a { font-size: 30px; text-transform: none; font-family: var(--f-body); font-weight: 400; letter-spacing: -0.01em; }
  .nav-links a[aria-current="page"] { opacity: .5; }
  .nav-clock { font-family: var(--f-display); font-size: 13px; letter-spacing: 0.06em; margin-top: 12px; color: rgba(230,225,229,0.5); }
  .nav-dot { background: var(--accent); }
}

#detail-hero { padding: 138px 32px 0; }

.dh-back { display: inline-flex; align-items: center; gap: 9px; font-family: var(--f-display); font-size: 12px; font-weight: 500; letter-spacing: 0.05em; text-transform: uppercase; color: var(--ink-muted); margin-bottom: 50px; transition: color .25s; animation: uf-rise 1s var(--ease) .04s both; }

.dh-back:hover { color: var(--ink); }

.dh-eyebrow { font-family: var(--f-display); font-size: 13px; letter-spacing: 0.04em; color: var(--ink-muted); margin-bottom: 26px; animation: uf-rise 1s var(--ease) .1s both; }

.dh-title { font-family: var(--f-display); font-weight: 900; font-size: clamp(56px, 12vw, 200px); line-height: 1.04; letter-spacing: -0.02em; padding-bottom: 4px; animation: uf-rise 1.1s var(--ease) .16s both; }

.dh-sub { margin-top: 24px; font-family: var(--f-body); font-style: italic; font-weight: 700; font-size: clamp(20px, 3vw, 34px); color: var(--accent); line-height: 1.3; animation: uf-rise 1s var(--ease) .3s both; }

.dh-row { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 14px; margin-top: 44px; font-family: var(--f-display); font-size: 13px; color: var(--ink-muted); animation: uf-rise 1s var(--ease) .42s both; }

.detail-media { position: relative; width: 100%; overflow: hidden; background: #d4cfd2; transition: transform 1.1s var(--ease); }

.detail-media.r-3-2  { aspect-ratio: 3/2; }

.detail-media.r-4-5  { aspect-ratio: 4/5; }

.detail-media.r-16-9 { aspect-ratio: 16/9; }

.detail-media-inner { position: absolute; inset: 0; background-image: repeating-linear-gradient(135deg, rgba(30,36,43,0.06) 0, rgba(30,36,43,0.06) 1px, transparent 1px, transparent 11px); display: flex; align-items: center; justify-content: center; }

.detail-media-label { font-family: var(--f-display); font-size: 12px; color: var(--ink-muted); letter-spacing: 0.05em; }

.detail-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }

.product-grid { display: flex; gap: 24px; padding: 0 32px 24px; align-items: stretch; }

.product-grid .pg-anchor { flex: 1.2 1 0; }

.product-grid .pg-col2 { flex: 1 1 0; display: flex; flex-direction: column; gap: 24px; }

.product-grid .pg-col2 .detail-media { flex: 1 1 0; min-height: 0; aspect-ratio: auto; }

@media (max-width: 820px) {
  .product-grid { flex-direction: column; align-items: stretch; }
  .product-grid .pg-anchor, .product-grid .pg-col2 { flex: none; width: 100%; }
  .product-grid .pg-col2 .detail-media { aspect-ratio: 3/2; flex: none; }
}

.product-grid-close { padding: 0 32px 24px; }

#detail-lead { padding: 56px 32px 0; }

#detail-body { display: grid; grid-template-columns: 1.45fr 1fr; gap: 64px; padding: 84px 32px 44px; }

@media (max-width: 820px) { #detail-body { grid-template-columns: 1fr; gap: 44px; } }

.detail-statement { font-family: var(--f-body); font-weight: 300; font-size: clamp(22px, 2.6vw, 30px); line-height: 1.42; color: var(--ink); max-width: 28ch; }

.detail-statement em { font-style: italic; color: var(--accent); }

.spec { font-family: var(--f-display); border-top: 1px solid var(--ink-dim); padding-top: 22px; }

.spec-row { display: flex; justify-content: space-between; gap: 24px; padding: 9px 0; font-size: 14px; }

.spec-key { color: var(--ink-muted); letter-spacing: 0.02em; }

.spec-val { color: var(--ink); text-align: right; }

.spec-val.muted { color: var(--ink-muted); font-style: normal; }

.spec-note { margin-top: 20px; font-family: var(--f-body); font-weight: 300; font-size: 13px; line-height: 1.5; color: var(--ink-muted); }

#detail-gallery { padding: 0 32px 24px; }

#detail-gallery.project-gallery { display: flex; flex-direction: column; gap: 24px; }

.project-gallery-row { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }

@media (max-width: 820px) { .project-gallery-row { grid-template-columns: 1fr; } }

#detail-pager { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--ink-dim); margin-top: 34px; position: static; }

.pager-link { display: flex; flex-direction: column; gap: 12px; padding: 46px 32px; transition: background .4s var(--ease); }

.pager-link.next { text-align: right; align-items: flex-end; border-left: 1px solid var(--ink-dim); }

.pager-link:hover { background: rgba(30,36,43,0.035); }

.pager-dir { display: inline-flex; align-items: center; gap: 6px; font-family: var(--f-display); font-size: 12px; font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-muted); }

.pager-name { font-family: var(--f-body); font-weight: 400; font-size: clamp(26px, 4vw, 44px); line-height: 1; color: var(--ink); letter-spacing: -0.01em; }

@media (max-width: 560px) { .pager-link { padding: 30px 20px; } .pager-name { font-size: 24px; } }

#contact { background: var(--ink); color: var(--bg); padding: 130px 32px 40px; margin-top: 10px; }

.contact-eyebrow { font-family: var(--f-display); font-size: 13px; letter-spacing: 0.06em; text-transform: uppercase; color: rgba(230,225,229,0.5); margin-bottom: 36px; }

.contact-title { font-family: var(--f-display); font-weight: 900; font-size: clamp(48px, 9vw, 150px); line-height: 0.95; letter-spacing: -0.02em; }

.contact-title em { font-style: italic; font-weight: 700; font-family: var(--f-body); color: var(--accent); }

.contact-body { display: flex; flex-wrap: wrap; gap: 40px 80px; align-items: flex-end; justify-content: space-between; margin-top: 70px; }

.contact-email { font-family: var(--f-body); font-size: clamp(24px, 3.8vw, 50px); color: var(--bg); border-bottom: 1px solid rgba(230,225,229,0.3); padding-bottom: 6px; transition: border-color .4s; }

.contact-email:hover { border-color: var(--bg); }

.contact-cols { display: flex; gap: 48px; font-family: var(--f-display); font-size: 13px; }

.contact-col { display: flex; flex-direction: column; gap: 10px; }

.contact-col-label { color: rgba(230,225,229,0.5); }

.contact-col a { color: var(--bg); transition: color .3s; }

.contact-col a:hover { color: var(--accent); }

.contact-footer-row { display: flex; flex-wrap: wrap; gap: 16px; justify-content: space-between; align-items: center; width: 100%; }

.contact-footer a { color: var(--bg); transition: color .3s; }

.contact-footer a:hover { color: var(--accent); }

.compliance-widgets { display: flex; gap: 12px; margin-bottom: 20px; }

.widget-btn { display: inline-block; background: #ffffff; color: #1e242b; border: 1px solid rgba(30, 36, 43, 0.1); padding: 6px 14px; border-radius: 30px; font-family: var(--f-display); font-size: 11px; font-weight: 500; cursor: pointer; transition: background 0.2s; }

.widget-btn:hover { background: #f3f1f2; }

.contact-footer a.widget-btn,
.contact-footer a.widget-btn:hover { color: var(--ink); }

[data-reveal] { opacity: 0; transform: translateY(34px); transition: opacity 1s var(--ease), transform 1s var(--ease); }

[data-reveal].is-visible { opacity: 1; transform: translateY(0); }

#uf-cookie-banner { position: fixed; left: 50%; bottom: 24px; z-index: 10000; width: calc(100% - 48px); max-width: 560px; background: var(--ink); color: var(--bg); padding: 24px 26px; border-radius: 14px; box-shadow: 0 20px 60px rgba(0,0,0,0.35); display: flex; flex-wrap: wrap; gap: 18px; align-items: center; justify-content: space-between; transform: translate(-50%, 140%); opacity: 0; transition: transform .6s var(--ease), opacity .6s var(--ease); }

#uf-cookie-banner.is-visible { transform: translate(-50%, 0); opacity: 1; }

#uf-cookie-banner p { font-family: var(--f-body); font-size: 14px; line-height: 1.5; color: rgba(230,225,229,0.85); flex: 1 1 280px; }

#uf-cookie-banner p a { color: var(--bg); text-decoration: underline; text-decoration-color: rgba(230,225,229,0.4); }

#uf-cookie-banner .uf-cookie-actions { display: flex; gap: 10px; flex-shrink: 0; }

#uf-cookie-banner button { font-family: var(--f-display); font-size: 12px; font-weight: 500; letter-spacing: 0.02em; padding: 10px 18px; border-radius: 30px; cursor: pointer; border: 1px solid transparent; transition: background .2s, color .2s, border-color .2s; }

#uf-cookie-accept { background: var(--bg); color: var(--ink); }

#uf-cookie-accept:hover { background: var(--accent); color: var(--bg); }

#uf-cookie-decline { background: transparent; color: var(--bg); border-color: rgba(230,225,229,0.3); }

#uf-cookie-decline:hover { border-color: var(--bg); }

@media (max-width: 640px) { #uf-cookie-banner { flex-direction: column; align-items: stretch; justify-content: flex-start; } #uf-cookie-banner p { flex: 0 1 auto; } #uf-cookie-banner .uf-cookie-actions { justify-content: flex-end; } }

.ph-eyebrow span {
  display: block;
  animation: uf-rise 1s var(--ease) .1s both;
}

.ph-title .line { display: block; overflow: visible; padding-top: 4px; }

.ph-title .line span { display: block; animation: uf-rise 1.1s var(--ease) .18s both; }

.ph-title em { font-style: italic; font-weight: 700; font-family: var(--f-body); color: var(--accent); }

/* language switch (2026-10-12) */
.nav-links a.nav-lang { opacity: .55; }
.nav-links a.nav-lang:hover { opacity: 1; }

/* cursor: one dot of un:FOUND over objects, flower on shake (2026-10-13, see cursor.js) */
#uf-cursor.is-object { border-radius: 0; -webkit-mask: url('/images/logo/unfound-dot.svg') center / contain no-repeat; mask: url('/images/logo/unfound-dot.svg') center / contain no-repeat; }
.uf-bloom { position: fixed; width: 150px; height: auto; pointer-events: none; z-index: 9998; opacity: 0; animation: uf-bloom 1.7s cubic-bezier(.2,.8,.2,1) forwards; }
@keyframes uf-bloom {
  0%   { opacity: 0; transform: translate(-50%,-60%) scale(.2) rotate(-25deg); }
  25%  { opacity: 1; transform: translate(-50%,-60%) scale(1) rotate(0deg); }
  70%  { opacity: 1; transform: translate(-50%,-62%) scale(1.02) rotate(2deg); }
  100% { opacity: 0; transform: translate(-50%,-75%) scale(1.05) rotate(4deg); }
}
