/* See the Sea — makieta strony. Koncept: editorial & elegant.
   Mockup only. Kolory i typografia do uzgodnienia. */

:root{
  --ink:#1b2733;        /* grafit-granat, tekst */
  --ink-soft:#4a5762;
  --paper:#fbfaf7;      /* piana / off-white */
  --paper-2:#f3efe7;    /* piaskowa sekcja */
  --sand:#e6ddcc;
  --line:#ddd6c8;       /* hairline */
  --sea:#2c5468;        /* stonowany błękit Bałtyku */
  --sea-deep:#16313d;   /* ciemne sekcje, stopka */
  --sea-bright:#3f7d92;
  --gold:#b1854e;       /* ciepły akcent, oszczędnie */
  --maxw:1200px;
  --pad: clamp(22px, 5vw, 64px);
  --serif:"Cormorant Garamond", Georgia, "Times New Roman", serif;
  --sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--sans); font-size:17px; line-height:1.65;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
.container{max-width:var(--maxw); margin:0 auto; padding-left:var(--pad); padding-right:var(--pad);}

h1,h2,h3{font-family:var(--serif); font-weight:500; line-height:1.06; letter-spacing:-.01em; margin:0;}
h1{font-size:clamp(2.7rem, 6.2vw, 5.1rem);}
h2{font-size:clamp(2rem, 4.2vw, 3.3rem);}
h3{font-size:clamp(1.35rem, 2.2vw, 1.7rem);}
p{margin:0 0 1.1em;}
.lead{font-size:clamp(1.12rem,1.6vw,1.35rem); color:var(--ink-soft); line-height:1.6;}
.measure{max-width:64ch;}

.eyebrow{
  font-family:var(--sans); font-size:.74rem; font-weight:600;
  letter-spacing:.22em; text-transform:uppercase; color:var(--sea);
  margin:0 0 1.1rem;
}
.eyebrow.on-dark{color:#a9c7d2;}

/* ---------- Header ---------- */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:50;
  display:flex; align-items:center; justify-content:flex-start;
  padding:18px var(--pad); gap:24px;
  transition:background .3s ease, box-shadow .3s ease, padding .3s ease;
}
.site-header.scrolled{
  background:rgba(251,250,247,.94); backdrop-filter:saturate(140%) blur(8px);
  box-shadow:0 1px 0 var(--line); padding-top:12px; padding-bottom:12px;
}
.brand{display:flex; align-items:center; gap:12px; flex-shrink:0; margin-right:auto;}
.brand .logo-full{height:74px; width:auto; display:block; transition:height .3s ease;}
.site-header.scrolled .brand .logo-full{height:48px;}
.brand .logo-light{display:block;}
.brand .logo-dark{display:none;}
.site-header.scrolled .brand .logo-light{display:none;}
.site-header.scrolled .brand .logo-dark{display:block;}

.nav{display:flex; align-items:center; gap:26px;}
.nav a.navlink{
  font-size:.86rem; font-weight:500; letter-spacing:.04em; color:rgba(255,255,255,.92);
  padding:6px 0; position:relative;
}
.site-header.scrolled .nav a.navlink{color:var(--ink-soft);}
.nav a.navlink::after{content:""; position:absolute; left:0; right:100%; bottom:0; height:1.5px; background:currentColor; transition:right .25s ease;}
.nav a.navlink:hover::after{right:0;}
.nav a.navlink.active{color:#fff;}
.site-header.scrolled .nav a.navlink.active{color:var(--sea);}

.header-right{display:flex; align-items:center; gap:18px;}
.lang-select{position:relative; flex-shrink:0;}
.lang-btn{display:inline-flex; align-items:center; gap:7px; background:none; border:0; cursor:pointer;
  font-family:var(--sans); font-size:.82rem; font-weight:600; letter-spacing:.04em; color:rgba(255,255,255,.92); padding:6px 2px;}
.site-header.scrolled .lang-btn{color:var(--ink);}
.lang-btn .chev{font-size:.66em; line-height:1; transition:transform .25s ease;}
.lang-select.open .lang-btn .chev{transform:rotate(180deg);}
.lang-menu{position:absolute; top:calc(100% + 12px); right:0; min-width:132px; display:flex; flex-direction:column;
  background:var(--sea-deep); border-radius:5px; padding:6px; box-shadow:0 20px 44px -18px rgba(8,20,28,.6);
  opacity:0; visibility:hidden; transform:translateY(-6px); transition:opacity .2s ease, transform .2s ease, visibility .2s;}
.lang-select.open .lang-menu{opacity:1; visibility:visible; transform:translateY(0);}
.lang-menu a, .lang-menu span{font-size:.82rem; font-weight:600; letter-spacing:.04em; color:#dfe8eb; padding:8px 12px; border-radius:3px; text-align:left;}
.lang-menu a:hover{background:rgba(255,255,255,.10); color:#fff;}
.lang-menu .on{color:#86b3c2;}

.btn{
  display:inline-flex; align-items:center; gap:.5em; cursor:pointer;
  font-family:var(--sans); font-size:.86rem; font-weight:600; letter-spacing:.03em;
  padding:.7em 1.35em; border-radius:2px; border:1.5px solid transparent;
  background:var(--sea); color:#fff; transition:background .2s ease, transform .2s ease, color .2s, border-color .2s;
}
.btn:hover{background:var(--sea-bright);}
.btn-ghost{background:transparent; border-color:rgba(255,255,255,.6); color:#fff;}
.btn-ghost:hover{background:rgba(255,255,255,.12); border-color:#fff;}
.site-header.scrolled .btn-ghost{border-color:var(--line); color:var(--ink);}
.site-header.scrolled .btn-ghost:hover{background:var(--paper-2);}
.btn-dark{background:var(--ink); color:#fff;} .btn-dark:hover{background:var(--sea-deep);}
.btn-outline{background:transparent; border-color:var(--ink); color:var(--ink);}
.btn-outline:hover{background:var(--ink); color:#fff;}

.menu-toggle{display:none; background:none; border:0; cursor:pointer; width:30px; height:22px; position:relative;}
.menu-toggle span{position:absolute; left:0; right:0; height:2px; background:#fff; transition:.25s;}
.site-header.scrolled .menu-toggle span{background:var(--ink);}
.menu-toggle span:nth-child(1){top:0;} .menu-toggle span:nth-child(2){top:10px;} .menu-toggle span:nth-child(3){top:20px;}

/* ---------- Hero ---------- */
.hero{position:relative; min-height:92vh; display:flex; align-items:flex-end; color:#fff; overflow:hidden;}
.hero.inner{min-height:64vh;}
.hero .bg{position:absolute; inset:0; background-size:cover; background-position:center; transform:scale(1.03);}
.hero .scrim{position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(12,24,31,.42) 0%, rgba(12,24,31,.12) 38%, rgba(12,24,31,.66) 100%);}
.hero .inner-wrap{position:relative; z-index:2; width:100%; padding-bottom:clamp(48px,8vh,110px); padding-top:140px;}
/* Full landing hero: keep height tied to the viewport so the photo doesn't jump
   between PL/EN when headline length differs (content stays within 92vh). */
.hero:not(.inner) .inner-wrap{padding-top:8px; padding-bottom:clamp(40px,6vh,90px);}
.hero h1{max-width:18ch; text-shadow:0 1px 30px rgba(0,0,0,.25);}
.hero .sub{font-size:clamp(1.1rem,1.7vw,1.4rem); max-width:46ch; margin-top:1.1rem; color:rgba(255,255,255,.92);}
.hero .cta-row{display:flex; flex-wrap:wrap; gap:14px; margin-top:2rem;}
.hero.inner h1{max-width:20ch;}
.hero .kicker{font-size:.78rem; letter-spacing:.24em; text-transform:uppercase; color:#bcd4dd; margin-bottom:1.1rem; font-weight:600;}

/* ---------- Generic section ---------- */
section{padding-block:clamp(56px, 9vw, 120px);}
.section-tight{padding-block:clamp(40px,6vw,80px);}
.bg-paper2{background:var(--paper-2);}
.bg-sand{background:var(--sand);}
.bg-deep{background:var(--sea-deep); color:#f4f1ea;}
.bg-deep h2,.bg-deep h3{color:#fff;}
.bg-deep .lead{color:#cdd9de;}

.section-head{max-width:60ch; margin-bottom:clamp(34px,5vw,60px);}
.divider{height:1px; background:var(--line); border:0; margin:0;}

/* ---------- "Co nas wyróżnia" feature ---------- */
.feature{display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(32px,5vw,72px); align-items:center;}
.feature .pull{font-family:var(--serif); font-size:clamp(1.7rem,2.8vw,2.5rem); line-height:1.2; color:var(--ink); margin:0 0 1rem; letter-spacing:-.01em;}
.feature .pull em{font-style:italic; color:var(--sea);}
.feature .media{position:relative;}
.feature .media img{width:100%; height:100%; max-height:560px; object-fit:cover; border-radius:2px;}
.feature .media .tag{position:absolute; bottom:0; left:0; background:var(--paper); color:var(--ink-soft); font-size:.74rem; letter-spacing:.04em; padding:8px 14px;}

/* ---------- Cards: co robimy / projekty ---------- */
.grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(20px,2.4vw,34px);}
.grid-2{display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(24px,3vw,48px);}
.card{background:var(--paper); border:1px solid var(--line); border-radius:3px; overflow:hidden; display:flex; flex-direction:column; transition:transform .25s ease, box-shadow .25s ease;}
.card:hover{transform:translateY(-4px); box-shadow:0 18px 40px -24px rgba(20,40,50,.5);}
.card .ph{aspect-ratio:4/3; overflow:hidden;}
.card .ph img{width:100%; height:100%; object-fit:cover; transition:transform .5s ease;}
.card:hover .ph img{transform:scale(1.05);}
.card .body{padding:22px 24px 26px; display:flex; flex-direction:column; flex:1;}
.card .label{font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--sea); font-weight:600; margin-bottom:.6rem;}
.card h3{margin-bottom:.5rem;}
.card p{font-size:.96rem; color:var(--ink-soft); margin-bottom:1.1rem;}
.card .more{margin-top:auto; font-size:.84rem; font-weight:600; letter-spacing:.03em; color:var(--ink); display:inline-flex; align-items:center; gap:.4em;}
.card .more .arr{transition:transform .25s;}
.card:hover .more .arr{transform:translateX(4px);}

/* ---------- Numbers ---------- */
.numbers{display:grid; grid-template-columns:repeat(4,1fr); gap:0;}
.numbers .n{padding:6px clamp(14px,2.5vw,34px); border-left:1px solid rgba(255,255,255,.16);}
.numbers .n:first-child{border-left:0; padding-left:0;}
.numbers .big{font-family:var(--serif); font-size:clamp(2.8rem,5vw,4.2rem); line-height:1; color:#fff;}
.numbers .cap{font-size:.92rem; color:#c2d0d6; margin-top:.6rem; line-height:1.4;}
.flag{display:inline-block; font-family:var(--sans); font-size:.62rem; letter-spacing:.08em; text-transform:uppercase; color:var(--gold); border:1px solid rgba(177,133,78,.5); border-radius:2px; padding:1px 6px; margin-left:6px; vertical-align:middle;}
.embargo{opacity:.62;}
.embargo .lock{font-size:.78rem; color:#cdb78f; margin-top:.5rem; display:block;}

/* ---------- Partners ---------- */
.partners-row{display:flex; flex-wrap:wrap; align-items:center; justify-content:center; --prow-gap:clamp(28px,4.5vw,64px); gap:var(--prow-gap); max-width:780px; margin-left:auto; margin-right:auto;}
.partners-row .plogo{font-family:var(--serif); font-size:1.25rem; color:var(--ink-soft); opacity:.72; letter-spacing:.02em; filter:grayscale(1);}
.partners-row .plogo-item{display:inline-flex; align-items:center; justify-content:center; min-height:52px; flex:0 0 calc((100% - 2*var(--prow-gap))/3 - 2px);}
.partners-row .plogo-img{max-height:52px; max-width:100%; width:auto; object-fit:contain; filter:grayscale(1); opacity:.78; transition:filter .25s ease, opacity .25s ease;}
.partners-row .plogo-item:hover .plogo-img{filter:grayscale(0); opacity:1;}
@media (max-width:600px){ .partners-row .plogo-item{flex-basis:calc((100% - var(--prow-gap))/2 - 2px);} }

/* ---------- Contact form ---------- */
.contact-form{display:flex; flex-direction:column; gap:14px;}
.contact-form label{display:flex; flex-direction:column; gap:6px; font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; font-weight:600; color:var(--ink-soft);}
.contact-form input, .contact-form textarea{font-family:var(--sans); font-size:1rem; color:var(--ink); background:var(--paper); border:1px solid var(--line); border-radius:3px; padding:12px 14px; width:100%;}
.contact-form input:focus, .contact-form textarea:focus{outline:none; border-color:var(--sea);}
.contact-form textarea{resize:vertical; min-height:120px;}
.contact-form button.btn{align-self:flex-start; margin-top:6px; border:0; cursor:pointer;}

/* ---------- Posts ---------- */
.post{display:flex; flex-direction:column; gap:14px;}
.post .ph{aspect-ratio:16/10; overflow:hidden; border-radius:3px;}
.post .ph img{width:100%; height:100%; object-fit:cover;}
.post .meta{font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; color:var(--sea); font-weight:600;}
.post h3{font-size:1.3rem;}
.post p{font-size:.95rem; color:var(--ink-soft);}

/* ---------- Footer ---------- */
.site-footer{background:var(--sea-deep); color:#cdd9de; padding-block:clamp(54px,7vw,84px); font-size:.92rem;}
.footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1.3fr; gap:40px;}
.site-footer .flogo img{height:78px; margin-bottom:18px;}
.site-footer h4{font-family:var(--sans); font-size:.74rem; letter-spacing:.18em; text-transform:uppercase; color:#8fb0bb; margin:0 0 16px; font-weight:600;}
.site-footer a{color:#cdd9de;} .site-footer a:hover{color:#fff;}
.site-footer ul{list-style:none; margin:0; padding:0;} .site-footer li{margin-bottom:9px;}
.legal{font-size:.82rem; color:#90a7b1; line-height:1.7;}
.newsletter input{width:100%; padding:.7em .9em; border:1px solid rgba(255,255,255,.22); background:rgba(255,255,255,.04); color:#fff; border-radius:2px; font-family:var(--sans); font-size:.9rem; margin-bottom:10px;}
.newsletter input::placeholder{color:#7f97a1;}
.newsletter button.btn{width:100%; border:0; cursor:pointer;}
.hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;}
.form-status{margin-top:10px; font-size:.9rem; line-height:1.45; color:var(--sea-deep);}
.form-status.err{color:#b3492f;}
.newsletter .form-status{color:#86d6b4;}
.newsletter .form-status.err{color:#f0a58f;}
.socials{display:flex; gap:14px; margin-top:6px;}
.socials a{font-size:.82rem; letter-spacing:.04em;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12); margin-top:46px; padding-top:24px; display:flex; flex-wrap:wrap; justify-content:space-between; gap:14px; font-size:.8rem; color:#8298a2;}

/* ---------- Mockup banner ---------- */
.mock-banner{display:none;}
.mock-banner b{color:#fff;}

/* ---------- Project detail blocks ---------- */
.proj{display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,4vw,60px); align-items:center;}
.proj>*, .feature>*, .grid-2>*{min-width:0;}
.proj.rev .media{order:2;}
.proj .media img{width:100%; aspect-ratio:5/4; object-fit:cover; border-radius:3px;}
.status{display:inline-flex; align-items:center; gap:.5em; font-size:.72rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; padding:.35em .8em; border-radius:2px; margin-bottom:1rem;}
.status .dot{width:8px; height:8px; border-radius:50%; display:inline-block;}
.status.prod{background:#eaf2ee; color:#2f6b4a;} .status.prod .dot{background:#3a8a5e;}
.status.plan{background:#eef1f5; color:#3a5a78;} .status.plan .dot{background:#4d7aa6;}
.status.done{background:#f1eee8; color:#7a6235;} .status.done .dot{background:#b1854e;}
.proj .stats{display:flex; gap:30px; margin-top:1.4rem; flex-wrap:wrap;}
.proj .stats .s b{font-family:var(--serif); font-size:1.8rem; display:block; line-height:1;}
.proj .stats .s span{font-size:.8rem; color:var(--ink-soft);}

/* ASCII seal */
.ascii-seal{background:var(--sea-deep); border-radius:3px; padding:26px; overflow:hidden;}
.ascii-wrap{position:relative; width:100%; overflow:hidden;}
.ascii-seal pre{font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace; color:#cfe0e7; font-size:8px; line-height:1.04; margin:0; white-space:pre; letter-spacing:0; display:inline-block; transform-origin:top left;}

/* Threats grid */
.threats{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(22px,3vw,40px);}
.threat{border-top:2px solid var(--sea); padding-top:18px;}
.threat .ic{font-family:var(--serif); font-size:1.4rem; color:var(--sea); font-weight:600;}
.threat h3{font-size:1.25rem; margin:.3rem 0 .6rem;}
.threat p{font-size:.93rem; color:var(--ink-soft); margin-bottom:.7rem;}
.threat .src{font-size:.74rem; letter-spacing:.06em; text-transform:uppercase; color:var(--sea); font-weight:600;}

/* paths (support) */
.path{background:var(--paper); border:1px solid var(--line); border-radius:3px; padding:30px 30px 34px; display:flex; flex-direction:column;}
.path .num{font-family:var(--serif); font-size:1.1rem; color:var(--sea); margin-bottom:.6rem;}
.path h3{margin-bottom:.6rem;}
.path ul{margin:.4rem 0 1.3rem; padding-left:1.1em;} .path li{margin-bottom:.4rem; font-size:.95rem; color:var(--ink-soft);}
.path .btn{margin-top:auto; align-self:flex-start;}

.bank{font-family:var(--sans); background:var(--paper-2); border:1px dashed var(--line); border-radius:3px; padding:18px 22px; font-size:.92rem; line-height:1.8;}
.bank b{font-family:var(--serif);}

/* News / press releases */
.releases{max-width:840px; margin:0 auto;}
.releases .rel{display:block; padding:28px 0; border-bottom:1px solid var(--line); color:inherit;}
.releases .rel:first-child{padding-top:0;}
.rel .date{font-size:.74rem; letter-spacing:.12em; text-transform:uppercase; color:var(--sea); font-weight:600;}
.rel h3{font-size:clamp(1.3rem,2.1vw,1.7rem); margin:.35rem 0 .5rem;}
.rel p{color:var(--ink-soft); margin:0 0 .7rem;}
.rel .more{font-size:.84rem; font-weight:600; color:var(--ink); display:inline-flex; align-items:center; gap:.4em;}
a.rel:hover h3{color:var(--sea);}
.rel.soon{opacity:.72;}
.rel .soon-tag{display:inline-block; font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; font-weight:600; color:var(--gold); border:1px solid rgba(177,133,78,.45); border-radius:2px; padding:1px 7px; margin-left:8px; vertical-align:middle;}

/* Shop */
.shop-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(22px,3vw,40px);}
.product .pimg{position:relative; aspect-ratio:4/5; overflow:hidden; border-radius:3px; background:var(--paper-2); border:1px solid var(--line);}
.product .pimg img{width:100%; height:100%; object-fit:cover;}
.product.soldout .pimg img{filter:grayscale(.45) brightness(.95);}
.product .badge{position:absolute; top:14px; left:14px; z-index:2; background:var(--ink); color:#fff;
  font-size:.64rem; letter-spacing:.14em; text-transform:uppercase; font-weight:600; padding:5px 11px; border-radius:2px;}
.product h3{margin:16px 0 .25rem; font-size:1.3rem;}
.product .pdesc{font-size:.92rem; color:var(--ink-soft); margin:.2rem 0 1rem;}
.product .btn.disabled{background:transparent; color:var(--ink-soft); border-color:var(--line); cursor:not-allowed; pointer-events:none;}
.notify-bar{display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:space-between;
  background:var(--paper-2); border:1px solid var(--line); border-radius:3px; padding:22px 26px;}
.notify-bar form{display:flex; gap:10px; flex-wrap:wrap;}
.notify-bar input{padding:.7em 1em; border:1px solid var(--line); border-radius:2px; font-family:var(--sans); font-size:.92rem; min-width:240px; background:var(--paper);}
@media (max-width:860px){ .shop-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:560px){ .shop-grid{grid-template-columns:1fr;} }

/* Team members */
.member .avatar{width:150px; height:150px; border-radius:50%; overflow:hidden; margin-bottom:16px;}
.member .avatar img{width:100%; height:100%; object-fit:cover;}
.member .avatar.mono{display:flex; align-items:center; justify-content:center;
  background:linear-gradient(160deg, var(--sea), var(--sea-deep)); color:#fff;
  font-family:var(--serif); font-size:2.9rem; letter-spacing:.02em;}
.member h3{margin-bottom:.2rem;}
.member .role{color:var(--sea); font-weight:600; font-size:.95rem; margin:0 0 .5rem;}
.member .edu{font-size:.92rem; color:var(--ink-soft); margin:0;}

/* anchors offset for fixed header */
.anchor{scroll-margin-top:90px;}

/* ---------- Responsive ---------- */
@media (max-width:980px){
  .nav, .header-right .btn{display:none;}
  .menu-toggle{display:block;}
  .feature,.proj,.proj.rev .media{grid-template-columns:1fr;}
  .proj.rev .media{order:0;}
  .grid-3,.threats{grid-template-columns:1fr 1fr;}
  .numbers{grid-template-columns:1fr 1fr; gap:28px 0;}
  .numbers .n{border-left:0; padding-left:0;}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .nav.open{display:flex; position:absolute; top:100%; left:0; right:0; flex-direction:column; align-items:flex-start;
    background:var(--paper); padding:22px var(--pad); gap:14px; box-shadow:0 14px 30px -18px rgba(0,0,0,.4);}
  .nav.open a.navlink{color:var(--ink);}
}
@media (max-width:620px){
  .grid-3,.grid-2,.threats{grid-template-columns:1fr;}
  .numbers{grid-template-columns:1fr 1fr;}
  .footer-grid{grid-template-columns:1fr;}
  .hero{min-height:88vh;}
  .brand .logo-full{height:54px;}
  .site-header.scrolled .brand .logo-full{height:44px;}
}

/* ---------- Timeline (O nas) ---------- */
.timeline{position:relative; max-width:840px; margin:0 auto;}
.timeline::before{content:""; position:absolute; left:19px; top:8px; bottom:8px; width:2px;
  background:linear-gradient(180deg, var(--sea) 0%, var(--line) 100%);}
.tl-item{position:relative; padding-left:66px; padding-bottom:clamp(30px,4vw,48px);}
.tl-item:last-child{padding-bottom:0;}
.tl-dot{position:absolute; left:11px; top:5px; width:18px; height:18px; border-radius:50%;
  background:var(--paper); border:2px solid var(--sea); box-shadow:0 0 0 5px var(--paper);}
.bg-paper2 .tl-dot{box-shadow:0 0 0 5px var(--paper-2);}
.tl-item.award .tl-dot{border-color:var(--gold); background:var(--gold);}
.tl-item.major .tl-dot{background:var(--sea); width:22px; height:22px; left:9px;}
.tl-year{font-family:var(--serif); font-size:1.15rem; letter-spacing:.03em; color:var(--sea); font-weight:600; margin-bottom:.15rem;}
.tl-item h3{font-size:1.32rem; margin-bottom:.35rem;}
.tl-item p{font-size:.97rem; color:var(--ink-soft); margin:0;}
.tl-tag{display:inline-block; font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; font-weight:600;
  padding:2px 8px; border-radius:2px; margin-left:8px; vertical-align:middle;}
.tl-tag.award{background:rgba(177,133,78,.14); color:var(--gold); border:1px solid rgba(177,133,78,.45);}
.tl-tag.found{background:var(--sea-deep); color:#fff;}
.tl-item.major .tl-body{background:var(--paper); border:1px solid var(--line); border-left:3px solid var(--sea);
  border-radius:3px; padding:18px 22px; margin-top:2px;}
.bg-paper2 .tl-item.major .tl-body{box-shadow:0 12px 30px -22px rgba(20,40,50,.5);}
.tl-item.embargo{opacity:.6;}
.tl-item.embargo .tl-dot{border-style:dashed; background:var(--paper);}
.tl-note{font-size:.8rem; color:var(--gold); margin-top:.3rem;}

/* ---------- Hackathon full-screen page ---------- */
body.hk{background:#08151c;}
.hk-stage{position:relative; min-height:100vh; display:flex; align-items:center; justify-content:center; overflow:hidden;
  background:radial-gradient(120% 90% at 50% 38%, #163947 0%, #0c1f29 52%, #07121a 100%);}
.hk-seal-layer{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; pointer-events:none; z-index:1;}
.hk-seal-layer .ascii-wrap{width:94vw; max-width:1600px;}
.hk-seal-layer pre{font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;
  color:#3f86a0; font-size:8px; line-height:1.04; white-space:pre; margin:0; display:inline-block;
  transform-origin:top left; text-shadow:0 0 10px rgba(70,160,190,.22);
  animation:hkpulse 7s ease-in-out infinite;}
@keyframes hkpulse{0%,100%{opacity:.42;} 50%{opacity:.66;}}
.hk-content{position:relative; z-index:2; text-align:center; max-width:660px; padding:48px 26px;}
.hk-content::before{content:""; position:absolute; inset:-10% -20%; z-index:-1;
  background:radial-gradient(closest-side, rgba(7,18,26,.82) 0%, rgba(7,18,26,.55) 55%, rgba(7,18,26,0) 100%);}
.hk-content .eyebrow{color:#8fc4d6;}
.hk-content h1{color:#fff; font-size:clamp(2.6rem,6vw,4.6rem); margin-bottom:1.1rem;}
.hk-content p.lead{color:#c4d6dd; margin-bottom:2rem;}
.hk-form{display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin-bottom:1.4rem;}
.hk-form input{width:min(330px,72vw); padding:.8em 1em; border:1px solid rgba(255,255,255,.26);
  background:rgba(255,255,255,.05); color:#fff; border-radius:2px; font-family:var(--sans); font-size:.95rem;}
.hk-form input::placeholder{color:#88a3ad;}
.hk-meta{font-size:.78rem; letter-spacing:.18em; text-transform:uppercase; color:#6f97a3;}
.hk-back{position:fixed; bottom:24px; left:0; right:0; text-align:center; z-index:3; font-size:.84rem; color:#88a3ad;}
.hk-back a{color:#cfe0e7; border-bottom:1px solid rgba(207,224,231,.4); padding-bottom:2px;}
.hk-back a:hover{color:#fff;}
@media (max-width:620px){ .hk-content h1{font-size:2.4rem;} }
