@font-face{font-family:Kkakdugi;src:url('./fonts/KkakdugiDrafting-Regular.ttf') format('truetype');font-display:swap}*{box-sizing:border-box}body{margin:0;color:#222820;background:#f5f4ed;font-family:Arial,'Malgun Gothic',sans-serif;font-size:14px}button,input,select,textarea{font:inherit}button,label,h1,h2,h3,summary,.wordmark{font-family:Kkakdugi,'Malgun Gothic',sans-serif}button{border:1px solid #d5d7cb;border-radius:10px;padding:10px 13px;background:#fff;color:#222820;cursor:pointer;transition:transform .15s,box-shadow .15s,background .15s}button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 0 #252c2020}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #67902e;outline-offset:2px}button:disabled{opacity:.4;cursor:default}button.primary{background:#ceff59;border-color:#b1d547;color:#18220e;font-weight:bold}button.danger{color:#a53128;background:#fff2ee;border-color:#e3b6ad}input,select,textarea{border:1px solid #d5d7cb;background:#fff;border-radius:9px;padding:10px;width:100%;color:#222820}textarea{resize:vertical;min-height:90px;line-height:1.6}[hidden]{display:none!important}.login-shell{min-height:100dvh;display:grid;place-items:center;background:radial-gradient(ellipse at 80% 20%,#ceff59 0,transparent 45%),#f5f4ed;padding:30px}.login-card{width:min(430px,100%);background:#fffffff0;padding:38px 36px;border-radius:24px;border:1px solid #fff;box-shadow:0 30px 100px #243c1012}.eyebrow{font-size:10px;letter-spacing:.22em;color:#617245}h1{font-size:46px;letter-spacing:-.06em;margin:18px 0}.login-card>p{color:#727866;line-height:1.8}form{display:grid;gap:11px;margin-top:26px}form label{font-size:15px}form button{margin-top:12px;display:flex;justify-content:space-between;font-size:18px}form input{letter-spacing:.18em}.login-foot{margin-top:22px;color:#7c826f;font-size:12px;line-height:1.8;border-top:1px solid #e0e4d7;padding-top:17px}.status{min-height:22px;font-size:13px}.status.error{color:#a53128}.topbar{height:75px;display:flex;align-items:center;gap:11px;padding:0 24px;border-bottom:1px solid #d8dbce;background:#fafbf5}.wordmark{text-decoration:none;color:#202b13;font-size:24px;white-space:nowrap}.wordmark span{font-size:12px;margin-left:10px;background:#ceff59;padding:5px 8px;border-radius:6px}.topbar>input{width:clamp(130px,21vw,320px);border-color:transparent;background:transparent;font-size:15px;margin-left:16px}.topbar #save-status{margin-left:auto;font-size:12px;color:#667357;max-width:260px}.workspace{display:grid;grid-template-columns:260px minmax(300px,1fr) 280px;height:calc(100dvh - 75px)}.library,.inspector{padding:22px 18px;overflow:auto;background:#f7f7f0}.library{border-right:1px solid #d8dbce}.inspector{border-left:1px solid #d8dbce}.section-head{display:flex;align-items:center;gap:9px;margin-bottom:17px}.section-head h2{font-size:18px;margin:0}.step{font-size:10px;border:1px solid #c8d2b6;border-radius:50%;width:24px;height:24px;display:grid;place-items:center;color:#617245}.text-add{width:100%;background:#ceff5938;border-color:#bfd297;text-align:left;margin-bottom:20px}.search-label{font-size:12px;color:#6a765b;display:block;margin-bottom:8px}.library input{font-size:12px}.filters{display:flex;gap:4px;flex-wrap:wrap;margin:12px 0}.filters button{font-size:12px;padding:6px 8px;border-radius:7px}.filters .active,.segment .active{background:#ceff59;border-color:#a8cb47}.asset-list{display:flex;flex-direction:column;gap:7px;max-height:33dvh;overflow:auto}.asset-card{width:100%;display:flex;align-items:center;gap:9px;text-align:left;padding:10px;font-family:inherit;font-size:12px;word-break:break-word}.asset-icon{width:32px;height:32px;border-radius:7px;display:grid;place-items:center;background:#e9eede;flex-shrink:0;font-size:18px}.asset-text small{display:block;color:#78826c;font-size:10px;margin-top:4px}.object-section{border-top:1px solid #d9dfce;margin-top:23px;padding-top:20px}.count{font-size:11px;color:#6a765b;margin-left:auto}.object-list{display:flex;flex-direction:column;gap:5px}.object-list button{text-align:left;display:flex;gap:8px;font-family:inherit;font-size:12px;word-break:break-word}.object-list .selected{border-color:#83a22a;background:#e9f7cc}.viewport-shell{position:relative;overflow:hidden;background:#171d22}#viewport{height:100%;width:100%;touch-action:none}canvas{display:block}.view-toolbar{position:absolute;top:18px;left:18px;right:18px;display:flex;gap:6px;align-items:center;flex-wrap:wrap;pointer-events:none}.view-toolbar>*{pointer-events:auto}.view-toolbar button{background:#f9fbf1ec;font-size:12px;padding:8px 10px}.segment{display:flex;gap:3px;padding:4px;background:#f8fbefdd;border-radius:11px}.segment button{border:0}.viewport-state{position:absolute;top:87px;left:50%;transform:translateX(-50%);background:#202919dd;color:#f4f9e8;border:1px solid #62794c;padding:12px 20px;border-radius:12px;max-width:80%;font-size:13px;line-height:1.6;text-align:center;pointer-events:none}.placement-hint{position:absolute;bottom:65px;left:50%;transform:translateX(-50%);padding:13px 20px;background:#ceff59;color:#24300f;border-radius:12px;max-width:90%;font-size:13px;pointer-events:none}.view-footer{position:absolute;bottom:0;left:0;right:0;padding:12px 17px;background:#131a1bc9;color:#c2cdb9;font-size:10px;display:flex;gap:12px;justify-content:space-between;pointer-events:none}.retry{position:absolute;top:170px;left:50%;transform:translateX(-50%)}.empty{color:#78826c;font-size:13px;line-height:1.9}.selected-title{border-bottom:1px solid #d9dfce;padding-bottom:16px;margin-bottom:18px}.selected-title h3{font-size:17px;margin:10px 0 0;word-break:break-word;line-height:1.5}.badge{font-size:10px;background:#e4ead7;padding:4px 7px;border-radius:5px}.property-group{margin-bottom:21px}.property-group>label{display:block;margin-bottom:9px;font-size:14px}.vector-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.vector-fields label{font-family:Arial,sans-serif;font-size:10px;color:#738163}.vector-fields input{padding:8px 5px;font-family:Arial,sans-serif;font-size:12px;margin-top:4px;min-width:0}.range-row{display:flex;gap:8px;align-items:center}.range-row input{padding:0;accent-color:#70962e}.range-row output{font-size:12px;min-width:36px}.property-group select{font-size:12px}.check-label{display:flex!important;align-items:center;gap:8px;font-size:13px!important}.check-label input{width:auto;accent-color:#73942e}.record-actions{display:grid;gap:7px;border-top:1px solid #d9dfce;padding-top:16px}.record-actions button{font-size:13px}.help{margin-top:26px;font-size:12px;color:#69755c;line-height:1.8}.help summary{cursor:pointer;font-size:13px}.help p{margin:10px 0}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);z-index:10;background:#222f18;color:#f5faee;max-width:min(650px,90vw);padding:15px 22px;border-radius:12px;box-shadow:0 10px 40px #0003;font-size:13px;line-height:1.6}#toast.error{background:#672c22}@media(max-width:1100px){.workspace{grid-template-columns:215px minmax(250px,1fr) 245px}.library,.inspector{padding:17px 12px}.topbar{padding:0 12px}.wordmark{font-size:19px}.topbar>input{margin-left:0}.topbar #save-status{max-width:150px}.view-footer span:last-child{display:none}}@media(max-width:800px){.workspace{height:auto;min-height:calc(100dvh - 75px);grid-template-columns:175px 1fr}.inspector{grid-column:1/-1;border-top:1px solid #d8dbce;border-left:0}.viewport-shell{height:65dvh;min-height:420px}.library{max-height:65dvh}.topbar{height:auto;min-height:75px;flex-wrap:wrap;padding:10px}.topbar #save-status{order:2;width:100%;max-width:none}.wordmark span{display:none}.topbar>input{flex:1}.topbar button{padding:8px}.view-toolbar{top:10px;left:10px;right:10px;gap:4px}.view-toolbar button{padding:7px}.viewport-state{top:115px}.vector-fields{max-width:480px}.record-actions{grid-template-columns:repeat(3,1fr)}.asset-list{max-height:27dvh}.object-section{margin-top:15px;padding-top:15px}}
/* Keep the supplied PNG logo at its original aspect ratio. */
.brand-logo{display:block;width:100%;height:auto;object-fit:contain}
.login-brand{width:min(100%,320px);margin:0 0 24px}
.login-card h1{font-size:clamp(30px,8vw,42px)}
.wordmark{display:flex;align-items:center;flex:0 0 auto;width:clamp(130px,14vw,190px)}
