:root{--bg:#f8f8f7;--fg:#000;--fg-muted:#00000080;--placeholder:#e9e9e7;--stroke:#0000000d;--page-pad:8px;--gap:8px;--radius:8px;--row-h:clamp(240px, 33vh, 400px);--text-col:clamp(240px, 24vw, 360px);--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:16px var(--page-pad)}.site-name{color:#000000e6}.projects{padding:clamp(120px,22vh,240px) 0 96px}.project{padding:0 0 24px}.project__scroller{gap:var(--gap);padding:0 var(--page-pad);cursor:grab;-webkit-user-select:none;user-select:none;scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior-x:contain;border-radius:var(--radius) 0 0 var(--radius);display:flex;overflow:auto hidden}.project__row{grid-template-columns:var(--text-col) minmax(0, 1fr);padding-left:var(--page-pad);align-items:start;display:grid}.project__row .project__scroller{padding-left:0}.project__scroller::-webkit-scrollbar{display:none}.project__scroller.is-dragging{cursor:grabbing;scroll-behavior:auto}.project__intro{height:var(--row-h);cursor:default;flex-direction:column;padding-right:24px;display:flex}.project__title{margin:0;font-size:.8rem;font-weight:400;line-height:1.2}.project__dot{color:#00000047;padding:0 .35em}.project__tagline{color:var(--fg-muted)}.project__description{letter-spacing:-.003em;color:#000000d9;text-wrap:pretty;white-space:pre-line;margin:14px 0 0;font-size:.95rem;line-height:1.35}.project__credits{margin:14px 0 0;padding:0;font-size:.8rem;line-height:1.5;list-style:none}.project__credit-name{color:var(--fg)}a.project__credit-name:hover{text-underline-offset:.15em;text-decoration:underline}a.project__credit-name:after{content:"↗";color:var(--fg-muted);margin-left:.2em;font-size:.85em}.project__credit-role{color:var(--fg-muted)}.project__credit-role:before{content:"·";color:#00000047;padding:0 .35em}.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{--row-h:clamp(200px, 36vh, 320px)}.project__row{grid-template-columns:minmax(0,1fr);padding-left:0}.project__intro{height:auto;padding:0 var(--page-pad) 12px}.project__row .project__scroller{padding-left:var(--page-pad);border-radius:0}.project__description{margin-top:10px;font-size:.9rem}}@media (prefers-reduced-motion:reduce){.frame>img{transition:none}}.projects__error{padding:0 var(--page-pad);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}}: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__row{opacity:.55}.row-tools{top:-26px;left:var(--page-pad);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(--page-pad) 0;width:calc(100% - var(--page-pad) * 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__credit-line{align-items:baseline;gap:0;max-width:100%;display:inline-flex}.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:8px;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 3px;font-size:.85em;line-height:1}.ctool:hover,.ctool.is-set{color:var(--fg)}.ctool--danger:hover{color:var(--danger)}.credit-url{border:1px solid var(--line);background:#fff;border-radius:4px;outline:none;width:100%;margin-top:4px;padding:4px 6px;font-size:.75rem;display:block}.credit-url:focus{border-color:#0006}.credit-add{cursor:pointer;color:#0000004d;background:0 0;border:0;padding:0;font-size:.8rem}.project__credit:hover .credit-add,.credit-add:focus{color:var(--fg-muted)}.project__credits{margin-top:12px}.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(--page-pad) 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}}
