:root {
  --ink: #191a1d;
  --muted: #737378;
  --line: #deddd8;
  --paper: #f4f3ef;
  --white: #fbfaf7;
  --acid: #d4e86b;
  --lavender: #c9c3f4;
  --orange: #f28e60;
  --mono: 'DM Mono', monospace;
  --sans: 'Manrope', sans-serif;
}

body[data-theme="dark"] {
  --ink: #f2f0e9;
  --muted: #aaa9a6;
  --line: #3a3b3e;
  --paper: #17181b;
  --white: #212226;
  --lavender: #817aa9;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); transition: background-color .25s, color .25s; }
a { color: inherit; text-decoration: none; }
.shell { max-width: 1440px; margin: 0 auto; padding: 0 48px; overflow: hidden; }
.site-header { height: 92px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); }
.brand, .desktop-nav, .header-action, .hero-actions, .button, .eyebrow, .project-info, .site-footer, .contact-email { display: flex; align-items: center; }
.brand { gap: 12px; font-weight: 800; letter-spacing: -0.03em; }
.brand-mark { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--ink); color: var(--acid); font-family: var(--mono); font-size: 14px; letter-spacing: -0.12em; }
.desktop-nav { gap: 35px; margin-left: 100px; color: #5f6064; font-size: 13px; }
.desktop-nav a:hover, .header-action:hover, .contact-email:hover { color: var(--orange); }
.header-tools { display: flex; align-items: center; gap: 25px; }
.theme-toggle { display: flex; align-items: center; gap: 8px; padding: 7px 0; border: 0; background: transparent; color: var(--muted); font: 10px var(--mono); cursor: pointer; transition: color .2s; }
.theme-toggle:hover { color: var(--orange); }
.theme-icon { display: grid; place-items: center; width: 22px; height: 22px; border: 1px solid var(--line); border-radius: 50%; font-size: 13px; }
.header-action { gap: 11px; font-size: 13px; font-weight: 700; }
.header-action span, .contact-email span { font-size: 18px; }
.section-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; }
.hero { padding: 112px 0 124px; min-height: 610px; }
.hero-copy { max-width: 650px; }
.eyebrow, .kicker, .project-type, .section-number, .visual-tag, .window-title { font-family: var(--mono); font-size: 11px; text-transform: uppercase; letter-spacing: .08em; }
.eyebrow { gap: 9px; color: #66666a; }
.status-dot { width: 7px; height: 7px; background: #91ac31; border-radius: 50%; box-shadow: 0 0 0 5px rgba(212,232,107,.3); }
h1, h2, h3, p { margin-top: 0; }
h1 { margin: 23px 0 27px; font-size: clamp(42px, 5.35vw, 76px); line-height: 1.035; letter-spacing: -0.075em; font-weight: 700; }
em { font-style: normal; color: var(--orange); }
.hero-text { max-width: 430px; color: var(--muted); font-size: 15px; line-height: 1.7; }
.hero-actions { gap: 12px; margin-top: 36px; }
.button { justify-content: center; gap: 24px; min-height: 47px; padding: 0 18px; border: 1px solid var(--ink); font-size: 12px; font-weight: 700; transition: transform .2s, background .2s; }
.button:hover { transform: translateY(-3px); }
.button-primary { background: var(--ink); color: var(--white); }
.button-primary:hover { background: var(--orange); border-color: var(--orange); }
.button-ghost { border-color: var(--line); color: var(--muted); }
.button-ghost:hover { border-color: var(--ink); color: var(--ink); }
.hero-aside { padding-top: 9px; }
.code-card { max-width: 465px; margin-left: auto; background: #222326; color: #e4e3da; box-shadow: 13px 13px 0 var(--lavender); transform: rotate(2deg); }
.code-topbar { height: 39px; display: flex; align-items: center; gap: 6px; padding: 0 17px; border-bottom: 1px solid #3d3e41; color: #888a92; }
.code-topbar span { width: 7px; height: 7px; border-radius: 50%; background: #4c4d50; }
.code-topbar code { margin-left: 12px; font-family: var(--mono); font-size: 10px; }
pre { margin: 0; padding: 29px 32px 36px; font: 12px/2 var(--mono); white-space: pre-wrap; }
.syntax-blue { color: #8eaeed; } .syntax-yellow { color: #e9dc86; } .syntax-green { color: #afd487; } .syntax-purple { color: #c5a5ec; }
.hero-note { margin: 44px 0 0 auto; max-width: 270px; font: 11px var(--mono); color: #878788; line-height: 1.5; }
.hero-note span { color: var(--orange); font-size: 20px; margin-right: 8px; }
.marquee-band { width: calc(100% + 96px); margin-left: -48px; overflow: hidden; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); background: var(--acid); }
.marquee-content { display: flex; justify-content: space-around; align-items: center; min-width: 950px; padding: 18px 0; font: 700 11px var(--mono); letter-spacing: .13em; }
.marquee-content b { font-size: 17px; font-weight: 400; }
.work-section, .about-section { padding: 135px 0 148px; }
.section-heading { display: flex; gap: 25px; }
.section-number { color: var(--orange); padding-top: 5px; }
.kicker { margin-bottom: 19px; color: var(--muted); }
h2 { margin: 0; font-size: clamp(35px, 4vw, 56px); line-height: .98; letter-spacing: -0.075em; }
.project-list { display: grid; gap: 37px; }
.project-card { border: 1px solid var(--line); transition: transform .25s; }
.project-card:hover { transform: translateY(-5px); }
.project-visual { position: relative; height: 280px; display: grid; place-items: center; overflow: hidden; }
.finance-visual { background: #2b313b; }
.habit-visual { background: var(--lavender); }
.phone { width: 165px; height: 237px; border: 5px solid #111317; border-radius: 19px; background: #edece6; padding: 24px 13px 12px; box-shadow: 14px 14px 0 rgba(212,232,107,.6); }
.phone-notch { position: absolute; margin-top: -20px; margin-left: 53px; width: 44px; height: 7px; border-radius: 8px; background: #111317; }
.phone-label { display: block; font: 8px var(--mono); color: #777; margin-bottom: 16px; }
.phone strong { display: block; font-size: 20px; letter-spacing: -.08em; }
.chart { display: flex; align-items: end; height: 72px; gap: 5px; margin: 19px 0 8px; border-bottom: 1px solid #c9c8c2; }
.chart i { display: block; width: 12px; background: var(--orange); } .chart i:nth-child(1) { height: 26%; } .chart i:nth-child(2) { height: 45%; } .chart i:nth-child(3) { height: 34%; } .chart i:nth-child(4) { height: 75%; } .chart i:nth-child(5) { height: 59%; } .chart i:nth-child(6) { height: 87%; } .chart i:nth-child(7) { height: 100%; background: var(--ink); }
.phone small { color: #777; font-size: 7px; }
.visual-tag { position: absolute; bottom: 15px; right: 17px; color: rgba(255,255,255,.6); }
.habit-window { width: 260px; padding: 21px 17px; background: #f7f5ec; box-shadow: 12px 12px 0 rgba(25,26,29,.13); }
.window-title { display: block; margin-bottom: 15px; color: #89888c; font-size: 9px; }
.habit-row { display: flex; justify-content: space-between; padding: 12px 0; border-top: 1px solid #d8d6d1; font-size: 11px; }
.habit-row.muted { color: #9e9ca0; }.check, .empty-check { display: grid; place-items: center; width: 16px; height: 16px; border: 1px solid var(--ink); border-radius: 50%; font-size: 10px; }.check { background: var(--acid); }
.project-info { align-items: flex-start; justify-content: space-between; padding: 24px 23px 27px; gap: 15px; }.project-card-dark { background: var(--ink); color: var(--white); border-color: var(--ink); }.project-card-light { background: var(--white); }.project-type { display: block; margin-bottom: 12px; color: #9b9b9e; font-size: 9px; }.project-info h3 { margin-bottom: 7px; font-size: 24px; letter-spacing: -.06em; }.project-info p { max-width: 300px; margin-bottom: 0; color: #96979b; font-size: 12px; line-height: 1.55; }.project-card-light .project-info p { color: var(--muted); }.icon-link { display: grid; place-items: center; width: 35px; height: 35px; border: 1px solid #57585d; font-size: 18px; }.project-card-light .icon-link { border-color: var(--line); }
.about-section { border-top: 1px solid var(--line); }.about-content { max-width: 570px; }.about-lead { margin-bottom: 46px; font-size: 22px; line-height: 1.4; letter-spacing: -.04em; }.about-details { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }.about-details p { color: var(--muted); font-size: 13px; line-height: 1.7; }.stack-list { display: flex; flex-wrap: wrap; align-content: start; gap: 8px; }.stack-list span { padding: 7px 9px; border: 1px solid var(--line); color: #6f7073; font: 10px var(--mono); }
.contact-section { margin: 0 -48px; padding: 105px 48px 112px; background: var(--orange); }.contact-inner { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 70px; max-width: 1344px; margin: 0 auto; }.contact-section .section-number { color: var(--ink); }.contact-section .kicker { color: rgba(25,26,29,.65); }.contact-section h2 { font-size: clamp(40px, 5vw, 68px); }.contact-email { width: fit-content; gap: 18px; margin-top: 46px; padding-bottom: 8px; border-bottom: 1px solid var(--ink); font: 14px var(--mono); }.contact-stamp { position: absolute; right: 5%; bottom: -33px; display: grid; place-items: center; width: 118px; height: 118px; border: 1px solid var(--ink); border-radius: 50%; text-align: center; text-transform: uppercase; font: 10px/1.4 var(--mono); transform: rotate(11deg); }.contact-stamp strong { font-size: 20px; }
.site-footer { justify-content: space-between; gap: 20px; min-height: 92px; color: #88888a; font: 10px var(--mono); }.site-footer a { color: var(--ink); }
@media (max-width: 760px) { .shell { padding: 0 20px; }.site-header { height: 76px; }.brand-name { font-size: 13px; }.desktop-nav { display: none; }.header-tools { gap: 14px; }.theme-label { display: none; }.header-action { font-size: 12px; }.section-grid { display: block; }.hero { padding: 74px 0 95px; }.hero-aside { margin-top: 78px; padding: 0 13px 0 0; }.code-card { width: 100%; }.marquee-band { width: calc(100% + 40px); margin-left: -20px; }.marquee-content { justify-content: flex-start; gap: 35px; padding-left: 20px; }.work-section, .about-section { padding: 88px 0 95px; }.section-heading { margin-bottom: 51px; }.project-list { gap: 28px; }.project-visual { height: 240px; }.about-lead { font-size: 20px; }.about-details { grid-template-columns: 1fr; gap: 25px; }.contact-section { margin: 0 -20px; padding: 78px 20px 90px; }.contact-inner { display: block; }.contact-section .section-number { display: block; margin-bottom: 46px; }.contact-stamp { right: 2%; bottom: -18px; width: 92px; height: 92px; font-size: 8px; }.site-footer { align-items: flex-start; flex-direction: column; padding: 26px 0; gap: 14px; }.site-footer span:nth-child(2) { max-width: 260px; line-height: 1.5; } }
