:root {
  color-scheme: dark;
  --background: #060b0d;
  --surface: #0b1115;
  --text: #f1f5f4;
  --muted: #acb9bb;
  --accent: #00e1cd;
  --accent-light: #75f6e7;
  --line: #294044;
  --ease: cubic-bezier(.2,.65,.3,1);
  font-family: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  font-synthesis: none;
  background: var(--background);
  color: var(--text);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 280px; -webkit-font-smoothing: antialiased; position: relative; isolation: isolate; }
::selection { background: var(--accent); color: #001613; }
a { color: inherit; text-decoration: none; -webkit-tap-highlight-color: #00e1cd20; }
img { display: block; max-width: 100%; }
h1, h2, p { margin: 0; }
h2 { overflow-wrap: anywhere; }
.page-width { width: min(1360px, calc(100% - 96px)); margin-inline: auto; }

/* The ambience belongs to the page; project artwork keeps its original colors. */
.atmosphere { position: absolute; inset: 0; z-index: -1; pointer-events: none; overflow: hidden;
  background: radial-gradient(ellipse 68% 420px at 50% 0, #123b3c80, transparent), radial-gradient(ellipse 45% 28% at 0 43%, #10333566, transparent), radial-gradient(ellipse 40% 32% at 100% 78%, #112e3860, transparent), #060b0d;
}
.atmosphere::before { content: ""; position: absolute; inset: 0; opacity: .3;
  background-image: linear-gradient(#64d9d908 1px, transparent 1px), linear-gradient(90deg,#64d9d908 1px,transparent 1px);
  background-size: 64px 64px;
  mask-image: linear-gradient(#000, #0008 40%, #000);
}
.hero { min-height: 264px; display: grid; place-items: center; padding: 20px 24px 32px; position: relative; overflow: hidden; }
.hero::after { content: ""; position: absolute; width: min(900px,90%); height: 1px; bottom: 0; background: linear-gradient(90deg,transparent,#36b9b830,transparent); }
.hero-dust { position: absolute; inset: -20px; pointer-events: none; opacity: .3;
  background-image: radial-gradient(circle at 12% 34%,#68eee3 0 1px,transparent 1.5px),radial-gradient(circle at 27% 77%,#68eee3 0 1px,transparent 1.5px),radial-gradient(circle at 73% 23%,#68eee3 0 1px,transparent 1.5px),radial-gradient(circle at 86% 68%,#68eee3 0 1px,transparent 1.5px),radial-gradient(circle at 43% 13%,#68eee3 0 .6px,transparent 1px),radial-gradient(circle at 63% 88%,#68eee3 0 .6px,transparent 1px);
  animation: dust-drift 18s ease-in-out infinite alternate;
}
.identity { display: flex; align-items: center; justify-content: center; gap: 15px; max-width: 100%; }
.brand-mark { width: 212px; height: 212px; object-fit: contain; mix-blend-mode: screen; animation: logo-arrive 950ms var(--ease) both, logo-pulse 1600ms 1s ease-out; }
.hero h1 { font-size: clamp(3.5rem,6.3vw,6.25rem); font-weight: 750; line-height: 1; letter-spacing: -.065em; padding-right: .055em; animation: arrive 850ms 100ms var(--ease) both; }

.project { min-width: 0; }
.project-link { display: block; position: relative; isolation: isolate; border: 1px solid #71888d28; background: #0a1014; transition: border-color 260ms ease, transform 260ms var(--ease); }
.project-link::after { content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 3; opacity: 0; background: radial-gradient(400px circle at var(--pointer-x,50%) var(--pointer-y,50%),#4efbe610,transparent 72%); transition: opacity 250ms ease; }
.project-link:focus-visible { outline: 2px solid var(--accent); outline-offset: 6px; }
.project-media { width: 100%; min-width: 0; overflow: hidden; position: relative; background: #0b1014; aspect-ratio: var(--image-ratio); }
.project-media img { width: 100%; height: 100%; object-fit: contain; object-position: var(--image-position); transition: transform 300ms var(--ease), opacity 300ms ease; }
.secondary-image { position: absolute; inset: 0; opacity: 0; }
.project-copy { min-width: 0; padding: 25px 28px 28px; position: relative; }
.project-heading h2 { font-size: clamp(1.6rem,2.6vw,2.25rem); line-height: 1.12; letter-spacing: -.04em; font-weight: 680; text-wrap: balance; }
.project-copy p { color: var(--muted); font-size: 1rem; line-height: 1.65; max-width: 61ch; text-wrap: pretty; margin-top: 13px; }
.launch { display: inline-flex; align-items: center; justify-content: space-between; gap: 30px; min-height: 46px; min-width: 118px; padding: 12px 17px; margin-top: 23px; border: 1px solid #476267; color: #d1e7e5; font-size: .75rem; font-weight: 700; letter-spacing: .12em; line-height: 1.4; max-width: 100%; white-space: normal; transition: color 250ms ease, background 250ms ease, border-color 250ms ease; }
.launch svg { width: 19px; height: 19px; stroke: currentColor; stroke-width: 1.5; transition: transform 250ms var(--ease); }
.launch--primary { background: var(--accent); color: #00231e; border-color: var(--accent); min-height: 52px; padding-inline: 23px; font-size: .8125rem; }

.project--featured { margin-top: 24px; }
.project--featured .project-link { display: grid; }
.project--featured .project-media, .project--featured .project-copy { grid-area: 1 / 1; }
.project--featured .project-media { aspect-ratio: var(--feature-ratio); }
.project--featured .project-media img { object-fit: cover; }
.project--featured .project-copy { position: relative; align-self: end; display: flex; flex-wrap: wrap; align-items: end; gap: 18px 48px; padding: 120px 48px 42px; background: linear-gradient(transparent,#030708c7 38%,#030708f5); }
.project--featured .project-heading { flex-basis: 100%; min-width: 0; }
.project--featured .project-heading h2 { font-size: clamp(3rem,6.4vw,6rem); font-weight: 750; letter-spacing: -.045em; line-height: .95; }
.project--featured p { flex: 1 1 20rem; margin: 0; max-width: 48ch; font-size: 1.0625rem; color: #c4cccb; }
.project--featured .launch { margin: 0 0 0 auto; }
.collection { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 38px 32px; margin-top: 64px; }
.project--card .project-link { height: 100%; display: flex; flex-direction: column; }
.project--card .project-copy { flex: 1; display: flex; flex-direction: column; align-items: flex-start; }
.project--card .project-copy .launch { margin-top: auto; }
.project--card p { margin-bottom: 25px; }
.project--wide { grid-column: 1/-1; }
.project--wide .project-link { display: grid; grid-template-columns: 65% 35%; align-items: stretch; }
.project--wide .project-copy { min-width: 0; padding: 35px; justify-content: center; border-left: 1px solid #71888d20; }
.project--wide h2 { font-size: clamp(2rem,3vw,2.75rem); }
.project--wide .project-copy .launch { margin-top: 0; }
.project--wide .project-media { align-self: center; }
.project--app .project-link { background: #0d151c; }
.project--app.project--wide .project-media { aspect-ratio: 1.95; }
.project-media--login img { object-fit: cover; }
.project--app:not(.project--featured) .project-media img { position: absolute; top: -12.5%; height: 125%; }
.project--app.project--featured .project-media { aspect-ratio: var(--feature-ratio); }
.footer { position: relative; margin-top: 86px; padding-block: 38px 44px; display: flex; align-items: center; justify-content: center; gap: 6px; color: #9bafaf; font-size: .9375rem; font-weight: 600; letter-spacing: -.02em; }
.footer::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: linear-gradient(90deg,transparent,#19bfb95c,transparent); }
.footer img { mix-blend-mode: screen; }

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .project-link:hover { border-color: #00e1cd75; transform: translateY(-2px); }
  .project-link:hover .project-media img { transform: scale(1.025); }
  .project-link:hover.has-secondary .secondary-image { opacity: 1; }
  .project-link.pointer-active::after { opacity: 1; }
  .project-link:hover .launch svg { transform: translateX(3px); }
}
@media (hover: hover) and (pointer: fine) {
  .project-link:hover .launch { background: var(--accent); color: #00231e; border-color: var(--accent); }
  .project-link:hover .launch--primary { background: var(--accent-light); border-color: var(--accent-light); }
}
.project-link:focus-visible .launch { background: var(--accent); border-color: var(--accent); color: #00231e; }
.project-link:active .launch { background: #00b8a8; border-color: #00b8a8; color: #001b17; }
@keyframes arrive { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes logo-arrive { from { opacity: 0; filter: blur(5px); transform: translateY(8px); } to { opacity: 1; filter: blur(0); transform: none; } }
@keyframes logo-pulse { 0%,100% { filter: drop-shadow(0 0 0 #00e1cd00); } 40% { filter: drop-shadow(0 0 13px #00e1cd35); } }
@keyframes dust-drift { from { transform: translate3d(-3px,4px,0); opacity: .22; } to { transform: translate3d(5px,-5px,0); opacity: .4; } }
.project-enter { animation: arrive 550ms var(--ease) var(--reveal-delay,0ms) both; }
.project:focus-within { animation: none; }

@media (min-width: 1800px) { .hero { min-height: 346px; } }
@media (min-width: 760px) and (max-width: 1100px) {
  .page-width { width: calc(100% - 56px); }
  .hero { min-height: 284px; }
  .brand-mark { width: 222px; height: 222px; }
  .project--featured .project-copy { min-width: 0; padding: 90px 30px 30px; gap: 18px 24px; }
  .collection { gap: 28px 24px; margin-top: 44px; }
  .project-copy { min-width: 0; padding: 22px; }
  .project--wide .project-link { grid-template-columns: 58% 42%; }
  .project--wide .project-copy { min-width: 0; padding: 24px; }
  .project--wide h2 { font-size: 1.875rem; }
  .project--wide .project-media { align-self: stretch; }
  .project--wide .project-media img { object-fit: contain; }
  .project--app.project--wide .project-media img { object-fit: cover; }
}
@media (max-width: 759px) {
  .page-width { width: calc(100% - 32px); }
  .hero { min-height: 258px; padding: 4px 16px 30px; }
  .identity { flex-direction: column; gap: 0; }
  .brand-mark { width: 172px; height: 172px; }
  .hero h1 { font-size: clamp(1.75rem,13.2vw,3.2rem); letter-spacing: -.06em; }
  .project--featured { margin-top: 18px; }
  .project--featured .project-link { display: block; }
  .project--featured .project-media { aspect-ratio: var(--image-ratio); }
  .project--featured .project-copy { position: relative; display: block; padding: 40px 23px 26px; margin-top: -35px; background: linear-gradient(transparent,#080e12 35px); }
  .project--featured .project-heading h2 { font-size: clamp(2rem,10.6vw,3.5rem); }
  .project--featured p { font-size: 1rem; margin-top: 15px; }
  .project--featured .launch { margin-top: 23px; }
  .collection { grid-template-columns: minmax(0,1fr); gap: 30px; margin-top: 34px; }
  .project--wide { grid-column: auto; }
  .project--wide .project-link { display: flex; }
  .project-copy, .project--wide .project-copy { min-width: 0; padding: 23px; border-left: none; }
  .project-heading h2, .project--wide h2 { font-size: 1.7rem; line-height: 1.14; }
  .project-copy p { font-size: 1rem; line-height: 1.65; }
  .project--wide .project-media { align-self: stretch; }
  .project--app.project--wide .project-media { aspect-ratio: 1.3; }
  .project-media--login img { object-fit: cover; }
  .project--card .project-copy .launch { margin-top: 0; }
  .launch { min-height: 46px; }
  .secondary-image { display: none; }
  .footer { margin-top: 52px; padding-block: 28px 34px; }
  .project-link:focus-visible { outline-offset: 4px; }
  .project-enter { animation-delay: 0ms; }
}
@media (max-width: 359px) {
  .hero h1 { font-size: clamp(1.75rem,14vw,2.8rem); }
  .project-copy, .project--wide .project-copy { min-width: 0; padding: 20px; }
  .project-heading h2, .project--wide h2 { font-size: 1.5rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .secondary-image { display: none; }
  .project-link::after { display: none; }
}
