:root {
  --bg:#111311;
  --surface:#181b18;
  --text:#eeeee7;
  --muted:#a5aaa1;
  --line:#343a33;
  --accent:#9dbb6b;
  --sans:Arial,"Helvetica Neue",sans-serif;
  --mono:"Courier New",monospace;
  --radius:8px
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth
}
body {
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:var(--sans);
  line-height:1.6
}
a {
  color:inherit;
  text-decoration:none
}
button {
  font:inherit
}
a,button {
  transition:.2s
}
a:focus-visible,button:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:4px
}
.shell {
  width:min(1160px,calc(100% - 40px));
  margin-inline:auto
}
.site-header {
  position:sticky;
  top:0;
  z-index:20;
  background:#111311e8;
  backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line)
}
.nav {
  min-height:74px;
  display:flex;
  align-items:center;
  justify-content:space-between
}
.logo {
  font-size:1.25rem;
  font-weight:800
}
.logo span,.hero h1 em,.contact h2 em {
  color:var(--accent);
  font-style:normal
}
.nav-links {
  display:flex;
  gap:1.65rem;
  align-items:center;
  font-size:.87rem
}
.languages {
  display:flex;
  gap:.35rem;
  color:var(--muted);
  font: .75rem var(--mono)
}
.languages b {
  color:var(--text)
}
.menu {
  display:none;
  background:none;
  border:1px solid var(--line);
  color:var(--text);
  padding:.45rem .8rem
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:var(--accent);
  color:#11150e;
  border:1px solid var(--accent);
  padding:.8rem 1.2rem;
  font-weight:700;
  font-size:.85rem;
  border-radius:3px
}
.button:hover {
  filter:brightness(1.12);
  transform:translateY(-2px)
}
.button.ghost {
  background:transparent;
  color:var(--text);
  border-color:var(--line)
}
.hero {
  min-height:calc(100vh - 75px);
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:5vw;
  align-items:center;
  position:relative;
  padding-block:3rem
}
.kicker,.eyebrow {
  font:700 .72rem var(--mono);
  text-transform:uppercase;
  letter-spacing:.13em;
  color:var(--accent)
}
h1,h2,h3,p {
  margin-top:0
}
.hero h1 {
  font-size:clamp(4.5rem,9vw,8.2rem);
  line-height:.77;
  letter-spacing:-.075em;
  margin:.65rem 0 2rem
}
.hero h2 {
  font-size:clamp(1.2rem,2vw,1.65rem);
  font-weight:500
}
.hero h2 span {
  color:var(--accent)
}
.lede {
  font-size:clamp(1.05rem,1.8vw,1.35rem);
  color:var(--muted);
  max-width:590px
}
.actions {
  display:flex;
  align-items:center;
  gap:1rem;
  flex-wrap:wrap;
  margin-top:2rem
}
.text-link {
  font-weight:700;
  font-size:.88rem;
  border-bottom:1px solid var(--line);
  padding-bottom:.2rem
}
.text-link:hover {
  color:var(--accent)
}
.socials {
  display:flex;
  gap:1.25rem;
  margin-top:2.5rem;
  color:var(--muted);
  font-size:.85rem
}
.project-visual {
  position:relative;
  aspect-ratio:4/3;
  overflow:hidden;
  border-radius:var(--radius);
  border:1px solid #ffffff18;
  display:grid;
  place-items:center;
  background:radial-gradient(circle at 67% 35%,#9dbb6b55,transparent 20%),linear-gradient(135deg,#182119,#354632)
}
.project-visual:before,.project-visual:after {
  content:"";
  position:absolute;
  border:1px solid #ffffff1f;
  border-radius:50%;
  width:45%;
  aspect-ratio:1
}
.project-visual:after {
  width:68%;
  transform:translate(32%,32%)
}
.project-visual span {
  position:absolute;
  left:1rem;
  bottom:1rem;
  z-index:2;
  font:.65rem var(--mono);
  color:#e9ebdf99
}
.project-visual b {
  font-size:clamp(4rem,10vw,9rem);
  letter-spacing:-.12em;
  color:#ffffff13
}
.project-visual.blue {
  background:linear-gradient(145deg,#152331,#286070)
}
.project-visual.rust {
  background:linear-gradient(145deg,#291917,#714133)
}
.project-visual.violet {
  background:linear-gradient(145deg,#1d1727,#4a3d63)
}
.project-visual.gold {
  background:linear-gradient(145deg,#292616,#817027)
}
.project-visual.web {
  background:linear-gradient(145deg,#142223,#28545c)
}
.scroll-note {
  position:absolute;
  right:0;
  bottom:1.5rem;
  font:.7rem var(--mono);
  color:var(--muted)
}
.section {
  padding-block:clamp(5rem,10vw,9rem);
  scroll-margin-top:70px
}
.section-head {
  margin-bottom:3rem
}
.section-head h2 {
  font-size:clamp(2.2rem,5vw,4.3rem);
  line-height:1.05;
  letter-spacing:-.055em;
  max-width:850px
}
.section-head.inline {
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:2rem
}
.section-head.inline>p {
  color:var(--muted);
  max-width:380px
}
.featured {
  display:grid;
  grid-template-columns:1.35fr .65fr;
  gap:clamp(2rem,5vw,5rem);
  align-items:center
}
.featured h3 {
  font-size:clamp(2.3rem,4vw,4rem);
  line-height:.95;
  letter-spacing:-.055em
}
.card-top {
  display:flex;
  justify-content:space-between;
  gap:1rem;
  color:var(--muted);
  font:.72rem var(--mono);
  margin-bottom:1rem
}
.role {
  color:var(--accent);
  font-weight:700
}
.compact-list {
  padding-left:1.2rem;
  color:var(--muted)
}
.tags {
  list-style:none;
  padding:0;
  display:flex;
  flex-wrap:wrap;
  gap:.45rem;
  margin:1.5rem 0
}
.tags li {
  border:1px solid var(--line);
  color:#c4c8c0;
  padding:.35rem .6rem;
  border-radius:99px;
  font:.68rem var(--mono)
}
.project-grid {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:5rem 2rem
}
.project-card:nth-child(even) {
  margin-top:6rem
}
.project-card .visual-link {
  display:block;
  overflow:hidden;
  border-radius:var(--radius);
  margin-bottom:1.3rem
}
.project-card .project-visual {
  transition:transform .5s
}
.project-card:hover .project-visual {
  transform:scale(1.025)
}
.project-card h3 {
  font-size:clamp(1.6rem,3vw,2.5rem);
  letter-spacing:-.04em;
  margin-bottom:.4rem
}
.project-card p:not(.role) {
  color:var(--muted)
}
.web-section {
  background:#151a18;
  border-block:1px solid var(--line)
}
.web-grid {
  grid-template-columns:1fr
}
.web-grid .project-card {
  display:grid;
  grid-template-columns:1.2fr .8fr;
  column-gap:3rem
}
.web-grid .visual-link {
  grid-row:1/8
}
.about {
  display:grid;
  grid-template-columns:.65fr 1fr;
  gap:clamp(2rem,8vw,8rem);
  align-items:start
}
.portrait {
  min-height:600px;
  background:linear-gradient(160deg,#303730,#171a17);
  border:1px solid var(--line);
  display:grid;
  place-items:center;
  color:var(--muted);
  font:.75rem var(--mono);
  text-align:center
}
.about h2 {
  font-size:clamp(2.5rem,5vw,4.8rem);
  line-height:1;
  letter-spacing:-.06em
}
.about>div>p {
  color:var(--muted)
}
.about-facts {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1rem;
  border-block:1px solid var(--line);
  padding:1.5rem 0;
  margin:2rem 0
}
.about-facts dt {
  font:.65rem var(--mono);
  text-transform:uppercase;
  color:var(--muted)
}
.about-facts dd {
  margin:0;
  font-size:.85rem
}
.skill-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  border-top:1px solid var(--line)
}
.skill-grid>div {
  padding:2rem 4rem 2rem 0
}
.skill-grid>div+div {
  border-left:1px solid var(--line);
  padding-left:4rem
}
.skill-no {
  font:.7rem var(--mono);
  color:var(--accent)
}
.timeline {
  border-top:1px solid var(--line)
}
.timeline article {
  display:grid;
  grid-template-columns:1fr 2fr 2fr;
  padding:1.6rem 0;
  border-bottom:1px solid var(--line);
  align-items:baseline
}
.timeline time {
  font:.72rem var(--mono);
  color:var(--accent)
}
.timeline h3,.timeline p {
  margin:0
}
.timeline p {
  color:var(--muted)
}
.contact {
  background:var(--accent);
  color:#10140e
}
.contact .kicker {
  color:#303c22
}
.contact h2 {
  font-size:clamp(4rem,9vw,8rem);
  line-height:.85;
  letter-spacing:-.075em
}
.contact h2 em {
  color:#eff5e5
}
.email {
  font-size:clamp(1.3rem,3vw,2.2rem);
  border-bottom:2px solid #28341d
}
.contact-links {
  display:flex;
  gap:2rem;
  flex-wrap:wrap;
  border-top:1px solid #53663d;
  margin-top:5rem;
  padding-top:1.5rem;
  font-size:.85rem
}
.contact-links span {
  margin-left:auto
}
.footer {
  padding:2.5rem 0;
  background:#0b0d0b
}
.footer-grid {
  display:grid;
  grid-template-columns:1fr 2fr auto;
  align-items:center;
  gap:2rem
}
.footer p {
  color:var(--muted);
  margin:0
}
.footer-links {
  display:flex;
  justify-content:center;
  gap:1.5rem;
  font-size:.8rem
}
.reveal {
  opacity:0;
  transform:translateY(18px);
  transition:opacity .7s,transform .7s
}
.reveal.visible {
  opacity:1;
  transform:none
}

.detail {
  padding-top:4rem
}
.detail-hero {
  padding-bottom:6rem
}
.back {
  display:inline-block;
  color:var(--muted);
  margin-bottom:4rem
}
.detail-hero h1 {
  font-size:clamp(4rem,10vw,9rem);
  line-height:.85;
  letter-spacing:-.07em;
  margin:.5rem 0 2rem
}
.detail-lede {
  font-size:clamp(1.15rem,2vw,1.5rem);
  color:var(--muted);
  max-width:780px;
  margin-bottom:4rem
}
.detail-hero .project-visual {
  aspect-ratio:16/8
}
.detail-section {
  padding-block:5rem;
  border-top:1px solid var(--line)
}
.detail-section h2 {
  font-size:clamp(2.3rem,5vw,4rem);
  line-height:1;
  letter-spacing:-.05em
}
.facts {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line)
}
.facts div {
  background:var(--bg);
  padding:1.5rem
}
.facts dt {
  font:.68rem var(--mono);
  text-transform:uppercase;
  color:var(--muted)
}
.facts dd {
  margin:0
}
.split {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:5rem
}
.responsibilities {
  padding:0;
  list-style:none
}
.responsibilities li {
  padding:.8rem 0;
  border-bottom:1px solid var(--line)
}
.editorial {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:3rem
}
.editorial span {
  color:var(--accent);
  font:.7rem var(--mono)
}
.editorial p {
  color:var(--muted)
}
.gallery {
  display:grid;
  grid-template-columns:2fr 1fr;
  gap:1rem
}
.gallery>*:first-child {
  grid-row:span 2
}
.gallery .project-visual {
  height:100%
}
.project-nav {
  display:flex;
  justify-content:space-between;
  border-top:1px solid var(--line);
  padding-block:3rem
}
.project-nav a {
  color:var(--muted)
}
.project-nav span {
  display:block;
  color:var(--text);
  font-size:1.2rem
}
.error-page,.legal {
  min-height:100vh;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  max-width:750px
}
.error-page h1,.legal h1 {
  font-size:clamp(3rem,8vw,6rem);
  line-height:1;
  letter-spacing:-.06em
}

@media(max-width:800px) {
  .menu {
  display:block
}
.nav-links {
  display:none;
  position:absolute;
  inset:74px 0 auto;
  background:var(--surface);
  padding:1.5rem 20px;
  flex-direction:column;
  align-items:flex-start
}
.nav-links.open {
  display:flex
}
.hero,.featured,.about,.web-grid .project-card,.split,.editorial {
  grid-template-columns:1fr
}
.hero {
  padding-top:5rem
}
.scroll-note {
  display:none
}
.project-grid {
  gap:4rem 1rem
}
.project-card:nth-child(even) {
  margin-top:3rem
}
.web-grid .visual-link {
  grid-row:auto
}
.section-head.inline {
  display:block
}
.portrait {
  min-height:420px
}
.skill-grid {
  grid-template-columns:1fr
}
.skill-grid>div {
  padding:2rem 0
}
.skill-grid>div+div {
  border-left:0;
  border-top:1px solid var(--line);
  padding-left:0
}
.about-facts {
  grid-template-columns:1fr
}
.timeline article,.footer-grid {
  grid-template-columns:1fr
}
.footer-links {
  justify-content:flex-start;
  flex-wrap:wrap
}
.contact-links span {
  margin-left:0;
  width:100%
}
.facts {
  grid-template-columns:1fr 1fr
}
.gallery {
  grid-template-columns:1fr
}
.gallery>*:first-child {
  grid-row:auto
}
.gallery .project-visual {
  height:auto
}

}

@media(max-width:560px) {
  .shell {
  width:min(100% - 28px,1160px)
}
.hero h1 {
  font-size:4.15rem
}
.project-grid {
  grid-template-columns:1fr
}
.project-card:nth-child(even) {
  margin-top:0
}
.actions .button {
  width:100%
}
.contact h2 {
  font-size:3.7rem
}

}
@media(prefers-reduced-motion:reduce) {
  html {
  scroll-behavior:auto
}
* {
  transition:none!important
}
.reveal {
  opacity:1;
  transform:none
}

}

.project-visual.data {
  background:linear-gradient(145deg,#121e22,#244b50)
}
.chart-placeholder {
  width:68%;
  height:55%;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  gap:8%;
  border-left:1px solid #ffffff36;
  border-bottom:1px solid #ffffff36;
  padding:0 8%
}
.chart-placeholder i {
  display:block;
  width:12%;
  background:#9dbb6b88;
  height:38%
}
.chart-placeholder i:nth-child(2) {
  height:72%
}
.chart-placeholder i:nth-child(3) {
  height:52%
}
.chart-placeholder i:nth-child(4) {
  height:85%
}
.project-visual.data>span {
  z-index:3
}
.skill-grid.three {
  grid-template-columns:repeat(3,1fr)
}
.skill-grid.three>div {
  padding-right:2.5rem
}
.skill-grid.three>div+div {
  padding-left:2.5rem
}
.detail-chart {
  aspect-ratio:16/7
}
.notice {
  border-left:3px solid var(--accent);
  background:var(--surface);
  padding:1.2rem 1.5rem;
  margin-top:2rem;
  color:var(--muted)
}
.model-list {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1px;
  background:var(--line);
  margin-top:3rem
}
.model-list article {
  background:var(--bg);
  padding:1.5rem
}
.model-list span,.placeholder-note {
  font:.7rem var(--mono);
  color:var(--muted)
}
.model-list h3 {
  margin:.4rem 0
}
.results {
  list-style:none;
  padding:0;
  border-top:1px solid var(--line)
}
.results li {
  display:grid;
  grid-template-columns:1fr 2fr;
  gap:2rem;
  padding:1.5rem 0;
  border-bottom:1px solid var(--line)
}
.results span,.muted {
  color:var(--muted)
}
.visualization-grid {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:1rem;
  margin-top:2rem
}
.viz-placeholder {
  min-height:260px;
  border:1px solid var(--line);
  background:linear-gradient(145deg,#171b18,#111311);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:2rem
}
.viz-placeholder.wide {
  grid-column:1/-1;
  min-height:340px
}
.viz-placeholder span {
  font:.7rem var(--mono);
  color:var(--muted);
  margin-top:.5rem
}
.large-tags {
  max-width:850px
}
.button.disabled {
  opacity:.5;
  pointer-events:none
}

@media(max-width:800px) {
  .skill-grid.three {
  grid-template-columns:1fr
}
.skill-grid.three>div,.skill-grid.three>div+div {
  padding:2rem 0;
  border-left:0;
  border-top:1px solid var(--line)
}
.model-list {
  grid-template-columns:1fr 1fr
}
.results li {
  grid-template-columns:1fr
}
.visualization-grid {
  grid-template-columns:1fr
}
.viz-placeholder.wide {
  grid-column:auto
}

}

.thesis-preview {
  display:block;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:#121816
}
.thesis-preview img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .45s
}
.thesis-preview:hover img {
  transform:scale(1.02)
}
.compact-facts {
  font:700 .72rem var(--mono)!important;
  color:var(--accent)!important
}
.thesis-detail {
  overflow:hidden
}
.thesis-hero {
  padding-block:clamp(5rem,10vw,9rem)
}
.thesis-hero h1 {
  font-size:clamp(3.5rem,7.5vw,7.4rem);
  line-height:.89;
  letter-spacing:-.065em;
  max-width:1100px;
  margin:.8rem 0 2rem
}
.thesis-facts {
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
  margin-top:3.5rem
}
.thesis-facts div {
  background:var(--bg);
  padding:1.4rem
}
.thesis-facts b {
  display:block;
  font-size:2rem;
  color:var(--accent)
}
.thesis-facts span {
  font:.68rem var(--mono);
  color:var(--muted)
}
.thesis-split {
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:clamp(3rem,8vw,8rem)
}
.thesis-split p:not(.kicker),.section-intro {
  color:var(--muted)
}
.comparison-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
  margin-top:3rem
}
.comparison-grid article {
  background:var(--bg);
  padding:clamp(1.5rem,4vw,3.5rem)
}
.comparison-grid h3 {
  font-size:1.7rem
}
.comparison-grid ul {
  padding-left:1.1rem;
  color:var(--muted)
}
.comparison-grid li {
  margin:.55rem 0
}
.reference-card {
  border:1px solid var(--line);
  border-top:0;
  padding:2rem 3.5rem;
  background:var(--surface)
}
.reference-card p {
  color:var(--muted);
  max-width:850px
}
.method-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1rem;
  margin-top:3rem
}
.method-grid article {
  border:1px solid var(--line);
  padding:1.5rem
}
.method-grid h3 {
  font-size:1rem
}
.method-note {
  border-left:2px solid var(--accent);
  padding-left:1rem;
  color:var(--muted);
  margin-top:2rem
}
.chart-section {
  position:relative
}
.chart-heading {
  display:grid;
  grid-template-columns:1fr .65fr;
  gap:3rem;
  align-items:end
}
.chart-heading>p {
  color:var(--muted)
}
.chart-controls {
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
  margin:2rem 0 1rem
}
.chart-controls fieldset {
  display:flex;
  flex-wrap:wrap;
  gap:.35rem;
  border:0;
  padding:0;
  margin:0
}
.chart-controls legend {
  font:.65rem var(--mono);
  color:var(--muted);
  margin-bottom:.45rem
}
.chart-controls button {
  border:1px solid var(--line);
  background:transparent;
  color:var(--muted);
  padding:.55rem .75rem;
  border-radius:3px;
  cursor:pointer
}
.chart-controls button[aria-pressed=true] {
  background:var(--accent);
  border-color:var(--accent);
  color:#10140e
}
.chart {
  width:100%;
  min-height:320px;
  border:1px solid var(--line);
  background:#121512;
  margin-top:1rem
}
.chart svg {
  display:block;
  width:100%;
  height:auto
}
.chart-label,.chart-value,.heat-label,.heat-value,.stats-label,.chart-note,.block-label,.sr-chart-title {
  font-family:var(--mono);
  fill:var(--text);
  font-size:15px
}
.chart-note {
  fill:var(--muted);
  font-size:13px
}
.sr-chart-title {
  fill:var(--muted);
  font-size:12px
}
.chart-value {
  font-weight:700
}
.heat-label,.heat-value {
  font-size:13px
}
.stats-label {
  font-size:12px
}
.reference-line,.zero-line {
  stroke:#c6cbc344;
  stroke-width:2;
  stroke-dasharray:7 7
}
.train-block {
  fill:#3f4b3a
}
.test-block {
  fill:var(--accent)
}
.block-label {
  font-size:12px
}
.test-block+.block-label {
  fill:#10140e
}
.chart-summary {
  color:var(--muted);
  max-width:900px;
  margin-top:1rem
}
.chart-footnote {
  font:.7rem var(--mono);
  color:var(--muted)
}
.model-toggles {
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
  margin:1rem 0;
  font:.75rem var(--mono);
  color:var(--muted)
}
.model-toggles input {
  accent-color:var(--accent)
}
.chart-scroll {
  overflow-x:auto
}
.wide-chart {
  min-width:780px
}
.finding-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
  margin-top:3rem
}
.finding-grid article {
  background:var(--bg);
  padding:2rem
}
.finding-grid article>span {
  font:.7rem var(--mono);
  color:var(--accent)
}
.finding-grid p {
  color:var(--muted)
}
.limitations {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 3rem;
  padding:0;
  list-style:none;
  border-top:1px solid var(--line)
}
.limitations li {
  padding:1rem 0;
  border-bottom:1px solid var(--line);
  color:var(--muted)
}

@media(max-width:800px) {
  .thesis-facts {
  grid-template-columns:1fr 1fr
}
.thesis-split,.chart-heading {
  grid-template-columns:1fr
}
.comparison-grid,.method-grid,.finding-grid {
  grid-template-columns:1fr
}
.reference-card {
  padding:2rem 1.5rem
}
.chart-controls {
  display:block
}
.chart-controls fieldset+fieldset {
  margin-top:1rem
}
.limitations {
  grid-template-columns:1fr
}
.chart {
  min-height:220px
}
.thesis-hero h1 {
  font-size:3.5rem
}

}

.single-image:before,.single-image:after {
  display:none
}
.single-image {
  aspect-ratio:1/1
}
.single-image img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .5s
}
.project-card:hover .single-image img {
  transform:scale(1.025)
}

.languages button {
  appearance:none;
  border:0;
  background:transparent;
  color:var(--muted);
  font:inherit;
  padding:.2rem;
  cursor:pointer
}
.languages button[aria-pressed=true] {
  color:var(--text);
  font-weight:700
}
.languages button:hover {
  color:var(--accent)
}

.qualification-grid {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
  margin-bottom:4rem
}
.qualification-grid article {
  background:var(--bg);
  padding:2rem
}
.qualification-grid span {
  font:.68rem var(--mono);
  color:var(--accent);
  text-transform:uppercase
}
.qualification-grid h3 {
  margin:.5rem 0;
  font-size:1.25rem
}
.qualification-grid p {
  margin:0;
  color:var(--muted)
}
@media(max-width:700px) {
  .qualification-grid {
  grid-template-columns:1fr
}

}

.detail-nav-actions {
  display:flex;
  align-items:center;
  gap:1.5rem
}
@media(max-width:560px) {
  .detail-nav-actions {
  gap:.65rem
}
.detail-nav-actions>a {
  font-size:.75rem
}

}

.legal {
  display:block;
  max-width:850px;
  padding-block:clamp(4rem,8vw,7rem)
}
.legal article {
  width:100%
}
.legal h1 {
  margin-bottom:3rem
}
.legal section {
  padding-block:2rem;
  border-top:1px solid var(--line)
}
.legal h2 {
  font-size:clamp(1.4rem,3vw,2rem);
  letter-spacing:-.025em
}
.legal p,.legal address {
  color:var(--muted);
  font-style:normal
}
.legal a {
  color:var(--text);
  text-decoration:underline;
  text-underline-offset:.2em
}
.legal a:hover {
  color:var(--accent)
}

.media-cycle {
  isolation:isolate;
  background:#171a17;
  aspect-ratio:1/1
}
.media-cycle:before,.media-cycle:after {
  display:none
}
.media-cycle img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:0;
  z-index:1
}
.media-cycle img:first-child {
  opacity:1
}
.media-cycle:hover img,.media-cycle:focus-visible img {
  animation:galleryFade 12s infinite
}
.cycle-four:hover img:nth-of-type(2),.cycle-four:focus-visible img:nth-of-type(2) {
  animation-delay:3s
}
.cycle-four:hover img:nth-of-type(3),.cycle-four:focus-visible img:nth-of-type(3) {
  animation-delay:6s
}
.cycle-four:hover img:nth-of-type(4),.cycle-four:focus-visible img:nth-of-type(4) {
  animation-delay:9s
}
.cycle-three:hover img,.cycle-three:focus-visible img {
  animation-duration:9s
}
.cycle-three:hover img:nth-of-type(2),.cycle-three:focus-visible img:nth-of-type(2) {
  animation-delay:3s
}
.cycle-three:hover img:nth-of-type(3),.cycle-three:focus-visible img:nth-of-type(3) {
  animation-delay:6s
}
.media-cycle span {
  background:#111311bb;
  padding:.35rem .55rem;
  border-radius:3px
}
.website-previews {
  position:relative;
  min-height:510px
}
.desktop-preview {
  position:absolute;
  inset:0 12% 8% 0;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:#eee
}
.desktop-preview img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:top
}
.phone-preview {
  position:absolute;
  right:0;
  bottom:0;
  width:25%;
  height:78%;
  overflow:hidden;
  border:7px solid #0c0d0c;
  border-radius:24px;
  background:white;
  box-shadow:0 20px 45px #0008;
  z-index:3
}
.phone-preview img {
  display:block;
  width:100%;
  height:auto;
  transform:translateY(0);
  transition:transform 12s linear
}
.phone-preview:hover img,.phone-preview:focus-visible img {
  transform:translateY(calc(-100% + 390px))
}
.phone-preview span {
  position:absolute;
  left:50%;
  bottom:.5rem;
  transform:translateX(-50%);
  background:#111311d9;
  color:var(--text);
  padding:.25rem .45rem;
  border-radius:3px;
  white-space:nowrap;
  font:.6rem var(--mono)
}
@keyframes galleryFade {
  0%,22% {
  opacity:1
}
30%,92% {
  opacity:0
}
100% {
  opacity:1
}

}
@media(max-width:800px) {
  .website-previews {
  min-height:440px
}
.phone-preview {
  width:30%
}
.phone-preview:hover img,.phone-preview:focus-visible img {
  transform:translateY(calc(-100% + 330px))
}

}
@media(prefers-reduced-motion:reduce) {
  .media-cycle:hover img:not(:first-child),.media-cycle:focus-visible img:not(:first-child) {
  animation:none;
  opacity:0
}
.phone-preview img {
  transition:none
}
.phone-preview:hover img,.phone-preview:focus-visible img {
  transform:none
}

}
