:root {
  color-scheme: dark;
  --canvas: #07111f; --canvas-raised: #0b1828; --surface: #101f31; --surface-raised: #14263b; --surface-quiet: #0c1a2b;
  --ink: #f1f5f9; --ink-soft: #c7d3e2; --muted: #91a4ba; --line: #28405b; --line-strong: #3b5877;
  --signal: #67d4b0; --signal-ink: #052119; --danger: #ff8093; --radius-sm: 10px; --radius: 16px; --radius-lg: 24px;
  --shadow: 0 18px 45px rgba(0,0,0,.22); --sans: Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; --serif: Iowan Old Style,Palatino Linotype,Book Antiqua,Georgia,serif;
  font-family: var(--sans); background: var(--canvas); color: var(--ink);
}
* { box-sizing: border-box; }
html { background: var(--canvas); scroll-behavior: smooth; }
body { min-width: 320px; min-height: 100dvh; margin: 0; background: radial-gradient(ellipse 72% 36% at 8% -7%,rgba(53,108,145,.22),transparent 70%),radial-gradient(ellipse 45% 30% at 95% 18%,rgba(49,143,118,.11),transparent 70%),var(--canvas); }
body::before { position:fixed;z-index:-1;inset:0;content:"";pointer-events:none;opacity:.13;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:36px 36px;mask-image:linear-gradient(to bottom,black,transparent 56%); }
a { color: inherit; text-underline-offset: 3px; } button,input,select { font: inherit; } button,.btn { cursor:pointer; touch-action:manipulation; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible { outline:3px solid var(--signal);outline-offset:3px; }
.skip-link { position:fixed;z-index:100;top:12px;left:12px;padding:10px 14px;border-radius:var(--radius-sm);background:var(--signal);color:var(--signal-ink);transform:translateY(-160%);transition:transform .2s ease-out; }.skip-link:focus { transform:translateY(0); }
.shell { width:min(100%,1240px);margin:0 auto;padding:24px clamp(16px,3vw,38px) 72px; }.top { display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:52px;margin-bottom:clamp(34px,6vw,72px);padding-bottom:18px;border-bottom:1px solid rgba(145,164,186,.22); }
.brand { color:var(--ink);font-size:1.04rem;font-weight:760;letter-spacing:-.045em;text-decoration:none;white-space:nowrap; }.brand::before { display:inline-block;width:9px;height:9px;margin:0 9px 1px 0;content:"";border:2px solid var(--signal);border-radius:50%;vertical-align:middle;box-shadow:0 0 0 4px rgba(103,212,176,.12); }.brand i { color:var(--signal);font-style:normal; }.nav { display:flex;align-items:center;justify-content:flex-end;gap:9px; }.nav > .muted { padding-right:4px;font-size:.88rem; }
.grid { display:grid;gap:16px; }.stats { grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); }.card { border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(145deg,rgba(20,38,59,.94),rgba(12,26,43,.94));box-shadow:0 1px 0 rgba(255,255,255,.025) inset,var(--shadow); }.stats .card { display:flex;min-height:142px;flex-direction:column;justify-content:space-between;padding:22px; }.metric { margin-top:7px;font-family:var(--serif);font-size:clamp(1.65rem,3vw,2.15rem);font-weight:400;letter-spacing:-.035em;line-height:1.1; }.muted { color:var(--muted); }.section { margin-top:clamp(42px,7vw,78px); }.section h2,.education h2 { margin:0;color:var(--ink);font-family:var(--serif);font-size:clamp(1.55rem,2.6vw,2.15rem);font-weight:400;letter-spacing:-.035em;line-height:1.1; }.section > h2 { margin-bottom:20px; }
.btn { display:inline-flex;min-height:44px;align-items:center;justify-content:center;gap:7px;padding:10px 15px;border:1px solid transparent;border-radius:var(--radius-sm);background:var(--signal);color:var(--signal-ink);font-size:.9rem;font-weight:750;line-height:1;text-decoration:none;transition:transform .18s ease-out,box-shadow .18s ease-out,background .18s ease-out; }.btn:hover { background:#8ae4c6;box-shadow:0 7px 18px rgba(38,183,139,.17);transform:translateY(-1px); }.btn:active { transform:translateY(0) scale(.98); }.btn.secondary { border-color:var(--line);background:rgba(18,35,55,.75);color:var(--ink-soft); }.btn.secondary:hover { border-color:var(--line-strong);background:var(--surface-raised);box-shadow:none; }
.apps { grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr)); }.app { display:flex;min-height:210px;flex-direction:column;gap:16px;padding:20px;transition:border-color .2s ease-out,transform .2s ease-out,background .2s ease-out; }.app:hover { border-color:var(--line-strong);background:linear-gradient(145deg,rgba(23,44,65,.97),rgba(12,26,43,.97));transform:translateY(-2px); }.row { display:flex;align-items:center;justify-content:space-between;gap:12px; }.row strong { font-size:1rem;letter-spacing:-.015em; }.row span { flex:0 0 auto;color:var(--ink-soft);font-size:.78rem;white-space:nowrap; }.dot { display:inline-block;width:8px;height:8px;border-radius:999px;background:var(--danger);box-shadow:0 0 0 3px rgba(255,128,147,.1); }.dot.ok { background:var(--signal);box-shadow:0 0 0 3px rgba(103,212,176,.11); }.badge { display:inline-flex;min-height:25px;align-items:center;margin:1px 4px 1px 0;padding:3px 8px;border:1px solid rgba(110,145,177,.26);border-radius:999px;background:rgba(40,64,91,.42);color:#abc3dc;font-size:.73rem;font-weight:650; }.actions { display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:2px; }.empty { padding:32px;text-align:center;color:var(--muted); }
.profile-hero { display:grid;grid-template-columns:minmax(0,1.65fr) minmax(260px,.7fr);gap:clamp(28px,6vw,86px);align-items:end;padding:0 0 clamp(28px,5vw,52px);border-bottom:1px solid var(--line); }.profile-hero h1 { max-width:720px;margin:2px 0 14px;font-family:var(--serif);font-size:clamp(3rem,7vw,5.6rem);font-weight:400;letter-spacing:-.07em;line-height:.95; }.eyebrow { margin:0 0 9px;color:var(--signal);font-size:.7rem;font-weight:800;letter-spacing:.14em;line-height:1.2;text-transform:uppercase; }.hero-copy { max-width:660px;margin:0;color:var(--ink-soft);font-size:clamp(1rem,1.5vw,1.125rem);line-height:1.65; }.current-post { position:relative;display:grid;gap:8px;padding:20px 4px 20px 22px;border-left:1px solid var(--signal);background:linear-gradient(90deg,rgba(103,212,176,.08),transparent 90%); }.current-post::before { position:absolute;top:20px;left:-4px;width:7px;height:7px;content:"";border-radius:50%;background:var(--signal);box-shadow:0 0 0 5px rgba(103,212,176,.12); }.current-post strong { color:var(--ink);font-family:var(--serif);font-size:1.26rem;font-weight:400;line-height:1.18; }.label { color:var(--muted);font-size:.7rem;font-weight:750;letter-spacing:.11em;text-transform:uppercase; }.service-stats { grid-template-columns:repeat(3,1fr); }.service-stats .card { min-height:150px; }
.section-heading { display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:20px; }.section-heading h2 { margin:0; }.section-heading > .muted { padding-bottom:3px;font-size:.86rem;white-space:nowrap; } #service-map { height:clamp(310px,42vw,460px);overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow); }.map-caption { margin:9px 2px 0;color:var(--muted);font-size:.78rem; }.leaflet-container { background:#0b1828;font-family:var(--sans); }.leaflet-control-zoom a,.leaflet-popup-content-wrapper,.leaflet-popup-tip { color:var(--ink);background:var(--surface-raised); }.leaflet-control-zoom a { border-color:var(--line) !important; }.leaflet-control-attribution { color:var(--muted) !important;background:rgba(7,17,31,.75) !important; }.leaflet-control-attribution a { color:var(--ink-soft) !important; }.map-puck { background:transparent !important;border:0 !important; }.map-puck span { display:grid;width:31px;height:31px;place-items:center;border:2px solid #d8fff1;border-radius:50%;background:var(--signal);color:var(--signal-ink);box-shadow:0 4px 12px rgba(0,0,0,.42);font-size:13px;font-weight:850; }
.split { display:grid;grid-template-columns:minmax(0,1.55fr) minmax(290px,.78fr);gap:clamp(24px,5vw,66px); }.timeline { position:relative;margin:28px 0 0;padding:0;list-style:none; }.timeline li { position:relative;display:grid;grid-template-columns:130px 1fr;gap:19px;padding:0 0 27px 21px;border-left:1px solid var(--line-strong); }.timeline li:last-child { padding-bottom:2px; }.timeline li::before { position:absolute;top:5px;left:-5px;width:9px;height:9px;content:"";border:2px solid var(--canvas);border-radius:50%;background:var(--signal);box-shadow:0 0 0 2px rgba(103,212,176,.3); }.timeline time { color:var(--muted);font-size:.78rem;font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:.02em; }.timeline strong { color:var(--ink);font-size:.98rem;line-height:1.35; }.timeline p { margin:6px 0 0;color:var(--ink-soft);font-size:.9rem;line-height:1.55; }.education { align-self:start;padding:24px; }.education h2 { margin-bottom:22px; }.education dl { margin:0; }.education dt { margin-top:17px;color:var(--ink);font-size:.91rem;font-weight:720;line-height:1.4; }.education dt:first-child { margin-top:0; }.education dd { margin:4px 0 0;color:var(--muted);font-size:.86rem;line-height:1.45; }.education hr { margin:25px 0;border:0;border-top:1px solid var(--line); }
.table { width:100%;border-collapse:collapse;font-size:.9rem; }.table th,.table td { padding:13px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top; }.table th { color:var(--muted);font-size:.72rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase; }.table tr:last-child td { border-bottom:0; }.login { width:min(100%,420px);margin:13vh auto;padding:30px; }.login h1 { margin:0;font-family:var(--serif);font-size:2.5rem;font-weight:400;letter-spacing:-.045em; }.field { display:grid;gap:8px;margin:16px 0;color:var(--ink-soft);font-size:.88rem;font-weight:650; }.field input,.field select { width:100%;min-height:46px;padding:10px 12px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);outline:none;background:var(--canvas);color:var(--ink);transition:border-color .16s ease-out,box-shadow .16s ease-out; }.field input:focus,.field select:focus { border-color:var(--signal);box-shadow:0 0 0 3px rgba(103,212,176,.16); }.notice { margin:14px 0;padding:11px 13px;border:1px solid rgba(255,128,147,.5);border-radius:var(--radius-sm);background:rgba(132,43,61,.35);color:#ffd9df; }.success { border-color:rgba(103,212,176,.55);background:rgba(28,105,80,.3);color:#cff9e8; }
@media (max-width:760px) { .top { align-items:flex-start;flex-direction:column;margin-bottom:40px; }.nav { width:100%;justify-content:flex-start;flex-wrap:wrap; }.profile-hero { grid-template-columns:1fr;gap:30px; }.service-stats { grid-template-columns:1fr; }.section-heading { align-items:flex-start;flex-direction:column; }.split { grid-template-columns:1fr; }.timeline li { grid-template-columns:1fr;gap:5px; }.education { order:-1; }.table { font-size:.8rem; }.table th,.table td { padding:10px 7px; } }
@media (max-width:480px) { .shell { padding-right:16px;padding-left:16px; }.nav > .muted { width:100%; }.nav .btn { flex:1 1 auto; }.stats { grid-template-columns:1fr; }.profile-hero h1 { font-size:2.9rem; }.row { align-items:flex-start;flex-direction:column; } #service-map { height:310px;border-radius:var(--radius); } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important;transition-duration:.01ms !important;animation-duration:.01ms !important;animation-iteration-count:1 !important; } }

/* Apple-inspired material hierarchy: structural chrome floats, content stays calm. */
@supports (backdrop-filter: blur(1px)) {
  .top { position:sticky;z-index:20;top:0;margin-right:-12px;margin-left:-12px;padding:18px 12px;background:linear-gradient(180deg,rgba(7,17,31,.91),rgba(7,17,31,.72));backdrop-filter:blur(20px) saturate(145%); }
  .card { background:linear-gradient(145deg,rgba(25,45,67,.84),rgba(10,24,40,.88));backdrop-filter:blur(14px) saturate(125%); }
  .btn.secondary { background:rgba(18,35,55,.72);backdrop-filter:blur(12px); }
}

.btn:active { transition-duration:100ms; }
.app:active { transform:translateY(0) scale(.99); }
.top::after { position:absolute;right:12px;bottom:-1px;left:12px;height:1px;content:"";background:linear-gradient(90deg,transparent,rgba(145,164,186,.45) 16%,rgba(145,164,186,.45) 84%,transparent); }

@media (prefers-reduced-transparency:reduce) {
  .top { background:var(--canvas);backdrop-filter:none; }
  .card,.btn.secondary { background:var(--surface);backdrop-filter:none; }
}
@media (prefers-contrast:more) {
  .card,.btn.secondary,.field input,.field select { border-color:#8fa8c2; }
  .muted,.timeline time,.education dd,.map-caption { color:#c8d7e6; }
}
