@import './fonts.css';
@import './tokens.css';
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font-body);line-height:1.5}button{font:inherit}a{color:inherit}button,a{touch-action:manipulation}a:focus-visible,button:focus-visible{outline:3px dashed var(--fg);outline-offset:6px}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.04em;line-height:1.15}h1{font-size:clamp(36px,3vw,48px);font-weight:800;margin:0 0 28px}h2{margin:0}.page{min-height:100vh;display:flex;flex-direction:column}.shell{width:92%;max-width:3360px;margin-inline:auto}.header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:32px 0}.brand{display:flex;align-items:center;gap:16px;text-decoration:none;font-family:var(--font-display);font-size:22px;font-weight:800}.brand-icon{width:40px;height:40px;background:white;border:var(--border);border-radius:8px;box-shadow:var(--shadow-sm);display:grid;place-items:center}.brand-icon img{width:20px;height:20px}.nav-link{font-weight:700;text-underline-offset:5px;min-height:44px;display:flex;align-items:center}.main{flex:1;padding:20px 0 32px}.app-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:28px}.app-card{display:grid;grid-template-columns:80px minmax(0,1fr);align-items:center;gap:22px 20px;padding:24px;border:var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-lg);min-width:0}.icon-tile{width:80px;height:80px;border:var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);background:var(--app-color);display:grid;place-items:center}.icon-tile img{width:64px;height:64px;object-fit:contain}.app-name{font-size:clamp(24px,1.6vw,36px);font-weight:700;overflow-wrap:anywhere}.app-action{grid-column:1/-1}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--app-color,var(--mustard));color:var(--ink);font-size:18px;font-weight:700;line-height:1.5;min-height:56px;padding:12px 16px;border:var(--border);border-radius:999px;box-shadow:var(--shadow-sm);cursor:pointer;text-decoration:none;transition:transform .15s,box-shadow .15s}.app-card .button{width:100%}.button img{width:20px;height:20px}.tone-violet{color:white}.tone-violet img{filter:invert(1)}.button:hover:not(:disabled){transform:translate(2px,2px);box-shadow:3px 3px 0 var(--fg)}.button:active:not(:disabled){transform:translate(4px,4px);box-shadow:1px 1px 0 var(--fg)}.button:disabled{opacity:.55;cursor:not-allowed}.footer{padding:32px 0;text-align:center;font-size:14px;color:var(--fg)}.skip{position:absolute;top:-100px;left:20px;z-index:10;padding:12px;background:var(--surface);color:var(--fg)}.skip:focus{top:12px}.notice{position:fixed;z-index:100;bottom:24px;left:50%;transform:translateX(-50%);width:min(92%,640px);background:var(--fg);color:var(--bg);padding:16px 20px;border:3px solid var(--fg);border-radius:16px;box-shadow:5px 5px 0 var(--teal);display:flex;align-items:center;gap:16px}.notice[hidden]{display:none}.notice button{margin-left:auto;min-width:44px;min-height:44px;border:2px solid currentColor;border-radius:8px;background:transparent;color:inherit;cursor:pointer}.notice button:focus-visible{outline-color:currentColor}.gallery-section{margin:0 0 48px;scroll-margin-top:24px}.gallery-section>h2{font-size:32px;margin-bottom:20px}.gallery-nav{display:flex;flex-wrap:wrap;gap:16px;margin:0 0 32px}.gallery-nav a{padding:8px 0;font-weight:700}.swatches{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:20px}.swatch{border:var(--border);border-radius:16px;overflow:hidden;background:var(--surface)}.swatch-color{height:100px;background:var(--swatch)}.swatch-body{padding:12px}.swatch button{border:0;background:none;text-decoration:underline;cursor:pointer;font:inherit;min-height:44px;color:var(--fg)}.specimen{border:var(--border);border-radius:22px;padding:24px;background:var(--surface);box-shadow:var(--shadow-sm);min-width:0}.samples{display:flex;flex-wrap:wrap;gap:20px;align-items:center}.code{font-family:monospace;overflow-wrap:anywhere}.muted{max-width:80ch}.state-hover{transform:translate(2px,2px);box-shadow:3px 3px 0 var(--fg)}.state-focus{outline:3px dashed var(--fg);outline-offset:6px}.icon-gallery{display:flex;flex-wrap:wrap;gap:28px}.icon-gallery figure{margin:0;display:grid;gap:12px;justify-items:center}.icon-gallery figcaption{font-weight:700}small{font-size:14px}.header-actions{display:flex;align-items:center;gap:16px}.appearance{position:relative}.appearance summary{list-style:none;width:44px;height:44px;background:white;border:var(--border);border-radius:8px;box-shadow:var(--shadow-sm);display:grid;place-items:center;cursor:pointer;transition:transform .15s,box-shadow .15s}.appearance summary::-webkit-details-marker{display:none}.appearance summary img{width:20px;height:20px}.appearance summary:active,.appearance[open] summary{transform:translate(3px,3px);box-shadow:2px 2px 0 var(--fg)}.appearance-panel{position:absolute;right:0;top:calc(100% + 14px);z-index:30;width:min(320px,88vw);display:grid;gap:16px;padding:18px;background:var(--surface);color:var(--fg);border:var(--border);border-radius:16px;box-shadow:var(--shadow-sm)}.appearance fieldset{border:0;margin:0;padding:0;display:grid;gap:8px;min-width:0}.appearance legend{padding:0;margin-bottom:8px;font-family:var(--font-display);font-weight:700;font-size:16px}.seg{display:flex;flex-wrap:wrap;gap:8px}.seg button{flex:1;min-height:44px;padding:0 12px;border:3px solid var(--fg);border-radius:999px;background:transparent;color:var(--fg);font-weight:700;cursor:pointer}.seg button[aria-pressed=true]{background:var(--mustard);color:var(--ink);box-shadow:3px 3px 0 var(--fg)}
@media(min-width:700px){.app-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1100px){.app-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,1.5vw,36px)}.app-card{grid-template-columns:96px minmax(0,1fr);padding:clamp(24px,1.4vw,36px)}.icon-tile{width:96px;height:96px}.icon-tile img{width:76px;height:76px}}
@media(max-width:460px){.header{align-items:flex-start}.nav-link{font-size:14px}.app-card{gap:20px 16px}.notice{bottom:12px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
