:root{--ink:#000;--paper:#fff;--g1:#f2f2f2;--g2:#d4d4d4;--muted:#6b6b6b;--line:2px solid var(--ink);--mono:ui-monospace, "SF Mono", Menlo, monospace;--sans:Pretendard, -apple-system, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--sans);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;font-size:14px}button,.btn,input,textarea{font:inherit;color:inherit}button,.btn{border:var(--line);background:var(--paper);cursor:pointer;white-space:nowrap;border-radius:0;align-items:center;gap:4px;padding:6px 10px;font-weight:700;display:inline-flex}button:hover,.btn:hover{background:var(--g1)}button:active,.btn:active{background:var(--ink);color:var(--paper)}button:disabled{color:var(--muted);border-color:var(--g2);background:var(--paper);cursor:default}button.primary{background:var(--ink);color:var(--paper)}button.primary:hover{background:#333}button.on{background:var(--ink);color:var(--paper)}input[type=text],input[type=number],textarea{border:var(--line);background:var(--paper);border-radius:0;outline:none;width:100%;padding:6px 8px}input:focus,textarea:focus{outline:2px solid var(--ink);outline-offset:-4px}::placeholder{color:var(--muted);opacity:1}textarea{resize:vertical;line-height:1.5}textarea.mono{font-family:var(--mono);font-size:12px}.row{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.bar{border-bottom:var(--line);background:var(--paper);align-items:center;gap:10px;padding:10px 14px;display:flex}.bar h1{font-family:var(--mono);letter-spacing:.08em;margin:0;font-size:20px}.bar .title{flex:0 260px;min-width:100px;font-weight:700}.bar button,.bar .btn,.bar .title{height:36px;padding-top:0;padding-bottom:0}.bar .title{padding:0 10px}.bar .spacer{flex:1}.bar .sep{background:var(--ink);align-self:stretch;width:2px}.save{font-family:var(--mono);border:2px solid var(--ink);padding:2px 6px;font-size:12px}.save.saved{border-color:var(--g2);color:var(--muted)}.save.dirty,.save.saving{background:var(--g2)}.save.error{background:var(--ink);color:var(--paper)}.error{background:var(--ink);color:var(--paper);font-family:var(--mono);cursor:pointer;padding:8px 14px}.fatal{font-family:var(--mono);padding:40px}.home{background:var(--g1);min-height:100%}.deck-grid{grid-template-columns:repeat(auto-fill,minmax(252px,1fr));gap:24px;padding:24px;display:grid}.deck-card{border:var(--line);background:var(--paper);padding:16px}.deck-card a{color:inherit;text-decoration:none}.deck-card .thumb{border:var(--line)}.deck-card h2{margin:12px 0 4px;font-size:18px}.meta{font-family:var(--mono);color:var(--muted);margin:0;font-size:11px}.empty{font-family:var(--mono);color:var(--muted)}.editor{flex-direction:column;height:100%;display:flex}.editor .body{flex:1;min-height:0;display:flex}.hint{border-top:var(--line);font-family:var(--mono);color:var(--muted);white-space:nowrap;text-overflow:ellipsis;padding:6px 14px;font-size:12px;overflow:hidden}.left{border-right:var(--line);background:var(--paper);flex:none;width:240px;padding:14px 14px 24px 26px;overflow-y:auto}.caption-item{width:180px;height:112px;margin-top:14px;position:relative}.caption-item .no{color:var(--muted);position:absolute;top:0;left:-20px}.caption-item textarea{border:2px solid var(--g2);resize:none;width:100%;height:100%;padding:10px;font-size:12px;line-height:1.5}.caption-item textarea:focus{border-color:var(--ink);outline:2px solid var(--ink);outline-offset:0}.caption-item:focus-within .no{color:var(--ink)}.export-box{gap:8px;width:180px;margin-top:14px;display:flex}.export-box .primary{flex:1;justify-content:center}.slide-item{cursor:pointer;width:max-content;margin-bottom:14px;position:relative}.slide-item .thumb{border:2px solid var(--g2)}.slide-item.on .thumb{border-color:var(--ink);outline:2px solid var(--ink)}.slide-item .no{font-family:var(--mono);color:var(--muted);font-size:11px;position:absolute;top:0;left:-18px}.slide-item.on .no{color:var(--ink);font-weight:700}.slide-item.drop-before:before,.slide-item.drop-after:after{content:"";background:var(--ink);height:4px;position:absolute;left:0;right:0}.slide-item.drop-before:before{top:-9px}.slide-item.drop-after:after{bottom:-9px}.slide-delete{background:var(--paper);justify-content:center;width:26px;height:26px;padding:0;position:absolute;top:8px;right:8px}.add-slide{justify-content:center;width:180px}.stage{background-color:var(--g2);background-image:radial-gradient(#b5b5b5 1px,#0000 1px);background-size:16px 16px;flex:1;min-width:0;position:relative;overflow:hidden}.world{transform-origin:0 0;position:absolute}.world .slide{overflow:visible}.mask{pointer-events:none;z-index:10;background:#d4d4d4d1;position:absolute}.world .layer{cursor:move}.world .layer:hover{outline:calc(1.5px / var(--s)) dashed var(--ink)}.world .layer.editing{cursor:text;outline:calc(2px / var(--s)) solid var(--ink);caret-color:var(--ink)}.overlay{pointer-events:none;z-index:20;position:absolute;inset:0}.frame{outline:2px solid var(--ink);position:absolute}.guide{background:var(--ink);position:absolute}.guide.v{width:1px;top:0;bottom:0}.guide.h{height:1px;left:0;right:0}.selbox,.cropbox{outline:2px solid var(--ink);position:absolute;box-shadow:0 0 0 4px #fff9}.cropbox{pointer-events:auto;cursor:grab;outline-style:dashed}.crop-ghost{opacity:.35;outline:1px dashed var(--ink);position:absolute}.handle{background:var(--paper);border:2px solid var(--ink);pointer-events:auto;width:12px;height:12px;margin:-6px 0 0 -6px;position:absolute}.h-nw{cursor:nwse-resize;top:0;left:0}.h-ne{cursor:nesw-resize;top:0;left:100%}.h-sw{cursor:nesw-resize;top:100%;left:0}.h-se{cursor:nwse-resize;top:100%;left:100%}.h-n{cursor:ns-resize;top:0;left:50%}.h-s{cursor:ns-resize;top:100%;left:50%}.h-w{cursor:ew-resize;height:24px;margin-top:-12px;top:50%;left:0}.h-e{cursor:ew-resize;height:24px;margin-top:-12px;top:50%;left:100%}.panel{border-left:var(--line);background:var(--paper);flex:none;width:290px;overflow-y:auto}.panel section{border-bottom:var(--line);padding:14px}.panel h3{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;margin:0 0 10px;font-size:11px;font-weight:700}.seg{border:var(--line);margin-top:8px;display:flex}.seg button{border:none;flex:1;justify-content:center;padding:5px 0;font-weight:400}.seg button+button{border-left:var(--line)}.seg button.on{font-weight:700}.grid2,.grid3{gap:8px;display:grid}.grid2{grid-template-columns:1fr 1fr}.grid3{grid-template-columns:1fr 1fr 1fr}.num{border:var(--line);align-items:center;display:flex}.num span{font-family:var(--mono);border-right:var(--line);background:var(--g1);align-self:stretch;align-items:center;padding:0 6px;font-size:11px;font-weight:700;display:flex}.num input{font-family:var(--mono);border:none;padding:5px 6px;font-size:12px}.num input:focus{background:var(--g1);outline:none}.field{font-family:var(--mono);gap:6px;font-size:11px;display:grid}.file{font-family:var(--mono);word-break:break-all;color:var(--muted);margin:0 0 8px;font-size:11px}.layers{grid-template-columns:minmax(0,1fr);gap:4px;margin:0;padding:0;list-style:none;display:grid}.layers button{gap:8px;width:100%;min-width:0;padding:4px 6px;font-weight:400;overflow:hidden}.layers .tag{font-family:var(--mono);flex:none;font-size:10px;font-weight:700}.layers .name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.slide{font-synthesis:none;background:#fff;font-family:Pretendard,sans-serif;font-weight:400;position:relative;overflow:hidden}.render .slide{margin:0}.render{width:1080px}.layer{position:absolute}.layer.img{overflow:hidden}.layer.txt{white-space:pre-wrap;word-break:keep-all;overflow-wrap:break-word;text-wrap-style:balance;letter-spacing:0;outline:none}.watermark{text-align:center;z-index:1;pointer-events:none;line-height:1;position:absolute;left:0;right:0}.thumb{background:#fff;flex:none;overflow:hidden}.thumb .layer{cursor:inherit}.caption-preview{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin:0 0 4px;font-size:12px;overflow:hidden}button.icon{justify-content:center;padding:6px}.row-gap{flex:1}.row>.seg{margin-top:0}.seg button{padding:5px 10px}.section-head{align-items:center;gap:6px;margin-bottom:10px;display:flex}.section-head h3{flex:1;margin:0}.section-head button.icon{padding:4px}.layers li{gap:4px;display:flex}.layers li .pick{flex:1}.layers li button.icon{flex:none;width:auto;padding:0 5px}.row.place button{flex:1;justify-content:center}.login{background:var(--g1);flex-direction:column;justify-content:center;align-items:center;gap:20px;min-height:100%;padding:24px;display:flex}.login h1{font-family:var(--mono);letter-spacing:.08em;margin:0;font-size:28px}.login p{color:var(--muted);margin:0}.stage{touch-action:none}@media (pointer:coarse){.handle{width:22px;height:22px;margin:-11px 0 0 -11px}.h-w,.h-e{height:36px;margin-top:-18px}}.editor.mobile{height:100dvh}.editor.mobile .bar{gap:6px;padding:8px}.editor.mobile .bar .title{flex:auto;min-width:60px}.editor.mobile .bar .sep{display:none}.editor.mobile .bar button.icon,.editor.mobile .bar .btn.icon{justify-content:center;width:36px;padding:0}.editor.mobile input,.editor.mobile textarea{font-size:16px}.slides.horizontal{border-bottom:var(--line);background:var(--paper);flex:none;align-items:flex-start;gap:26px;padding:10px 8px 10px 22px;display:flex;overflow-x:auto}.slides.horizontal .slide-item{flex:none;margin-bottom:0}.slides.horizontal .slide-item .no{left:-14px}.slides.horizontal .slide-delete{width:22px;height:22px;top:2px;right:2px}.slides.horizontal .add-slide{flex:none;justify-content:center;width:56px;height:70px}.editor.mobile .stage{flex:1;min-height:0}.sheet{border-top:var(--line);background:var(--paper);flex-direction:column;flex:none;max-height:42dvh;display:flex}.sheet-tabs{border-bottom:var(--line);display:flex}.sheet-tabs button{border:none;flex:1;justify-content:center;height:40px}.sheet-tabs button+button{border-left:var(--line)}.sheet-body{overflow-y:auto}.sheet .panel{border-left:none;width:auto;overflow:visible}.caption-item.wide{width:auto;height:30dvh;margin:14px}.caption-item.wide .no{display:none}.toast{background:var(--ink);color:var(--paper);z-index:100;padding:10px 14px;font-weight:700;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.share-sheet{z-index:100;padding:20px 16px calc(20px + env(safe-area-inset-bottom));border-top:var(--line);background:var(--paper);gap:10px;display:grid;position:fixed;bottom:0;left:0;right:0}.share-sheet p{margin:0;font-weight:700}.share-sheet button{justify-content:center;height:44px}.share-sheet .close{width:36px;height:36px;position:absolute;top:12px;right:12px}.login-buttons{gap:10px;width:min(280px,100%);display:grid}.login-buttons button{justify-content:center;height:44px}.watermark-field{font-family:var(--mono);color:var(--muted);align-items:center;gap:8px;font-size:12px;display:flex}.watermark-field input{width:160px;height:36px;font-family:var(--sans);color:var(--ink);font-size:14px}.home-settings{border-bottom:var(--line);background:var(--paper);flex-wrap:wrap;padding:10px 14px}
