@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700;750;800&family=JetBrains+Mono:wght@400;500&display=swap');
:root{color-scheme:dark;--bg:#0b0b0e;--surface:#131316;--text:#f3f2f4;--muted:#93919d;--line:#2b2a30;--accent:#ff8055;font-family:'DM Sans',Arial,sans-serif;font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--text);font-size:16px;line-height:1.6}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid #c5a7ff;outline-offset:5px}::selection{background:#bc98fa;color:#08080a}.mono,.eyebrow,kbd{font-family:'JetBrains Mono',monospace}.site-header{height:100px;margin:0 5%;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;position:relative;z-index:2}.brand{display:flex;align-items:center;gap:14px;font-size:21px;font-weight:700;letter-spacing:-.8px}.brand-mark{background:#f3f2f4;color:#111117;display:grid;align-content:center;width:43px;height:43px;line-height:1;position:relative;font-size:25px;padding-left:7px;letter-spacing:-2px}.brand-mark span{position:absolute;bottom:3px;right:6px;color:#111}.brand-last{font-weight:450}.brand-dot{color:var(--accent)}nav{display:flex;align-items:center;gap:35px;font-size:14px}nav>a{color:#c9c7cf;transition:color .2s}nav>a:hover{color:#fff}.search-trigger{display:flex;align-items:center;gap:10px;background:none;color:#bcbac4;border:1px solid #3a3942;border-radius:6px;padding:8px 10px}.search-trigger svg{width:17px;height:17px}.search-trigger kbd{font-size:12px;border:1px solid #373640;padding:0 4px;border-radius:3px;color:#918e9b;margin-left:12px}.hero{min-height:740px;position:relative;isolation:isolate;overflow:hidden;padding:74px 5% 0}.hero-content{position:relative;z-index:1;max-width:850px}.eyebrow{font-size:12px;font-weight:400;letter-spacing:1.3px;line-height:1.6;margin:0 0 28px}.hero .eyebrow{color:#c4bdcf;display:flex;align-items:center;gap:10px}.tiny-cross{font-size:21px;color:#d8b4ff}.hero h1{font-size:clamp(58px,6.55vw,104px);line-height:1.05;font-weight:550;letter-spacing:-5.5px;margin:0 0 28px}.wonderful{background:linear-gradient(90deg,#ffa679 0%,#ff736f 45%,#bb8df7 95%);background-clip:text;color:transparent}.hero-description{font-size:18px;line-height:1.7;color:#aeabb8;margin:0 0 30px;max-width:460px}.button{display:inline-flex;justify-content:center;align-items:center;gap:40px;min-height:52px;border-radius:4px;font-size:14px;font-weight:600;padding:12px 23px;transition:transform .2s,background .2s}.button:hover{transform:translateY(-3px)}.button-white{background:#f3f2f4;color:#161219}.button span{font-size:21px;line-height:1}.hero-art{position:absolute;width:62%;height:100%;right:-3%;top:-1%;z-index:-1;background:radial-gradient(ellipse at 60% 42%,#391a4044,transparent 60%);pointer-events:none}.hero-art.has-art{background-image:linear-gradient(90deg,var(--bg) 0%,transparent 28%),linear-gradient(0deg,var(--bg) 0%,transparent 20%),url('/assets/solar-wind-hero.webp');background-size:cover;background-position:center;animation:art-appear 1.4s ease both}.hero-bottom{margin-top:65px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:24px 0 26px;gap:20px;color:#898591}.hero-bottom .mono,.scroll-cue{font-size:11px;letter-spacing:.9px}.scroll-cue{display:flex;align-items:center;gap:20px;font-family:'JetBrains Mono',monospace}.scroll-cue span{font-size:20px}.section-wrap{padding-left:5%;padding-right:5%}.work{padding-top:98px;padding-bottom:100px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:42px}.section-label{color:#b0aaba;margin-bottom:17px}.section-label>span{color:#716b7d;padding-right:15px}h2{font-size:clamp(36px,4vw,62px);line-height:1.1;font-weight:500;letter-spacing:-2.5px;margin:0}.muted{color:#84818f}.section-heading>p{color:#a5a1b0;font-size:16px;margin:0 0 5px}.projects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}.project{scroll-margin-top:32px;min-width:0}.project-visual{height:320px;border-radius:5px;position:relative;overflow:hidden;padding:23px;color:#16101a;display:flex;flex-direction:column;justify-content:space-between;transition:transform .35s}.project:hover .project-visual{transform:translateY(-6px)}.project-index,.visual-caption{font-size:11px;letter-spacing:1px}.jokes-visual{background:#e8fb70}.jokes-type{font-size:clamp(45px,5.6vw,82px);line-height:.84;letter-spacing:-6px;font-weight:800;position:relative;align-self:center;transform:rotate(-8deg);padding-right:27px}.jokes-smile{position:absolute;font-size:70px;letter-spacing:-8px;right:-34px;bottom:-1px;transform:rotate(90deg)}.chaos-visual{background:#ad80f4}.chaos-type{position:relative;align-self:center;font-size:clamp(42px,5vw,73px);font-weight:800;letter-spacing:-5px;line-height:.86;transform:rotate(-8deg)}.chaos-type>span{display:block}.chaos-type>span:nth-child(2){transform:rotate(13deg);margin-left:18px}.chaos-type .chaos-star{position:absolute;font-size:110px;line-height:1;right:-16px;top:-60px;transform:rotate(20deg);font-weight:400;color:#f4e6ff;z-index:-1}.devprompt-visual{background:#f08f67}.devprompt-type{display:flex;flex-direction:column;align-items:center;gap:6px;font-family:'JetBrains Mono',monospace;font-size:30px;letter-spacing:-2px}.prompt-symbol{font-size:100px;line-height:.9;letter-spacing:-10px}.terminal-caret{display:inline-block;background:#251825;width:12px;height:29px;margin-left:4px;vertical-align:middle}.project-copy{padding:25px 0 0}.project-category{font-size:11px;letter-spacing:.8px;color:#918b9e;margin-bottom:9px}.project h3{font-size:26px;font-weight:500;letter-spacing:-1px;line-height:1.25;margin:0 0 12px}.project p{color:#a29daa;font-size:16px;line-height:1.65;margin:0;max-width:350px}.project details{margin-top:24px;padding-top:18px;border-top:1px solid var(--line);font-size:14px}.project summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center}.project summary::-webkit-details-marker{display:none}.project summary span{font-size:22px;transition:transform .2s}.project details[open] summary span{transform:rotate(90deg)}.project details p{font-size:14px;padding-top:15px}.about{display:grid;grid-template-columns:1.15fr 1fr;gap:90px;padding-top:100px;padding-bottom:105px;border-top:1px solid var(--line);background:#101014}.about h2{font-size:clamp(35px,3.4vw,52px);line-height:1.18;letter-spacing:-2px}.about-intro{font-size:24px;line-height:1.4;letter-spacing:-.5px;margin-top:40px;color:#aaa5b5}.about-body>p{margin:0 0 23px;color:#a8a2b3;font-size:17px}.about-body>p:first-child{font-size:24px;line-height:1.5;color:#eeeaf2;letter-spacing:-.5px}.personal-notes{display:flex;gap:60px;border-top:1px solid #302b36;margin-top:35px;padding-top:27px}.personal-notes>span{display:flex;flex-direction:column;gap:5px}.personal-notes b{font-size:42px;line-height:1.1;font-weight:500;color:#cba7ff}.personal-notes span span{font-size:13px;color:#8f879b}.closing{padding-top:90px;padding-bottom:100px;background:radial-gradient(ellipse at 80% 130%,#44223788,transparent 60%)}.closing .eyebrow{color:#b497c9;margin-bottom:22px}.closing h2{font-size:clamp(44px,5.5vw,78px);letter-spacing:-3.5px}.closing h2 span{color:#a383b3}.button-outline{border:1px solid #56505f;margin-top:35px;background:#ffffff04}.site-footer{margin:0 5%;border-top:1px solid var(--line);padding:33px 0;display:flex;align-items:center;gap:25px;justify-content:space-between}.footer-wordmark{font-size:18px;letter-spacing:-.7px;font-weight:600}.footer-wordmark span{color:var(--accent)}.site-footer p{font-size:12px;color:#8f899a;margin:0}.site-footer>.mono{font-size:10px;color:#8f899a;letter-spacing:.5px}.back-top{border:1px solid #39333f;width:38px;height:38px;display:grid;place-items:center;border-radius:50%}.skip-link{position:fixed;top:-100px;left:15px;background:#fff;color:#111;padding:12px;z-index:50}.skip-link:focus{top:15px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}dialog{background:#17151e;color:var(--text);border:1px solid #4e455d;border-radius:12px;max-width:620px;width:calc(100% - 32px);padding:24px;box-shadow:0 25px 100px #0009}dialog::backdrop{background:#050309c9;backdrop-filter:blur(8px)}.search-top{display:flex;align-items:center;gap:15px;justify-content:space-between;margin-bottom:20px}.search-top h2{font-size:24px;letter-spacing:-.7px}.search-close{border:none;background:none;color:#bfb6cd;font-size:20px;min-width:44px;min-height:44px}#search-input{width:100%;background:#0b0a10;border:1px solid #4b4259;border-radius:6px;padding:16px;color:#fff;font-size:16px}#search-count{font-size:12px;color:#a69ab8;margin:20px 0 12px}#search-results{list-style:none;padding:0;margin:0;max-height:48vh;overflow-y:auto}#search-results a{display:block;padding:14px 12px;border-radius:5px}#search-results a:hover,#search-results a:focus{background:#292132}#search-results strong{display:block;font-size:17px;font-weight:500}#search-results p{margin:3px 0 0;font-size:14px;color:#a99db7}.search-empty{padding:20px 0;color:#b6aac5}.search-footer{display:flex;justify-content:space-between;border-top:1px solid #38303f;padding-top:18px;margin-top:18px;font-size:10px;color:#8e809d;gap:20px}body.search-open{overflow:hidden}@keyframes art-appear{from{opacity:0;transform:scale(1.04)}to{opacity:1;transform:scale(1)}}
@media(min-width:1600px){.site-header,.site-footer{max-width:1440px;margin-left:auto;margin-right:auto}.section-wrap{padding-left:max(5%,calc((100% - 1440px)/2));padding-right:max(5%,calc((100% - 1440px)/2))}.hero{padding-left:max(5%,calc((100% - 1440px)/2));padding-right:max(5%,calc((100% - 1440px)/2))}.hero-art{right:0;width:58%}.project-visual{height:360px}}
@media(max-width:1050px){.hero h1{font-size:76px;letter-spacing:-4.5px}.hero-art{right:-20%;width:90%;opacity:.8}.hero-art.has-art{background-image:linear-gradient(90deg,var(--bg),#0b0b0e55 60%,transparent),linear-gradient(0deg,var(--bg),transparent 25%),url('/assets/solar-wind-hero.webp')}.projects{gap:18px}.project-visual{height:275px}.jokes-type{font-size:62px}.jokes-smile{font-size:58px;right:-19px}.chaos-type{font-size:56px}.devprompt-type{font-size:25px}.about{gap:45px}.personal-notes{gap:30px}.site-footer{flex-wrap:wrap}.site-footer>.mono{margin-left:auto}.site-footer p{display:none}}
@media(max-width:700px){html{scroll-padding-top:24px}.site-header{height:80px;margin:0 6%}.brand{font-size:18px;gap:9px}.brand-mark{width:34px;height:34px;font-size:21px}.brand-last{display:none}nav{gap:18px}nav>a{font-size:13px}.search-trigger{border:none;padding:7px;min-height:42px}.search-trigger svg{width:20px;height:20px}.search-trigger span,.search-trigger kbd{display:none}.hero{padding:52px 6% 0;min-height:auto}.hero .eyebrow{font-size:9px;letter-spacing:.8px;gap:7px;margin-bottom:25px}.hero h1{font-size:clamp(48px,10.7vw,74px);letter-spacing:-3px;line-height:1.06}.hero-description{font-size:16px;max-width:330px}.desktop-break{display:none}.hero-art{width:130%;height:550px;right:-55%;top:70px;opacity:.6}.hero-art.has-art{background-image:linear-gradient(90deg,var(--bg),#0b0b0e99 50%,#0b0b0e22),linear-gradient(0deg,var(--bg),transparent 40%),url('/assets/solar-wind-hero.webp')}.hero-bottom{margin-top:55px;padding-bottom:20px}.hero-bottom .mono{font-size:8px;letter-spacing:.45px;max-width:205px}.scroll-cue{font-size:0;gap:0}.scroll-cue span{font-size:22px}.section-wrap{padding-left:6%;padding-right:6%}.work{padding-top:62px;padding-bottom:65px}.section-heading{display:block;margin-bottom:30px}.section-heading>p{margin-top:18px;font-size:15px}.section-heading>p br{display:none}.section-label{font-size:10px;letter-spacing:.75px}.section-label>span{padding-right:8px}h2{font-size:40px;letter-spacing:-1.8px}.projects{grid-template-columns:1fr;gap:45px}.project-visual{height:330px;padding:25px}.jokes-type{font-size:94px}.jokes-smile{font-size:76px;right:-40px}.chaos-type{font-size:86px}.devprompt-type{font-size:36px}.prompt-symbol{font-size:120px}.project-copy{padding-top:21px}.project h3{font-size:27px}.project p{max-width:none}.project details{margin-top:19px}.about{grid-template-columns:1fr;gap:25px;padding-top:65px;padding-bottom:65px}.about h2{font-size:38px}.about-intro{font-size:22px;margin-top:25px}.about-body>p:first-child{font-size:22px}.about-body>p{font-size:16px}.personal-notes{gap:45px}.closing{padding-top:65px;padding-bottom:70px}.closing h2{font-size:46px;letter-spacing:-2px}.closing .eyebrow{font-size:10px}.button{gap:25px}.site-footer{margin:0 6%;gap:20px}.site-footer>.mono{font-size:9px;order:3;width:100%;margin:0}.back-top{margin-left:auto}.search-top h2{font-size:21px}.search-footer{font-size:9px}.search-footer>span:first-child{max-width:150px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

/* Tony’s personal motto */
.closing .life-motto{max-width:1200px;font-size:clamp(25px,4.25vw,64px);letter-spacing:-2px;line-height:1.4}.life-motto code{font-family:"JetBrains Mono",monospace;font-weight:400;overflow-wrap:anywhere}.closing .life-motto .code-keyword{color:#d6b0ff}.closing .life-motto .code-function{color:#ffac7f}.motto-caption{color:#b9afc4;font-size:18px;margin:22px 0 0}@media(max-width:700px){.closing .life-motto{font-size:clamp(24px,5.5vw,36px);letter-spacing:-1px}.motto-caption{font-size:16px}}

/* App Store screenshots are presented intact, with full-size image links. */
.project-visual{height:420px}.app-visual{padding:20px}.screenshot-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:center;height:330px}.screenshot-link{display:flex;justify-content:center;min-width:0;transition:transform .2s}.screenshot-link:hover{transform:translateY(-4px)}.screenshot-link img{display:block;width:auto;height:auto;max-width:100%;max-height:320px;border:1px solid #ffffff38;border-radius:15px;box-shadow:0 10px 24px #17102440}.screenshot-link:nth-child(2){transform:translateY(10px)}.screenshot-link:nth-child(2):hover{transform:translateY(6px)}.app-visual .project-index,.app-visual .visual-caption{font-size:10px;letter-spacing:.45px}.app-store-link{display:flex;justify-content:space-between;align-items:center;gap:16px;border-top:1px solid var(--line);padding:18px 0 0;margin-top:24px;font-size:14px}.app-store-link:hover{color:#d7baff}.app-store-link span{font-size:22px}@media(min-width:701px) and (max-width:1050px){.app-visual{padding:15px}.screenshot-pair{gap:8px}.project-visual{height:360px}.screenshot-pair{height:280px}.screenshot-link img{max-height:270px}.app-visual .visual-caption{font-size:9px}}@media(max-width:700px){.project-visual{height:420px}.app-visual{padding:22px}.screenshot-pair{gap:15px}.app-visual .project-index,.app-visual .visual-caption{font-size:11px}.jokes-visual{height:330px}}

/* The playable Lúcifer project. */
.legacy-project{display:grid;grid-template-columns:1.1fr 1fr;gap:60px;align-items:center;margin-top:65px;padding:45px 0 0;border-top:1px solid var(--line)}.legacy-copy h3{font-size:56px;line-height:1.1;font-weight:500;letter-spacing:-2px;margin:0 0 17px}.legacy-copy h3>span{color:#ff8780}.legacy-copy>p:not(.eyebrow){font-size:17px;line-height:1.65;color:#b3a6b4;max-width:560px;margin:0 0 24px}.legacy-button{background:#f3948b;color:#241015}.legacy-terminal{display:block;border:1px solid #71444f;border-radius:7px;background:#140e14;overflow:hidden;box-shadow:0 20px 50px #0003;transition:transform .2s}.legacy-terminal:hover{transform:translateY(-4px)}.legacy-terminal-bar,.legacy-terminal-foot{display:flex;justify-content:space-between;gap:20px;padding:15px 22px;font-size:11px;letter-spacing:.7px;color:#c69aa8}.legacy-terminal-bar{background:#281821;border-bottom:1px solid #50303b}.legacy-terminal-bar>span{color:#b38b99}.legacy-terminal-body{display:flex;flex-direction:column;gap:15px;padding:32px 25px 38px;font-size:15px;color:#dfcbd4}.legacy-command{color:#b38598;font-size:12px}.legacy-prompt{font-size:clamp(21px,2.3vw,32px);color:#ffaea0;line-height:1.4}.legacy-terminal-foot{border-top:1px solid #38212c;font-size:10px}.legacy-terminal-foot>span{color:#e2bacb}@media(max-width:700px){.legacy-project{grid-template-columns:1fr;gap:30px;margin-top:45px;padding-top:40px}.legacy-copy h3{font-size:47px}.legacy-copy>p:not(.eyebrow){font-size:16px}.legacy-terminal-body{padding:26px 20px;font-size:13px}.legacy-terminal-bar{font-size:10px}.legacy-prompt{font-size:26px}}

/* Vector arrows keep the same shape on desktop, Android, and iOS. */
.icon-arrow{display:inline-block;width:22px;height:22px;flex:0 0 22px;vertical-align:middle}.legacy-terminal-foot .icon-arrow{width:16px;height:16px}.project summary .icon-arrow{transition:transform .2s}.project details[open] summary .icon-arrow{transform:rotate(90deg)}
