@font-face{font-family:Ekphrases Mono;src:url(/ekphrases/fonts/IBMPlexMono-Regular.ttf) format("truetype");font-style:normal;font-weight:400;font-display:swap}:root{--background:#fff;--foreground:#000;--gray1:#f7f7f7;--gray2:#ededed;--gray3:#dedede;--gray4:#999;--gray5:#696969;--gray6:#333;background:var(--background);color-scheme:light}@media (prefers-color-scheme:dark){:root{--background:#000;--foreground:#fff;--gray1:#1a1a1a;--gray2:#333;--gray3:#4f4f4f;--gray4:#696969;--gray5:#b2b2b2;--gray6:#e5e5e5;color-scheme:dark}}body:has(.ek-app){max-width:none;padding:0;margin:0;background:var(--background)}body:has(.ek-app):before{display:none}.ek-app{min-height:100dvh;max-width:1280px;margin:0 auto;padding:65px 64px;color:var(--gray6);background:var(--background);font-size:13px;line-height:1.5;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased}.ek-app *{box-sizing:border-box;font-synthesis:none}.ek-app button,.ek-app input,.ek-app select,.ek-app summary{font:inherit;color:inherit}.ek-app button{border:0;border-radius:0;padding:0;background:none;cursor:pointer;line-height:1.4;transition:color .15s,border-color .15s,background .15s}.ek-app a:hover,.ek-app button:hover{color:var(--foreground)}.ek-app button:disabled{opacity:.35;cursor:default}.ek-app :is(a,button,input,select,summary):focus-visible{outline:2px solid var(--gray5);outline-offset:5px}.ek-app a{color:inherit;text-decoration:none}.ek-app p{margin:0}.ek-app .ek-link,.ek-link{text-decoration:underline;text-decoration-color:color-mix(in srgb,currentColor 25%,transparent);text-underline-offset:3px}.ek-app .ek-link:hover,.ek-link:hover{text-decoration-color:currentColor}.ek-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:40px}.ek-app .ek-home{display:block;width:-moz-max-content;width:max-content;font-size:12px;line-height:18px;color:var(--gray5);text-decoration:underline;text-decoration-color:var(--gray3);text-underline-offset:3px}.ek-app .ek-home:hover{color:var(--foreground);text-decoration-color:currentColor}.ek-heading h1{margin:8px 0 0;font-size:20px;line-height:26px;font-weight:700;letter-spacing:0;color:var(--gray6)}.ek-heading h1 button{font-weight:inherit;line-height:inherit}.ek-heading p{margin-top:6px;font-size:13px;line-height:1.6;color:var(--gray5)}.ek-header nav{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px 18px;padding-top:26px;font-size:12.5px;color:var(--gray6);white-space:nowrap}.ek-header nav :is(a,button){padding:4px 0}.ek-file{position:fixed;width:1px;height:1px;clip-path:inset(50%);opacity:0;pointer-events:none}@view-transition{navigation:auto}@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}}.ek-app .ek-home{view-transition-name:profile-name}.ek-heading h1{view-transition-name:phrasis-title}.ek-heading p{view-transition-name:phrasis-intro}.ek-app .ek-upload{view-transition-name:phrasis-stage}::view-transition-group(*){animation-duration:.48s;animation-timing-function:cubic-bezier(.22,.75,.2,1)}::view-transition-old(phrasis-stage){animation:ek-leave .16s ease both}::view-transition-new(phrasis-stage){animation:ek-enter .3s ease .08s both}::view-transition-new(phrasis-title){animation:ek-arrive .45s cubic-bezier(.22,.75,.2,1) .14s both}::view-transition-new(phrasis-intro){animation:ek-arrive .45s cubic-bezier(.22,.75,.2,1) .2s both}::view-transition-group(root){animation:none}::view-transition-new(root),::view-transition-old(root){animation:none;opacity:1;mix-blend-mode:normal}@keyframes ek-arrive{0%{opacity:0;transform:translateY(6px)}}@keyframes ek-leave{to{opacity:0}}@keyframes ek-enter{0%{opacity:0}}.ek-start{width:100%}.ek-app .ek-upload{width:min(480px,100%);margin:0 auto;aspect-ratio:1.25;border:1px solid var(--gray3);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;font-size:14px;color:var(--gray6)}.ek-app .ek-upload:hover{border-color:var(--gray5)}.ek-upload svg{margin-bottom:10px;color:var(--gray5)}.ek-gallery{margin-top:72px}.ek-gallery h2{margin:0 0 16px;font-size:12px;font-weight:400;color:var(--gray5)}.ek-gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:25px 20px}.ek-app .ek-gallery-piece{display:flex;flex-direction:column;align-items:center;gap:10px;min-width:0}.ek-gallery-frame{position:relative;display:block;width:100%;aspect-ratio:1;border:1px solid var(--gray3);background:var(--background);transition:border-color .15s}.ek-gallery-piece:hover .ek-gallery-frame{border-color:var(--gray5)}.ek-gallery-frame img{position:absolute;inset:13%;width:74%;height:74%;-o-object-fit:contain;object-fit:contain;filter:drop-shadow(0 1px 2px rgb(0 0 0/.14))}.ek-gallery-title{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;color:var(--gray6)}.ek-gallery-piece:hover .ek-gallery-title{color:var(--foreground)}.ek-viewer{width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:24px 64px 28px;border:0;background:var(--background);color:var(--gray6)}.ek-viewer[open]{display:flex;flex-direction:column;align-items:center}.ek-viewer::backdrop{background:var(--background)}.ek-viewer-bar{align-self:stretch;display:flex;justify-content:flex-end;font-size:12.5px;margin-bottom:16px}.ek-viewer-bar button{padding:5px 0 5px 15px}.ek-viewer img{display:block;flex:1;min-height:0;max-width:100%;-o-object-fit:contain;object-fit:contain}.ek-viewer p{margin-top:16px;font-size:13px}.ek-workspace{width:100%;display:grid;grid-template-columns:minmax(0,1fr) 200px;gap:56px;padding-bottom:32px;align-items:start}.ek-stage{display:flex;justify-content:center;min-width:0}.ek-art-frame{width:100%;outline:1px solid var(--gray2)}.ek-art{display:block;width:100%;height:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ek-art text{transition:opacity .15s}.ek-art text[data-region]{cursor:pointer}.ek-sidebar{gap:28px;font-size:13px;position:sticky;top:24px}.ek-sidebar,.ek-words{display:flex;flex-direction:column}.ek-words{list-style:none;margin:0;padding:0;max-height:50dvh;overflow-y:auto;scrollbar-width:thin}.ek-app .ek-words input{width:100%;padding:5px 0;border:0;border-bottom:1px solid var(--gray2);background:none;color:var(--gray6);outline:none}.ek-app .ek-words input::-moz-placeholder{color:var(--gray4)}.ek-app .ek-words input::placeholder{color:var(--gray4)}.ek-app .ek-words input:hover{color:var(--foreground)}.ek-app .ek-words input:focus{color:var(--foreground);border-bottom-color:var(--gray5)}.ek-control{display:flex;flex-direction:column;gap:10px}.ek-control>span{color:var(--gray5);font-size:12px}.ek-app input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:24px;background:linear-gradient(var(--gray3),var(--gray3)) 50% /100% 1px no-repeat;cursor:pointer;margin:0;border:none;border-radius:0}.ek-app input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border:1px solid var(--gray5);border-radius:50%;background:var(--background)}.ek-app input[type=range]::-moz-range-thumb{width:12px;height:12px;border:1px solid var(--gray5);border-radius:50%;background:var(--background)}@media (pointer:coarse){.ek-app input[type=range]{height:40px}.ek-app input[type=range]::-webkit-slider-thumb{width:24px;height:24px}.ek-app input[type=range]::-moz-range-thumb{width:22px;height:22px}}.ek-segmented{display:flex;gap:14px}.ek-app .ek-segmented button{color:var(--gray5)}.ek-app .ek-segmented button[aria-pressed=true]{color:var(--foreground);text-decoration:underline;text-underline-offset:4px}.ek-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.ek-actions>span{color:var(--gray5);padding:5px 0}.ek-app .ek-button{padding:5px 12px;border:1px solid var(--gray3);border-radius:3px;color:var(--foreground)}.ek-app .ek-button:hover{border-color:var(--gray5)}.ek-app .ek-text{margin-left:auto;color:var(--gray5);padding:5px 0}.ek-note{font-size:12px;color:var(--gray5)}.ek-live .ek-sidebar{gap:10px}.ek-live-line{font-size:13px;color:var(--gray6);min-height:40px}.ek-live .ek-text{margin-left:0;align-self:flex-start}.ek-error{display:flex;justify-content:center;align-items:center;gap:15px;padding:10px 14px;border:1px solid var(--gray3);color:var(--gray6);margin:0 auto 24px;max-width:640px;font-size:12.5px}.ek-error button{text-decoration:underline;text-underline-offset:3px;color:var(--gray5)}.ek-loading{position:fixed;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:16px;background:color-mix(in srgb,var(--background) 97%,transparent);color:var(--gray6);font-size:13px}.ek-loading-glyph{font:12px Ekphrases Mono,Courier New,monospace;color:var(--gray4);letter-spacing:5px;animation:ek-breathe 2.5s ease-in-out infinite;height:30px}.ek-loading button{color:var(--gray5);font-size:12px;text-decoration:underline;text-decoration-color:var(--gray3);text-underline-offset:3px}.ek-drop{position:fixed;z-index:30;inset:12px;border:1px dashed var(--gray5);display:grid;place-items:center;background:color-mix(in srgb,var(--background) 96%,transparent);pointer-events:none;font-size:15px;color:var(--gray6)}@keyframes ek-breathe{0%,to{opacity:.25;letter-spacing:5px}50%{opacity:1;letter-spacing:6px}}@media (prefers-reduced-motion:reduce){.ek-app *,.ek-app :before{animation:none!important;transition:none!important}}.ek-review-bar{width:100%;margin:0 0 24px;padding:0 0 16px;display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;border-bottom:1px solid var(--gray3)}.ek-app .ek-review-bar select{width:auto;max-width:100%;min-width:220px;padding:7px 9px}@media (max-width:1050px){.ek-gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:900px){.ek-workspace{gap:32px;grid-template-columns:minmax(0,1fr) 180px}}@media (max-width:650px){.ek-app{padding:30px 24px}.ek-header{margin-bottom:28px;gap:16px}.ek-heading h1{font-size:clamp(21px,5.6vw,28px)}.ek-header nav{padding-top:24px;font-size:12px}.ek-gallery{margin-top:48px}.ek-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 15px}.ek-gallery-title{font-size:12px}.ek-viewer{padding:16px 24px 24px}.ek-workspace{display:flex;flex-direction:column;gap:30px}.ek-sidebar,.ek-stage{width:100%}.ek-sidebar{position:static}.ek-app .ek-review-bar select,.ek-app .ek-words input{font-size:16px}.ek-app .ek-review-bar select{flex:1;min-width:0}}@media (max-width:360px){.ek-app,.ek-viewer{padding-left:18px;padding-right:18px}}