@font-face{font-family:Inter;src:url('/fonts/Inter-Regular.woff2') format('woff2');font-display:swap}@font-face{font-family:Xanh;src:url('/fonts/XanhMono-Regular.woff2') format('woff2');font-display:swap}
:root{font-family:Inter,Arial,sans-serif;color:#000;background:#ddd;font-size:16px;--bar:70px;--canvas:min(calc(100dvh - 150px),calc(100vw - 540px),800px);--panel:230px}*{box-sizing:border-box}body{margin:0;overscroll-behavior:none}button,input,textarea,select{font:inherit;color:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;background:transparent;border:1.7px solid #000}button:disabled{opacity:.3;cursor:default}button:focus-visible,a:focus-visible{outline:3px solid #fff;box-shadow:0 0 0 5px #000}button:hover:not(:disabled){background-color:#ffffff55}.active,button[aria-pressed=true]{background-color:#fff!important}input[type=range]{accent-color:black;cursor:pointer}input[type=color]{width:100%;height:40px;border:1px solid black;background:white}button img{width:100%;height:100%;object-fit:contain;pointer-events:none}.stage{min-height:calc(100dvh - var(--bar));display:grid;grid-template-columns:var(--panel) var(--canvas) var(--panel);grid-template-rows:auto;align-items:center;justify-content:center;column-gap:30px;padding:40px 20px;background-image:url('/bg/grad_11.png');background-size:cover;background-position:center}.canvas-wrap{position:relative;width:var(--canvas);height:var(--canvas);grid-column:2;grid-row:1}.canvas-wrap canvas{display:block;width:100%;height:100%;border:1.7px solid black;border-radius:21px;touch-action:none;cursor:url('/icons/pen.svg') 3 30,crosshair;background:#ddd}.canvas-wrap canvas[data-tool=select]{cursor:grab}.canvas-wrap canvas.dragging{cursor:grabbing}.canvas-wrap canvas:focus{outline:none}.left-panel,.right-panel{height:var(--canvas);display:flex;flex-direction:column;justify-content:space-between}.left-panel{grid-column:1;grid-row:1}.right-panel{grid-column:3;grid-row:1}.brush-grid{display:grid;grid-template-columns:repeat(4,50px);gap:20px 8px;padding-top:10px}.brush{width:50px;height:50px;border-radius:50%;border-color:transparent;padding:4px}.brush[aria-pressed=true]{border-color:#000}.brush img{width:40px;height:40px}.brush-nav{border-color:#000;font-size:30px;font-family:Arial}.animations{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:25px;margin-bottom:14px}.pill{height:50px;border-radius:28px;padding:0 16px;white-space:nowrap}.animations .pill{text-transform:capitalize;padding:0 6px}.tools{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding-top:12px}.icon-button{height:50px;border-radius:50%;padding:8px}.icon-button.wide{grid-column:span 2;border-radius:28px}.controls{margin-top:24px;display:grid;gap:24px}.slider label{display:block;text-align:center;margin-bottom:8px;text-transform:capitalize}.slider input{display:block;width:100%;height:16px;margin:0}.treat{width:100%;margin-top:36px;text-transform:capitalize}.bottom-tools{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.bottom-tools .icon-button{border-radius:28px}.agent-launch{position:fixed;right:16px;bottom:calc(var(--bar) + 12px);height:40px;padding:0 18px;background:#fff;border-radius:22px;z-index:8;box-shadow:0 2px 8px #0002}.footer{height:var(--bar);display:grid;grid-template-columns:1fr 1fr;background:#fff;border-top:1.7px solid #000;position:relative;z-index:3}.footer a{font:32px Xanh,monospace;color:inherit;text-decoration:none;display:flex;align-items:center;justify-content:center;text-align:center}.footer a+a{border-left:1.7px solid #000}.canvas-actions{position:absolute;top:10px;left:10px;display:flex;gap:6px;z-index:2}.canvas-actions button{background:#fffd;border:1px solid #000;border-radius:20px;padding:6px 10px;font-size:12px}.canvas-actions button:empty{display:none}.mobile-only{display:none}.dialog{position:fixed;inset:0;z-index:20;display:flex;justify-content:center;align-items:center;background:#ffffff55;backdrop-filter:blur(5px);padding:20px}.dialog[hidden],.drawer[hidden]{display:none}.dialog-card{max-width:640px;width:100%;max-height:85dvh;overflow:auto;border:1.7px solid #000;border-radius:22px;background:#fff;padding:24px}.dialog-card header,.drawer header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:20px}.dialog-card h2,.drawer h2{font-size:22px;font-weight:400;margin:0}.close{border-radius:50%;width:34px;height:34px;font-size:24px;line-height:25px;padding:0;flex-shrink:0}.swatch-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.swatch{aspect-ratio:1;border-radius:10px;padding:0;overflow:hidden;background-size:cover;background-position:center;min-height:48px}.dialog-section{margin:20px 0 8px;font-size:15px;font-weight:400}.row{display:flex;gap:8px;align-items:center;margin:12px 0}.row>*{min-width:0}.row input[type=text],.row input[type=password],.row select{flex:1;border:1px solid #000;border-radius:9px;padding:10px;width:100%}.dialog-card .action{display:block;border-radius:22px;padding:12px 18px;width:100%;margin:10px 0;text-align:center;color:#000;text-decoration:none}.dialog-card .row button{border-radius:10px;padding:10px}.drawer{position:fixed;z-index:15;right:12px;top:12px;bottom:calc(var(--bar) + 12px);width:370px;background:#fffffff5;border:1.7px solid #000;border-radius:22px;box-shadow:0 12px 60px #0002;display:flex;flex-direction:column;overflow:hidden;backdrop-filter:blur(15px)}.drawer header{padding:18px 18px 0;margin-bottom:12px}.drawer-tabs{display:flex;padding:0 16px;gap:8px}.drawer-tabs button{border-radius:20px;flex:1;padding:8px}.drawer-content{flex:1;overflow:auto;padding:14px 16px;min-height:0}.chat-log{display:flex;flex-direction:column;gap:12px}.message{white-space:pre-wrap;font-size:14px;line-height:1.45;padding:10px 12px;border:1px solid #0003;border-radius:14px;max-width:95%;overflow-wrap:anywhere}.message.user{align-self:flex-end;background:#e8d1ff}.message.agent{align-self:flex-start;background:#fff}.message.error{border-color:#c44}.suggestions{display:flex;flex-wrap:wrap;gap:8px}.suggestions button{font-size:13px;border-radius:18px;padding:8px 10px;text-align:left}.chat-compose{padding:12px;border-top:1px solid #000;display:flex;gap:8px;align-items:flex-end;background:white}.chat-compose textarea{width:100%;resize:none;border:1px solid #777;border-radius:14px;padding:10px;min-height:44px;max-height:120px;font-size:16px}.chat-compose button{border-radius:50%;width:44px;height:44px;flex-shrink:0;font-size:22px}.agent-status{padding:7px 16px;font-size:12px;background:#eee}.layer-list{display:flex;flex-direction:column;gap:6px}.layer-row{display:flex;align-items:center;gap:6px;border:1px solid #ddd;border-radius:10px;padding:6px}.layer-row.selected{border-color:#111;background:#f0dfff}.layer-row .layer-name{border:0;text-align:left;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:8px 0}.layer-row img{width:30px;height:30px;object-fit:contain}.layer-row .visibility{border:0;padding:6px}.inspector{margin-top:16px;border-top:1px solid #777;padding-top:12px}.inspector label{font-size:13px;display:block;margin:12px 0 4px}.inspector input[type=range]{width:100%}.inspector input[type=text],.inspector select{width:100%;padding:8px;border:1px solid #777;border-radius:8px;background:white}.inspector .row{flex-wrap:wrap}.inspector button{padding:8px 10px;border-radius:18px;font-size:13px}.asset-list{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.asset-card{border:1px solid #aaa;border-radius:12px;padding:8px;font-size:12px;text-align:center}.asset-card img{width:100%;height:72px;object-fit:contain}.asset-card button{border-radius:14px;padding:5px 8px;margin-top:6px;font-size:12px;width:100%}.asset-card .asset-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.generator{margin-top:16px;display:grid;gap:8px}.generator input,.generator select{border:1px solid #777;border-radius:10px;padding:10px;width:100%;background:white}.generator button{border-radius:22px;padding:10px}.tool-small{background:white;border-radius:20px;padding:6px 12px;font-size:13px}.empty{font-size:14px;color:#555;margin:12px 0}.loading{animation:pulse 1s ease-in-out infinite alternate}@keyframes pulse{to{opacity:.4}}#toast{position:fixed;z-index:40;bottom:calc(var(--bar) + 18px);left:50%;transform:translateX(-50%);background:#111;color:white;border-radius:18px;padding:10px 16px;max-width:90vw;text-align:center;font-size:14px;pointer-events:none;opacity:0;transition:opacity .15s}#toast.show{opacity:1}.export-progress{width:100%;accent-color:#000}.site-page{padding-bottom:var(--bar);background:white;min-height:100dvh}.site-page .footer{position:fixed;bottom:0;width:100%}.work-logo{width:100%;height:36vw;max-height:560px;object-fit:contain;background:#fff}.work-copy{padding:8vw 12vw;font-size:clamp(24px,3.2vw,55px);line-height:1.15}.work-copy p{margin:0 0 1em}.work-reel{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}.contact{padding:40px 12vw;font-size:22px;line-height:1.5}.contact a{color:black}.terms-copy{max-width:900px;padding:60px 30px;margin:auto;line-height:1.5}.terms-copy h1{font-family:Xanh;font-weight:400}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@media(min-width:1600px){:root{--panel:270px}.brush-grid{grid-template-columns:repeat(4,56px);gap:22px 15px}.brush{width:56px;height:56px}.brush img{width:46px;height:46px}}
@media(max-width:1050px) and (min-aspect-ratio:1/1){:root{--panel:170px;--canvas:min(calc(100dvh - 130px),calc(100vw - 410px));--bar:58px}.stage{gap:20px;padding:25px 15px}.brush-grid{grid-template-columns:repeat(4,38px);gap:12px 5px}.brush{width:38px;height:38px;padding:3px}.brush img{width:30px;height:30px}.pill,.icon-button{height:40px}.tools{gap:5px;padding-top:0}.animations{gap:6px;margin-top:12px;margin-bottom:0}.controls{gap:16px;margin-top:16px}.treat{margin-top:20px}.bottom-tools{margin:0}.footer a{font-size:24px}}
@media(max-aspect-ratio:1/1){:root{--bar:50px;--canvas:min(calc(100vw - 36px),calc(100dvh - 365px),600px)}.stage{min-height:calc(100dvh - var(--bar));display:flex;flex-direction:column;padding:16px 0 28px;gap:0}.right-panel{display:contents}.tools{order:0;width:100%;padding:0 16px;display:flex;gap:10px;justify-content:space-between}.tools .icon-button{width:calc((100vw - 94px)/7);height:calc((100vw - 94px)/7);max-width:74px;max-height:74px;padding:9px;flex:1}.tools .background-photo{display:none}.mobile-only{display:initial}.desktop-only{display:none!important}.canvas-wrap{order:1;margin:28px 0 18px;width:var(--canvas);height:var(--canvas);flex-shrink:0}.left-panel{display:contents}.brush-grid{order:2;display:flex;width:100%;overflow-x:auto;scrollbar-width:none;padding:0 16px;gap:10px;scroll-snap-type:x proximity;scroll-padding:16px}.brush{width:46px;height:46px;flex-shrink:0;scroll-snap-align:center}.brush img{width:36px;height:36px}.brush-nav{display:none}.animations{order:3;display:flex;overflow-x:auto;width:100%;margin:12px 0 8px;padding:0 16px;gap:8px;scrollbar-width:none}.animations .pill{height:31px;min-width:90px;padding:0 14px}.animations .flag{display:none}.controls{order:4;display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%;padding:0 14px;margin:0}.slider{border:1.7px solid black;border-radius:20px;position:relative;height:31px;overflow:hidden;background:#fff}.slider label{position:absolute;inset:4px 0 0;margin:0;pointer-events:none;z-index:1;color:black}.slider input{position:absolute;inset:0;height:100%;width:100%;margin:0;opacity:.3;accent-color:#000}.treat{display:none}.mobile-flags{order:5;display:flex;width:100%;padding:0 14px;gap:8px;margin-top:8px}.mobile-flags .pill{height:31px;flex:1}.bottom-tools{display:none}.footer a{font-size:clamp(16px,3.8vw,25px)}.agent-launch{right:12px;bottom:calc(var(--bar) + 7px);height:34px;font-size:13px;padding:0 14px}.drawer{left:8px;right:8px;top:auto;bottom:calc(var(--bar) + 6px);width:auto;height:min(65dvh,580px);border-radius:20px}.drawer header{padding-top:12px}.drawer-content{padding-top:12px}.dialog{padding:12px}.dialog-card{padding:18px;max-height:90dvh}.swatch-grid{grid-template-columns:repeat(5,1fr)}.work-reel{aspect-ratio:1}.work-copy{padding:12vw 8vw}.contact{padding:30px 8vw;font-size:18px}.canvas-actions{top:8px;left:8px}.canvas-actions button{font-size:10px;padding:5px 8px}}
@media(max-height:650px) and (max-aspect-ratio:1/1){:root{--canvas:min(calc(100vw - 65px),calc(100dvh - 310px))}.stage{padding-top:8px;padding-bottom:22px}.canvas-wrap{margin:16px 0 10px}.tools .icon-button{max-height:44px;padding:7px}.animations{margin-top:8px}.brush{height:38px;width:38px}.brush img{width:28px;height:28px}}
@media(max-height:500px) and (min-aspect-ratio:1/1){:root{--bar:42px;--canvas:min(calc(100dvh - 70px),calc(100vw - 360px));--panel:150px}.stage{padding:14px 10px;gap:15px}.brush-grid{grid-template-columns:repeat(4,32px);gap:3px 5px}.brush{width:32px;height:32px;padding:1px}.brush img{width:28px;height:28px}.animations{gap:4px;margin-top:8px}.animations .pill{height:28px;font-size:12px}.tools{gap:3px}.icon-button{height:32px;padding:5px}.controls{gap:8px;margin-top:10px;font-size:12px}.slider label{margin:0}.treat{height:30px;font-size:12px;margin-top:10px}.bottom-tools .icon-button{height:30px}.footer a{font-size:20px}.agent-launch{font-size:12px;height:30px}.drawer{bottom:48px;top:6px;width:340px}.drawer header{padding-top:10px}.drawer h2{font-size:18px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
@media(max-aspect-ratio:1/1){.right-panel>div:first-child{display:contents}}
.icon-button{padding:0}.icon-button img{height:100%;width:100%}.slider input{-webkit-appearance:none;appearance:none;background:transparent}.slider input::-webkit-slider-runnable-track{height:1.7px;background:#000}.slider input::-webkit-slider-thumb{-webkit-appearance:none;height:12px;width:12px;border-radius:50%;background:#000;border:1.5px solid white;margin-top:-5px}.slider input::-moz-range-track{height:1.7px;background:#000}.slider input::-moz-range-thumb{height:10px;width:10px;border-radius:50%;background:#000;border:1.5px solid white}.stage{position:relative;isolation:isolate}.stage:before{content:'';position:absolute;inset:0;background-image:inherit;background-color:inherit;background-size:cover;background-position:center;filter:blur(10px) grayscale(.1) contrast(.9) brightness(1.1);z-index:-1}.work-central{max-width:650px;margin:auto}.work-logo{width:100%;height:auto;max-height:none;aspect-ratio:5/3;cursor:pointer}.work-copy{padding:25px 25px 0;font-size:23px;line-height:1.2;text-align:center}.contact{padding:15px 25px 100px;text-align:center;font-size:19px}.contact div{margin-top:24px}.contact p:last-child{font-size:13px}.work-reel{background:#000}
@media(max-aspect-ratio:1/1){.tools .icon-button{padding:0}.stage:before{filter:blur(10px) grayscale(.1) contrast(.9) brightness(1.1)}.slider input{opacity:1}.slider input::-webkit-slider-runnable-track{height:31px;background:linear-gradient(to right,white 0%,white 50%,black 50%);opacity:.4}.slider input::-webkit-slider-thumb{height:31px;width:8px;border:0;border-radius:0;margin:0;background:#000}.work-copy{font-size:20px}.contact{font-size:17px}}
@media(min-aspect-ratio:5/7) and (max-aspect-ratio:1/1){:root{--canvas:60vw}.canvas-wrap{margin-top:45px;margin-bottom:20px}}

[hidden]{display:none!important}
.inspector input[type=number]{width:80px;min-width:0;border:1px solid #777;border-radius:8px;padding:8px}.canvas-wrap{justify-self:center}.canvas-wrap canvas.transparent{background:repeating-conic-gradient(#ddd 0% 25%,#fff 0% 50%) 50%/20px 20px}.footer a:hover{background:#000;color:#fff}
.agent-status button{float:right;border-radius:10px;padding:0 8px;background:white;font-size:12px}

.work-wordmark{display:block;width:170px;height:auto;margin:-28px auto 35px}.work-central{padding-top:30px}@media(max-width:600px){.work-wordmark{width:130px;margin:-15px auto 25px}}

.work-central{max-width:600px;padding:0 20px;margin:clamp(35px,calc(50vh - 250px),140px) auto 0}.work-brand{display:flex;align-items:center;gap:4%;height:270px}.work-brand .work-logo{width:64%;height:auto;aspect-ratio:5/3}.work-brand .work-wordmark{width:32%;margin:0}.work-copy{padding:10px 0 0;font-size:18px;line-height:1.2;font-weight:400}.contact{font-size:17px;padding:0 0 80px}.contact div{margin-top:24px}@media(max-width:600px){.work-brand{height:230px}.work-copy{font-size:16px}}
.live-badge{position:fixed;left:12px;bottom:calc(var(--bar) + 8px);display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #000;border-radius:18px;padding:6px 10px;z-index:9;font-size:12px}.live-badge output{color:#555;max-width:130px}.live-badge button{border-radius:12px;padding:2px 7px;font-size:11px}.display-page{min-height:100dvh;background:#fff;display:grid;place-items:center;padding:40px 16px;position:relative}.display-page>#display-canvas{display:block;max-width:100%;max-height:calc(100dvh - 80px);width:auto;height:auto;object-fit:contain}.display-connect{position:absolute;right:24px;bottom:72px;display:grid;justify-items:center;gap:8px;padding:10px;background:#fff;border:1px solid #000;border-radius:12px}.display-connect canvas{width:160px;height:160px}.display-connect a,.display-info a{color:inherit;font-size:13px}.display-info{position:absolute;left:16px;right:16px;bottom:16px;display:flex;justify-content:space-between;gap:12px;align-items:center;font:12px Xanh,monospace}.display-info span{overflow-wrap:anywhere}.cursor-demo{min-height:calc(100dvh - var(--bar));padding:25px;background:#fff}.cursor-demo h1{font:32px Xanh,monospace;margin:0 0 20px}.cursor-demo output{display:block;margin:12px 0}.cursor-demo a{color:inherit}.cursor-dot{position:fixed;width:18px;height:18px;transform:translate(-50%,-50%);border-radius:50%;background:#ff4356;pointer-events:none}.video-demo{min-height:calc(100dvh - var(--bar));display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:20px;background:white}.video-demo canvas{max-width:100%;max-height:calc(100dvh - 220px);object-fit:contain;width:800px;aspect-ratio:4/3}.video-demo button{padding:12px 18px;border-radius:24px}.holding-page{text-align:center;padding-top:calc(20dvh - 30px)}.holding-page .work-brand{max-width:650px;margin:auto;padding:0 20px}.holding-page p{margin:15px 0 8px}.holding-page time{font:24px Xanh,monospace}@media(max-width:600px){.live-badge{left:6px;gap:5px;font-size:10px;padding:5px 7px;max-width:calc(100vw - 110px)}.live-badge output{max-width:80px}.display-connect{right:12px;bottom:72px}.display-connect canvas{width:120px;height:120px}.display-info{flex-wrap:wrap;font-size:10px}.display-info span{max-width:50%}}
