@import url('/fonts.css');
:root{font-family:Inter,Pretendard,-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo','Malgun Gothic',sans-serif;color:#253f45;background:#f5f7f6;font-synthesis:none;--teal:#204d55;--muted:#7b8b8d;--line:#e2e9e6;--paper:#fff;--gold:#b88d4e}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible{outline:3px solid #9abcac;outline-offset:3px}input,select,textarea{color:inherit}a{color:inherit;text-decoration:none}.shell{display:flex;min-height:100vh}.sidebar{width:258px;background:#183e48;color:#d7e5e5;padding:38px 24px 26px;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0}.brand{display:flex;gap:12px;align-items:center;font-size:22px;font-weight:750;letter-spacing:-1px}.brand-icon{font-size:32px;color:#c5dedc;display:inline-block}.brand small{font-size:8px;letter-spacing:2.1px;display:block;margin-top:7px;color:#8cabae}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:#859793}.campaign-box{margin:42px 0 30px;border:1px solid #42616a;border-radius:9px;padding:17px 15px}.campaign-box .eyebrow{font-size:8px;color:#8faeb1;letter-spacing:1.5px}.campaign-box strong{display:block;font-size:14px;margin:10px 0;overflow-wrap:anywhere}.connection{font-size:10px;color:#9fbbb9;display:flex;gap:6px;align-items:center}.connection:before,.dot{content:'';width:5px;height:5px;border-radius:50%;background:#a8c7b7;display:inline-block}.nav{width:100%;padding:14px 13px;border:0;border-radius:7px;background:transparent;color:#abc0c1;text-align:left;font-size:13px;margin-bottom:7px;display:flex;align-items:center;gap:12px}.nav>span{font-size:23px}.nav b{margin-left:auto;font-size:10px;font-weight:500;min-width:20px;text-align:center}.nav.active{color:#f1f6f2;background:#31545c}.nav.active b{background:#496a70;padding:3px;border-radius:4px}.sidebar-bottom{margin-top:auto;padding-top:50px}.side-action{display:block;border:0;background:none;color:#b5caca;font-size:11px;margin:16px 0;padding:3px}.sidebar-bottom p{font-size:10px;line-height:1.9;color:#8ca8ac;margin-top:30px}.sidebar-bottom>small{font-size:9px;color:#6f9499}main{margin-left:258px;width:calc(100% - 258px)}.topbar{height:80px;display:flex;align-items:center;justify-content:space-between;padding:0 48px;border-bottom:1px solid var(--line);background:#fcfdfb;font-size:11px;color:#82918e}.topbar strong{font-weight:500;color:#415957}.muted{margin:0 12px;color:#bdc7c3}.content{max-width:1390px;margin:auto;padding:34px 48px 20px}.hero{min-height:274px;background:#e7efeb;border:1px solid #dce6df;border-radius:12px;display:flex;justify-content:space-between;overflow:hidden;position:relative}.hero>div:first-child{padding:31px 34px;z-index:1}.hero .eyebrow{font-size:8px;color:#6f8b7e}.hero h1{font-family:Georgia,'Apple SD Gothic Neo',serif;font-size:32px;line-height:1.35;letter-spacing:-1.4px;font-weight:700;margin:13px 0 12px}.hero h1>span{color:var(--gold)}.hero p{font-size:11px;line-height:1.9;color:#71837c;margin:0}.hero-tag{font-size:9px;display:flex;align-items:center;gap:7px;margin-top:18px;color:#70877b}.hero-tag .dot{background:#7e9c88}.landscape{width:46%;position:relative;overflow:hidden;background:radial-gradient(ellipse at center,#dbe9e3,transparent 70%)}.moon{width:72px;height:72px;border-radius:50%;background:#f7f8ef;position:absolute;right:33%;top:34px;box-shadow:0 0 0 12px #f7f8ef33}.mountain{position:absolute;bottom:0;clip-path:polygon(0 100%,25% 38%,35% 55%,58% 0,80% 54%,89% 40%,100% 100%);height:200px;width:120%;background:#bdcfc6;right:-10%;}.mountain.back:after{content:'';position:absolute;inset:0;background:#f5f7ef;clip-path:polygon(48% 19%,58% 0,67% 21%,61% 17%,58% 22%,55% 14%)}.mountain.front{height:130px;right:-26%;background:#7d9b8e;bottom:-15px}.pine{font-size:100px;color:#456d60;position:absolute;bottom:-20px;transform:scaleX(.6);line-height:1}.p1{right:8%;font-size:145px}.p2{right:31%;font-size:90px;bottom:-19px;color:#5b8070}.p3{right:0%;font-size:90px;bottom:-13px;color:#375b51}.landscape-label{position:absolute;bottom:40px;left:12%;font-family:Georgia,serif;font-size:16px;letter-spacing:4px;color:#3b5d50;text-align:center}.landscape-label small{font-family:inherit;font-size:5px;letter-spacing:2px;display:block;margin-top:8px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:22px 0 39px}.stats article{background:var(--paper);border:1px solid var(--line);border-radius:9px;display:flex;gap:17px;align-items:center;padding:20px 23px}.stat-icon{background:#eff4ef;color:#6e8a79;width:42px;height:42px;border-radius:10px;display:grid;place-items:center;font-size:25px}.stats small{font-size:10px;color:var(--muted);display:block;margin-bottom:6px}.stats strong{font-family:Georgia,serif;font-size:25px;font-weight:500}.stats em{font:10px -apple-system,sans-serif;color:#9aa7a1;margin-left:4px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-heading .eyebrow{font-size:8px;color:#83988c}.section-heading h2{font-size:22px;letter-spacing:-.8px;margin:7px 0 8px}.section-heading h2 span{color:#829a89;font-size:14px;margin-left:8px;font-weight:500}.section-heading p{font-size:11px;color:var(--muted);margin:0}.button{padding:10px 17px;border-radius:6px;border:1px solid var(--line);font-size:11px;background:#fff;color:#4d6662;white-space:nowrap;min-height:38px}.button.primary{background:var(--teal);border-color:var(--teal);color:#fff}.button.primary:hover{background:#32646a}.button.subtle{background:transparent}.button.danger{color:#a15a50;border-color:#e4d0ca}.filters{display:flex;justify-content:space-between;gap:14px;margin:24px 0 20px}.search{background:#fff;border:1px solid var(--line);border-radius:7px;display:flex;align-items:center;gap:10px;padding:0 13px;width:340px}.search span{font-size:23px;color:#91a39a}.search input{border:0;outline:none;padding:12px 0;width:100%;font-size:11px;background:transparent}input::placeholder,textarea::placeholder{color:#a4aea9}select{border:1px solid var(--line);border-radius:6px;background:#fff;padding:10px 14px;font-size:11px}.record-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.character-card,.scenario-card{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;text-align:left;padding:0;transition:transform .2s,box-shadow .2s;color:inherit}.character-card:hover,.scenario-card:hover{transform:translateY(-2px);box-shadow:0 8px 25px #274a3c0b}.card-top{height:6px;background:#829d89}.character-card:nth-child(3n+2) .card-top{background:#bda17d}.character-card:nth-child(3n) .card-top{background:#8b9eaf}.card-body{padding:23px}.card-identity{display:flex;gap:14px;align-items:center}.avatar{width:54px;height:54px;border-radius:12px;background:#edf3ef;color:#658372;display:grid;place-items:center;font-size:25px}.identity{flex:1;min-width:0}.identity h3{margin:0 0 6px;font-size:18px;letter-spacing:-.5px;overflow-wrap:anywhere}.identity p{font-size:10px;color:#899a90;margin:0;overflow-wrap:anywhere}.badge{background:#eff4ee;color:#6f8876;font-size:9px;border-radius:4px;padding:5px 8px;white-space:nowrap}.badge.retired,.badge.failure{background:#f3ece5;color:#a18668}.badge.in-progress{background:#e8f0f5;color:#6c8b9b}.card-numbers{display:grid;grid-template-columns:repeat(3,1fr);padding:21px 0 18px;margin-top:15px;border-bottom:1px solid #edf0ed}.card-numbers>div+div{border-left:1px solid #edf0ed;padding-left:20px}.card-numbers small{display:block;font-size:9px;color:#94a097;margin-bottom:6px}.card-numbers strong{font-family:Georgia,serif;font-size:20px;font-weight:500}.card-numbers em{font-style:normal;font-size:9px;color:#94a097;margin-left:5px}.card-bottom{display:flex;justify-content:space-between;font-size:10px;color:#86948c;margin-top:16px;gap:8px}.card-bottom span:last-child{color:#6b8b78}.empty{grid-column:1/-1;min-height:250px;border:1px dashed #cbd8cf;border-radius:10px;background:#f9fbf9;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px}.empty-icon{font-size:35px;color:#92ab9c}.empty h3{font-size:16px;margin:15px 0 8px}.empty p{font-size:11px;color:#8a988f;line-height:1.8;margin:0 0 16px}.scenario-head{display:flex;gap:16px;align-items:center}.scenario-number{font-family:Georgia,serif;font-size:25px;color:#718c7b;background:#eef3ed;padding:14px;border-radius:8px}.scenario-card h3{font-size:16px;margin:0 0 8px;overflow-wrap:anywhere}.scenario-card p{font-size:10px;color:#88958c;margin:0}.scenario-meta{display:flex;gap:16px;font-size:10px;color:#7f8f85;padding:19px 0;border-bottom:1px solid var(--line)}footer{font-size:9px;color:#a2ada5;text-align:center;padding:34px 0 6px}footer span{margin:0 8px}dialog{border:1px solid #dce5df;border-radius:14px;box-shadow:0 25px 120px #143d412b;color:var(--teal);padding:0;background:#fff}dialog::backdrop{background:#122e3a66;backdrop-filter:blur(4px)}.connect-dialog{width:min(460px,calc(100% - 32px));padding:32px}.connect-head{text-align:center;margin-bottom:24px}.connect-head .brand-icon{display:block;margin-bottom:18px}.connect-head .eyebrow{font-size:8px}.connect-head h2{font-size:23px;letter-spacing:-1px;margin:12px 0}.connect-head p{font-size:11px;color:#819187;line-height:1.9}.connect-tabs{display:flex;background:#f0f4ef;padding:4px;border-radius:7px;margin-bottom:22px;gap:4px}.connect-tabs button{flex:1;background:none;border:0;padding:10px;border-radius:5px;font-size:11px;color:#829486}.connect-tabs button.active{background:#fff;color:var(--teal);box-shadow:0 1px 5px #294b3e0e}label{display:block;font-size:11px;font-weight:600;color:#577364}label input,label textarea,label select{display:block;width:100%;margin-top:8px;border:1px solid #dce5de;border-radius:6px;padding:11px 12px;background:#fcfdfb;outline:none;font-size:12px;font-weight:400}label input:focus,label textarea:focus,label select:focus{border-color:#789c87;box-shadow:0 0 0 3px #eaf1eb}textarea{resize:vertical;min-height:85px}.hint{font-size:10px;color:#96a297;line-height:1.8;margin:13px 0 20px}.wide{width:100%;margin-top:8px}.form-error{color:#ae5b4f;font-size:11px;line-height:1.6;white-space:pre-line}.form-error:empty{display:none}.editor{width:min(760px,calc(100% - 28px));max-height:92vh}.editor-head{display:flex;align-items:center;justify-content:space-between;padding:25px 30px;border-bottom:1px solid var(--line)}.editor-head .eyebrow{font-size:8px}.editor-head h2{font-size:22px;margin:7px 0 0}.icon-button{font-size:26px;border:0;background:none;color:#8da195;width:36px;height:36px}.fields{padding:26px 30px}.form-section{margin-bottom:28px}.form-section h3{font-size:13px;margin:0 0 17px;padding-bottom:11px;border-bottom:1px solid var(--line)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.full{grid-column:1/-1}.checkbox-label{display:flex;align-items:center;gap:8px;font-weight:400;font-size:12px;padding:9px 0}.checkbox-label input{width:15px;height:15px;margin:0;accent-color:var(--teal)}.perk-row{display:grid;grid-template-columns:1fr 65px;gap:10px;margin-bottom:9px;align-items:center}.perk-row input{width:100%;border:1px solid #dce5de;border-radius:5px;padding:9px;font-size:11px}.perk-row input[type=number]{text-align:center}.perk-header{display:flex;justify-content:space-between;font-size:10px;color:#8b9c8f;margin-bottom:10px}.mastery-row{display:flex;align-items:center;gap:10px;margin-bottom:10px}.mastery-row input[type=text]{flex:1;min-width:0;padding:10px;border:1px solid #dce5de;border-radius:5px;font-size:11px}.mastery-row input[type=checkbox]{accent-color:var(--teal);width:17px;height:17px}.editor-foot{position:sticky;bottom:0;padding:17px 30px;background:#fafcf9;border-top:1px solid var(--line)}.editor-foot>div{display:flex;align-items:center;gap:8px}.spacer{flex:1}.code-actions{display:flex;gap:10px}.toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);padding:13px 22px;background:#234e48;color:white;border-radius:8px;font-size:12px;opacity:0;pointer-events:none;transition:opacity .2s;z-index:30;max-width:90%;text-align:center}.toast.visible{opacity:1}#access-code{font-family:monospace;font-size:10px}#connect-close{display:none}.loading{opacity:.6;pointer-events:none}.section-hint{font-size:10px;line-height:1.8;color:#8c9c90}.participant-list{display:grid;grid-template-columns:repeat(2,1fr);gap:4px 20px}.retired-card{opacity:.7}
@media(min-width:1450px){.record-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1100px){.sidebar{width:220px;padding:30px 18px}main{margin-left:220px;width:calc(100% - 220px)}.content{padding:28px}.topbar{padding:0 28px}.hero h1{font-size:28px}.landscape-label{left:0;font-size:12px}.stats article{padding:17px 13px;gap:10px}.stats .stat-icon{width:33px;height:33px}.card-body{padding:18px}}
@media(max-width:760px){.shell{display:block}.sidebar{position:static;width:100%;padding:18px 20px 0;display:block}.brand{font-size:19px}.brand small{font-size:7px}.brand-icon{font-size:27px}.campaign-box{border:0;padding:0;margin:16px 0;display:flex;align-items:center;gap:10px}.campaign-box .eyebrow{display:none}.campaign-box strong{font-size:12px;margin:0}.connection{font-size:9px}.sidebar nav{display:flex;gap:8px}.nav{font-size:12px;padding:9px 12px}.nav span{font-size:20px}.sidebar-bottom{display:flex;padding:0 0 12px;gap:14px;flex-wrap:wrap}.side-action{margin:2px 0;font-size:9px}.sidebar-bottom p,.sidebar-bottom>small{display:none}main{margin:0;width:100%}.topbar{height:56px;padding:0 20px;font-size:10px}.topbar .button{padding:6px 10px;min-height:30px;font-size:10px}.content{padding:20px}.hero{min-height:250px}.hero>div:first-child{padding:27px 23px}.hero h1{font-size:26px}.hero p{font-size:10px}.hero .eyebrow{font-size:6px}.landscape{position:absolute;right:0;bottom:0;top:0;width:44%;opacity:.7}.landscape-label{display:none}.hero-tag{font-size:8px}.stats{gap:8px;margin:14px 0 29px}.stats article{display:block;padding:13px 10px}.stats .stat-icon{display:none}.stats small{font-size:8px}.stats strong{font-size:24px}.section-heading h2{font-size:19px}.section-heading p{font-size:10px}.section-heading .button{font-size:10px;padding:10px 12px}.search{width:100%}.filters{gap:8px}.filters select{max-width:110px;font-size:10px;padding:8px}.search input{font-size:10px}.record-grid{grid-template-columns:1fr}.connect-dialog{padding:25px}.connect-head h2{font-size:21px}.editor-head{padding:20px}.fields{padding:20px}.form-grid.four{grid-template-columns:repeat(2,1fr)}.form-grid.three{gap:12px}.editor-foot{padding:15px 20px}.form-grid{gap:15px 12px}.participant-list{grid-template-columns:1fr}footer{font-size:8px;line-height:1.8}.card-body{padding:22px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
/* Class sheets */
.class-picker label{display:flex;flex-direction:column;gap:8px}.class-facts{display:flex;flex-wrap:wrap;gap:10px 18px;padding:16px;background:#eef5f5;border:1px solid #d5e5e4;border-radius:12px;font-size:13px}.class-facts strong{width:100%;font-size:18px;color:#285556}.preset-perk{display:grid;grid-template-columns:100px 1fr;gap:14px;padding:15px 0;border-bottom:1px solid #e8ecec;font-size:14px;line-height:1.7}.perk-checks{display:flex;gap:8px;align-items:flex-start;padding-top:5px}.perk-checks input[type=checkbox],.mastery-row input[type=checkbox]{width:22px;height:22px;flex-shrink:0;accent-color:#347777;cursor:pointer}.combined-status{display:block;font-size:12px;color:#687b80;margin-top:5px}.mastery-row{align-items:flex-start;line-height:1.7}.mastery-row span{font-size:14px;white-space:normal}footer a{color:inherit;text-underline-offset:3px}@media(max-width:600px){.preset-perk{grid-template-columns:1fr;gap:8px}.perk-checks{padding-top:0}.class-facts{gap:8px 12px}.class-picker select{font-size:14px}}
/* Character portraits */
.character-avatar{display:block;object-fit:cover;border-radius:14px;flex-shrink:0;width:60px;height:60px;border:1px solid #d5dfd9;background:#e5eeea}.class-profile{display:flex;gap:20px;align-items:stretch;padding:18px;border:1px solid #d5e5e4;border-radius:14px;background:#eef5f5}.class-portrait{display:block;width:132px;height:132px;object-fit:cover;flex-shrink:0;border-radius:12px;box-shadow:0 3px 12px #204d5520}.class-profile .class-facts{padding:6px 0;border:0;background:none;border-radius:0;align-content:center;flex:1;min-width:0}.class-profile .class-facts strong{font-size:21px;line-height:1.3;margin:0 0 4px}.class-profile .class-facts span{line-height:1.6}@media(max-width:600px){.class-profile{gap:14px;padding:14px}.class-portrait{width:100px;height:100px}.class-profile .class-facts{gap:4px 12px}.class-profile .class-facts strong{font-size:18px}.class-profile .class-facts span{font-size:12px}.character-avatar{width:52px;height:52px}}
