@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');
:root{--bg:#11191d;--surface:#1b272e;--text:#edf5f7;--muted:#a5b7bf;--line:#33464f;--accent:#67dce7;--font:'DM Sans',Arial,sans-serif;--display:'Manrope',Arial,sans-serif;color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.6 var(--font);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible{outline:2px solid var(--accent);outline-offset:7px}::selection{background:var(--accent);color:var(--bg)}.wrap{width:min(1280px,calc(100% - 112px));margin-inline:auto}.header{display:flex;align-items:center;justify-content:space-between;padding-block:30px;border-bottom:1px solid var(--line)}.identity{display:flex;align-items:center;gap:16px;font-weight:600;line-height:1.4}.monogram{background:var(--accent);color:var(--bg);width:47px;height:47px;display:grid;place-items:center;border-radius:50%;font-size:23px;letter-spacing:-2px;padding-right:3px}.identity-sub{display:block;font-size:10px;letter-spacing:2px;color:var(--muted);margin-top:5px}nav{display:flex;align-items:center;gap:45px;font-size:14px}nav a{transition:color .2s}nav a:hover,.text-link:hover,.back-link:hover{color:var(--accent)}.nav-count{font-size:11px;vertical-align:super;margin-left:4px;color:var(--muted)}.github-link span{margin-left:10px;font-size:19px}.hero{padding-top:47px}.eyebrow{font-size:12px;letter-spacing:1.7px;font-weight:500;display:flex;align-items:center;gap:10px}.status-dot{width:6px;height:6px;border-radius:50%;background:var(--accent)}.hero-year{margin-left:auto;color:var(--muted);font-size:11px}.hero h1{font-family:var(--display);font-size:clamp(90px,14.8vw,206px);font-weight:500;line-height:1.1;letter-spacing:-.075em;margin:14px 0 35px}.title-dot{color:var(--accent)}.hero-bottom{display:grid;grid-template-columns:1fr 1fr;gap:60px;padding-bottom:57px;border-bottom:1px solid var(--line);align-items:start}.hero-bottom h2{font-size:30px;font-family:var(--display);font-weight:500;line-height:1.32;letter-spacing:-1px;margin:0}.hero-bottom h2 span{color:var(--muted)}.hero-copy{padding-top:1px}.hero-copy p{margin:0 0 19px;color:var(--muted);font-size:16px}.hero-copy strong{font-weight:500;color:var(--text)}.text-link{display:inline-flex;align-items:center;gap:35px;font-size:14px;font-weight:500}.text-link span{font-size:19px}.projects{padding-top:36px}.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px;gap:20px}.section-head h2{font-size:23px;font-weight:500;letter-spacing:-.7px;margin:0}.section-head sup{font-size:11px;color:var(--muted);margin-left:6px;vertical-align:top;display:inline-block;margin-top:5px}.section-head>span{font-size:10px;letter-spacing:1.25px;color:var(--muted)}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.card-arrow{width:32px;height:32px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;transition:background .2s,color .2s}.project-card:hover .card-arrow{background:var(--accent);color:var(--bg);border-color:var(--accent)}.closing{position:relative;border-top:1px solid var(--line);margin-top:68px;padding:45px 0 55px}.closing p{font-family:var(--display);font-size:46px;font-weight:500;line-height:1.2;letter-spacing:-2px;margin:22px 0 0}.muted{color:var(--muted)}.closing .button{position:absolute;right:0;bottom:64px}.button{display:inline-flex;align-items:center;justify-content:center;gap:28px;padding:13px 20px;border-radius:3px;font-size:14px;font-weight:600;background:var(--accent);color:var(--bg);border:1px solid var(--accent);transition:background .2s,transform .2s}.button:hover{background:#91eaf1;transform:translateY(-2px)}.button.secondary{background:transparent;color:var(--text);border-color:#506773}.button.secondary:hover{background:var(--surface)}.footer{border-top:1px solid var(--line);display:flex;gap:30px;align-items:center;justify-content:space-between;padding-block:26px;font-size:12px;color:var(--muted)}.footer>div{display:flex;flex-direction:column}.footer-name{color:var(--text);font-size:15px;font-weight:500}.copyright{font-size:11px}.footer a:hover{color:var(--text)}.skip{position:fixed;left:20px;top:-100px;z-index:10;background:var(--accent);color:var(--bg);padding:12px}.skip:focus{top:15px}#main:focus,.detail h1:focus{outline:none}.detail{padding-top:34px}.back-link{font-size:14px;color:var(--muted)}.detail-eyebrow{display:flex;justify-content:space-between;margin-top:50px;font-size:12px}.detail h1{font-family:var(--display);font-size:clamp(43px,6vw,80px);font-weight:500;line-height:1.08;letter-spacing:-3px;max-width:1000px;margin:22px 0}.detail-intro{display:flex;align-items:center;justify-content:space-between;gap:40px;margin:28px 0 43px}.detail-intro>p{max-width:570px;font-size:18px;color:var(--muted);margin:0}.actions{display:flex;gap:10px;flex-shrink:0;flex-wrap:wrap}.detail-content{display:grid;grid-template-columns:1fr 2fr;gap:85px;padding:60px 0}.stack{display:flex;flex-wrap:wrap;gap:7px;margin:20px 0 30px;max-width:240px}.stack span{border:1px solid var(--line);padding:5px 12px;font-size:14px;border-radius:3px}.source-note{color:var(--muted);font-size:13px;max-width:230px}.detail-body section{margin-bottom:42px}.detail-body h2{font-family:var(--display);font-size:26px;font-weight:500;letter-spacing:-.7px;margin:0 0 16px}.detail-body p{color:var(--muted);font-size:17px;margin:0;line-height:1.8}.feature-list{padding:0;list-style:none;margin:0}.feature-list li{padding:17px 0;border-top:1px solid var(--line);display:flex;gap:20px}.feature-list li>span{color:var(--accent);font-size:12px;padding-top:3px}.file-list{margin-top:25px;border:1px solid var(--line);border-radius:3px}.file-list a{padding:13px 17px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);font-size:13px}.file-list a:last-child{border:0}.file-list a:hover{background:var(--surface)}.file-list code{color:var(--accent);font-size:13px}.file-list a>span{color:var(--muted);text-align:right}.next-project{border-top:1px solid var(--line);padding:35px 0 55px;display:flex;justify-content:space-between;align-items:center;gap:24px}.next-project strong{display:block;font-family:var(--display);font-size:38px;font-weight:500;letter-spacing:-1.5px;margin-top:12px}.next-arrow{color:var(--accent);font-size:55px}.next-project:hover strong{color:var(--accent)}.missing{padding-block:100px}
@media(min-width:1500px){.hero h1{font-size:210px}}@media(max-width:1050px){.wrap{width:calc(100% - 64px)}.detail-intro{align-items:flex-start;flex-direction:column;gap:25px}.detail-content{gap:45px}.detail h1{letter-spacing:-2px}}@media(max-width:700px){.wrap{width:calc(100% - 40px)}.header{padding-block:21px}nav{gap:20px}.identity{gap:10px;font-size:14px}.monogram{width:39px;height:39px;font-size:21px}.identity-sub{font-size:8px;letter-spacing:1.5px}.nav-count{display:none}.github-link span{margin-left:2px}.hero{padding-top:31px}.hero .eyebrow{font-size:10px;letter-spacing:1px}.hero-year{font-size:9px;letter-spacing:.4px}.hero h1{font-size:18.4vw;letter-spacing:-.08em;margin:22px 0 30px}.hero-bottom{grid-template-columns:1fr;gap:22px;padding-bottom:35px}.hero-bottom h2{font-size:27px}.hero-copy p{font-size:15px}.projects{padding-top:28px}.section-head{align-items:flex-start;margin-bottom:20px}.section-head>span{display:none}.section-head h2{font-size:22px}.project-grid{grid-template-columns:1fr;gap:37px}.closing{margin-top:43px;padding:32px 0}.closing p{font-size:35px;letter-spacing:-1.5px}.closing .button{position:static;margin-top:25px}.footer{flex-wrap:wrap;gap:20px;padding-block:24px}.footer>div{width:100%}.copyright{margin-left:auto}.detail-eyebrow{margin-top:35px;font-size:10px}.detail-eyebrow .eyebrow{font-size:10px}.detail h1{font-size:43px;letter-spacing:-2px}.detail-intro>p{font-size:17px}.detail-content{grid-template-columns:1fr;gap:35px;padding:35px 0 5px}.stack{max-width:none;margin:15px 0}.source-note{max-width:none}.detail-content aside{padding-bottom:26px;border-bottom:1px solid var(--line)}.detail-body h2{font-size:25px}.detail-body p{font-size:16px}.file-list a{flex-direction:column;align-items:flex-start;gap:2px}.file-list a>span{text-align:left}.next-project strong{font-size:29px;line-height:1.25}.next-arrow{font-size:40px}.button{padding:12px 17px;gap:17px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

/* Project index: restrained typography, clear descriptions, and a shared cyan accent. */
.project-card{--card-fill:#67dce7;--accent:#12333d;--muted:#29454f;--line:#12333d33;display:flex;flex-direction:column;min-width:0;padding:30px 32px 20px;background:var(--card-fill);color:#12333d;border:1px solid transparent;border-radius:5px;transition:filter .2s,border-color .2s}
.project-card:nth-child(2){--card-fill:#aebfe5}
.project-card:nth-child(3){--card-fill:#9ecedc}
.project-card:nth-child(4){--card-fill:#c0d6da}
.project-card:hover{filter:brightness(1.04);border-color:#edf5f780}
.project-card:focus-visible{outline-color:#edf5f7}
.project-card-top{display:flex;align-items:center;gap:16px;margin-bottom:32px}
.project-number{font-size:13px;font-variant-numeric:tabular-nums;color:var(--accent);border-right:1px solid var(--line);padding-right:16px}
.project-category{font-size:12px;letter-spacing:1.2px;color:var(--muted)}
.project-card h3{font-family:var(--display);font-size:27px;line-height:1.3;font-weight:550;letter-spacing:-.8px;margin:0 0 15px;max-width:420px}
.card-summary{font-size:16px;line-height:1.7;color:var(--muted);margin:0 0 24px;max-width:490px}
.card-technologies{display:flex;align-items:center;flex-wrap:wrap;gap:8px 18px;color:var(--muted);font-size:13px;margin-top:auto;margin-bottom:28px}
.card-technologies span+span{position:relative}.card-technologies span+span:before{content:'';position:absolute;width:3px;height:3px;border-radius:50%;background:var(--muted);left:-10px;top:50%}
.project-card-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:17px;border-top:1px solid var(--line);font-size:14px}
.project-card-footer .card-arrow{width:auto;height:auto;border:0;border-radius:0;font-size:23px;color:var(--accent)}
.project-card:hover .project-card-footer .card-arrow{background:transparent;color:var(--accent)}
.project-workflow{border-block:1px solid var(--line);padding:24px 0 28px}
.project-workflow h2{font-size:13px;letter-spacing:.5px;font-weight:500;color:var(--muted);margin:0 0 20px}
.project-workflow ol{display:grid;grid-template-columns:repeat(3,1fr);list-style:none;padding:0;margin:0;gap:24px}
.project-workflow li{display:flex;align-items:baseline;gap:14px;font-size:18px}
.workflow-step{color:var(--accent);font-size:12px;font-variant-numeric:tabular-nums}
@media(max-width:700px){.project-grid{gap:16px}.project-card{padding:23px 22px 18px}.project-card-top{margin-bottom:26px;gap:12px}.project-number{padding-right:12px}.project-category{font-size:11px;letter-spacing:.8px}.project-card h3{font-size:25px}.card-summary{font-size:16px}.project-workflow ol{grid-template-columns:1fr;gap:18px}.project-workflow li{font-size:16px}}
