/* Portfolio – structure pass. Built from Figma frame 873:47336 (1728px desktop). */

:root {
  /* Phone outlines that mask the CheckIn phone videos (made from ASSETS/Ease CheckIn/What changed mask.png
     and Final solution mask.png). Inlined: browsers refuse a mask image loaded from a file when the
     site is opened from the folder (file://), and the masked phones then disappear. */
  --mask-what-changed: url("data:image/png;base64,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gMAAAAAEBgAAIDAAAAAEBgAAIDAAAACBAQAAIDAAAACBAQAACAwAAEBgAAAACAwAAEBgAAAAAgMAAEBgAAAAAgMAABAYAACAwAAAABAYAACAwAAAAAQGAACAwAAAAAQGAAAgMAAAAIEBAAAgMAAAAIEBAAAIDAAAAIEBAAAIDAAAQGAAAAACAwAAQGAAAAACAwAAEBgAAAACAwAAEBgAAIDAAAAABAYAAIDAAAAABAYAACAwAAAAgeEVAAAAAgMAABAYAACAwAAAABAYAACAwAAAAAQGAAAgMAAAAAQGAAAgMAAAAIEBAAAgMAAAAIEBAAAIDAAAQGAAAAAIDAAAQGAAAAACAwAAQGAAAAACAwAAEBgAAIDAAAAAEBgAAIDAAAAABAYAAIDAAAAABAYAACAwAAAAgQEAACAwAAAAgQEAAAgMAAAAgQEAAAgMAABAYAAAAAIDAABAYAAAAAIDAAAQGAAAAAIDAAAQGAAAgMAAAAAEBgAAgMAAAAAEBgAAIDAAAAAEBgAAIDAAAACBAQAACAwAAACBAQAACAwAAEBgAAAAAgMAAEBgAAAAAgMAABAYAAAAAgMAABAYAACAwAAAAAQGAACAwAAAAAQGAAAgMAAAAAQGAAAgMAAAAIEBAAAIDAAAAIEBAAAIDAAAQGAAAAAIDAAAQGAAAAACAwAAEBgAAAACAwAAEBgAAIDAAAAAEBgAAIDAAAAABAYAACAwAAAABAYAACAwAAAAgQEAACAwAAAAgQEAAAgMAABAYAAAAAgMAABAYAAAAAIDAABAYAAAAAIDAAAQGAAAgMAAAAAQGAAAgMAAAAAEBgAAgMAAAAAEBgAAIDAAAACBAQAAIDAAAACBAQAACAwAAEBgAAAACAwAAEBgAAAAAgMAAEBgAAAAAgMAABAYAACAwAAAABAYAACAwAAAAAQGAACAwAAAAAQGAAAgMAAAAIEBAAAgMAAAAIEBAAAIDAAAAIEBAAAIDAAAQGAAAAACAwAAQGAAAAACAwAAEBgAAAACAwAAEBgAAIDAAAAABAYAAIDAAAAABAYAACAwAAAABAYAACAwAAAAgQEAAAgMAAAAgQEAAAgMAABAYAAAAAgMAABAYAAAAAIDAAAQGAAAAAIDAAAQGAAAgMAAAAAQGAAAgMAAAAAEBgAAIDAAAAAEBgAAIDAAAACBAQAACAwAAACBAQAACAwAAEBgAAAACAwAAEBgAAAAAgMAABAYAAAAAgMAABAYAACAwAAAABAYAACAwAAAAAQGAAAgMAAAAAQGAAAgMAAAAIEBAAAgMAAAAIEBAAAIDAAAQGAAAAAIDAAAQGAAAAACAwAAQGAAAAACAwAAEBgAAIDAAAAAEBgAAIDAAAAABAYAAIDAAAAABAYAACAwAAAAgQEAACAwAAAAgQEAAAgMAAAAgQEAAAgMAABAYAAAAAIDAABAYAAAAAIDAAAQGAAAAAIDAAAQGAAAgMAAAAAEBgAAgMAAAAAEBgAAIDAAAACBAQAAIDAAAACBAQAACAwAAACBAQAACAwAAEBgAAAAAgMAAEBgAAAAAgMAABAYAAAAAgMAABAYAACAwAAAAAQGAACAwAAAAAQGAAAgMAAAAAQGAAAgMAAAAIEBAAAIDAAAAIEBAAAIDAAAQGAAAAAIDAAAQGAAAAACAwAAEBgAAAACAwAAEBgAAIDAAAAAEBgAAIDAAAAABAYAACAwAAAABAYAACAwAAAAgQEAACAwAAAAgQEAAAgMAABAYAAAAAgMAABAYAAAAAIDAAAQGF4BAAAgMAAAAIEBAAAIDAAAAIEBAAAIDAAAQGAAAAACAwAAQGAAAAACAwAAEBgAAAACAwAAEBgAAIDAAAAABAYAAIDAAAAABAYAACAwAAAABAYAACAwAAAAgQEAAAgMAAAAgQEAAAgMAABAYAAAAAgMAABAYAAAAAIDAAAQGAAAAAIDAAAQGAAAgMAAAAAQGAAAgMAAAAAEBgAAIDAAAAAEBgAAIDAAAACBAQAAIDAAAACBAQAACAwAAEBgAAAACAwAAEBgAAAAAgMAAEBgAAAAAgMAABAYAACAwAAAABAYAACAwAAAAAQGAAAgMAAAAAQGAAAgMAAAAIEBAAAgMAAAAIEBAAAIDAAAQGAAAAAIDAAAQGAAAAACAwAAQGAAAAACAwAAEBgAAIDAAAAAEBgAAIDAAAAABAYAAIDAAAAABAYAACAwAAAAgQEAACAwAAAAgQEAAAgMAAAAgQEAAAgMAABAYAAAAAIDAABAYAAAAAIDAAAQGAAAAAIDAAAQGAAAgMAAAAAEBgAAgMAAAAAEBgAAIDAAAAAEBgAAIDAAAACBAQAACAwAAACBAQAACAwAAEBgAAAACAwAAEBgAAAAAgMAABAYAAAAAgMAABAYAACAwAAAAAQGAACAwAAAAAQGAAAgMAAAAAQGAAAgMAAAAIEBAAAIDAAAAIEBAAAIDAAAQGAAAAAIDAAAQGAAAAACAwAAEBgAAAACAwAAEBgAAIDAAAAAEBgAAIDAAAAABAYAACAwAAAABAYAACAwAAAAgQEAACAwAAAAgQEAAAgMAABAYAAAAAgMAABAYAAAAAIDAABAYAAAAAIDAAAQGAAAgMAAAAAQGAAAgMAAAAAEBgAAgMAAAAAEBgAAIDAAAACBAQAAIDAAAACBAQAACAwAAACBAQAACAwAAEBgAAAAAgMAAEBgAAAAAgMAABAYAACAwAAAABAYAACAwAAAAAQGAACAwAAAAAQGAAAgMAAAAIEBAAAgMAAAAIEBAAAIDAAAAIEBAAAIDAAAQGAAAAACAwAAQGAAAAACAwAAEBgAAAACAwAAEBgAAIDAAAAABAYAAIDAAAAABAYAACAwAAAABAYAACAwAAAAgQEAAAgMAAAAgQEAAAgMAABAYAAAAAgMAABAYAAAAAIDAAAQGAAAAAIDAAAQGAAAgMAAAAAQGAAAgMAAAAAEBgAAIDAAAAAEBgAAIDAAAACBAQAAIDAAAACBAQAACAwAAEBgAAAACAwAAEBgAAAAAgMAABAYAAAAAgMAABAYAACAwAAAABAYAACAwAAAAAQGAAAgMAAAAAQGAAAgMAAAAIEBAAAgMAAAAIEBAAAIDAAAQGAAAAAIDAAAQGAAAAACAwAAQGAAAAACAwAAEBgAAIDAAAAAEBgAAIDAAAAABAYAAIDAAAAABAYAACAwAAAAgQEAACAwAAAAgQEAAAgMAAAAgQEAAAgMAABAYAAAAAIDAABAYAAAAAIDAAAQGAAAAAIDAAAQGAAAgMAAAAAEBgAAgMAAAAAEBgAAIDAAAACB4RUAAAACAwAAEBgAAIDAAAAAEBgAAIDAAAAABAYAACAwAAAABAYAACAwAAAAgQEAACAwAAAAgQEAAAgMAABAYAAAAAgMAABAYAAAAAIDAABAYAAAAAIDAAAQGAAAgMAAAAAQGAAAgMAAAAAEBgAAgMAAAAAEBgAAIDAAAACBAQAAIDAAAACBAQAACAwAAACBAQAACAwAAEBgAAAAAgMAAEBgAAAAAgMAABAYAAAAAgMAABAYAACAwAAAAAQGAACAwAAAAAQGAAAgMAAAAAQGAAAgMAAAAIEBAAAI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");
  --mask-final-solution: url("data:image/png;base64,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AAIJAABAIAEAACCQAAAABBIAAIBAAgAAEEgAAAACCQAAQCABAAAIJAAAAIEEAAAgkAAAAAQSAACAQAIAABBIAAAAAgkAAEAgAQAACCQAAACBBAAAIJAAAAAEEgAAgEACAAAQSAAAAAIJAABAIAEAAAgkAAAAgQQAACCQAAAABBIAAIBAAgAAEEgAAAACCQAAQCABAAAIJAAAAIEEAAAgkAAAAAQSAACAQAIAABBIAAAAAskjAAAAEEgAAAACCQAAQCABAAAIJAAAAIEEAAAgkAAAAAQSAACAQAIAABBIAAAAAgkAAEAgAQAACCQAAACBBAAAIJAAAAAEEgAAgEACAAAQSAAAAAIJAABAIAEAAAgkAAAAgQQAACCQAAAABBIAAIBAAgAAEEgAAAACCQAAQCABAAAIJAAAAIEEAAAgkAAAAAQSAACAQAIAABBIAAAAAgkAAEAgAQAACCQAAAAEEgAAgEACAAAQSAAAAAIJAABAIAEAAAgkAAAAgQQAACCQAAAABBIAAIBAAgAAEEgAAAACCQAAQCABAAAIJAAAAIEEAAAgkAAAAAQSAACAQAIAABBIAAAAAgkAAEAgAQAACCQAAACBBAAAIJAAAAAEEgAAgEACAAAQSAAAAAIJAABAIAEAAAgkAAAAgQQAACCQAAAABBIAAIBAAgAAEEgAAAACCQAAQCABAAAgkAAAAAQSAACAQAIAABBIAAAAAgkAAEAgAQAACCQAAACBBAAAIJAAAAAEEgAAgEACAAAQSAAAAAIJAABAIAEAAAgkAAAAgQQAACCQAAAABBIAAIBAAgAAEEgAAAACCQAAQCABAAAIJAAAAIEEAAAgkAAAAAQSAACAQAIAABBIAAAAAgkAAEAgAQAACCQAAACBBAAAIJAAAAAEEgAAgEACAAAQSAAAAAIJAAAAgQQAACCQAAAABBIAAIBAAgAAEEgAAAACCQAAQCABAAAIJAAAAIEEAAAgkAAAAAQSAACAQAIAABBIAAAAAgkAAEAgAQAACCQAAACBBAAAIJAAAAAEEgAAgEACAAAQSAAAAAIJAABAIAEAAAgkAAAAgQQAACCQAAAABBIAAIBAAgAAEEgAAAACCQAAQCABAAAIJAAAAIEEAAAgkAAAAAQSAACAQAIAABBIAAAACCQAAACBBAAAIJAAAAAEEgAAgEACAAAQSAAAAAIJAABAIAEAAAgkAAAAgQQAACCQAAAABBIAAIBAAgAAEEgAAAACCQAAQCABAAAIJAAAAIEEAAAgkAAAAAQSAACAQAIAABBIAAAAAgkAAEAgAQAACCQAAACBBAAAIJAAAAAEEgAAgEACAAAQSAAAAAIJAABAIAEAAAgkAAAAgQQAACCQAAAABBIAAIBAAgAAQCABAAAIJAAAAIEEAAAgkAAAAAQSAACAQAIAABBIAAAAAgkAAEAgAQAACCQAAACBBAAAIJAAAAAEEgAAgEACAAAQSAAAAAIJAABAIAEAAAgkAAAAgQQAACCQAAAABBIAAIBAAgAAEEgAAAACCQAAQCABAAAIJAAAAIEEAAAgkAAAAAQSAACAQAIAABBIAAAAAgkAAEAgAQAACCQAAACBBAAAIJAAAAAEEgAAAAIJAABAIAEAAAgkAAAAgQQAACCQAAAABBIAAIBAAgAAEEgAAAACCQAAQCABAAAIJAAAAIEEAAAgkAAAAAQSAACAQAIAABBIAAAAAgkAAEAgAQAACCQAAACBBAAAIJAAAAAEEgAAgEACAAAQSAAAAAIJAABAIAEAAAgkAAAAgQQAACCQAAAABBIAAIBAAgAAEEgAAAACCQAAQCABAAAIJAAAAIEEAAAgkDwCAAAAgQQAACCQAAAABBIAAIBAAgAAEEgAAAACCQAAQCABAAAIJAAAAIEEAAAgkAAAAAQSAACAQAIAABBIAAAAAgkAAEAgAQAACCQAAACBBAAAIJAAAAAEEgAAgEACAAAQSAAAAAIJAABAIAEAAAgkAAAAgQQAACCQAAAABBIAAIBAAgAAEEgAAAACCQAAQCABAAAIJAAAAIEEAAAgkAAAAAQSAACAQAIAAEAgAQAACCQAAACBBAAAIJAAAAAEEgAAgEACAAAQSAAAAAIJAABAIAEAAAgkAAAAgQQAACCQAAAABBIAAIBAAgAAEEgAAAACCQAAQCABAAAIJAAAAIEEAAAgkAAAAAQSAACAQAIAABBIAAAAAgkAAEAgAQAACCQAAACBBAAAIJAAAAAEEgAAgEACAAAQSAAAAAIJAABAIAEAAAgkAAAAgQQAACCQAAAABBIAAAACCQAAQCABAAAIJAAAAIEEAAAgkAAAAAQSAACAQAIAABBIAAAAAgkAAEAgAQAACCQAAACBBAAAIJAAAAAEEgAAgEACAAAQSAAAAAIJAABAIAEAAAgkAAAAgQQAACCQAAAABBIAAIBAAgAAEEgAAAACCQAAQCABAAAIJAAAAIEEAAAgkAAAAAQSAACAQAIAABBIAAAAAgkAAEAgAQAACCQAAACBBAAAIJAAAAAQSAAAAAIJAABAIAEAAAgkAAAAgQQAACCQAAAABBIAAIBAAgAAEEgAAAACCQAAQCABAAAIJAAAAIEEAAAgkAAAAAQSAACAQAIAABBIAAAAAgkAAEAgAQAACCQAAACBBAAAIJAAAAAEEgAAgEACAAAQSAAAAAIJAABAIAEAAAgkAAAAgQQAACCQAAAABBIAAIBAAgAAEEgAAAACCQAAQCABAAAIJAAAAIEEAACAQAIAABBIAAAAAgkAAEAgAQAACCQAAACBBAAAIJAAAAAEEgAAgEACAAAQSAAAAAIJAABAIAEAAAgkAAAAgQQAACCQAAAABBIAAIBAAgAAEEgAAAACCQAAQCABAAAIJAAAAIEEAAAgkAAAAAQSAACAQAIAABBIAAAAAgkAAEAgAQAACCQAAACBBAAAIJAAAAAEEgAAgEACAAAQSAAAAAIJAABAIAEAAAgkAAAABBIAAIBAAgAAEEgAAAACCQAAQCABAAAIJAAAAIEEAAAgkAAAAAQSAACAQAIAABBIAAAAAgkAAEAgAQAACCQAAACBBAAAIJAAAAAEEgAAgEACAAAQSAAAAAIJAABAIAEAAAgkAAAAgQQAACCQAAAABBIAAIBAAgAAEEgAAAACCQAAQCABAAAIJAAAAIEEAAAgkAAAAAQSAACAQAIAABBIAAAAAgkAAEAgAQAAIJAAAAAEEgAAgEACAAAQSAAAAAIJAABAIAEAAAgkAAAAgQQAACCQAAAABBIAAIBAAgAAEEgAAAACCQAAQCABAAAIJAAAAIEEAAAgkAAAAAQSAACAQAIAABBIAAAAAgkAAEAgAQAACCQAAACBBAAAIJAAAAAEEgAAgEACAAAQSAAAAAIJAABAIAEAAAgkAAAAgQQAACCQAAAABBIAAIBAAgAAEEgAAAACySMAAAAQSAAAAAIJAABAIAEAAAgkAAAAgQQAACCQAAAABBIAAIBAAgAAEEgAAAACCQAAQCABAAAIJAAAAIEEAAAgkAAAAAQSAACAQAIAABBIAAAAAgkAAEAgAQAACCQAAACBBAAAIJAAAAAEEgAAgEACAAAQSAAAAAIJAABAIAEA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");
  /* Colour */
  --c-page: var(--pf-neutral-100);
  --c-surface: #ffffff;
  --c-text: #1f1e1e;
  --c-text-secondary: #697786;
  --c-link: #3d200e;
  --c-divider: #d9d9d9;
  --c-chip: #f0eeee;
  --c-nav-bg: rgba(244, 243, 238, 0.48);
  --c-nav-border: #e9e6e0;
  --c-weather: var(--pf-neutral-300);
  --c-weather-text: #6c7176;
  /* Figma variables (Portfolio-MAIN), to be used everywhere from 2026-10-10 */
  --pf-neutral-100: #f6f1ee; /* case study sheet */
  --pf-neutral-300: #e0dcd9; /* browser bar, lines */
  --bu-1200: #488fff;        /* Blue/Bu1200: Connect color, labels */
  --y-350: #ffef87;          /* Yellow/y350: notes */
  --g-ease: #33995c;         /* Ease Construction color */
  --bu-checkin: #abcbfe;     /* Ease CheckIn color, the side fill of its Figma frame */

  /* Type */
  --f-display: "Lexend Deca", system-ui, sans-serif;
  --f-body: "Kumbh Sans", system-ui, sans-serif;

  /* Grid: 6 columns of 184px with 16px gutters = 1184px content */
  --cols: 6;
  --gutter: 16px;
  --content-max: 1184px;
  --page-margin: 16px;
  --content: min(var(--content-max), 100vw - 2 * var(--page-margin));
  --col: calc((var(--content) - (var(--cols) - 1) * var(--gutter)) / var(--cols));

  /* Radii */
  --r-tile: 24px;
  --r-slot: 20px;  /* picture area inside a project card */
  --r-avatar: 16px;
  --r-inner: 8px;
  --r-pill: 80px;
}

/* Base */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--c-page);
  color: var(--c-text);
  font-family: var(--f-body);
  font-size: 16px;
  line-height: 24px; /* 16px baseline */
  -webkit-font-smoothing: antialiased;
}
h1, h2, p, ul { margin: 0; }
ul { padding: 0; list-style: none; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
:focus-visible { outline: 2px solid var(--c-text); outline-offset: 2px; }

/* Icons from ASSETS/Home (24px, color baked into the SVG) */
.icon { display: block; width: 24px; height: 24px; flex: none; }

/* Nav pill: 32px from the top, 48px tall, centered. It stays pinned there while the
   page scrolls, so the cases can be switched from anywhere on a long page. The strip
   around the pill lets clicks through; the pill blurs what passes under it. */
.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  display: flex;
  justify-content: center;
  padding-top: 32px;
  pointer-events: none;
}
.site-header > * { pointer-events: auto; }
.nav {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 11px 24px;
  height: 48px;
  background: var(--c-nav-bg);
  border: 1px solid var(--c-nav-border);
  border-radius: var(--r-pill);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
}
.nav__link { font-weight: 600; line-height: 24px; white-space: nowrap; }
.nav__link + .nav__link::before {
  content: "";
  display: inline-block;
  width: 1px;
  height: 16px;
  margin-right: 16px;
  vertical-align: -3px;
  background: var(--c-divider);
}

/* Grid: 32 + 48 + 16 = rows start 96px from the top */
.grid {
  width: var(--content);
  margin: 16px auto 0;
  display: grid;
  grid-template-columns: repeat(var(--cols), minmax(0, 1fr));
  grid-auto-rows: minmax(var(--col), auto); /* square rows, 184px at full width */
  gap: var(--gutter);
}

/* Parts hidden until they are designed (About me) stay in the page with the hidden attribute */
[hidden] { display: none !important; }

.tile { position: relative; background: var(--c-surface); border-radius: var(--r-tile); overflow: hidden; min-width: 0; }

/* Tile placement */
.tile--intro        { grid-column: 1 / span 4; grid-row: 1 / span 2; }
.tile--weather      { grid-column: 5 / span 2; grid-row: 1 / span 2; }
.tile--checkin      { grid-column: 1 / span 3; grid-row: 3 / span 2; }
.tile--connect      { grid-column: 4 / span 3; grid-row: 3 / span 2; }
.tile--construction { grid-column: 1 / span 2; grid-row: 5 / span 3; }
.tile--side         { grid-column: 3 / span 4; grid-row: 5 / span 2; }
/* Bottom row snapped from Figma's 183px tiles and 17px gap to 184 and 16 */
.tile--resume       { grid-column: 3 / span 2; grid-row: 7; }
.tile--about        { grid-column: 4 / span 1; grid-row: 7; }
.tile--hi           { grid-column: 5 / span 2; grid-row: 7; }

/* Shared type and controls */
.tile__title, .card__title, .intro__role { font-family: var(--f-display); font-weight: 600; font-size: 20px; line-height: 28px; }

.pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 32px;
  padding: 8px 16px;
  border-radius: var(--r-pill);
  background: var(--c-chip);
  font-weight: 600;
  line-height: 24px;
  white-space: nowrap;
}
.pill--glass { position: absolute; top: 24px; left: 24px; background: var(--pf-neutral-100); color: var(--c-weather-text); }
/* Contact pills: text, then the icon, 16px in on the left and 8px on the right */
.pill--action { gap: 4px; padding: 4px 8px 4px 16px; color: var(--c-link); }

.link-btn { display: inline-flex; align-items: center; gap: 4px; height: 32px; padding: 4px 8px 4px 16px; border-radius: var(--r-pill); background: var(--c-chip); color: var(--c-link); font-weight: 600; line-height: 24px; white-space: nowrap; }

/* Intro */
.tile--intro { display: flex; flex-direction: column; justify-content: space-between; gap: 32px; padding: 64px; }
.intro__head { display: flex; flex-direction: column; gap: 8px; padding-right: 96px; } /* room for the avatar */
.intro__name-row { display: flex; align-items: center; gap: 24px; }
.intro__name { font-family: var(--f-display); font-weight: 600; font-size: 40px; line-height: 56px; letter-spacing: -0.4px; }
.intro__role { color: var(--c-text-secondary); }
.icon-btn { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; flex: none; border-radius: var(--r-pill); background: #f0f0f0; }
.icon-btn__img { display: block; width: 40px; height: 40px; }
.intro__avatar { position: absolute; top: 64px; right: 64px; width: 80px; height: 80px; border-radius: var(--r-avatar); background: var(--c-chip); object-fit: cover; }

/* Weather / local time */
.tile--weather { background: var(--c-weather); }
.weather__icon { position: absolute; top: 111px; left: 50%; width: 185px; height: 113px; transform: translateX(-50%); }
.weather__dots {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
/* Night state: dark tile, light dots and text (colors read from the Figma screenshot). */
.tile--weather[data-state="night"] { background: #1e2a5a; color: #ffffff; }
.tile--weather[data-state="night"] .pill--glass { background: #30438f; color: #f2f3f8; }
.tile--weather[data-state="night"] .weather__zone { color: #f2f3f8; }
/* The main tile waits for the live weather (stockholm-weather.js): no icon until it
   arrives, then the icon fades in and a night background fades in. */
.tile--weather, .tile--weather .pill--glass, .weather__zone { transition: background-color 0.4s ease, color 0.4s ease; }
.weather__dots { transition: opacity 0.4s ease; }
.tile--weather[data-state="loading"] .weather__dots { opacity: 0; }
@media (prefers-reduced-motion: reduce) {
  .tile--weather, .tile--weather .pill--glass, .weather__zone, .weather__dots { transition: none; }
}
.weather__time { position: absolute; left: 32px; right: 32px; bottom: 32px; display: flex; flex-direction: column; gap: 2px; }
.weather__zone { color: var(--c-weather-text); font-weight: 600; }
.weather__clock { font-family: var(--f-display); font-weight: 600; font-size: 60px; line-height: normal; letter-spacing: -0.6px; }

/* Project cards */
.card { display: flex; flex-direction: column; gap: 16px; padding: 16px; }
.card__head { display: flex; align-items: center; gap: 16px; }
.card__head .link-btn { margin-left: auto; }
.card__icon { display: block; width: 32px; height: 32px; flex: none; border-radius: var(--r-inner); } /* the SVG carries its own chip fill */
.card__slot { position: relative; flex: 1 0 auto; border-radius: var(--r-slot); overflow: hidden; }

.slot__media { position: absolute; inset: 0; pointer-events: none; }
.slot__headline { position: absolute; z-index: 1; left: 32px; font-family: var(--f-display); font-weight: 600; font-size: 28px; line-height: normal; }
.slot__headline--top { top: 80px; max-width: 290px; }
.slot__headline--bottom { bottom: 32px; right: 32px; }
.slot__pill { position: absolute; z-index: 1; left: 24px; }
.slot__pill--top { top: 24px; }
.slot__pill--bottom { bottom: 24px; }
.slot__pill--top-center { top: 24px; left: 50%; transform: translateX(-50%); }

/* Per-project slot colors */
.slot--checkin { background: #dbe8fd; box-shadow: inset 0 -16px 16px rgba(97, 140, 196, 0.06); }
.slot--checkin .slot__headline { color: #498fff; }
.slot--checkin .slot__pill { background: #d8e6fd; color: #6a96dc; }

.slot--connect { background: #488fff; }
.slot--connect .slot__headline { color: #fff; max-width: 488px; }
.slot--connect .slot__pill { background: #6fa5fa; color: #fff; }

.slot--construction { background: #33995c url("ASSETS/Ease%20Construction/EaseConstruction_bg.png") center / cover no-repeat; }
.slot--construction .slot__headline { color: #fff; max-width: 288px; }
.slot--construction .slot__pill { background: #33995f; color: #d8f3e4; }

.slot--side { background: #f7dfcf url("ASSETS/Selected%20side%20projects/Side_proj_bg.png") center / cover no-repeat; }
.slot--side .slot__headline { color: #c47263; max-width: 265px; }
.slot--side .slot__pill { background: #f1d2bd; color: #c47263; }
/* Three mini app phones, placed as in Figma (843:56725): the group sits 32px from the
   slot's right edge, each phone 122px wide, stepping up 48px from left to right. */
.side__phones { position: absolute; top: 23px; right: 32px; width: 414px; height: 346px; transform-origin: 100% 0; }
.side__phone { position: absolute; width: 122px; height: auto; }
.side__phone--weight { left: 0; top: 96px; }
.side__phone--notifications { left: 146px; top: 48px; }
.side__phone--drinks { left: 292px; top: 0; }

/* Card visuals. Positions are from the Figma card states (frame 892:55083),
   measured in a 552 x 304 slot (Ease Construction: 352 x 504). Hover = the whole card. */
.card .slot__media img { display: block; }
.card__slot img { transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1); }

/* Ease CheckIn: background and phone as separate layers.
   Hover scales the phone 198 → 206px wide around its center, 80px from its top. */
.checkin__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.checkin__phone { position: absolute; top: 32px; right: 32px; width: 198px; height: auto; transform-origin: 50% 80px; }
.tile--checkin:hover .checkin__phone { transform: scale(1.0404); }
/* On hover the blue phone gives way to the check-in slider animation from the case page
   (checkin-hover.js plays it from the start). The phone at rest is the video's first
   frame, so the change is the motion only. Only where there is a real hover, and not
   with reduced motion. */
.checkin__video { position: absolute; top: 32px; right: 32px; width: 198px; height: auto; opacity: 0; transform-origin: 50% 80px; transition: opacity 0.25s ease, transform 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
/* The phone and the video are on black: a mask cut from the phone's own outline
   (--mask-what-changed, at the top) hides the black and keeps the rounded corners whole */
.checkin__phone, .checkin__video { -webkit-mask: var(--mask-what-changed) 0 0 / 100% 100% no-repeat; mask: var(--mask-what-changed) 0 0 / 100% 100% no-repeat; }
.card__slot .checkin__phone { transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.25s ease; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .tile--checkin:hover .checkin__video { opacity: 1; transform: scale(1.0404); }
  .tile--checkin:hover .checkin__phone { opacity: 0; }
}

/* Infobric Connect: fill, dot pattern drawn in CSS, three cards, gradient under the text.
   The cards sit in a 552 x 304 box centered in the slot, so they keep Figma's layout at any width. */
.connect__dots {
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle, rgba(255, 255, 255, 0.3) 1.5px, transparent 2px);
  background-size: 28px 28px;
  background-position: 12px -1px;
}
.connect__stack { position: absolute; top: 0; left: 50%; width: 552px; height: 304px; margin-left: -276px; }
.connect__card { position: absolute; width: 264px; border-radius: 3.52px; overflow: hidden; transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
.connect__card img { width: 100%; height: auto; }
/* Back cards carry Figma's blue tint on top of the image */
.connect__card--back2::after, .connect__card--back1::after { content: ""; position: absolute; inset: 0; }
.connect__card--back2::after { background: rgba(72, 143, 255, 0.4); }
.connect__card--back1::after { background: rgba(73, 143, 255, 0.32); }
.connect__card--front { border-radius: 0; }
.connect__card--back2 { left: 142.47px; top: 48px; transform: rotate(6deg); }
.connect__card--back1 { left: 141.9px; top: 45.24px; transform: rotate(-6deg); }
.connect__card--front { left: 139.4px; top: 43.83px; }
.tile--connect:hover .connect__card--back2 { transform: translate(11.42px, 5.69px) rotate(10deg); }
.tile--connect:hover .connect__card--back1 { transform: translate(5.74px, 8.14px) rotate(-10deg); }
.tile--connect:hover .connect__card--front { transform: translate(12.84px, 8.41px); }
.connect__fade { position: absolute; left: 0; right: 0; bottom: 0; height: 159px; background: linear-gradient(to bottom, rgba(72, 143, 255, 0) 0%, #488fff 60.577%); }

/* Ease Construction: product image 288 x 263, 80px from the top, centered.
   Hover (node 892:62607) grows it to 296 x 270 around its center and swaps the
   static image for the GIF, cropped from the top left like the Figma mask.
   construction-gif.js restarts the GIF from its first frame on each hover. */
.construction__product { position: absolute; top: 80px; left: 50%; width: 288px; height: 263px; margin-left: -144px; border-radius: var(--r-inner); overflow: hidden; background: #fff; transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
.card__slot .construction__product img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: left top; transition: none; }
.construction__gif { opacity: 0; }
.tile--construction:hover .construction__product { transform: scale(1.02778); }
.tile--construction:hover .construction__gif { opacity: 1; }

/* Small tiles: Resume, About me, Say hi */
.tile--small { padding: 16px; }
.tile--resume { display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start; }
.tile--resume .link-btn { position: relative; z-index: 3; } /* Download stays clickable above the link to the Resume page */
.tile--checkin .link-btn { position: relative; z-index: 3; } /* Check live stays clickable above the link to the case */
.tile__emoji { position: absolute; font-family: var(--f-display); font-size: 74px; line-height: normal; }
/* About me eyes: drawn in SVG (not the emoji) so the pupils can follow the cursor. */
.eyes {
  position: absolute;
  left: 93px;
  top: 134px;
  width: 80px;
  height: 80px;
  overflow: visible;
}
.eyes__ball { fill: #fff; stroke: #b8c4cc; stroke-width: 3; }
.eyes__pupil circle { fill: #1f1e1e; }
.eyes__pupil .eyes__glint { fill: #fff; }
.tile__emoji--hi { right: 24px; top: 85px; transform: scaleX(-1); }
/* Wave on cursor enter (say-hi-wave.js). The hand pivots at its wrist; the
   translate pair moves the pivot there without shifting the resting hand. */
.tile__emoji--hi.is-waving { animation: hi-wave 1.28s ease-in-out; }
@keyframes hi-wave {
  0%, 100% { transform: scaleX(-1) translate(22%, 30%) rotate(0deg) translate(-22%, -30%); }
  12% { transform: scaleX(-1) translate(22%, 30%) rotate(16deg) translate(-22%, -30%); }
  26% { transform: scaleX(-1) translate(22%, 30%) rotate(-8deg) translate(-22%, -30%); }
  40% { transform: scaleX(-1) translate(22%, 30%) rotate(16deg) translate(-22%, -30%); }
  54% { transform: scaleX(-1) translate(22%, 30%) rotate(-6deg) translate(-22%, -30%); }
  68% { transform: scaleX(-1) translate(22%, 30%) rotate(12deg) translate(-22%, -30%); }
  82% { transform: scaleX(-1) translate(22%, 30%) rotate(-2deg) translate(-22%, -30%); }
}
@media (prefers-reduced-motion: reduce) {
  .tile__emoji--hi.is-waving { animation: none; }
  .card__slot img, .card__slot .checkin__phone, .connect__card { transition: none; }
}
.contact-list {
  position: absolute;
  left: 16px;
  bottom: 16px;
  width: min(256px, 100% - 120px); /* keep clear of the emoji */
  display: flex;
  flex-wrap: wrap;
  align-content: flex-end;
  gap: 8px;
}

/* Card cursor (card-cursor.js): an inverting dot over the grid that grows into a labelled
   56px circle over a card and stretches as it moves, plus a soft light under the pointer
   inside each card. The real pointer is hidden over the grid, except on links and buttons,
   which keep the normal hand. */
.has-card-cursor .grid, .has-card-cursor .grid * { cursor: none; }
.has-card-cursor .grid a:not(.card__cover), .has-card-cursor .grid a:not(.card__cover) *,
.has-card-cursor .grid button, .has-card-cursor .grid button * { cursor: pointer; }
.card-cursor {
  position: fixed;
  left: 0;
  top: 0;
  z-index: 500;
  pointer-events: none;
  mix-blend-mode: exclusion; /* white on top of anything shows as its opposite color */
  opacity: 0;
  transition: opacity 0.2s;
}
.card-cursor.is-on { opacity: 1; }
.card-cursor__dot {
  position: absolute;
  width: 56px;
  height: 56px;
  margin: -28px 0 0 -28px;
  border-radius: 50%;
  background: #fff;
  display: grid;
  place-items: center;
  transform: scale(0.18); /* the small resting dot, about 10px */
  transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1), width 0.35s cubic-bezier(0.22, 1, 0.36, 1),
    height 0.35s cubic-bezier(0.22, 1, 0.36, 1), margin 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}
.card-cursor.is-big .card-cursor__dot { transform: scale(1); }
/* The label is set like the "Check live" button (.link-btn), and inverts with the circle. */
.card-cursor__text { font-weight: 600; line-height: 24px; color: var(--c-link); white-space: nowrap; opacity: 0; transition: opacity 0.2s; }
.card-cursor.is-big .card-cursor__text { opacity: 1; }
/* Over a card with a note the circle grows into a pill around the note, which starts at the
   pointer and runs right (or left near the window's edge); it does not stretch or turn. */
/* The pill drops the inverting blend and takes the Download button's colors, so it reads
   as a note, not as the View circle. */
.card-cursor.is-note { mix-blend-mode: normal; }
.card-cursor.is-note .card-cursor__dot { background: var(--c-chip); box-shadow: 0 2px 8px rgba(31, 30, 30, 0.12); transform: scale(1); width: var(--note-w); height: var(--note-h); margin-top: calc(var(--note-h) / -2); border-radius: 28px; overflow: hidden; }
.card-cursor.is-note.is-note-left .card-cursor__dot { margin-left: calc(28px - var(--note-w)); }
.card-cursor.is-note .card-cursor__text { opacity: 0; transition-duration: 0.1s; }
.card-cursor__note { position: absolute; left: 0; top: 0; padding: 12px 24px; font-weight: 600; line-height: 24px; color: var(--c-link); white-space: nowrap; opacity: 0; transition: opacity 0.15s; }
.card-cursor.is-note .card-cursor__note { opacity: 1; transition: opacity 0.25s 0.15s; }
/* Light under the pointer, beneath the product visuals (half the size and 56% of the
   strength of the first experiment). The grid tile gets one layer behind everything;
   the picture gets one between its background and the product. */
.has-card-cursor .tile { isolation: isolate; }
.card-light {
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.4s cubic-bezier(0.22, 1, 0.36, 1);
  background: radial-gradient(240px circle at var(--lx, -999px) var(--ly, -999px), rgba(255, 255, 255, 0.157), transparent 60%);
}
.tile > .card-light { z-index: -1; border-radius: inherit; }
.tile.is-lit .card-light { opacity: 1; }

/* Card note (card-note.js): a card without a case page yet says so. With the custom
   cursor the cursor shows it (see "Card cursor"); without it (touch, reduced motion) a
   tap on the card shows it as a pill in the card's center, and a second tap or a
   tap elsewhere hides it. Screen readers read it in place either way. */
.card-note {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 3;
  margin: 0;
  padding: 12px 24px;
  border-radius: 28px;
  background: var(--c-chip);
  color: var(--c-link);
  font-weight: 600;
  line-height: 24px;
  white-space: nowrap;
  box-shadow: 0 2px 8px rgba(31, 30, 30, 0.12);
  pointer-events: none;
  opacity: 0;
  transform: translate(-50%, -50%) scale(0.92);
  transition: opacity 0.25s, transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}
.tile.is-noted .card-note { opacity: 1; transform: translate(-50%, -50%); }
/* While the note shows (hover with the custom cursor, or a tap) the card's picture turns grey. */
.tile:has(> .card-note) .card__slot { transition: filter 0.3s; }
.has-card-cursor .tile:has(> .card-note):hover .card__slot, .tile.is-noted .card__slot { filter: grayscale(1); }
.has-card-cursor .card-note { opacity: 0; }

/* Case transition (case-transition.js): a whole-card link, and the layer that grows
   from the card into the full window and back. */
.card__cover { position: absolute; inset: 0; z-index: 2; border-radius: inherit; }
/* The layer starts at the card's size and gives the view its depth; inside it the card
   turns over. The front is a copy of the tile; the back is the case page, drawn at
   window size and scaled to the layer, so the card seems to turn straight into the
   case, drawn with its sheet empty: the text appears once the case page itself is
   ready (see "Reveal" in case-study.css). */
.case-zoom { position: fixed; z-index: 1000; pointer-events: none; border-radius: 16px; perspective: 1800px; }
.case-zoom__card { position: absolute; inset: 0; transform-style: preserve-3d; }
.case-zoom__front, .case-zoom__back { position: absolute; inset: 0; border-radius: inherit; backface-visibility: hidden; overflow: hidden; }
.case-zoom__front { background: var(--c-surface); }
.case-zoom__back { transform: rotateY(180deg); }
.case-zoom__page { position: absolute; top: 0; left: 0; width: 100vw; height: 100vh; overflow: hidden; transform-origin: 0 0; }
/* Coming back from a case: the page is covered in the case color until the layer takes over */
.case-returning::after { content: ""; position: fixed; inset: 0; z-index: 1000; background: var(--bu-1200); }
.case-returning[data-returning="construction"]::after { background: var(--g-ease); }
.case-returning[data-returning="checkin"]::after { background: var(--bu-checkin); }

/* Footer: 32px below the grid */
.site-footer { padding: 32px var(--page-margin); text-align: center; color: var(--c-text-secondary); font-weight: 500; }

/* ---------- Widgets page (widgets.html): every weather state side by side ---------- */
.widgets { width: var(--content); margin: 64px auto 80px; }
.widgets__title { font-family: var(--f-display); font-weight: 600; font-size: 40px; line-height: normal; }
.widgets__heading { margin: 48px 0 16px; font-family: var(--f-display); font-weight: 600; font-size: 20px; line-height: normal; }
.weather-states {
  display: flex;
  flex-wrap: wrap;
  gap: var(--gutter);
}
.weather-states figure { flex: 0 0 384px; max-width: 100%; margin: 0; }
.weather-states .tile--weather { height: 384px; }
.weather-states figcaption { margin-top: 8px; color: var(--c-text-secondary); font-weight: 600; }

/* Below 1024px: stopgap stacked layout, one column (max 584px).
   In this copy About me is hidden, so Resume takes the full width like Say hi */
@media (max-width: 1023px) {
  :root { --content-max: 584px; }
  .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: auto; }
  .tile--intro, .tile--weather, .tile--checkin, .tile--connect, .tile--construction, .tile--side, .tile--hi { grid-column: 1 / -1; grid-row: auto; }
  .tile--resume { grid-column: 1 / -1; grid-row: auto; }
  .tile--about { grid-column: 2; grid-row: auto; }
  .tile--intro { padding: 32px; }
  .tile--weather { min-height: 384px; }
  .card__slot { min-height: 304px; }
  .tile--small { aspect-ratio: 1; }
  .tile--hi, .tile--resume { aspect-ratio: auto; min-height: 184px; }
  .eyes { left: auto; right: 16px; top: auto; bottom: -30px; }
  /* Not designed in Figma yet: the side project phones get smaller and move down, clear of the headline */
  .side__phones { top: 104px; right: 24px; transform: scale(0.75); }
}

@media (max-width: 639px) {
  .nav { gap: 12px; padding: 11px 16px; }
  .nav__link + .nav__link::before { margin-right: 12px; }
  .tile--intro { padding: 24px; }
  .intro__head { padding-right: 0; padding-top: 96px; } /* avatar moves above the name */
  .intro__avatar { top: 24px; left: 24px; right: auto; }
  .intro__name { font-size: 32px; letter-spacing: -0.32px; }
  .slot__headline { font-size: 24px; left: 24px; }
  .slot__headline--bottom { right: 24px; bottom: 24px; }
  .slot__headline--top { top: 72px; right: 24px; }
  .slot--connect .slot__headline { max-width: none; }
  /* Not designed in Figma yet: keep the phone clear of the headline, and let the fade reach the taller text */
  .checkin__phone, .checkin__video { top: 168px; right: -24px; width: 160px; }
  .side__phones { top: 144px; right: 16px; transform: scale(0.6); }
  .connect__fade { height: 200px; }
}

/* Column overlay, enabled with ?grid */
.show-grid .grid { position: relative; }
.show-grid .grid::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 10;
  background: repeating-linear-gradient(to right, rgba(16, 113, 223, 0.12) 0 var(--col), transparent var(--col) calc(var(--col) + var(--gutter)));
}
