:root{
    --cream: #F4EFE6;
    --cream-2: #EBE3D5;
    --ink: #0E0D0B;
    --ink-soft: #1A1916;
    --lime: #D4FF3C;
    --magenta: #FF3D8B;
    --klein: #2347FF;
    --tangerine: #FF6B1A;
    --sans: 'Space Grotesk', system-ui, sans-serif;
    --serif: 'Instrument Serif', Georgia, serif;
    --mono: 'JetBrains Mono', ui-monospace, monospace;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{overflow-x:clip}
  body{background:var(--cream);color:var(--ink);font-family:var(--sans);font-weight:400;-webkit-font-smoothing:antialiased;overflow-x:clip}
  body{cursor:none}
  a{color:inherit;text-decoration:none}
  button{font:inherit;cursor:none;border:none;background:none;color:inherit}
  input,textarea,select{font:inherit;cursor:none}
  ::selection{background:var(--lime);color:var(--ink)}
  img{max-width:100%;display:block}

  /* Cursor */
  .cursor-dot, .cursor-ring{position:fixed;top:0;left:0;pointer-events:none;z-index:9999;mix-blend-mode:difference}
  .cursor-dot{width:8px;height:8px;background:#fff;border-radius:50%;transform:translate(-50%,-50%);transition:transform .15s ease, background .2s ease}
  .cursor-ring{width:42px;height:42px;border:1.5px solid #fff;border-radius:50%;transform:translate(-50%,-50%);transition:transform .25s cubic-bezier(.2,.9,.3,1.4), width .25s, height .25s, border-color .2s}
  .cursor-ring.hover{width:72px;height:72px;border-color:var(--lime);background:rgba(212,255,60,.15);mix-blend-mode:normal}
  .cursor-ring.click{transform:translate(-50%,-50%) scale(.6)}
  @media (hover:none){body{cursor:auto}.cursor-dot,.cursor-ring{display:none}}

  /* Background canvas */
  #bg-canvas{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.55}

  /* Layout */
  .page{position:relative;z-index:1}
  section{position:relative;padding:120px 6vw}
  .container{max-width:1400px;margin:0 auto}

  /* Nav */
  .nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:20px 6vw;display:flex;align-items:center;justify-content:space-between;mix-blend-mode:difference;color:#fff}
  .nav__logo{font-family:var(--sans);font-weight:600;font-size:18px;letter-spacing:-.01em;display:flex;align-items:center;gap:10px;user-select:none}
  .nav__logo-mark{width:28px;height:28px;border-radius:50%;background:var(--lime);display:inline-block;position:relative}
  .nav__logo-mark::after{content:"";position:absolute;inset:6px;border-radius:50%;background:var(--magenta);mix-blend-mode:multiply}
  .nav__links{display:flex;gap:28px;font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase}
  .nav__links a{position:relative;padding:6px 0;opacity:.8;transition:opacity .2s}
  .nav__links a:hover{opacity:1}
  .nav__links a::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s ease}
  .nav__links a:hover::after{transform:scaleX(1)}
  .nav__right{display:flex;gap:14px;align-items:center;font-family:var(--mono);font-size:12px}
  .lang-toggle{display:flex;border:1px solid currentColor;border-radius:99px;padding:3px;gap:2px}
  .lang-toggle button{padding:4px 10px;border-radius:99px;font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:inherit;opacity:.6}
  .lang-toggle button.active{background:#fff;color:#000;opacity:1}
  @media (max-width:780px){.nav__links{display:none}}

  /* Progress bar */
  .progress{position:fixed;top:0;left:0;height:2px;background:var(--lime);z-index:101;width:0%;transition:width .1s linear}

  /* HERO */
  .hero{min-height:100vh;display:flex;align-items:center;padding-top:120px;padding-bottom:80px;overflow:hidden}
  .hero__inner{position:relative;width:100%}
  .hero__meta{display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.1em;opacity:.7;margin-bottom:60px}
  .hero__meta-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--lime);margin-right:8px;vertical-align:middle;box-shadow:0 0 0 4px rgba(212,255,60,.25);animation:pulse 2s infinite}
  @keyframes pulse{0%,100%{box-shadow:0 0 0 4px rgba(212,255,60,.25)}50%{box-shadow:0 0 0 10px rgba(212,255,60,0)}}
  .hero__title{font-family:var(--sans);font-weight:500;font-size:clamp(56px, 11vw, 180px);line-height:.92;letter-spacing:-.04em}
  .hero__title .serif{font-family:var(--serif);font-style:italic;font-weight:400}
  .hero__title .accent-lime{background:var(--lime);padding:0 .15em;display:inline-block;transform:rotate(-1deg);border-radius:8px}
  .hero__title .accent-mag{color:var(--magenta)}
  .hero__title .word{display:inline-block;overflow:hidden;vertical-align:bottom}
  .hero__title .word > span{display:inline-block;transform:translateY(110%);animation:slideUp 1s cubic-bezier(.2,.9,.3,1.05) forwards}
  .hero__title .word:nth-child(1) > span{animation-delay:.1s}
  .hero__title .word:nth-child(2) > span{animation-delay:.2s}
  .hero__title .word:nth-child(3) > span{animation-delay:.3s}
  .hero__title .word:nth-child(4) > span{animation-delay:.4s}
  .hero__title .word:nth-child(5) > span{animation-delay:.5s}
  .hero__title .word:nth-child(6) > span{animation-delay:.6s}
  @keyframes slideUp{to{transform:translateY(0)}}
  .hero__bottom{margin-top:80px;display:grid;grid-template-columns:1fr auto 1fr;gap:40px;align-items:end}
  .hero__intro{max-width:380px;font-size:18px;line-height:1.5;opacity:.85}
  .hero__intro b{font-weight:600;background:linear-gradient(transparent 60%, var(--lime) 60%)}
  .hero__scroll{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.18em;opacity:.5;writing-mode:vertical-rl;transform:rotate(180deg);justify-self:end;display:flex;align-items:center;gap:14px}
  .hero__scroll::after{content:"";width:1px;height:60px;background:currentColor;display:inline-block;animation:scrollHint 1.8s ease-in-out infinite}
  @keyframes scrollHint{0%,100%{transform:scaleY(.3);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}}
  .hero__tags{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
  .tag{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;padding:6px 12px;border:1px solid var(--ink);border-radius:99px}
  .tag.lime{background:var(--lime);border-color:var(--ink)}
  .tag.mag{background:var(--magenta);color:#fff;border-color:var(--ink)}
  .tag.klein{background:var(--klein);color:#fff;border-color:var(--ink)}

  /* Marquee */
  .marquee{overflow:hidden;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);padding:18px 0;background:var(--cream-2)}
  .marquee__track{display:flex;gap:60px;white-space:nowrap;animation:marquee 40s linear infinite;font-family:var(--sans);font-size:36px;font-weight:500;letter-spacing:-.02em}
  .marquee__track .star{color:var(--magenta);font-family:var(--serif);font-style:italic}
  @keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

  /* ABOUT */
  .about{background:var(--cream);color:var(--ink);overflow:hidden;border-top:1px solid rgba(0,0,0,.06)}
  .about .container{display:grid;grid-template-columns:1.1fr 1fr;gap:80px;align-items:start}
  @media (max-width:900px){.about .container{grid-template-columns:1fr}}
  .section-label{font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.16em;opacity:.6;margin-bottom:24px;display:flex;align-items:center;gap:12px}
  .section-label::before{content:"";width:24px;height:1px;background:currentColor}
  .about__title{font-family:var(--sans);font-weight:500;font-size:clamp(40px, 6vw, 88px);line-height:1;letter-spacing:-.03em;margin-bottom:40px}
  .about__title .serif{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--magenta)}
  .about__bio{font-size:18px;line-height:1.6;opacity:.85;max-width:560px}
  .about__bio p{margin-bottom:18px}
  .about__bio b{font-weight:600;background:linear-gradient(transparent 60%, var(--lime) 60%)}
  .about__card{position:relative;border-radius:24px;overflow:hidden;aspect-ratio:4/5;background:var(--cream-2);border:1px solid rgba(0,0,0,.08)}
  .about__photo{position:absolute;inset:0;background:
    radial-gradient(ellipse at 30% 30%, rgba(212,255,60,.55), transparent 60%),
    radial-gradient(ellipse at 70% 70%, rgba(255,61,139,.35), transparent 60%),
    linear-gradient(135deg, var(--cream-2), #DDD2BD);
    display:flex;align-items:center;justify-content:center}
  .about__photo-letter{font-family:var(--serif);font-style:italic;font-size:280px;color:var(--ink);opacity:.85;text-shadow:0 8px 40px rgba(0,0,0,.12)}
  .about__card-meta{position:absolute;left:20px;right:20px;bottom:20px;display:flex;justify-content:space-between;align-items:flex-end;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink)}
  .about__card-meta .big{font-family:var(--sans);font-size:18px;letter-spacing:-.01em;text-transform:none}
  .about__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(0,0,0,.08);margin-top:60px;border-radius:16px;overflow:hidden;grid-column:1 / -1;border:1px solid rgba(0,0,0,.06)}
  .stat{background:var(--cream);padding:28px 24px}
  .stat__num{font-family:var(--sans);font-size:56px;font-weight:500;letter-spacing:-.02em;line-height:1}
  .stat__num .unit{font-size:24px;color:var(--magenta);margin-left:4px}
  .stat__label{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.1em;opacity:.6;margin-top:8px}

  .about__cv-btn{display:inline-flex;align-items:center;gap:10px;margin-top:32px;padding:16px 26px;border-radius:99px;background:var(--ink);color:var(--cream);font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:600;transition:transform .25s, background .25s, color .25s}
  .about__cv-btn:hover{background:var(--lime);color:var(--ink);transform:translate(-3px,-3px)}
  .about__cv-btn::after{content:"↓";font-family:var(--sans);font-size:16px}

  .about__skills{margin-top:48px;display:flex;flex-wrap:wrap;gap:8px}
  .skill{font-family:var(--mono);font-size:12px;padding:8px 14px;border:1px solid rgba(0,0,0,.2);border-radius:99px;transition:all .2s}
  .skill:hover{background:var(--lime);color:var(--ink);border-color:var(--ink);transform:translateY(-2px)}

  /* PROJECTS — physics playground */
  .projects{background:var(--cream);padding-bottom:80px}
  .projects__head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:30px;gap:40px;flex-wrap:wrap}
  .projects__title{font-family:var(--sans);font-weight:500;font-size:clamp(40px, 6vw, 88px);line-height:1;letter-spacing:-.03em}
  .projects__title .serif{font-family:var(--serif);font-style:italic;font-weight:400}
  .projects__count{font-family:var(--mono);font-size:13px;opacity:.6;text-transform:uppercase;letter-spacing:.1em}
  .projects__hint{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.12em;opacity:.5;margin-bottom:24px;display:flex;align-items:center;gap:10px}
  .projects__hint::before{content:"\2725";font-size:14px}
  .projects__grid{display:grid;grid-template-columns:repeat(12, 1fr);gap:18px;width:100%}
  .project{grid-column:span 4;border-radius:18px;background:var(--ink);color:var(--cream);padding:24px;display:flex;flex-direction:column;justify-content:space-between;gap:14px;border:1px solid rgba(0,0,0,.1);box-shadow:0 8px 28px rgba(0,0,0,.10), 0 2px 6px rgba(0,0,0,.06);min-height:240px;transition:transform .5s cubic-bezier(.2,.7,.2,1), box-shadow .35s, opacity .6s;opacity:0;transform:translate3d(0,40px,0) scale(.98);box-sizing:border-box;position:relative}
  .project.in{opacity:1;transform:translate3d(0,0,0) scale(1)}
  .project--lg{grid-column:span 7}
  .project--md{grid-column:span 5}
  .project--sm{grid-column:span 4}
  .project--xs{grid-column:span 6}
  .project--full{grid-column:span 12;min-height:200px}
  .project:hover{transform:translate3d(0,-6px,0) scale(1);box-shadow:0 22px 56px rgba(0,0,0,.18), 0 4px 12px rgba(0,0,0,.10)}
  .project--lime{background:var(--lime);color:var(--ink)}
  .project--mag{background:var(--magenta);color:#fff}
  .project--klein{background:var(--klein);color:#fff}
  .project--cream{background:#fff;color:var(--ink)}
  .project--tangerine{background:var(--tangerine);color:#fff}
  .project__num{font-family:var(--mono);font-size:10px;letter-spacing:.12em;opacity:.7;text-transform:uppercase;display:flex;justify-content:space-between;align-items:center;gap:8px}
  .project__grip{display:inline-flex;gap:2px;opacity:.5}
  .project__grip span{width:3px;height:3px;border-radius:50%;background:currentColor}
  .project__title{font-family:var(--sans);font-size:22px;font-weight:500;line-height:1.05;letter-spacing:-.02em;margin-top:8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word;hyphens:auto}
  .project__desc{font-size:12px;line-height:1.45;opacity:0;max-height:0;margin-top:0;overflow:hidden;transition:opacity .35s ease, max-height .4s ease, margin-top .4s ease}
  .project:hover .project__desc{opacity:.85;max-height:140px;margin-top:8px}
  .project__bottom{display:flex;justify-content:space-between;align-items:flex-end;gap:10px;margin-top:14px}
  .project__stack{display:flex;flex-wrap:wrap;gap:4px}
  .project__stack span{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.06em;padding:3px 6px;border:1px solid currentColor;border-radius:99px;opacity:.85}
  .project__actions{display:flex;gap:6px;flex-shrink:0}
  .project__btn{width:36px;height:36px;border-radius:50%;border:1px solid currentColor;display:grid;place-items:center;cursor:none;transition:transform .25s, background .25s, color .25s;background:transparent;padding:0;font:inherit;color:inherit;appearance:none;-webkit-appearance:none}
  .project__btn:hover{background:currentColor;transform:rotate(-12deg) scale(1.05)}
  .project--lime .project__btn:hover svg{stroke:var(--lime)}
  .project--mag .project__btn:hover svg{stroke:var(--magenta)}
  .project--klein .project__btn:hover svg{stroke:var(--klein)}
  .project--cream .project__btn:hover svg{stroke:#fff}
  .project--tangerine .project__btn:hover svg{stroke:var(--tangerine)}
  .project:not([class*='--lime']):not([class*='--mag']):not([class*='--klein']):not([class*='--cream']):not([class*='--tangerine']) .project__btn:hover svg{stroke:var(--ink)}
  .project__btn svg{transition:stroke .25s;width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2}
  @media (max-width:900px){.project{grid-column:span 12 !important;min-height:200px}}

  /* FORMATIONS — animated cards */
  .formations{background:var(--cream-2);overflow:hidden}
  .formations__head{margin-bottom:60px}
  .formations__title{font-family:var(--sans);font-weight:500;font-size:clamp(40px, 6vw, 88px);line-height:1;letter-spacing:-.03em}
  .formations__title .serif{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--klein)}
  .formations__layout{display:grid;grid-template-columns:1fr 1fr;gap:60px}
  @media (max-width:900px){.formations__layout{grid-template-columns:1fr}}
  .timeline-col h3{font-family:var(--mono);font-size:13px;text-transform:uppercase;letter-spacing:.12em;margin-bottom:32px;display:flex;align-items:center;gap:12px}
  .timeline-col h3::after{content:"";flex:1;height:1px;background:var(--ink);opacity:.2}
  .timeline{display:flex;flex-direction:column;gap:18px}
  .ed-card{position:relative;background:#fff;border-radius:18px;padding:22px 24px 22px 80px;border:1px solid rgba(0,0,0,.08);transition:transform .35s cubic-bezier(.2,.9,.3,1.05), box-shadow .35s, border-color .3s;overflow:hidden;cursor:none}
  .ed-card:hover{transform:translateX(8px) translateY(-2px);box-shadow:0 18px 40px rgba(0,0,0,.12), 0 4px 10px rgba(0,0,0,.06);border-color:rgba(0,0,0,.18)}
  .ed-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--ink);transition:width .3s}
  .ed-card:hover::before{width:14px}
  .ed-card[data-color="lime"]::before{background:var(--lime)}
  .ed-card[data-color="magenta"]::before{background:var(--magenta)}
  .ed-card[data-color="klein"]::before{background:var(--klein)}
  .ed-card[data-color="tangerine"]::before{background:var(--tangerine)}
  .ed-card__seal{position:absolute;left:18px;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:var(--cream);transition:transform .5s cubic-bezier(.2,.9,.3,1.4)}
  .ed-card:hover .ed-card__seal{transform:translateY(-50%) rotate(-12deg) scale(1.08)}
  .ed-card[data-color="lime"] .ed-card__seal{background:var(--lime);color:var(--ink)}
  .ed-card[data-color="magenta"] .ed-card__seal{background:var(--magenta);color:#fff}
  .ed-card[data-color="klein"] .ed-card__seal{background:var(--klein);color:#fff}
  .ed-card[data-color="tangerine"] .ed-card__seal{background:var(--tangerine);color:#fff}
  .ed-card__seal svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2}
  .ed-card__head{display:flex;justify-content:space-between;align-items:baseline;gap:14px;flex-wrap:wrap}
  .ed-card__title{font-family:var(--sans);font-size:19px;font-weight:500;letter-spacing:-.01em;line-height:1.2}
  .ed-card__year{font-family:var(--mono);font-size:11px;font-weight:500;opacity:.55;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}
  .ed-card__where{font-family:var(--sans);font-size:13px;opacity:.65;margin-top:4px}
  .ed-card__desc{font-size:13px;line-height:1.5;margin-top:0;max-height:0;overflow:hidden;transition:max-height .4s ease, margin-top .4s ease, opacity .3s ease;opacity:0}
  .ed-card:hover .ed-card__desc, .ed-card.open .ed-card__desc{max-height:200px;margin-top:14px;opacity:.85}
  .ed-card__foot{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:14px;flex-wrap:wrap}
  .ed-card__badges{display:flex;gap:6px;flex-wrap:wrap}
  .ed-badge{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.08em;padding:4px 8px;background:var(--ink);color:var(--cream);border-radius:99px;font-weight:500}
  .ed-badge.cert{background:var(--klein)}
  .ed-badge.diploma{background:var(--magenta)}
  .ed-card__view{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;padding:7px 12px;border:1px solid var(--ink);border-radius:99px;display:inline-flex;align-items:center;gap:6px;transition:background .25s, color .25s, transform .25s;cursor:none}
  .ed-card__view:hover{background:var(--ink);color:var(--cream);transform:translateX(2px)}
  .ed-card__view svg{width:11px;height:11px;fill:none;stroke:currentColor;stroke-width:2}
  .ed-card__expand{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;opacity:.5;transition:opacity .2s}
  .ed-card:hover .ed-card__expand{opacity:1}

  /* Diploma viewer modal */
  .dv-overlay{position:fixed;inset:0;background:rgba(0,0,0,.85);backdrop-filter:blur(10px);z-index:1500;display:none;align-items:center;justify-content:center;padding:30px;opacity:0;transition:opacity .3s}
  .dv-overlay.open{display:flex;opacity:1}
  .dv-modal{position:relative;max-width:900px;width:100%;max-height:90vh;background:var(--cream);border-radius:24px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 30px 80px rgba(0,0,0,.5);transform:scale(.94);transition:transform .35s cubic-bezier(.2,.9,.3,1.05)}
  .dv-overlay.open .dv-modal{transform:scale(1)}
  .dv-head{padding:20px 28px;display:flex;justify-content:space-between;align-items:center;background:var(--ink);color:var(--cream);gap:16px}
  .dv-title{font-family:var(--sans);font-size:18px;font-weight:500;flex:1}
  .dv-title small{display:block;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;opacity:.5;margin-top:2px}
  .dv-close{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;padding:8px 14px;border:1px solid rgba(255,255,255,.2);border-radius:99px;cursor:none}
  .dv-close:hover{background:rgba(255,255,255,.08)}
  .dv-body{flex:1;overflow:auto;display:grid;place-items:center;background:repeating-linear-gradient(45deg,#e5dcc8 0,#e5dcc8 12px,#ebe3d5 12px,#ebe3d5 24px);padding:30px}
  .dv-body img{max-width:100%;max-height:65vh;border-radius:8px;box-shadow:0 20px 60px rgba(0,0,0,.25);background:#fff}
  .dv-body iframe{width:100%;height:65vh;border:none;border-radius:8px;background:#fff;box-shadow:0 20px 60px rgba(0,0,0,.25)}
  .dv-body video{width:100%;max-height:70vh;border-radius:8px;background:#000;box-shadow:0 20px 60px rgba(0,0,0,.4);object-fit:contain}
  .dv-placeholder{background:#fff;width:min(640px,100%);aspect-ratio:1.414/1;border:1px solid rgba(0,0,0,.1);border-radius:8px;box-shadow:0 20px 60px rgba(0,0,0,.25);display:grid;place-items:center;position:relative;overflow:hidden;padding:40px}
  .dv-placeholder::before,.dv-placeholder::after{content:"";position:absolute;border:2px solid var(--ink);border-radius:6px;pointer-events:none}
  .dv-placeholder::before{inset:14px}
  .dv-placeholder::after{inset:22px;border-color:var(--lime);border-style:dashed}
  .dv-placeholder-inner{text-align:center;position:relative;z-index:2}
  .dv-placeholder-inner .crest{font-family:var(--serif);font-style:italic;font-size:80px;color:var(--klein);line-height:1}
  .dv-placeholder-inner h3{font-family:var(--sans);font-size:24px;font-weight:500;margin:18px 0 6px;letter-spacing:-.01em}
  .dv-placeholder-inner p{font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.08em;opacity:.6}
  .dv-placeholder-inner .seal{margin-top:22px;display:inline-block;padding:8px 16px;border:2px solid var(--magenta);border-radius:99px;color:var(--magenta);font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.12em;font-weight:600;transform:rotate(-3deg)}

  /* Carousel */
  .dv-carousel-wrap{display:flex;flex-direction:column;align-items:center;width:100%;gap:16px}
  .dv-carousel{display:flex;align-items:center;gap:12px;width:100%}
  .dv-carousel-slide{flex:1;display:flex;justify-content:center;align-items:center;min-width:0}
  .dv-carousel-slide img{max-width:100%;max-height:62vh;border-radius:8px;box-shadow:0 20px 60px rgba(0,0,0,.25);background:#fff;object-fit:contain}
  .dv-carousel-nav{flex-shrink:0;width:44px;height:44px;border-radius:50%;background:var(--ink);color:var(--cream);border:none;font-size:20px;cursor:none;display:flex;align-items:center;justify-content:center;opacity:.8;transition:opacity .2s;line-height:1}
  .dv-carousel-nav:hover{opacity:1}
  .dv-carousel-nav:disabled{opacity:.2;pointer-events:none}
  .dv-carousel-dots{display:flex;gap:8px;justify-content:center}
  .dv-carousel-dot{width:8px;height:8px;border-radius:50%;background:rgba(0,0,0,.25);border:none;cursor:none;padding:0;transition:background .2s}
  .dv-carousel-dot.active{background:var(--ink)}

  /* CONTACT */
  .contact{background:var(--ink);color:var(--cream);min-height:90vh;display:flex;align-items:center;padding-top:120px;padding-bottom:60px;position:relative;overflow:hidden}
  .contact__bg{position:absolute;inset:0;opacity:.4;pointer-events:none}
  .contact__inner{position:relative;z-index:2;width:100%;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
  @media (max-width:900px){.contact__inner{grid-template-columns:1fr;gap:40px}}
  .contact__title{font-family:var(--sans);font-weight:500;font-size:clamp(48px, 8vw, 120px);line-height:.95;letter-spacing:-.03em}
  .contact__title .serif{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--lime)}
  .contact__sub{font-size:18px;line-height:1.6;opacity:.7;max-width:440px;margin-top:24px}
  .contact__direct{margin-top:40px;display:flex;flex-direction:column;gap:14px;font-family:var(--mono);font-size:13px}
  .contact__direct a{display:inline-flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid transparent;transition:border-color .2s, color .2s;width:fit-content}
  .contact__direct a:hover{border-color:var(--lime);color:var(--lime)}
  .contact__direct svg{width:14px;height:14px}

  .form{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);border-radius:24px;padding:36px;backdrop-filter:blur(12px)}
  .form__row{margin-bottom:22px}
  .form__row label{display:block;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.1em;opacity:.6;margin-bottom:8px}
  .form__row input, .form__row textarea{width:100%;background:transparent;border:none;border-bottom:1px solid rgba(255,255,255,.2);padding:10px 0;color:var(--cream);font-size:16px;font-family:var(--sans);outline:none;transition:border-color .2s}
  .form__row input:focus, .form__row textarea:focus{border-color:var(--lime)}
  .form__row textarea{resize:vertical;min-height:90px;font-family:var(--sans)}
  .form__row.error input, .form__row.error textarea{border-color:var(--magenta)}
  .form__error{display:none;font-family:var(--mono);font-size:11px;color:var(--magenta);margin-top:6px}
  .form__row.error .form__error{display:block}
  .form__submit{margin-top:12px;display:flex;justify-content:space-between;align-items:center;gap:20px}
  .btn-primary{background:var(--lime);color:var(--ink);padding:18px 28px;border-radius:99px;font-family:var(--mono);font-size:13px;text-transform:uppercase;letter-spacing:.08em;font-weight:600;display:inline-flex;align-items:center;gap:10px;transition:transform .2s, background .2s}
  .btn-primary:hover{transform:translate(-3px,-3px);background:#fff}
  .btn-primary:disabled{opacity:.4;pointer-events:none}
  .form__success{display:none;align-items:center;gap:12px;color:var(--lime);font-family:var(--mono);font-size:13px}
  .form.success .form__row, .form.success .form__submit > .btn-primary{display:none}
  .form.success .form__success{display:flex}
  .form__success-big{font-family:var(--serif);font-style:italic;font-size:36px;color:var(--lime);line-height:1.1;margin-bottom:12px}
  .form__success-content{display:none}
  .form.success .form__success-content{display:block;text-align:center;padding:20px 0}

  /* FOOTER */
  .footer{background:var(--ink);color:var(--cream);padding:40px 6vw;border-top:1px solid rgba(255,255,255,.08);font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.1em;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;opacity:.6}

  /* Backoffice */
  .bo-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);backdrop-filter:blur(8px);z-index:1000;display:none;align-items:center;justify-content:center;padding:20px}
  .bo-overlay.open{display:flex}
  .bo-modal{background:var(--cream);color:var(--ink);border-radius:24px;width:100%;max-width:1100px;max-height:88vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.4)}
  .bo-header{padding:20px 28px;border-bottom:1px solid rgba(0,0,0,.1);display:flex;justify-content:space-between;align-items:center;background:var(--ink);color:var(--cream)}
  .bo-title{font-family:var(--sans);font-size:18px;font-weight:500;display:flex;align-items:center;gap:10px}
  .bo-title-dot{width:10px;height:10px;border-radius:50%;background:var(--lime);box-shadow:0 0 12px var(--lime)}
  .bo-close{font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.08em;padding:8px 14px;border:1px solid rgba(255,255,255,.2);border-radius:99px;transition:background .2s}
  .bo-close:hover{background:rgba(255,255,255,.08)}
  .bo-body{flex:1;display:grid;grid-template-columns:220px 1fr;overflow:hidden}
  .bo-tabs{background:var(--cream-2);border-right:1px solid rgba(0,0,0,.08);padding:20px 0;display:flex;flex-direction:column;gap:2px;overflow-y:auto}
  .bo-tab{padding:12px 24px;font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.08em;text-align:left;color:var(--ink);opacity:.6;transition:opacity .2s, background .2s;border-left:2px solid transparent}
  .bo-tab:hover{opacity:1;background:rgba(0,0,0,.04)}
  .bo-tab.active{opacity:1;background:var(--cream);border-left-color:var(--lime);font-weight:500}
  .bo-tab-badge{display:inline-block;margin-left:6px;padding:2px 7px;background:var(--magenta);color:#fff;border-radius:99px;font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:0;text-transform:none;vertical-align:middle}

  /* Messages list */
  .bo-msg{background:#fff;border:1px solid rgba(0,0,0,.1);border-radius:14px;padding:18px 20px;margin-bottom:12px;transition:border-color .2s, box-shadow .2s}
  .bo-msg:hover{border-color:rgba(0,0,0,.2);box-shadow:0 4px 18px rgba(0,0,0,.06)}
  .bo-msg.unread{border-left:3px solid var(--magenta);background:#fffafd}
  .bo-msg__head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap;margin-bottom:10px}
  .bo-msg__from{font-family:var(--sans);font-size:14px;font-weight:600}
  .bo-msg__from small{font-family:var(--mono);font-size:11px;font-weight:400;opacity:.6;margin-left:6px}
  .bo-msg__date{font-family:var(--mono);font-size:11px;opacity:.55;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}
  .bo-msg__subject{font-family:var(--sans);font-size:13px;font-weight:500;margin-bottom:8px;opacity:.85}
  .bo-msg__body{font-size:13px;line-height:1.5;opacity:.85;white-space:pre-wrap;word-wrap:break-word}
  .bo-msg__actions{display:flex;gap:8px;margin-top:12px}
  .bo-msg__actions button, .bo-msg__actions a{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;padding:7px 12px;border:1px solid rgba(0,0,0,.18);border-radius:99px;background:transparent;cursor:none;transition:background .2s, color .2s, border-color .2s;color:inherit;text-decoration:none;display:inline-flex;align-items:center;gap:6px}
  .bo-msg__actions button:hover, .bo-msg__actions a:hover{background:var(--ink);color:var(--cream);border-color:var(--ink)}
  .bo-msg__actions .danger:hover{background:var(--magenta);color:#fff;border-color:var(--magenta)}
  .bo-content{padding:28px 32px;overflow-y:auto}
  .bo-section-title{font-family:var(--sans);font-size:24px;font-weight:500;letter-spacing:-.01em;margin-bottom:6px}
  .bo-section-desc{font-family:var(--sans);font-size:14px;opacity:.6;margin-bottom:24px}
  .bo-field{margin-bottom:18px}
  .bo-field label{display:block;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;opacity:.6;margin-bottom:6px}
  .bo-field input, .bo-field textarea, .bo-field select{width:100%;background:#fff;border:1px solid rgba(0,0,0,.15);border-radius:10px;padding:10px 14px;font-family:var(--sans);font-size:14px;color:var(--ink);outline:none;transition:border-color .2s}
  .bo-field input:focus, .bo-field textarea:focus, .bo-field select:focus{border-color:var(--ink)}
  .bo-field textarea{resize:vertical;min-height:80px}
  .bo-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
  .bo-list{display:flex;flex-direction:column;gap:14px}
  .bo-card{background:#fff;border:1px solid rgba(0,0,0,.1);border-radius:14px;padding:18px}
  .bo-card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
  .bo-card-head h4{font-family:var(--sans);font-size:14px;font-weight:600;display:flex;align-items:center;gap:8px}
  .bo-card-actions{display:flex;gap:6px}
  .bo-icon-btn{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:rgba(0,0,0,.05);transition:background .2s}
  .bo-icon-btn:hover{background:rgba(0,0,0,.1)}
  .bo-icon-btn.danger:hover{background:var(--magenta);color:#fff}
  .bo-add{padding:14px;background:var(--ink);color:var(--cream);border-radius:14px;font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.08em;display:flex;align-items:center;justify-content:center;gap:8px;transition:background .2s;width:100%}
  .bo-add:hover{background:var(--ink-soft)}
  .bo-add.lime{background:var(--lime);color:var(--ink)}
  .bo-add.lime:hover{background:#b8e028}
  .bo-images-grid{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-start;margin-top:8px}
  .bo-img-thumb{position:relative;width:100px;height:70px;flex-shrink:0}
  .bo-img-thumb img{width:100%;height:100%;object-fit:cover;border-radius:8px;border:1px solid rgba(0,0,0,.1)}
  .bo-img-remove{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;background:var(--ink);color:var(--cream);border:none;font-size:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;padding:0}
  .bo-img-add{width:100px;height:70px;border-radius:8px;border:1px dashed rgba(0,0,0,.3);display:flex;align-items:center;justify-content:center;background:var(--cream-2);cursor:pointer;position:relative;overflow:hidden;flex-shrink:0}
  .bo-img-add input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
  .bo-img-add-icon{font-family:var(--mono);font-size:22px;opacity:.4;pointer-events:none}
  .bo-save-bar{padding:16px 28px;background:var(--cream-2);border-top:1px solid rgba(0,0,0,.08);display:flex;justify-content:space-between;align-items:center;gap:16px;font-family:var(--mono);font-size:12px}
  .bo-save-bar .left{opacity:.6;text-transform:uppercase;letter-spacing:.08em}
  .bo-save-bar .right{display:flex;gap:10px}
  .bo-btn{padding:10px 18px;border-radius:99px;font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.08em;transition:all .2s}
  .bo-btn-primary{background:var(--ink);color:var(--cream)}
  .bo-btn-primary:hover{background:var(--ink-soft)}
  .bo-btn-ghost{background:transparent;color:var(--ink);border:1px solid rgba(0,0,0,.15)}
  .bo-btn-ghost:hover{background:rgba(0,0,0,.04)}
  .bo-color-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
  .bo-color-swatch{display:flex;flex-direction:column;align-items:center;gap:6px}
  .bo-color-swatch input[type=color]{width:60px;height:60px;border:none;border-radius:50%;cursor:none;background:transparent;padding:0}
  .bo-color-swatch input[type=color]::-webkit-color-swatch-wrapper{padding:0}
  .bo-color-swatch input[type=color]::-webkit-color-swatch{border:none;border-radius:50%}
  .bo-color-swatch span{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;opacity:.6}
  @media (max-width:780px){.bo-body{grid-template-columns:1fr}.bo-tabs{flex-direction:row;overflow-x:auto;padding:8px}.bo-tab{white-space:nowrap;padding:10px 14px;border-left:none;border-bottom:2px solid transparent}.bo-tab.active{border-bottom-color:var(--lime);border-left-color:transparent}}

  /* Login */
  .login-modal{background:var(--ink);color:var(--cream);border-radius:24px;padding:40px;max-width:420px;width:100%;text-align:center;border:1px solid rgba(255,255,255,.1)}
  .login-modal h2{font-family:var(--sans);font-size:28px;font-weight:500;margin-bottom:8px}
  .login-modal .lock{font-size:48px;margin-bottom:16px}
  .login-modal p{font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.08em;opacity:.6;margin-bottom:24px}
  .login-modal input{width:100%;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:14px;font-family:var(--mono);font-size:14px;color:var(--cream);text-align:center;letter-spacing:.4em;outline:none;margin-bottom:14px}
  .login-modal input:focus{border-color:var(--lime)}
  .login-modal .login-btns{display:flex;gap:8px}
  .login-modal .login-btns button{flex:1;padding:14px;border-radius:99px;font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.08em}
  .login-modal .login-go{background:var(--lime);color:var(--ink);font-weight:600}
  .login-modal .login-cancel{background:rgba(255,255,255,.06);color:var(--cream)}
  .login-error{color:var(--magenta);font-family:var(--mono);font-size:11px;margin-top:8px;min-height:14px}
  .login-hint{font-family:var(--mono);font-size:10px;opacity:.4;margin-top:12px}

  /* Reveal animations */
  .reveal{opacity:0;transform:translateY(40px);transition:opacity .9s cubic-bezier(.2,.9,.3,1.05), transform .9s cubic-bezier(.2,.9,.3,1.05)}
  .reveal.in{opacity:1;transform:translateY(0)}
  .reveal-stagger > *{opacity:0;transform:translateY(30px);transition:opacity .7s ease, transform .7s ease}
  .reveal-stagger.in > *{opacity:1;transform:translateY(0)}
  .reveal-stagger.in > *:nth-child(1){transition-delay:.05s}
  .reveal-stagger.in > *:nth-child(2){transition-delay:.1s}
  .reveal-stagger.in > *:nth-child(3){transition-delay:.15s}
  .reveal-stagger.in > *:nth-child(4){transition-delay:.2s}
  .reveal-stagger.in > *:nth-child(5){transition-delay:.25s}
  .reveal-stagger.in > *:nth-child(6){transition-delay:.3s}

  /* Toast */
  .toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(80px);background:var(--ink);color:var(--cream);padding:12px 20px;border-radius:99px;font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.08em;z-index:2000;display:flex;align-items:center;gap:10px;transition:transform .3s ease;border:1px solid rgba(255,255,255,.1)}
  .toast.show{transform:translateX(-50%) translateY(0)}
  .toast .dot{width:8px;height:8px;border-radius:50%;background:var(--lime)}