body,html{margin:0;padding:0;background:#211b18}a{color:inherit;text-decoration:none}button{font-family:inherit}@import url("https://fonts.googleapis.com/css2?family=Gowun+Batang:wght@400;700&family=IBM+Plex+Sans+KR:wght@300;400;500;600;700&display=swap");.ldg-root{--wall:#211b18;--wall2:#2b2320;--paper:#fdfaf2;--ink:#2a2420;--accent:#ff6a3d;--accent2:#ffc23d;--line:hsla(0,0%,100%,.08);font-family:IBM Plex Sans KR,sans-serif;color:#f3ece2;min-height:100vh;padding:22px;background:radial-gradient(900px 500px at 20% -10%,rgba(255,194,61,.1),transparent 60%),radial-gradient(800px 500px at 100% 0,rgba(255,106,61,.1),transparent 55%),var(--wall)}.ldg-root *{box-sizing:border-box}.ldg-auth{display:grid;place-items:center}.ldg-login{background:var(--wall2);border:1px solid var(--line);border-radius:22px;padding:34px 30px;width:min(360px,92vw);display:flex;flex-direction:column;gap:12px;text-align:center;box-shadow:0 30px 70px rgba(0,0,0,.5);margin-top:8vh}.ldg-login h1{font-family:Gowun Batang,serif;font-weight:700;font-size:30px;margin:6px 0 0;color:#fff}.ldg-login .ldg-sub{margin:0 0 8px;color:#b9ad9e;font-size:15px}.ldg-login input{font-family:IBM Plex Sans KR;font-size:16px;padding:13px 14px;border-radius:12px;border:1px solid var(--line);background:var(--wall);color:#fff;outline:none}.ldg-login input:focus{border-color:var(--accent)}.ldg-btn-primary{font-family:IBM Plex Sans KR;font-size:17px;padding:14px;border:none;border-radius:12px;cursor:pointer;color:#3a2a20;background:linear-gradient(135deg,var(--accent),var(--accent2));box-shadow:0 10px 24px rgba(255,106,61,.4)}.ldg-demo{margin-top:10px;padding-top:14px;border-top:1px dashed var(--line)}.ldg-demo>span{font-size:12px;color:#9a8e7e}.ldg-demo-chips{display:flex;gap:8px;justify-content:center;margin-top:8px}.ldg-demo-chips button{font-family:IBM Plex Sans KR;font-size:14px;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:var(--wall);color:#e7dccc;cursor:pointer}.ldg-demo-chips button:hover{border-color:var(--accent);color:#fff}.ldg-spark{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#3a2a20;box-shadow:0 8px 22px rgba(255,106,61,.35)}.ldg-spark.big{width:60px;height:60px;border-radius:18px;margin:0 auto}.ldg-header{justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:20px}.ldg-brand,.ldg-header{display:flex;align-items:center}.ldg-brand{gap:14px}.ldg-back{width:38px;height:38px;border-radius:10px;border:1px solid var(--line);background:var(--wall2);color:#fff;cursor:pointer;display:grid;place-items:center}.ldg-back:hover{border-color:var(--accent)}.ldg-header h1{font-family:Gowun Batang,serif;font-weight:700;font-size:30px;margin:0;line-height:1;color:#fff}.ldg-header p{margin:4px 0 0;font-size:14px;color:#b9ad9e}.ldg-head-right{display:flex;align-items:center;gap:10px}.ldg-count{padding:7px 14px;border-radius:999px;border:1px solid var(--line)}.ldg-count,.ldg-logout{font-size:14px;background:var(--wall2)}.ldg-logout{display:flex;align-items:center;gap:6px;font-family:IBM Plex Sans KR;padding:8px 12px;border-radius:10px;border:1px solid var(--line);color:#cdbfae;cursor:pointer}.ldg-logout:hover{border-color:var(--accent);color:#fff}.ldg-classgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));grid-gap:16px;gap:16px;margin-top:8px}.ldg-classcard{display:flex;align-items:center;gap:14px;background:var(--wall2);border:1px solid var(--line);border-radius:16px;padding:18px;cursor:pointer;color:#f3ece2;text-align:left;font-family:IBM Plex Sans KR;transition:transform .15s,border-color .15s}.ldg-classcard:hover{transform:translateY(-3px);border-color:var(--accent)}.ldg-classcard svg{color:var(--accent2);flex-shrink:0}.ldg-classmeta{display:flex;flex-direction:column;flex:1 1}.ldg-classname{font-family:Gowun Batang,serif;font-weight:700;font-size:22px;color:#fff}.ldg-classschool{font-size:13px;color:#a99d8e}.ldg-classcount{display:flex;align-items:center;gap:5px;font-size:13px;color:#cdbfae}.ldg-classcard.add{flex-direction:column;justify-content:center;color:#cdbfae;border-style:dashed;min-height:96px}.ldg-classcard.add:hover{color:#fff}.ldg-classcard.form{flex-direction:column;align-items:stretch;gap:10px;cursor:default}.ldg-classcard.form input{font-family:IBM Plex Sans KR;font-size:15px;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--wall);color:#fff;outline:none;width:100%}.ldg-classcard.form input:focus{border-color:var(--accent)}.ldg-form-row{display:flex;gap:8px}.ldg-form-row input{flex:1 1;min-width:0}.ldg-form-btns{display:flex;gap:8px}.ldg-form-btns button{flex:1 1;font-family:IBM Plex Sans KR;font-size:14px;padding:9px;border-radius:10px;border:none;cursor:pointer}.ldg-form-btns .ghost{background:transparent;border:1px solid var(--line);color:#cdbfae}.ldg-form-btns .solid{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#3a2a20}.ldg-form-btns .solid:disabled{opacity:.4;cursor:not-allowed}.ldg-capture-row{flex-direction:column;gap:8px;margin:8px 0 26px}.ldg-capture,.ldg-capture-row{display:flex;align-items:center}.ldg-capture{gap:12px;font-family:IBM Plex Sans KR;font-size:20px;color:#3a2a20;padding:18px 34px;border:none;border-radius:18px;cursor:pointer;background:linear-gradient(135deg,var(--accent),var(--accent2));box-shadow:0 12px 30px rgba(255,106,61,.4);transition:transform .15s,box-shadow .15s}.ldg-capture:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 18px 40px rgba(255,106,61,.5)}.ldg-album-btn{display:flex;align-items:center;gap:7px;font-family:IBM Plex Sans KR;font-size:15px;color:var(--accent2);background:hsla(0,0%,100%,.05);border:1px solid var(--line);padding:9px 18px;border-radius:12px;cursor:pointer;transition:border-color .15s,background .15s}.ldg-album-btn:hover{border-color:var(--accent);background:hsla(0,0%,100%,.09)}.ldg-album-btn:disabled{opacity:.5;cursor:not-allowed}.ldg-hint{margin:0;font-size:13px;color:#a99d8e}.ldg-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));grid-gap:20px;gap:20px}.ldg-card{margin:0;cursor:pointer}.ldg-frame{position:relative;background:var(--paper);border-radius:8px;aspect-ratio:1;padding:14px;overflow:hidden;box-shadow:0 14px 28px rgba(0,0,0,.45),inset 0 0 0 6px #fff,inset 0 0 0 7px rgba(0,0,0,.06);transition:transform .18s,box-shadow .18s}.ldg-card:hover .ldg-frame{transform:translateY(-5px) rotate(-.6deg);box-shadow:0 22px 42px rgba(0,0,0,.55),inset 0 0 0 6px #fff}.ldg-art{height:100%;display:grid;place-items:center}.ldg-art.hoverable{animation:none}.ldg-card:hover .ldg-art.hoverable{animation-play-state:running}.ldg-zoom{position:absolute;top:10px;right:10px;width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:rgba(42,36,32,.78);color:#fff;opacity:0;transition:opacity .18s}.ldg-card:hover .ldg-zoom{opacity:1}.ldg-card figcaption{display:flex;justify-content:space-between;align-items:center;padding:9px 4px 0}.ldg-name{font-family:Gowun Batang,serif;font-weight:700;font-size:20px;color:#fff}.ldg-like{display:flex;align-items:center;gap:5px;background:none;border:none;color:#d7c8b6;font-family:IBM Plex Sans KR;font-size:14px;cursor:pointer}.ldg-like:hover{color:var(--accent)}.ldg-empty{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;gap:12px;color:#8c8073;padding:60px 0}.ldg-overlay{position:fixed;inset:0;background:rgba(20,16,14,.72);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;z-index:40}.ldg-modal{background:var(--wall2);border:1px solid var(--line);border-radius:20px;padding:24px;width:min(380px,90vw);text-align:center;box-shadow:0 30px 70px rgba(0,0,0,.6)}.ldg-modal-thumb{width:120px;height:120px;margin:0 auto 14px;border-radius:10px;overflow:hidden;background:var(--paper);box-shadow:inset 0 0 0 5px #fff}.ldg-modal-thumb img{width:100%;height:100%;object-fit:cover}.ldg-modal h3{font-family:Gowun Batang,serif;font-size:24px;margin:0 0 14px;color:#fff}.ldg-modal input{width:100%;font-family:IBM Plex Sans KR;font-size:17px;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--wall);color:#fff;outline:none;text-align:center}.ldg-modal input:focus{border-color:var(--accent)}.ldg-modal-btns{display:flex;gap:10px;margin-top:16px}.ldg-modal-btns button{flex:1 1;font-family:IBM Plex Sans KR;font-size:16px;padding:12px;border-radius:12px;cursor:pointer;border:none;display:flex;align-items:center;justify-content:center;gap:7px}.ldg-modal-btns .ghost{background:transparent;border:1px solid var(--line);color:#cdbfae}.ldg-modal-btns .solid{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#3a2a20}.ldg-loading{display:flex;flex-direction:column;align-items:center;gap:18px}.ldg-loader{width:54px;height:54px;border-radius:50%;border:5px solid hsla(0,0%,100%,.15);border-top:5px solid var(--accent);animation:spin .8s linear infinite}.ldg-loading p{font-family:Gowun Batang,serif;font-size:22px;color:#fff;margin:0}@keyframes spin{to{transform:rotate(1turn)}}.ldg-show{position:fixed;inset:0;z-index:50;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(700px 500px at 50% 35%,rgba(255,194,61,.1),transparent 60%),#16110f}.ldg-close{position:absolute;top:20px;right:22px;width:46px;height:46px;border-radius:12px;border:1px solid var(--line);background:hsla(0,0%,100%,.06);color:#fff;cursor:pointer;display:grid;place-items:center}.ldg-close:hover{background:hsla(0,0%,100%,.14)}.ldg-nav{position:absolute;top:50%;transform:translateY(-50%);width:64px;height:64px;border-radius:50%;border:none;cursor:pointer;background:hsla(0,0%,100%,.07);color:#fff;display:grid;place-items:center;transition:background .15s}.ldg-nav:hover{background:var(--accent);color:#3a2a20}.ldg-nav.left{left:24px}.ldg-nav.right{right:24px}.ldg-stage{flex:1 1;display:grid;place-items:center;width:100%;padding:70px 90px 10px}.ldg-show-art{width:min(56vh,520px);height:min(56vh,520px);background:var(--paper);border-radius:10px;padding:28px;box-shadow:0 40px 90px rgba(0,0,0,.6),inset 0 0 0 10px #fff;display:grid;place-items:center}.ldg-show-bar{gap:28px;padding:10px 24px 6px;flex-wrap:wrap;justify-content:center}.ldg-show-bar,.ldg-show-meta{display:flex;align-items:center}.ldg-show-meta{flex-direction:column}.ldg-show-name{font-family:Gowun Batang,serif;font-weight:700;font-size:34px;color:#fff;line-height:1.1}.ldg-show-caption{font-size:16px;color:var(--accent2)}.ldg-show-actions{display:flex;gap:12px}.ldg-toggle{gap:8px;color:#3a2a20;padding:13px 22px;border:none;background:linear-gradient(135deg,var(--accent),var(--accent2));box-shadow:0 10px 24px rgba(255,106,61,.4)}.ldg-show-like,.ldg-toggle{display:flex;align-items:center;font-family:IBM Plex Sans KR;font-size:18px;border-radius:14px;cursor:pointer}.ldg-show-like{gap:7px;color:#fff;padding:13px 20px;background:hsla(0,0%,100%,.07);border:1px solid var(--line)}.ldg-show-like:hover{border-color:var(--accent)}.ldg-keyhint{margin:4px 0 16px;font-size:13px;color:#8c8073}.motion-sway{animation:m-sway 3.2s ease-in-out infinite;transform-origin:50% 90%}.motion-float{animation:m-float 3.4s ease-in-out infinite}.motion-bounce{animation:m-bounce 1.9s ease-in-out infinite;transform-origin:50% 95%}.motion-breathe{animation:m-breathe 3s ease-in-out infinite}.motion-wobble3d{animation:m-wobble 3.6s ease-in-out infinite}@keyframes m-sway{0%,to{transform:rotate(-3deg) translateY(0)}50%{transform:rotate(3deg) translateY(-7px)}}@keyframes m-float{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-14px) scale(1.03)}}@keyframes m-bounce{0%,to{transform:translateY(0) scaleY(1)}30%{transform:translateY(-18px) scaleY(1.04)}55%{transform:translateY(0) scaleY(.96)}80%{transform:translateY(-7px)}}@keyframes m-breathe{0%,to{transform:scale(1) rotate(0)}50%{transform:scale(1.05) rotate(1.5deg)}}@keyframes m-wobble{0%,to{transform:perspective(700px) rotateY(-10deg) translateY(0)}50%{transform:perspective(700px) rotateY(10deg) translateY(-6px)}}@media (max-width:520px){.ldg-stage{padding:64px 56px 6px}.ldg-nav{width:50px;height:50px}}.ldg-root{font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.ldg-classname,.ldg-header h1,.ldg-loading p,.ldg-login h1,.ldg-modal h3,.ldg-name,.ldg-show-name{letter-spacing:-.012em}.ldg-classschool,.ldg-demo>span,.ldg-header p,.ldg-hint,.ldg-keyhint,.ldg-login .ldg-sub{font-weight:300;letter-spacing:.005em}.ldg-count,.ldg-demo-chips button,.ldg-logout{font-weight:500}.ldg-error{margin:-2px 0 2px;font-size:13px;color:#ff8a6a}.ldg-btn-primary:disabled{opacity:.55;cursor:not-allowed}.ldg-proc{display:flex;flex-direction:column;gap:8px;align-items:center;justify-content:center;height:100%;color:#8c8073;font-size:14px}.ldg-proc .mini-loader{width:30px;height:30px;border-radius:50%;border:4px solid rgba(0,0,0,.1);border-top:4px solid var(--accent);animation:spin .8s linear infinite}body,html{overflow-x:hidden}.ldg-root{box-sizing:border-box;max-width:100%}.ldg-login{width:min(360px,100%)}.ldg-modal-btns{flex-wrap:nowrap}.ldg-modal-btns button{white-space:nowrap}.ldg-modal-btns .ghost{flex:0 0 auto;padding-left:20px;padding-right:20px}.ldg-modal-btns .solid{flex:1 1}.ldg-frame{background:transparent;aspect-ratio:auto;padding:0;overflow:visible;border-radius:10px;box-shadow:0 14px 30px rgba(0,0,0,.45)}.ldg-card:hover .ldg-frame{box-shadow:0 22px 42px rgba(0,0,0,.55)}.ldg-art{width:100%;height:auto;display:block;min-height:0}.ldg-proc{min-height:160px}.ldg-show-art{width:auto;height:auto;background:transparent;padding:0;box-shadow:none;border-radius:0}.ldg-show-art img,.ldg-show-art video{box-shadow:0 30px 70px rgba(0,0,0,.55)}.ldg-stage{padding-left:16px;padding-right:16px}@media (max-width:520px){.ldg-header h1{font-size:20px;line-height:1.15}}.ldg-admin-badge{display:inline-flex;align-items:center;gap:4px;font-family:IBM Plex Sans KR;font-size:12px;font-weight:600;color:var(--accent2);background:rgba(255,194,61,.12);border:1px solid var(--line);padding:3px 9px;border-radius:999px;vertical-align:middle;margin-left:8px}.ldg-admin-stats{display:flex;gap:12px;flex-wrap:wrap;margin:4px 0 24px}.ldg-stat{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:84px;flex:1 1;padding:14px 18px;border-radius:16px;background:hsla(0,0%,100%,.04);border:1px solid var(--line)}.ldg-stat b{font-family:Gowun Batang,serif;font-size:26px;color:#fff;line-height:1}.ldg-stat span{font-size:12px;color:#a99d8e}.ldg-school-group{margin-bottom:26px}.ldg-school-head{display:flex;justify-content:space-between;align-items:center;margin:0 2px 12px}.ldg-school-head>span:first-child{display:flex;align-items:center;gap:8px;font-family:IBM Plex Sans KR;font-size:17px;font-weight:600;color:#f3ece1}.ldg-school-count{font-size:13px;color:#a99d8e}.ldg-btn-spin{display:inline-block;width:16px;height:16px;border-radius:50%;border:3px solid rgba(58,42,32,.25);border-top-color:#3a2a20;animation:spin .8s linear infinite}.ldg-album-btn,.ldg-capture{width:min(380px,100%);box-sizing:border-box;justify-content:center;gap:12px}.ldg-album-btn{font-size:20px;padding:18px 34px;border-radius:18px}.ldg-card-actions{position:absolute;top:10px;left:10px;display:flex;gap:6px;z-index:2}.ldg-icon-btn{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:rgba(42,36,32,.8);color:#fff;border:none;cursor:pointer;transition:background .15s,transform .15s}.ldg-icon-btn:hover{background:var(--accent);color:#3a2a20;transform:scale(1.08)}.ldg-inst-list{display:flex;flex-direction:column;gap:8px}.ldg-inst-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;border-radius:14px;background:hsla(0,0%,100%,.04);border:1px solid var(--line)}.ldg-inst-row.off{opacity:.55}.ldg-inst-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.ldg-inst-name{display:flex;align-items:center;gap:8px;font-family:IBM Plex Sans KR;font-weight:600;color:#f3ece1;font-size:15px}.ldg-inst-badge{font-size:11px;font-weight:600;color:#ff8a6a;background:rgba(255,138,106,.12);border:1px solid var(--line);padding:1px 7px;border-radius:999px}.ldg-inst-sub{font-size:12px;color:#a99d8e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ldg-inst-actions{display:flex;gap:8px;flex-shrink:0}.ldg-inst-actions button{display:flex;align-items:center;gap:5px;font-family:IBM Plex Sans KR;font-size:13px;color:#e9e0d3;background:hsla(0,0%,100%,.05);border:1px solid var(--line);padding:7px 12px;border-radius:10px;cursor:pointer;transition:border-color .15s,background .15s}.ldg-inst-actions button:hover{border-color:var(--accent);background:hsla(0,0%,100%,.09)}.ldg-inst-actions button:disabled{opacity:.5;cursor:not-allowed}@media (max-width:520px){.ldg-inst-row{flex-direction:column;align-items:flex-start}.ldg-inst-actions{width:100%}.ldg-inst-actions button{flex:1 1;justify-content:center}}