:root{color:#172033;font-synthesis:none;text-rendering:optimizelegibility;--ink:#172033;--muted:#626d80;--paper:#f5f1e8;--line:#17203329;--blue:#c8dcf3;--orange:#efb06d;--violet:#b3a4db;background:#f5f1e8;font-family:Avenir Next,Avenir,Helvetica Neue,Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(circle at 85% 6%, #c8dcf380, transparent 24rem), var(--paper);min-width:320px;min-height:100vh;margin:0}body,a{color:var(--ink)}a{text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible{outline-offset:4px;border-radius:4px;outline:3px solid #315d87}.site-header,main,footer{width:min(100% - 48px,1200px);margin-inline:auto}.site-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:96px;display:flex}.brand{letter-spacing:-.07em;font-family:Avenir Next,Avenir,Helvetica Neue,Arial,sans-serif;font-size:1.45rem;font-weight:700}.brand span{color:#4e7caa}.site-header nav{gap:36px;font-size:.91rem;font-weight:600;display:flex}.site-header nav a,.github-link{transition:opacity .18s}.site-header nav a:hover,.github-link:hover{opacity:.58}.github-link{align-items:center;gap:9px;font-size:.88rem;font-weight:600;display:flex}.github-link svg{fill:currentColor;width:20px;height:20px}.hero{grid-template-columns:1.25fr .75fr;align-items:center;gap:72px;min-height:650px;padding:80px 0 104px;display:grid}.eyebrow,.section-number,.project-category{text-transform:uppercase;letter-spacing:.15em;font-size:.72rem;font-weight:700}.eyebrow{color:#566579;align-items:center;gap:11px;margin:0 0 28px;display:flex}.eyebrow span{background:#4e7caa;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 5px #4e7caa26}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.055em;font-family:Avenir Next,Avenir,Helvetica Neue,Arial,sans-serif}h1{max-width:820px;margin-bottom:30px;font-size:clamp(3.2rem,6.2vw,6rem);font-weight:600;line-height:.98}h1 em{color:#4e7caa;letter-spacing:-.05em;font-family:Georgia,serif;font-weight:400}.hero-intro{max-width:630px;color:var(--muted);margin-bottom:38px;font-size:clamp(1rem,1.7vw,1.16rem);line-height:1.75}.primary-link{border-bottom:1px solid var(--ink);align-items:center;gap:15px;padding-bottom:8px;font-weight:700;display:inline-flex}.primary-link svg,.about-copy a svg{fill:none;stroke:currentColor;stroke-width:1.6px;width:20px;transition:transform .18s}.primary-link:hover svg,.about-copy a:hover svg{transform:translate(5px)}.hero-art{place-items:center;min-height:410px;display:grid;position:relative;overflow:clip}.hero-shape{z-index:2;aspect-ratio:.84;background:var(--ink);width:260px;color:var(--paper);border-radius:140px 140px 28px 28px;flex-direction:column;justify-content:space-between;padding:32px;display:flex;position:relative;transform:rotate(5deg);box-shadow:25px 32px #4e7caa47}.hero-shape>span{text-align:center;font-family:Georgia,serif;font-size:9rem;line-height:1}.hero-shape small{text-transform:uppercase;letter-spacing:.14em;text-align:center;font-size:.69rem}.orbit{border:1px solid #17203329;border-radius:50%;position:absolute}.orbit-one{width:390px;height:245px;transform:rotate(-30deg)}.orbit-two{width:340px;height:390px;transform:rotate(44deg)}.floating-label{z-index:3;border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-transform:uppercase;letter-spacing:.1em;background:#f5f1e8d9;border-radius:999px;padding:9px 15px;font-size:.72rem;font-weight:700;position:absolute}.label-one{top:18%;left:-2%}.label-two{top:38%;right:-2%}.label-three{bottom:12%;left:2%}.projects-section{border-top:1px solid var(--line);padding:110px 0 130px}.section-heading{grid-template-columns:1fr 2fr;align-items:end;margin-bottom:58px;display:grid}.section-number{color:#7b847f;margin-bottom:12px}.section-heading h2,.about-grid h2{max-width:800px;margin-bottom:0;font-size:clamp(2.4rem,5vw,4.6rem);font-weight:600;line-height:1.08}.projects-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.project-card{border:1px solid var(--line);background:#ffffff5c;border-radius:22px;flex-direction:column;min-width:0;transition:transform .22s,box-shadow .22s;display:flex;overflow:hidden}.project-card:hover{transform:translateY(-6px);box-shadow:0 24px 50px #1720331a}.project-visual{place-items:center;height:290px;padding:22px;display:grid;position:relative;overflow:hidden}.project-card--calculator .project-visual{background:var(--blue)}.project-card--objectif-dan .project-visual{background:var(--orange)}.project-card--kaochess .project-visual{background:var(--violet)}.project-index{z-index:4;letter-spacing:.12em;font:700 .72rem Avenir Next,Avenir,Helvetica Neue,Arial,sans-serif;position:absolute;top:18px;left:20px}.app-visual{width:210px;height:250px;position:relative}.app-screen{border:5px solid #ffffffe0;border-radius:21px;width:128px;height:auto;position:absolute;top:8px;left:50%;transform:translate(-50%)rotate(-4deg);box-shadow:14px 18px 30px #1720332e}.app-icon{border:4px solid #ffffffeb;border-radius:16px;width:64px;height:64px;position:absolute;bottom:10px;right:4px;transform:rotate(7deg);box-shadow:0 12px 25px #17203338}.app-visual--dan .app-screen{width:126px;transform:translate(-50%)rotate(4deg)}.app-visual--dan .app-icon{left:4px;right:auto;transform:rotate(-8deg)}.chess-visual{width:220px;height:220px;position:relative}.chess-card{border:2px solid var(--ink);border-radius:12px;width:118px;height:170px;position:absolute}.chess-card-back{background:repeating-linear-gradient(45deg, var(--ink) 0 4px, #7667a6 4px 8px);top:18px;left:30px;transform:rotate(-12deg)}.chess-card-front{background:#f5f1e8;place-items:center;display:grid;top:30px;right:24px;transform:rotate(8deg);box-shadow:10px 12px #39295e2e}.chess-card-front span{font-size:4.8rem}.chess-card-front small{font:700 1rem Georgia,serif;position:absolute;top:10px;left:12px}.chess-grid{opacity:.25;background-image:linear-gradient(90deg, var(--ink) 1px, transparent 1px), linear-gradient(var(--ink) 1px, transparent 1px);background-size:21px 21px;width:84px;height:84px;position:absolute;bottom:-27px;right:-32px}.project-content{flex-direction:column;flex:1;padding:28px 28px 25px;display:flex}.project-category{color:#7b847f;margin-bottom:12px}.project-content h3{margin-bottom:15px;font-size:2rem;line-height:1}.project-description{color:var(--muted);margin-bottom:24px;font-size:.94rem;line-height:1.65}.technology-list{flex-wrap:wrap;gap:7px;margin:auto 0 23px;padding:0;list-style:none;display:flex}.technology-list li{border:1px solid var(--line);border-radius:999px;padding:6px 10px;font-size:.68rem;font-weight:600}.project-links{border-top:1px solid var(--line);flex-wrap:wrap;gap:18px;min-height:28px;padding-top:20px;display:flex}.project-link{align-items:center;gap:8px;font-size:.78rem;font-weight:700;display:inline-flex}.project-link:hover{text-underline-offset:4px;text-decoration:underline}.project-link svg{fill:none;stroke:currentColor;stroke-width:1.6px;width:17px;height:17px}.project-link svg path[d^=M12]{fill:currentColor;stroke:none}.link-pending{color:#778079;font-size:.76rem;font-weight:600}.about-section{border-top:1px solid var(--line);padding:112px 0 120px}.about-grid{grid-template-columns:1.25fr .75fr;gap:100px;margin-top:38px;display:grid}.about-copy{padding-top:10px}.about-copy p{color:var(--muted);font-size:1.05rem;line-height:1.8}.about-copy a{align-items:center;gap:12px;margin-top:16px;font-weight:700;display:inline-flex}.contact-links{flex-wrap:wrap;gap:28px;display:flex}footer{border-top:1px solid var(--line);color:#6f7972;grid-template-columns:1fr auto 1fr;align-items:center;gap:25px;min-height:130px;font-size:.78rem;display:grid}footer p{margin:0}.footer-copy{justify-items:center;gap:8px;display:grid}.footer-copy nav{flex-wrap:wrap;justify-content:center;gap:18px;display:flex}.footer-copy a{color:var(--ink);font-weight:600}.footer-copy a:hover{text-underline-offset:3px;text-decoration:underline}.footer-year{text-align:right}@media (width<=980px){.hero{grid-template-columns:1fr;padding-bottom:80px}.hero-art{display:none}.projects-grid{grid-template-columns:1fr 1fr}.project-card:last-child{grid-column:1/-1}.about-grid{gap:55px}}@media (width<=700px){.site-header,main,footer{width:min(100% - 32px,1200px)}.site-header{height:76px}.site-header nav{display:none}.hero{min-height:0;padding:72px 0 84px}h1{font-size:clamp(3rem,14vw,4.4rem)}.section-heading,.about-grid{grid-template-columns:1fr}.section-heading{gap:18px}.projects-section,.about-section{padding:82px 0 90px}.projects-grid{grid-template-columns:1fr}.project-card:last-child{grid-column:auto}.project-visual{height:260px}.about-grid{gap:30px}footer{grid-template-columns:auto 1fr;min-height:160px}.footer-copy{grid-area:2/1/auto/-1}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important}}
