@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700&family=Libre+Franklin:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

:root{
  --cream:#FAF6EC;--cream-card:#FFFFFF;--paper-line:#E3DAC4;
  --ink:#201E19;--ink-soft:#5B564C;--ink-faint:#8A8478;
  --forest-900:#122019;--gold:#B5813A;--gold-light:#D8B679;
  --rust:#A23F2E;--sage:#4B7A5B;--sage-soft:#E7EFE9;
  --gold-soft:#F5EBDA;--radius:14px;--wrap:1120px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:'Libre Franklin',sans-serif;font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
h1,h2,h3{margin:0;color:var(--ink);font-family:'Fraunces',serif;font-weight:600;letter-spacing:-.01em}
a{color:inherit}
img{display:block;max-width:100%}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 28px}
.eyebrow,.label{color:var(--gold);font:600 12.5px/1.4 'IBM Plex Mono',monospace;letter-spacing:.1em;text-transform:uppercase}
.meta{color:var(--ink-faint);font:500 12.5px/1.5 'IBM Plex Mono',monospace}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--gold-light);outline-offset:2px}
.btn{display:inline-flex;align-items:center;gap:8px;padding:13px 24px;border:0;border-radius:10px;background:var(--forest-900);color:var(--cream);font:600 15px 'Libre Franklin',sans-serif;text-decoration:none;transition:transform .15s ease,box-shadow .15s ease}
.btn:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(18,32,25,.18)}

/* Header LAB condiviso */
header.nav{position:sticky;top:0;z-index:60;background:rgba(250,246,236,.92);backdrop-filter:blur(6px);border-bottom:1px solid var(--paper-line)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:16px;padding-bottom:16px}
.brand{display:flex;flex-shrink:0;align-items:center;gap:10px;text-decoration:none}
.brand-mark{display:flex;width:34px;height:34px;align-items:center;justify-content:center;overflow:hidden;border:1.5px solid var(--paper-line);border-radius:8px;background:var(--cream-card)}
.brand-mark img{width:26px;height:26px;object-fit:contain}
.brand-text{font:600 19px/1.1 'Fraunces',serif}
.brand-text span{display:block;color:var(--ink-soft);font:500 9.5px 'IBM Plex Mono',monospace;letter-spacing:.16em}
.nav-links{display:flex;gap:30px;font-size:14.5px;font-weight:500}
.nav-links a{opacity:.8;text-decoration:none}
.nav-links a:hover,.nav-links a.current,.nav-links a.is-current{opacity:1}
.mobile-nav-toggle,.mobile-nav-panel{display:none}
.mobile-nav-toggle{align-items:center;gap:7px;padding:9px 12px;border:1px solid var(--paper-line);border-radius:10px;background:var(--cream-card);color:var(--ink);font:600 14px 'Libre Franklin',sans-serif}
.mobile-nav-toggle svg{width:18px;height:18px}
.lang-dd{position:relative;padding:0;border:0}
.lang-dd summary{display:flex;align-items:center;justify-content:center;gap:6px;padding:6px 10px;border:1px solid var(--paper-line);border-radius:20px;background:var(--cream-card);color:var(--ink-soft);font:600 12px 'IBM Plex Mono',monospace;list-style:none;cursor:pointer}
.lang-dd summary::after{content:'\25be';margin-left:1px;font-size:9px;opacity:.7}
.lang-dd summary:hover,.lang-dd[open] summary{border-color:var(--gold-light);color:var(--ink)}
.lang-dd-menu{position:absolute;top:100%;right:0;z-index:70;min-width:150px;margin:8px 0 0;padding:6px;border:1px solid var(--paper-line);border-radius:12px;background:var(--cream-card);box-shadow:0 12px 28px -8px rgba(18,32,25,.18);list-style:none}
.lang-dd-item{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:8px;font-size:13.5px;text-decoration:none}
.lang-dd-item:hover{background:rgba(75,122,91,.08)}
.lang-dd-item.is-active{color:var(--sage);font-weight:600}

/* Elementi comuni */
.breadcrumb{margin-bottom:28px;color:var(--ink-faint);font-size:13px}
.breadcrumb a{color:var(--ink-soft);text-decoration:none}
.breadcrumb a:hover{color:var(--gold)}
.breadcrumb .sep{margin:0 6px;color:var(--paper-line)}
.status-pill{display:inline-flex;width:max-content;padding:5px 9px;border-radius:999px;background:var(--sage-soft);color:var(--sage);font:600 11px 'IBM Plex Mono',monospace;letter-spacing:.08em;white-space:nowrap}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.tags span{padding:5px 11px;border-radius:999px;background:var(--gold-soft);color:var(--gold);font:12px 'IBM Plex Mono',monospace}
.quote{max-width:580px;margin:26px 0;padding:2px 0 2px 20px;border-left:2px solid var(--gold);color:var(--ink);font:italic 16px/1.55 'Fraunces',serif}
.entry-foot{margin-top:30px;padding-top:22px;border-top:1px solid var(--paper-line);color:var(--ink-faint);font-size:13px}

/* Indice Esperimenti: proporzioni della home LAB e dell'indice Diario */
.experiments-index .page{padding:56px 0 90px}
.experiments-index .page-head{max-width:680px;margin-bottom:48px}
.experiments-index .page-head h1{margin:14px 0 16px;font-size:clamp(28px,3.6vw,38px);line-height:1.15}
.experiments-index .page-head p{max-width:60ch;margin:0 0 14px;color:var(--ink-soft);font-size:16px}
.experiment-keys{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}
.experiment-keys span{padding:5px 9px;border:1px solid var(--paper-line);border-radius:999px;color:var(--ink-faint);font:11px 'IBM Plex Mono',monospace}
.listing{display:flex;flex-direction:column;gap:16px}
.listing-item{display:block;padding:26px 28px;border:1px solid var(--paper-line);border-radius:var(--radius);background:var(--cream-card);color:inherit;text-decoration:none;transition:transform .15s ease,border-color .15s ease}
.listing-item:hover{transform:translateY(-2px);border-color:var(--gold-light)}
.listing-meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;margin-bottom:10px}
.listing-item .num{color:var(--gold);font:600 12px 'IBM Plex Mono',monospace;letter-spacing:.06em}
.listing-item h2{max-width:760px;margin:0 0 8px;font-size:19px;line-height:1.3}
.listing-item p{max-width:70ch;margin:0;color:var(--ink-soft);font-size:14.5px;line-height:1.6}
.read-more{display:inline-block;margin-top:10px;color:var(--ink);font:600 12.5px 'IBM Plex Mono',monospace}

/* Esperimento VIBE APP: misure e ritmo del template Crittografia */
.experiment-page .content{max-width:900px;margin:0 auto;padding:32px 20px 100px}
.experiment-page .breadcrumb{font-family:'IBM Plex Mono',monospace}
.experiment-page .article-head{padding:0;border:0}
.experiment-page h1{max-width:680px;margin:14px 0 18px;font-size:34px;line-height:1.22}
.experiment-page .lede{max-width:640px;margin:0 0 14px;color:var(--ink-soft);font-size:16px;line-height:1.6}
.experiment-page .article-head .meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:18px}
.experiment-page .note{max-width:680px;margin:26px 0 8px;padding:18px 20px;border:1px solid var(--paper-line);border-left:3px solid var(--sage);border-radius:var(--radius);background:var(--cream-card)}
.experiment-page .note .label{margin-bottom:8px;color:var(--sage);letter-spacing:0;text-transform:none}
.experiment-page .note p{margin:0;font-size:14.5px}
.experiment-page section{padding:46px 0;border-bottom:1px solid var(--paper-line)}
.experiment-page section[id]{scroll-margin-top:122px}
.experiment-page section:last-of-type{border-bottom:0}
.experiment-page section>.label{display:block;margin-bottom:12px;color:var(--ink-faint);font-size:12.5px;letter-spacing:0;text-transform:none}
.experiment-page h2{max-width:620px;margin:0 0 16px;font-size:23px;line-height:1.25}
.experiment-page h3{margin:0 0 10px;font-size:17.5px}
.experiment-page p{max-width:640px;margin:0 0 14px;color:var(--ink-soft);font-size:15px;line-height:1.65}
.experiment-page p:last-child{margin-bottom:0}
.map{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:20px}
.map a{display:block;padding:14px 16px;border:1px solid var(--paper-line);border-radius:var(--radius);background:var(--cream-card);text-decoration:none}
.map a:hover{border-color:var(--sage)}
.map .n,.card .num{margin-bottom:5px;color:var(--sage);font:12px 'IBM Plex Mono',monospace}
.map b{display:block;margin-bottom:3px;font-size:14.5px}
.map small{display:block;color:var(--ink-soft);font-size:12.5px;line-height:1.45}
.stepper{position:sticky;top:67px;z-index:50;padding:10px 0;border-bottom:1px solid var(--paper-line);background:var(--cream)}
.stepper>div{display:flex;flex-wrap:wrap;row-gap:6px}
.stepper a{padding:4px 14px 4px 0;color:var(--ink-faint);font:12px 'IBM Plex Mono',monospace;text-decoration:none}
.stepper a:hover{color:var(--sage)}
.cards,.status-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:22px}
.card,.status-grid>div{padding:18px 20px;border:1px solid var(--paper-line);border-radius:var(--radius);background:var(--cream-card)}
.card p,.status-grid p{margin:0;font-size:14px}
.callout{max-width:580px;margin:22px 0;padding:4px 0 4px 20px;border-left:2px solid var(--sage);color:var(--ink);font-size:15.5px;line-height:1.6}
.experiment-page ol,.experiment-page ul{max-width:640px;padding-left:20px;color:var(--ink-soft)}
.experiment-page li{margin:9px 0}
.status-grid .observed{border-color:#cfe0d4}
.status-grid .open{border-color:#ead9b8}
.status-grid b{display:block;margin-bottom:7px;font:12px 'IBM Plex Mono',monospace}
.status-grid .observed b{color:var(--sage)}
.status-grid .open b{color:var(--gold)}
.feedback{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin-top:26px;padding:22px 24px;border:1px solid var(--paper-line);border-radius:var(--radius);background:var(--cream-card)}
.feedback p{max-width:none!important;margin:0!important;color:var(--ink)!important;font-size:14.5px!important}
.contribution{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin-top:26px;padding:22px 24px;border:1px solid var(--paper-line);border-radius:var(--radius);background:var(--cream-card)}
.contribution p{max-width:640px!important;margin:0!important;color:var(--ink)!important;font-size:14.5px!important}

/* Diario 03: card editoriale del template Diario 01/02 */
.diary-page main.wrap{padding-top:56px;padding-bottom:90px}
.diary-page .entry{max-width:760px;padding:40px;border:1px solid var(--paper-line);border-radius:var(--radius);background:var(--cream-card)}
.diary-page .article-head{padding:0;border:0}
.diary-page .article-head .eyebrow{margin-bottom:10px;color:var(--ink-faint);font-size:12.5px;letter-spacing:0;text-transform:none}
.diary-page .article-head h1{max-width:640px;margin:0 0 12px;font-size:27px;line-height:1.25}
.diary-page .article-head .lede{max-width:640px;margin:0 0 8px;color:var(--ink-soft);font-size:15px;line-height:1.7}
.diary-page .article-head .meta{margin-bottom:26px}
.diary-page .note{margin:0 0 28px;padding:22px 24px;border:1.5px dashed var(--gold);border-radius:var(--radius);background:var(--gold-soft)}
.diary-page .note .label{margin-bottom:8px;font-size:11.5px}
.diary-page .note p{margin:0;color:var(--ink);font-size:15px;line-height:1.7}
.diary-page section{padding:0;border:0}
.diary-page section+section{margin-top:30px}
.diary-page section h2{max-width:620px;margin:0 0 14px;font-size:23px;line-height:1.3}
.diary-page section p{max-width:640px;margin:0 0 16px;color:var(--ink-soft);font-size:15px;line-height:1.7}
.diary-page section p:last-child{margin-bottom:0}
.diary-page section ul{max-width:640px;margin:0 0 16px;padding-left:20px;color:var(--ink-soft);font-size:14.5px;line-height:1.6}
.diary-page section li{margin:7px 0}

footer{padding:26px 0;border-top:1px solid rgba(250,246,236,.1);background:var(--forest-900);color:rgba(250,246,236,.55)}
.footer-inner{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:12.5px}
.footer-links{display:flex;flex-wrap:wrap;gap:20px}
.footer-inner a{opacity:.8;text-decoration:none}
.footer-inner a:hover{opacity:1;color:var(--gold-light)}

@media(max-width:980px){
  .nav-inner{position:relative;gap:12px}
  .nav-links{display:none}
  .mobile-nav-toggle{display:inline-flex}
  .mobile-nav-panel{position:absolute;top:100%;right:0;left:0;display:flex;max-height:calc(100vh - 68px);flex-direction:column;gap:4px;overflow-y:auto;padding:14px;border:1px solid var(--paper-line);border-radius:0 0 14px 14px;background:var(--cream-card);box-shadow:0 14px 28px rgba(18,32,25,.14)}
  .mobile-nav-panel[hidden]{display:none}
  .mobile-nav-panel a{padding:10px 12px;border-radius:8px;font-size:14px;font-weight:600;text-decoration:none}
  .mobile-nav-panel a:hover{background:rgba(75,122,91,.08)}
}
@media(max-width:740px){
  .wrap{padding-right:22px;padding-left:22px}
  .experiments-index .page{padding:48px 0 72px}
  .experiment-page .content{padding:38px 22px 70px}
  .map,.cards,.status-grid{grid-template-columns:1fr}
  .feedback,.contribution{align-items:flex-start;flex-direction:column}
  .diary-page main.wrap{padding-top:38px;padding-bottom:70px}
  .diary-page .entry{padding:26px}
}
@media(max-width:560px){
  .brand{min-width:0}
  .brand-text span{display:none}
  .mobile-nav-toggle{padding:9px}
  .mobile-nav-toggle span{display:none}
  .lang-dd summary{padding:6px 8px}
  .listing-item{padding:23px}
  .experiment-page h1{font-size:30px}
  .footer-links{gap:12px 18px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn,.listing-item{transition:none}}
