:root{ --ink:#0b0b0c; --paper:#fbfaf7; --warm:#f2efe7; --warm2:#ebe6da; --line: rgba(11,11,12,.08); --shadow: 0 18px 48px rgba(11,11,12,.10); --shadow2: 0 10px 26px rgba(11,11,12,.10); --radius: 28px; } html, body { height: 100%; } body { font-family: 'Inter', sans-serif; background: var(--paper); color: var(--ink); } /* page routing */ .page.hidden { display: none; } /* warm glass cards */ .panel { border: 1px solid var(--line); border-radius: var(--radius); background: rgba(255,255,255,.70); box-shadow: var(--shadow2); backdrop-filter: blur(10px); } .panel-strong { border: 1px solid var(--line); border-radius: var(--radius); background: rgba(255,255,255,.92); box-shadow: var(--shadow); } .chip { border: 1px solid var(--line); border-radius: 999px; background: rgba(255,255,255,.75); } .softline { border-color: var(--line); } /* hero background */ .bg-warm { background: radial-gradient(1200px 520px at 20% 15%, rgba(243,236,223,.95), rgba(251,250,247,0) 60%), radial-gradient(900px 520px at 85% 20%, rgba(236,232,219,.9), rgba(251,250,247,0) 55%), radial-gradient(900px 520px at 55% 90%, rgba(241,238,230,.9), rgba(251,250,247,0) 60%), var(--paper); } /* subtle motion */ .fade { transition: opacity .18s ease, transform .18s ease; } .hoverlift { transition: transform .18s ease, box-shadow .18s ease; } .hoverlift:hover { transform: translateY(-2px); box-shadow: var(--shadow); } /* nav active state */ .navlink.active { font-weight: 700; } /* mobile menu */ .drawer.hidden { display:none; } /* details */ details[open] summary { font-weight: 700; } summary { cursor: pointer; } summary::-webkit-details-marker { display:none; } /* input focus */ .chip:focus-within { outline: 2px solid var(--ink); outline-offset: 2px; }