:root{--bg:#fff;--fg:#000;--fg-muted:#00000080;--placeholder:#e9e9e7;--stroke:#0000000d;--page-pad:24px;--max-w:1280px;--edge:max(var(--page-pad), calc((100% - var(--max-w)) / 2 + var(--page-pad)));--gap:8px;--radius:8px;--row-h:clamp(200px, 27vh, 330px);--font:"Inter", -apple-system, system-ui, "Helvetica Neue", Helvetica, Arial, sans-serif;--ease:cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--fg);font-family:var(--font);font-feature-settings:"ss01", "cv11";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:.9rem;line-height:1.2;overflow-x:hidden}a{color:inherit;text-decoration:none}.site-header{padding:20px var(--edge)}.site-name{color:#000000e6}.projects{padding:clamp(120px,22vh,240px) 0 24px}body[data-page=work] .projects{padding-bottom:96px}.project{padding:0 0 64px}.project__head{padding:0 var(--edge) 14px;cursor:default;flex-wrap:wrap;align-items:baseline;gap:6px 18px;display:flex}.project__scroller{gap:var(--gap);padding:0 var(--edge);cursor:grab;-webkit-user-select:none;user-select:none;scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior-x:contain;display:flex;overflow:auto hidden}.project__scroller::-webkit-scrollbar{display:none}.project__scroller.is-dragging{cursor:grabbing;scroll-behavior:auto}.project__title{flex:none;margin:0;font-size:.8rem;font-weight:400;line-height:1.2}.project__more{font:inherit;color:var(--fg-muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;margin-left:auto;padding:0;font-size:.7rem}.project__more:hover{color:var(--fg)}.project__more:after{content:"↗";margin-left:.3em}.project__dot{color:#00000047;padding:0 .35em}.project__tagline{color:var(--fg-muted)}.project__credits{flex-wrap:wrap;align-items:baseline;gap:5px 8px;margin:0;font-size:.7rem;line-height:1.4;display:flex}.project__credits-label{color:var(--fg-muted);white-space:nowrap}.project__credits-list{flex-wrap:wrap;gap:4px;margin:0;padding:0;list-style:none;display:flex}.project__credit-pill{color:var(--fg);white-space:nowrap;background:#00000004;border:1px solid #0000001f;border-radius:999px;align-items:center;gap:.3em;max-width:100%;padding:2px 9px;text-decoration:none;display:inline-flex}a.project__credit-pill{transition:border-color .15s,background .15s}a.project__credit-pill:hover{background:#0000000b;border-color:#00000052}.project__credit-name{color:var(--fg)}.project__credit-pill.has-role{cursor:help}a.project__credit-pill:after{content:"↗";color:var(--fg-muted);margin-left:.05em;font-size:.85em}.frame{height:var(--row-h);aspect-ratio:var(--ar,1);border-radius:var(--radius);background:var(--placeholder);isolation:isolate;flex:none;position:relative;overflow:hidden}.frame:after{content:"";border-radius:inherit;box-shadow:inset 0 0 0 1px var(--stroke);pointer-events:none;position:absolute;inset:0}.frame>img,.frame>video{object-fit:cover;-webkit-user-drag:none;-webkit-user-select:none;user-select:none;pointer-events:auto;width:100%;height:100%;display:block}.frame>img{opacity:0;transition:opacity .4s}.frame>img.is-loaded{opacity:1}.frame--video{cursor:ew-resize}@media (width<=720px){:root{--page-pad:16px;--row-h:clamp(180px, 30vh, 260px)}.project{padding-bottom:44px}}@media (prefers-reduced-motion:reduce){.frame>img{transition:none}}.projects__error{padding:0 var(--edge);color:var(--fg-muted)}@media (prefers-reduced-motion:no-preference){.js .reveal{opacity:0}.js .reveal--rise{transform:translateY(8px)}.js .reveal.is-in{opacity:1;transition:opacity .8s var(--ease) var(--delay,0s), transform .8s var(--ease) var(--delay,0s);transform:none}}.more{padding:0 var(--edge)}.more__link{letter-spacing:-.004em;background:#00000004;border:1px solid #00000024;border-radius:999px;align-items:center;gap:.6em;padding:9px 17px;font-size:.9rem;transition:border-color .15s,background .15s;display:inline-flex}.more__link:after{content:"→";color:var(--fg-muted);transition:transform .15s}.more__link:hover:after{transform:translate(2px)}.more__link:hover{background:#0000000b;border-color:#00000052}.more__count{color:var(--fg-muted)}.features{padding:128px var(--edge)}.features:empty{display:none}.features__heading{letter-spacing:-.017em;text-wrap:pretty;max-width:34ch;margin:0 0 68px;font-size:clamp(1.35rem,2.2vw,1.9rem);font-weight:500;line-height:1.3}.features__lead{color:var(--fg)}.features__rest{color:#0006}.features__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:64px 44px;margin:0;padding:0;list-style:none;display:grid}.feature{flex-direction:column;align-items:flex-start;display:flex}.feature__icon{width:28px;height:28px;color:var(--fg)}.feature__icon svg{width:100%;height:100%;display:block}.feature__body{letter-spacing:-.006em;text-wrap:pretty;margin:28px 0 0;font-size:1rem;line-height:1.55}.feature__title{color:var(--fg);font-weight:500}.feature__desc{color:#0000005c}.feature__badge{color:#cf5316;letter-spacing:.07em;text-transform:uppercase;background:#d6541a0f;border:1px solid #d6541a59;border-radius:999px;margin-top:14px;padding:3px 8px 2px;font-size:.62rem}.tooltip{z-index:50;color:#fff;pointer-events:none;opacity:0;background:#111;border-radius:6px;max-width:260px;padding:5px 9px;font-size:.75rem;line-height:1.35;transition:opacity .12s;position:fixed;top:0;left:0}.tooltip.is-visible{opacity:1}@media (width<=1100px){.features__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.features{padding:88px var(--edge)}.features__heading{margin-bottom:48px}.features__grid{grid-template-columns:minmax(0,1fr);gap:40px}}html.is-modal-open,html.is-modal-open body{overflow:hidden}.modal{z-index:60;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal[hidden]{display:none}.modal__backdrop{opacity:0;background:#00000040;transition:opacity .2s;position:absolute;inset:0}.modal__panel{opacity:0;width:min(560px,100%);max-height:min(80vh,720px);transition:opacity .2s var(--ease), transform .26s var(--ease);background:#fff;border-radius:14px;padding:34px 34px 32px;position:relative;overflow-y:auto;transform:translateY(10px);box-shadow:0 24px 80px #0003}.modal.is-open .modal__backdrop{opacity:1}.modal.is-open .modal__panel{opacity:1;transform:none}.modal__close{width:30px;height:30px;color:var(--fg-muted);cursor:pointer;background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;font-size:19px;line-height:1;display:flex;position:absolute;top:12px;right:12px}.modal__close:hover{color:var(--fg);background:#0000000f}.modal__head{letter-spacing:-.012em;margin:0;padding-right:30px;font-size:1.05rem;font-weight:500;line-height:1.35}.modal__tagline{color:var(--fg-muted);font-weight:400}.modal__text{letter-spacing:-.004em;color:#000000b8;white-space:pre-line;text-wrap:pretty;margin:18px 0 0;font-size:1rem;line-height:1.6}.modal__credits{border-top:1px solid #00000014;margin:26px 0 0;padding-top:20px}.modal__credits-label{color:var(--fg-muted);margin-bottom:10px;font-size:.75rem;display:block}.modal__credit-list{flex-direction:column;gap:7px;margin:0;padding:0;font-size:.9rem;list-style:none;display:flex}.modal__credit{flex-wrap:wrap;align-items:baseline;display:flex}a.modal__credit-name:hover{text-underline-offset:.15em;text-decoration:underline}a.modal__credit-name:after{content:"↗";color:var(--fg-muted);margin-left:.2em;font-size:.85em}.modal__credit-role{color:var(--fg-muted)}.modal__credit-role:before{content:"·";color:#00000047;padding:0 .4em}@media (width<=720px){.modal{padding:16px}.modal__panel{padding:28px 22px 24px}}:root{--panel:#fff;--muted:#00000073;--line:#00000014;--accent:#000;--danger:#c2340f;--ui-radius:6px}html,body,#root{height:100%}button,input,textarea{font:inherit;color:inherit}input::placeholder{color:#0000004d}.muted{color:var(--muted)}.small{font-size:12px}.danger{color:var(--danger)}.stack{flex-direction:column;gap:12px;display:flex}.screen{min-height:100%;padding:24px}.screen--center{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex}.btn{border:1px solid var(--line);background:var(--panel);cursor:pointer;border-radius:999px;padding:8px 14px}.btn:hover{border-color:#00000040}.btn--primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn--small{padding:4px 10px;font-size:12px}.btn:disabled{opacity:.5;cursor:default}.link{cursor:pointer;color:inherit;background:0 0;border:0;padding:0;text-decoration:none}.link:hover{text-decoration:underline}.field{text-align:left;flex-direction:column;gap:6px;display:flex}.field>span{color:var(--muted);font-size:12px}.field input{border:1px solid var(--line);background:var(--panel);border-radius:var(--ui-radius);outline:none;width:100%;padding:9px 11px}.field input:focus{border-color:#0006}.alert{border:1px solid var(--line);border-radius:var(--ui-radius);background:#fff;padding:10px 12px}.alert--error{color:var(--danger);border-color:#c2340f4d}.popover{z-index:30;background:var(--panel);border:1px solid var(--line);text-align:left;border-radius:10px;flex-direction:column;gap:12px;min-width:220px;padding:14px;display:flex;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 8px 30px #00000014}.popover--right{left:auto;right:0}.login{text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:14px;width:min(340px,100%);padding:28px;display:flex}.login__title{margin:0;font-size:14px;font-weight:500}.switch{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;display:inline-flex}.switch input{opacity:0;width:0;height:0;position:absolute}.switch__track{background:#0000002e;border-radius:999px;width:26px;height:16px;transition:background .15s;position:relative}.switch__track:after{content:"";background:#fff;border-radius:50%;width:12px;height:12px;transition:transform .15s;position:absolute;top:2px;left:2px}.switch input:checked+.switch__track{background:var(--accent)}.switch input:checked+.switch__track:after{transform:translate(10px)}.switch__label{color:var(--muted)}.topbar{z-index:20;padding:16px var(--page-pad);background:var(--bg);align-items:center;gap:20px;display:flex;position:sticky;top:0}.topbar__brand{color:#000000e6}.topbar__status{color:var(--muted);flex:1}.topbar__status.is-error{color:var(--danger)}.account{position:relative}.editor .projects{padding:48px 0 160px}.editor .project{padding-bottom:44px;position:relative}.editor .project.is-draft .project__head,.editor .project.is-draft .project__scroller{opacity:.55}.row-tools{top:-26px;left:var(--edge);height:22px;color:var(--muted);opacity:0;align-items:center;gap:14px;font-size:.75rem;transition:opacity .15s;display:flex;position:absolute}.editor .project:hover .row-tools,.editor .project:focus-within .row-tools,.editor .project.is-draft .row-tools{opacity:1}.rtool{cursor:pointer;color:var(--muted);background:0 0;border:0;padding:0}.rtool:hover{color:var(--fg)}.rtool--handle{cursor:grab;touch-action:none;display:inline-flex}.rtool--danger:hover{color:var(--danger)}.rtool-slug{color:#0000004d}.project-add{margin:8px var(--edge) 0;width:calc(100% - var(--edge) * 2);border-radius:var(--radius);color:var(--muted);cursor:pointer;background:0 0;border:1px dashed #0003;padding:18px 0;display:block}.project-add:hover{color:var(--fg);border-color:#00000080}.editable{cursor:text;border-radius:3px;outline:none;min-width:1ch}.editable:hover{background:#00000009;box-shadow:0 0 0 3px #00000009}.editable:focus{background:#fff;box-shadow:0 0 0 3px #fff,0 0 0 4px #0000001f}.editable:empty:before{content:attr(data-placeholder);color:#00000047;pointer-events:none}.project__description.editable{white-space:pre-wrap;min-height:1.35em}.project__credits{margin-top:12px}.project__credit{position:relative}.project__credit-pill{cursor:text;align-items:baseline}.project__credit-name.has-url:after{content:"↗";color:var(--fg-muted);margin-left:.2em;font-size:.85em}.project__credit-role>.editable{display:inline}.credit-tools{opacity:0;gap:2px;margin-left:6px;transition:opacity .15s;display:inline-flex}.project__credit:hover .credit-tools,.project__credit:focus-within .credit-tools{opacity:1}.ctool{cursor:pointer;color:var(--muted);background:0 0;border:0;padding:0 2px;font-size:.85em;line-height:1}.ctool:hover,.ctool.is-set{color:var(--fg)}.ctool--danger:hover{color:var(--danger)}.credit-panel{z-index:15;border:1px solid var(--line);background:#fff;border-radius:8px;flex-direction:column;align-items:flex-start;gap:6px;width:240px;padding:10px;display:flex;position:absolute;top:calc(100% + 5px);left:0;box-shadow:0 6px 24px #0000001c}.credit-field{border:1px solid var(--line);background:#fff;border-radius:5px;outline:none;width:100%;padding:6px 8px;font-size:.75rem}.credit-field:focus{border-color:#0006}.credit-add{cursor:pointer;color:#00000059;font-size:inherit;background:0 0;border:1px dashed #0000002e;border-radius:999px;align-items:center;padding:4px 11px;display:inline-flex}.credit-add:hover{color:var(--fg);border-color:#00000073}.frame__tools{z-index:2;opacity:0;justify-content:space-between;align-items:flex-start;transition:opacity .15s;display:flex;position:absolute;inset:6px 6px auto}.frame:hover .frame__tools,.frame:focus-within .frame__tools{opacity:1}.ftool-group{gap:4px;display:inline-flex}.ftool{color:var(--fg);cursor:pointer;background:#ffffffeb;border:0;border-radius:999px;padding:4px 9px;font-size:11px;line-height:1.2;box-shadow:0 1px 4px #0000001f}.ftool:hover,.ftool.is-active{background:#fff}.ftool--handle{cursor:grab;touch-action:none;align-items:center;padding:4px 6px;display:inline-flex}.ftool--danger{padding:4px 8px;font-size:13px}.ftool--danger:hover{color:var(--danger)}.frame__panel{z-index:2;background:#fffffff2;border-radius:6px;flex-direction:column;gap:4px;padding:6px;font-size:11px;display:flex;position:absolute;bottom:6px;left:6px;right:6px;box-shadow:0 1px 4px #0000001f}.frame__panel input{background:#0000000d;border:0;border-radius:4px;outline:none;padding:5px 7px;font-size:11px}.frame__meta{color:var(--muted);padding:0 2px}.frame.is-uploading>img,.frame.is-uploading>video{opacity:.6}.frame__progress{z-index:2;background:#00000014;height:2px;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.frame__progress:after{content:"";background:var(--fg);width:40%;animation:1.1s ease-in-out infinite slide;position:absolute;top:0;bottom:0}@keyframes slide{0%{left:-40%}to{left:100%}}.frame--add{width:calc(var(--row-h) * .5);aspect-ratio:auto;color:#0000004d;cursor:pointer;background:0 0;border:1px dashed #0003;justify-content:center;align-items:center;padding:0;font-size:28px;font-weight:300;display:flex}.frame--add:after{display:none}.frame--add:hover{color:var(--fg);border-color:#00000080}.dropcover{inset:-8px var(--edge) 36px;z-index:5;border:2px dashed var(--accent);pointer-events:none;background:#f8f8f7d9;border-radius:12px;justify-content:center;align-items:center;display:flex;position:absolute}.toast{z-index:40;color:#fff;background:#111;border-radius:999px;align-items:center;gap:16px;padding:10px 14px 10px 16px;font-size:13px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 8px 30px #0003}.toast__undo{color:#fff;cursor:pointer;background:#ffffff24;border:0;border-radius:999px;padding:5px 10px}.toast__undo:hover{background:#ffffff3d}@media (width<=720px){.row-tools{opacity:1;padding:0 var(--page-pad) 8px;flex-wrap:wrap;height:auto;position:static}.rtool-slug{display:none}.dropcover{inset:0 0 24px}}.editor .features{padding-bottom:160px}.features__heading .editable{display:inline}.feature{position:relative}.feature__head{justify-content:space-between;align-items:flex-start;width:100%;min-height:30px;display:flex}.feature-tools{opacity:0;gap:2px;transition:opacity .15s;display:inline-flex}.feature:hover .feature-tools,.feature:focus-within .feature-tools{opacity:1}.feature-tools .ctool{align-items:center;padding:2px 4px;font-size:.8rem;display:inline-flex}.feature__badge.editable:empty{color:#00000040;opacity:0;background:0 0;border-color:#0000;transition:opacity .15s}.feature:hover .feature__badge.editable:empty,.feature__badge.editable:focus{opacity:1}.feature--add{justify-content:center}.feature-add{border-radius:var(--radius);cursor:pointer;color:#00000059;background:0 0;border:1px dashed #0000002e;width:100%;padding:26px 0}.feature-add:hover{color:var(--fg);border-color:#00000073}.icon-picker{display:inline-flex;position:relative}.icon-picker__button{cursor:pointer;color:var(--fg);background:0 0;border:0;border-radius:5px;padding:0;transition:box-shadow .15s,background .15s;box-shadow:0 0 0 4px #0000}.icon-picker__button:hover{background:#0000000d;box-shadow:0 0 0 4px #0000000d}.icon-picker__button svg{width:100%;height:100%;display:block}.icon-picker__panel{z-index:15;border:1px solid var(--line);background:#fff;border-radius:10px;grid-template-columns:repeat(5,1fr);gap:2px;width:232px;padding:8px;display:grid;position:absolute;top:calc(100% + 8px);left:0;box-shadow:0 8px 30px #0000001f}.icon-picker__option{aspect-ratio:1;cursor:pointer;color:var(--fg);background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;padding:7px;display:flex}.icon-picker__option:hover{background:#0000000f}.icon-picker__option.is-active{background:#00000017}.icon-picker__option svg{width:100%;height:100%}.modal__head .editable,.modal__text.editable{display:inline}.modal__text.editable{white-space:pre-wrap;min-height:1.6em;display:block}.modal__note{color:var(--muted);margin:12px 0 0;font-size:11px}
