:root{--accent: #e8551f;--accent-strong: #c8431a;--accent-tint: #f7e0d1;--accent-ink: #fff6ee;--teal: #0e6f70;--paper: #f5edda;--paper-2: #efe5cd;--surface: #fdf8ec;--surface-2: #ffffff;--line: #e7dcc1;--line-strong: #d6c9a8;--ink: #14343a;--ink-2: #4f5a5c;--ink-3: #8a908e;--font-display: "Fraunces", "Iowan Old Style", "Palatino Linotype", "Georgia", serif;--font-text: "Inter Tight", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--radius-tile: 22px;--radius-panel: 22px;--radius-pill: 999px;--radius-sm: 10px;--tile-min: 168px;--grid-gap: clamp(14px, 1.6vw, 22px);--page-max: 1180px;--page-pad: clamp(20px, 5vw, 64px);--shadow-1: 0 1px 0 rgba(20, 52, 58, .04), 0 1px 2px rgba(20, 52, 58, .06);--shadow-2: 0 6px 18px rgba(20, 52, 58, .1), 0 2px 6px rgba(20, 52, 58, .08);--shadow-pop: 0 18px 50px rgba(20, 52, 58, .18), 0 6px 16px rgba(20, 52, 58, .1);--tile-inner: inset 0 1px 0 rgba(255, 255, 255, .65), inset 0 0 0 1px rgba(20, 52, 58, .05);--ease: cubic-bezier(.22, .61, .36, 1);--ease-pop: cubic-bezier(.34, 1.4, .5, 1);--t-fast: .13s;--t-med: .22s;--focus: 0 0 0 2px var(--paper), 0 0 0 4px var(--accent);color-scheme:light}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{min-height:100dvh;background:var(--paper);color:var(--ink);font-family:var(--font-text);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;background-image:radial-gradient(rgba(20,52,58,.022) 1px,transparent 1px);background-size:4px 4px}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}:focus-visible{outline:none;box-shadow:var(--focus);border-radius:var(--radius-sm)}h1,h2,h3{font-family:var(--font-display);font-weight:540;letter-spacing:-.01em;line-height:1.05}.shell{width:100%;max-width:var(--page-max);margin-inline:auto;padding-inline:var(--page-pad)}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:12px;top:-60px;z-index:100;padding:10px 16px;border-radius:var(--radius-sm);background:var(--ink);color:var(--paper);transition:top var(--t-fast) var(--ease)}.skip-link:focus{top:12px}.site-header{position:relative;display:flex;justify-content:center;padding-block:clamp(18px,3vw,34px) clamp(4px,1vw,8px)}.brand{display:inline-flex}.brand__logo{height:clamp(98px,15vw,165px);width:auto}.brand__wordmark{font-family:var(--font-display);font-weight:600;font-size:clamp(40px,9vw,72px);letter-spacing:-.02em;color:var(--ink)}.header__nav{position:absolute;top:clamp(16px,2.2vw,26px);right:var(--page-pad);display:inline-flex;align-items:center;gap:6px}.ghost-btn{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:var(--radius-pill);font-size:.92rem;font-weight:500;color:var(--ink-2);border:1px solid transparent;transition:color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),background-color var(--t-fast) var(--ease)}.ghost-btn:hover{color:var(--ink);border-color:var(--line-strong);background:var(--surface)}.masthead{padding-block:clamp(4px,1vw,10px) clamp(14px,2.5vw,26px);margin-inline:auto;text-align:center}.masthead__tagline{font-family:var(--font-display);font-weight:380;font-size:clamp(1.04rem,3vw,1.82rem);white-space:nowrap;line-height:1.1;letter-spacing:-.015em;color:var(--ink)}.masthead__tagline em{font-style:italic;color:var(--accent)}.section{padding-block:clamp(14px,2vw,24px);border-top:1px solid var(--line)}.section__head{display:flex;align-items:baseline;gap:14px;margin-bottom:clamp(10px,1.4vw,16px)}.section__title{font-size:clamp(1.05rem,2.2vw,1.4rem);font-weight:560;letter-spacing:.005em}.section__kicker{margin-left:auto;font-size:.88rem;color:var(--ink-3);text-align:right}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--tile-min),1fr));gap:var(--grid-gap);list-style:none;padding:0;align-items:start}.card{position:relative;min-width:0}.card__square{position:relative;aspect-ratio:1 / 1;border-radius:var(--radius-tile);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-1),var(--tile-inner);overflow:hidden;transition:transform var(--t-fast) var(--ease),box-shadow var(--t-med) var(--ease),border-color var(--t-fast) var(--ease)}.card__link{position:absolute;inset:0;display:grid;place-items:center;padding:15%}.card__link:focus-visible{box-shadow:var(--focus);border-radius:var(--radius-tile)}.card__icon{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 4px 10px rgba(20,52,58,.12))}.card__fallback{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(150deg,color-mix(in oklab,var(--tile-hue, var(--accent)) 24%,var(--surface)),var(--surface) 78%)}.card__monogram{font-family:var(--font-display);font-weight:600;font-size:clamp(2.4rem,7vw,3.6rem);letter-spacing:-.03em;color:color-mix(in oklab,var(--tile-hue, var(--teal)) 70%,var(--ink));line-height:1;user-select:none}@media(hover:hover)and (pointer:fine){.card:not(.is-open) .card__square:hover{transform:translateY(-3px);box-shadow:var(--shadow-2),var(--tile-inner);border-color:var(--line-strong)}.card__square:after{content:"";position:absolute;left:0;bottom:0;height:2px;width:100%;transform:scaleX(0);transform-origin:left;background:var(--accent);opacity:0}.card.is-hovering:not(.is-open) .card__square:after{opacity:.9;transform:scaleX(1);transition:transform .5s linear,opacity var(--t-fast) var(--ease)}}.card__badge{position:absolute;top:10px;left:10px;display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 9px 0 7px;border-radius:var(--radius-pill);background:color-mix(in oklab,var(--surface) 82%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--line);box-shadow:var(--shadow-1);font-size:.68rem;font-weight:600;letter-spacing:.02em;color:var(--ink-2);pointer-events:none}.card__badge svg{width:13px;height:13px;flex:none}.card__badge[data-type=download]{color:var(--teal)}.card__badge[data-type=artifact]{color:var(--accent)}.card__info{position:absolute;bottom:10px;right:10px;width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:color-mix(in oklab,var(--surface) 80%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--line);box-shadow:var(--shadow-1);color:var(--ink-2);transition:transform var(--t-fast) var(--ease),background-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.card__info svg{width:16px;height:16px}.card__info:hover{background:var(--accent);color:var(--accent-ink);transform:scale(1.06)}.card.is-open .card__info{background:var(--accent);color:var(--accent-ink);border-color:transparent}.card__title{display:inline-block;margin-top:11px;padding-inline:2px;font-size:.96rem;font-weight:540;letter-spacing:-.005em;color:var(--ink);transition:color var(--t-fast) var(--ease)}.card__title:hover{color:var(--accent)}.card__panel{display:none;position:relative}.card__panel[hidden]{display:none}@media(min-width:760px){.card.is-open{z-index:30}.card.is-open .card__square{box-shadow:var(--shadow-pop),var(--tile-inner);border-color:var(--line-strong);border-top-right-radius:0;border-bottom-right-radius:0}.card.is-open.expand-left .card__square{border-radius:var(--radius-tile);border-top-left-radius:0;border-bottom-left-radius:0}.card.is-open .card__panel{display:flex;position:absolute;top:0;left:100%;width:calc(200% + var(--grid-gap));height:var(--panel-h, 100%);flex-direction:column;justify-content:center;gap:8px;padding:clamp(16px,1.6vw,24px);background:var(--surface-2);border:1px solid var(--line-strong);border-left:none;border-radius:0 var(--radius-panel) var(--radius-panel) 0;box-shadow:var(--shadow-pop);transform-origin:left center;animation:reveal-right var(--t-med) var(--ease) both}.card.is-open.expand-left .card__panel{left:auto;right:100%;border:1px solid var(--line-strong);border-right:none;border-radius:var(--radius-panel) 0 0 var(--radius-panel);transform-origin:right center;animation-name:reveal-left}}@keyframes reveal-right{0%{-webkit-clip-path:inset(0 100% 0 0);clip-path:inset(0 100% 0 0);opacity:.4}to{-webkit-clip-path:inset(0 0 0 0);clip-path:inset(0 0 0 0);opacity:1}}@keyframes reveal-left{0%{-webkit-clip-path:inset(0 0 0 100%);clip-path:inset(0 0 0 100%);opacity:.4}to{-webkit-clip-path:inset(0 0 0 0);clip-path:inset(0 0 0 0);opacity:1}}@keyframes panel-in{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:translate(0)}}.panel__type{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.panel__type svg{width:14px;height:14px}.panel__title{font-size:clamp(1.3rem,2.4vw,1.7rem);font-weight:560}.panel__blurb{color:var(--ink-2);font-size:.98rem;line-height:1.55}.panel__meta{font-size:.82rem;color:var(--ink-3);font-variant-numeric:tabular-nums}.panel__cta{display:inline-flex;align-items:center;gap:7px;align-self:flex-start;margin-top:2px;padding:8px 15px;border-radius:var(--radius-pill);background:var(--accent);color:var(--accent-ink);font-weight:560;font-size:.86rem;box-shadow:var(--shadow-1);transition:background-color var(--t-fast) var(--ease),transform var(--t-fast) var(--ease)}.panel__cta svg{width:14px;height:14px;transition:transform var(--t-fast) var(--ease)}.panel__cta:hover{background:var(--accent-strong)}.panel__cta:hover svg{transform:translate(3px)}.panel__close{position:absolute;top:12px;right:12px;width:30px;height:30px;display:none;place-items:center;border-radius:50%;color:var(--ink-2);border:1px solid var(--line);background:var(--surface)}.panel__close svg{width:16px;height:16px}.card.is-open .panel__close{display:grid}.site-footer{margin-top:clamp(40px,6vw,80px);padding-block:clamp(28px,4vw,44px);border-top:1px solid var(--line);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;color:var(--ink-3);font-size:.88rem}.site-footer a,.site-footer .reset-link{color:var(--ink-2);border-bottom:1px solid transparent;transition:border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.site-footer a:hover,.site-footer .reset-link:hover{color:var(--accent);border-color:currentColor}.footer__links{display:inline-flex;gap:18px}.about-dialog{position:fixed;inset:0;margin:auto;width:min(540px,92vw);border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface);color:var(--ink);padding:0;box-shadow:var(--shadow-pop)}.about-dialog::backdrop{background:#14343a6b;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.about-dialog__body{padding:clamp(24px,4vw,36px)}.about-dialog__title{font-size:1.6rem;margin-bottom:12px}.about-dialog__text{color:var(--ink-2);line-height:1.6;margin-bottom:20px}.about-dialog__contact{display:flex;flex-direction:column;gap:6px;font-size:.94rem}.about-dialog__contact a{color:var(--accent);font-weight:540}.about-dialog__close{position:absolute;top:14px;right:14px;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--line);background:var(--surface-2);color:var(--ink-2)}.about-dialog__close svg{width:18px;height:18px}@media(max-width:759px){.grid{grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:minmax(min(64vw,230px),1fr);gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--page-pad);margin-inline:calc(var(--page-pad) * -1);padding-inline:var(--page-pad);padding-block:6px 14px;scrollbar-width:none}.grid::-webkit-scrollbar{display:none}.card{scroll-snap-align:start}.card.is-open{grid-column:auto}.card__panel{position:fixed;left:0;right:0;bottom:0;z-index:60;max-height:82dvh;overflow-y:auto;flex-direction:column;gap:14px;padding:26px clamp(20px,6vw,28px) calc(26px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);border-radius:22px 22px 0 0;box-shadow:var(--shadow-pop)}.card__panel.is-sheet{display:flex;animation:sheet-in var(--t-med) var(--ease-pop) both}.card__panel.is-sheet .panel__close{display:grid}.panel__cta{align-self:stretch;justify-content:center;padding-block:14px}.sheet-scrim{position:fixed;inset:0;z-index:55;background:#14343a66;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;animation:fade-in var(--t-med) var(--ease) forwards}.section__kicker{display:none}}@keyframes sheet-in{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes fade-in{to{opacity:1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.card.is-hovering .card__square:after{display:none}}
