@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--bg:#101411;--panel:#191e1a;--line:#303830;--text:#f2f4ed;--muted:#a2aca2;--green:#c3f477;font-family:'DM Sans',sans-serif;background:var(--bg);color:var(--text)}*{box-sizing:border-box}body{margin:0}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--green);outline-offset:5px}.topbar{height:100px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 6vw}.brand{display:flex;align-items:center;font-family:'Space Grotesk',sans-serif;font-size:27px;font-weight:700;letter-spacing:-1px}.brandmark{background:var(--green);color:#182116;border-radius:10px;width:37px;height:37px;margin-right:12px;text-align:center;line-height:37px;position:relative}.brandmark span{font-size:19px}.brand-dot{color:var(--green)}.personal,.eyebrow,.shelf-note span:first-child{font-size:12px;letter-spacing:2px;font-weight:600}.personal{color:var(--muted);display:flex;gap:18px;align-items:center}.status-dot,.footer-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green)}main{max-width:1400px;margin:auto;padding:0 6vw}.intro{padding:75px 0 54px;display:flex;justify-content:space-between;align-items:flex-end}.eyebrow{color:var(--green);margin:0 0 20px}h1{font:500 clamp(38px,5vw,64px)/1.07 'Space Grotesk',sans-serif;letter-spacing:-3px;margin:0 0 22px}h1>span{color:var(--green)}.lede{color:var(--muted);line-height:1.7;font-size:16px;margin:0}.shelf-note{display:flex;flex-direction:column;gap:12px;text-align:right;color:var(--muted);padding-bottom:4px}.shelf-note span:last-child{font-size:14px}.toolbar{display:flex;gap:20px;align-items:center}.search{display:flex;align-items:center;gap:12px;background:var(--panel);border:1px solid var(--line);border-radius:10px;flex:1;padding:0 17px;height:56px}.search>span{font-size:28px;color:var(--muted)}.search input{border:0;background:none;outline:none;color:var(--text);width:100%;height:100%;min-width:0;font-size:15px}.search:focus-within{border-color:var(--green)}kbd{border:1px solid var(--line);border-radius:4px;padding:2px 7px;color:var(--muted)}.view-toggle{display:flex;border:1px solid var(--line);padding:5px;border-radius:10px;height:56px;gap:3px}.view-toggle button{border:0;background:none;color:var(--muted);width:44px;border-radius:5px;font-size:23px}.view-toggle button[aria-pressed=true]{background:#344030;color:var(--green)}.filter-row{display:flex;justify-content:space-between;align-items:center;margin:25px 0 27px;gap:16px}.filters{display:flex;gap:7px}.filters button{border:1px solid transparent;border-radius:6px;background:none;color:var(--muted);padding:9px 14px;font-size:14px}.filters button[aria-pressed=true]{background:var(--green);color:#182116;font-weight:600}#count{font-size:13px;color:var(--muted);white-space:nowrap}.projects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.card{border:1px solid var(--line);border-radius:14px;background:var(--panel);overflow:hidden;display:flex;flex-direction:column;transition:transform .2s,border-color .2s}.card:hover{transform:translateY(-4px);border-color:#687360}.art{height:190px;display:flex;align-items:center;justify-content:center;position:relative;background:var(--art-bg);color:var(--accent);overflow:hidden}.art:before{content:'';position:absolute;inset:0;background-image:radial-gradient(currentColor .65px,transparent .65px);background-size:17px 17px;opacity:.12}.icon{width:86px;height:86px;display:grid;place-items:center;border-radius:23px;border:1px solid currentColor;background:var(--art-bg);box-shadow:0 12px 30px #0003;transform:rotate(-7deg)}.icon svg{width:45px;height:45px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.art-label{position:absolute;bottom:15px;left:20px;font-size:11px;letter-spacing:2px;font-weight:600;opacity:.8}.card-content{padding:24px;flex:1;display:flex;flex-direction:column}.card-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.card h2{font:500 24px 'Space Grotesk',sans-serif;margin:0;letter-spacing:-.6px}.launch-arrow{font-size:23px;color:var(--muted)}.card p{color:var(--muted);font-size:14px;line-height:1.7;margin:12px 0 25px;flex:1}.card-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;color:var(--muted)}.tag{padding:5px 9px;border:1px solid var(--line);border-radius:5px}.card-type{display:flex;gap:6px;align-items:center}.projects.list{grid-template-columns:1fr}.list .card{flex-direction:row;align-items:stretch}.list .art{height:auto;width:125px;flex-shrink:0}.list .icon{width:60px;height:60px;border-radius:17px}.list .icon svg{width:32px;height:32px}.list .art-label{display:none}.list .card-content{padding:20px 24px}.list .card p{margin:7px 0 14px}.empty{text-align:center;padding:65px 20px;border:1px dashed var(--line);border-radius:12px;color:var(--muted)}.empty h2{color:var(--text)}.empty button{background:var(--green);color:#182116;padding:12px 20px;border:0;border-radius:6px}[hidden]{display:none!important}footer{display:flex;justify-content:space-between;gap:20px;margin:65px 0 28px;padding-top:24px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}.footer-dot{margin-right:7px;width:5px;height:5px}.footer-arrow{color:var(--green);margin-left:12px}@media(min-width:1600px){main{padding:0 70px}}@media(max-width:950px){.projects{grid-template-columns:repeat(2,minmax(0,1fr))}.shelf-note{display:none}.intro{padding-top:55px}}@media(max-width:600px){.topbar{height:78px}.personal{font-size:10px;letter-spacing:1px;gap:8px}.brand{font-size:23px}.brandmark{width:32px;height:32px;line-height:32px}.intro{padding:43px 0 32px}h1{letter-spacing:-2px}.eyebrow{font-size:10px;letter-spacing:1.5px}.lede{font-size:14px}.projects{grid-template-columns:1fr;gap:18px}.art{height:165px}.toolbar{gap:10px}.search{padding:0 12px}.search input{font-size:14px}kbd{display:none}.view-toggle button{width:34px}.filters{gap:2px}.filters button{padding:9px 10px;font-size:13px}.filter-row{gap:8px}#count{font-size:12px}.card-content{padding:21px}footer{margin-top:40px;flex-direction:column;gap:13px}.list .art{width:80px}.list .card-content{padding:16px}.list .card h2{font-size:21px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

main{padding-top:36px;padding-bottom:40px}

/* Daportal's transitions.dev motion scale lives in theme.css. */
.card{transition:transform var(--duration-fast) var(--ease-smooth-out),border-color var(--duration-quick) var(--ease-smooth-out)}
.filters button,.view-toggle button{transition:color var(--duration-quick) var(--ease-smooth-out)}
.view-toggle{--tab-fill:var(--soft)}
@media(prefers-reduced-motion:reduce){.card:hover{transform:none}.card,.filters button,.view-toggle button{transition:none}}
