:root{
  --fw-navy:#071a2f;
  --fw-navy-2:#0d2c50;
  --fw-blue:#174f91;
  --fw-gold:#cda65b;
  --fw-gold-bright:#f3d58e;
  --fw-paper:#f7f0df;
  --fw-paper-2:#fffaf0;
  --fw-ink:#17202b;
  --fw-shadow:0 10px 28px rgba(7,18,32,.24),0 2px 6px rgba(7,18,32,.18);
}

body.eumagia-splash-open{overflow:hidden}
.eumagia-splash{
  position:fixed;
  z-index:1000;
  inset:0;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:#020d1c;
  opacity:1;
  visibility:visible;
  transition:opacity .48s ease,visibility .48s ease;
}
.eumagia-splash[hidden]{display:none}
.eumagia-splash.is-closing{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
.eumagia-splash-image{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  user-select:none;
  -webkit-user-drag:none;
}
.eumagia-splash::after{
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:22%;
  pointer-events:none;
  background:linear-gradient(0deg,rgba(1,8,18,.72),transparent);
}
.eumagia-splash-start{
  position:absolute;
  z-index:1;
  left:50%;
  bottom:max(24px,4vh);
  min-width:min(320px,calc(100vw - 36px));
  padding:13px 34px 11px;
  border:1px solid #f3d58e;
  border-radius:4px;
  color:#fff8e6;
  background:linear-gradient(180deg,rgba(21,55,91,.96),rgba(5,24,45,.98));
  box-shadow:0 0 0 2px rgba(5,18,35,.9),0 0 24px rgba(243,213,142,.28),0 12px 32px rgba(0,0,0,.45);
  font:inherit;
  text-align:center;
  transform:translateX(-50%);
  cursor:pointer;
  transition:transform .18s ease,filter .18s ease,box-shadow .18s ease;
}
.eumagia-splash-start::before,
.eumagia-splash-start::after{
  content:"◆";
  position:absolute;
  top:50%;
  color:#d8ae5c;
  font-size:9px;
  transform:translateY(-50%);
}
.eumagia-splash-start::before{left:15px}
.eumagia-splash-start::after{right:15px}
.eumagia-splash-start:hover{
  filter:brightness(1.12);
  transform:translateX(-50%) translateY(-2px);
  box-shadow:0 0 0 2px rgba(5,18,35,.9),0 0 32px rgba(243,213,142,.4),0 14px 36px rgba(0,0,0,.5);
}
.eumagia-splash-start:focus-visible{outline:3px solid #fff;outline-offset:4px}
.eumagia-splash-start-main{
  display:block;
  font-family:"Noto Serif JP",serif;
  font-size:clamp(17px,2vw,22px);
  font-weight:800;
  letter-spacing:.18em;
}
.eumagia-splash-start-sub{
  display:block;
  margin-top:3px;
  color:#d8ae5c;
  font-size:9px;
  font-weight:800;
  letter-spacing:.22em;
}
.eumagia-account-flow{
  position:absolute;
  z-index:4;
  inset:0;
  display:grid;
  place-items:center;
  padding:20px;
  background:rgba(1,9,20,.68);
  backdrop-filter:blur(8px);
}
.eumagia-account-flow[hidden]{display:none}
.eumagia-account-card{
  position:relative;
  width:min(540px,calc(100vw - 32px));
  max-height:calc(100dvh - 32px);
  overflow:auto;
  padding:clamp(28px,5vw,48px);
  border:1px solid #d8ae5c;
  border-radius:8px;
  color:#f8f2e5;
  background:
    linear-gradient(135deg,transparent 16px,#071a2f 0) top left,
    linear-gradient(225deg,transparent 16px,#071a2f 0) top right,
    linear-gradient(315deg,transparent 16px,#071a2f 0) bottom right,
    linear-gradient(45deg,transparent 16px,#071a2f 0) bottom left;
  background-size:51% 51%;
  background-repeat:no-repeat;
  box-shadow:0 0 0 3px rgba(4,18,35,.9),0 24px 80px rgba(0,0,0,.58),inset 0 0 48px rgba(23,79,145,.22);
  text-align:center;
}
.eumagia-account-card::before{
  content:"◆";
  position:absolute;
  top:11px;
  left:50%;
  color:#d8ae5c;
  font-size:12px;
  transform:translateX(-50%);
}
.eumagia-account-back{
  position:absolute;
  top:16px;
  left:18px;
  width:36px;
  height:36px;
  border:1px solid rgba(216,174,92,.65);
  border-radius:50%;
  color:#f8e8bd;
  background:rgba(4,20,38,.8);
  font-size:18px;
  cursor:pointer;
}
.eumagia-account-kicker{margin:0 0 7px;color:#d8ae5c;font-size:10px;font-weight:900;letter-spacing:.28em}
.eumagia-account-step h2{margin:0;color:#fff5d8;font-family:"Noto Serif JP",serif;font-size:clamp(22px,4vw,31px);letter-spacing:.08em}
.eumagia-account-step>p{margin:10px 0 22px;color:#cbd8e5;font-size:13px;line-height:1.7}
.eumagia-account-choices{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:22px}
.eumagia-account-choices button{
  min-height:112px;
  padding:18px 14px;
  border:1px solid #b98e43;
  border-radius:6px;
  color:#fff6dc;
  background:linear-gradient(180deg,rgba(23,79,145,.72),rgba(5,24,45,.96));
  box-shadow:inset 0 0 18px rgba(232,194,112,.08);
  cursor:pointer;
}
.eumagia-account-choices button:hover,.eumagia-account-choices button:focus-visible{border-color:#ffe4a4;background:linear-gradient(180deg,rgba(31,99,167,.88),rgba(8,35,65,.98));outline:none}
.eumagia-account-choices strong{display:block;font-family:"Noto Serif JP",serif;font-size:20px;letter-spacing:.1em}
.eumagia-account-choices span{display:block;margin-top:8px;color:#cbd8e5;font-size:11px;line-height:1.5}
#eumagiaAccountNameForm label{display:block;margin:20px 0 7px;color:#ead29d;font-size:12px;font-weight:800;text-align:left}
#eumagiaPlayerName{
  width:100%;
  padding:14px 16px;
  border:1px solid #b98e43;
  border-radius:5px;
  color:#16263a;
  background:#fffaf0;
  font:700 17px/1.3 inherit;
  box-shadow:inset 0 2px 6px rgba(0,0,0,.12);
}
#eumagiaPlayerName:focus{outline:3px solid rgba(243,213,142,.38);outline-offset:2px}
.eumagia-account-step .eumagia-account-note{margin:9px 0 0;color:#9fb2c5;font-size:10px;text-align:left}
.eumagia-account-error{min-height:22px!important;margin:10px 0 4px!important;color:#ffbfab!important;font-size:12px!important;font-weight:800}
.eumagia-account-submit{
  min-width:190px;
  padding:12px 28px;
  border:1px solid #ffe0a0;
  border-radius:4px;
  color:#fff8e6;
  background:linear-gradient(180deg,#255e9b,#0a2a4d);
  box-shadow:0 7px 20px rgba(0,0,0,.3);
  font:800 17px/1.2 inherit;
  letter-spacing:.14em;
  cursor:pointer;
}
.eumagia-account-submit:disabled{opacity:.62;cursor:wait}
.eumagia-prologue{
  position:fixed;
  z-index:1100;
  inset:0;
  display:grid;
  align-items:end;
  overflow:hidden;
  padding:clamp(20px,5vh,54px) clamp(16px,5vw,72px);
  opacity:1;
  visibility:visible;
  transition:opacity .42s ease,visibility .42s ease;
}
.eumagia-prologue[hidden]{display:none}
.eumagia-prologue.is-closing{opacity:0;visibility:hidden;pointer-events:none}
.eumagia-prologue-backdrop{
  position:absolute;
  inset:-20px;
  background:linear-gradient(180deg,rgba(1,8,18,.18),rgba(1,8,18,.86)),url('./og.png') center/cover no-repeat;
  filter:saturate(.78) brightness(.7);
  transform:scale(1.03);
}
.eumagia-prologue-card{
  position:relative;
  width:min(920px,100%);
  margin:0 auto;
  padding:clamp(24px,4vw,40px) clamp(24px,5vw,58px);
  border:1px solid #d6ad5d;
  border-radius:8px;
  color:#f8f1df;
  background:linear-gradient(105deg,rgba(3,17,33,.98),rgba(10,39,70,.94));
  box-shadow:0 0 0 3px rgba(2,12,24,.92),0 22px 70px rgba(0,0,0,.58),inset 0 0 50px rgba(39,91,143,.18);
}
.eumagia-prologue-card::before,.eumagia-prologue-card::after{content:"◆";position:absolute;top:50%;color:#d6ad5d;font-size:10px;transform:translateY(-50%)}
.eumagia-prologue-card::before{left:10px}
.eumagia-prologue-card::after{right:10px}
.eumagia-prologue-kicker{margin:0 0 7px;color:#d6ad5d;font-size:10px;font-weight:900;letter-spacing:.3em}
.eumagia-prologue-card h2{margin:0;color:#fff0c2;font-family:"Noto Serif JP",serif;font-size:clamp(24px,4vw,38px);letter-spacing:.1em}
.eumagia-prologue-copy{max-width:760px;min-height:3.5em;margin:13px 0 0;color:#d9e3ec;font-family:"Noto Serif JP",serif;font-size:clamp(13px,1.8vw,17px);font-weight:600;line-height:1.9}
.eumagia-prologue-speaker{margin:16px 0 0;padding:12px 16px;border-left:3px solid #d6ad5d;color:#fff1bd;background:rgba(177,118,42,.13);font-size:clamp(14px,2vw,18px);font-weight:900;line-height:1.65}
.eumagia-prologue-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}
.eumagia-prologue-actions button{min-width:112px;padding:10px 18px;border-radius:4px;font:800 13px/1.3 inherit;letter-spacing:.1em;cursor:pointer}
.eumagia-prologue-skip{border:1px solid #60768c;color:#b8c6d3;background:rgba(4,20,38,.72)}
.eumagia-prologue-next{border:1px solid #efd185;color:#fff7dc;background:linear-gradient(180deg,#225c9a,#0b2b4f);box-shadow:0 7px 20px rgba(0,0,0,.3)}
.eumagia-prologue-actions button:focus-visible{outline:3px solid #fff;outline-offset:3px}

@media(max-aspect-ratio:4/3){
  .eumagia-splash-image{object-fit:contain}
  .eumagia-splash-start{bottom:max(16px,env(safe-area-inset-bottom))}
}
@media(max-width:560px){
  .eumagia-account-card{padding:40px 22px 28px}
  .eumagia-account-choices{grid-template-columns:1fr}
  .eumagia-account-choices button{min-height:86px}
  .eumagia-prologue{padding:14px}
  .eumagia-prologue-card{padding:26px 24px 22px}
  .eumagia-prologue-copy{min-height:5.6em}
}

body.floating-workspace{
  width:100vw;
  height:100dvh;
  min-height:0;
  overflow:hidden;
  color:var(--fw-ink);
  background:#d8dde1;
}
.floating-workspace .brand-mark img{width:100%;height:100%;object-fit:cover}

.floating-workspace .title-hero,
.floating-workspace .records-section,
.floating-workspace .app-header .header-actions,
.floating-workspace .canvas-panel>.panel-header,
.floating-workspace .canvas-panel>.toolbar,
.floating-workspace .canvas-panel>.ae-topbar,
.floating-workspace .canvas-panel>.footer-strip,
.floating-workspace .canvas-panel>.ae-transformbar:not(.show),
.floating-workspace #aeScrim{
  display:none!important;
}

.floating-workspace .app-header{
  position:fixed;
  z-index:110;
  top:14px;
  left:16px;
  width:auto;
  min-height:54px;
  padding:7px 13px 7px 8px;
  border:1px solid rgba(243,213,142,.78);
  border-radius:13px;
  background:linear-gradient(145deg,rgba(7,26,47,.98),rgba(13,44,80,.98));
  box-shadow:var(--fw-shadow);
  overflow:hidden;
}
.floating-workspace .app-header::before,
.floating-workspace .app-header::after{display:none}
.floating-workspace .brand-mark{width:40px;height:40px;border-radius:10px}
.floating-workspace .brand h1{font-size:18px;color:var(--fw-gold-bright);letter-spacing:.12em;text-shadow:none}
.floating-workspace .brand small{font-size:11px;color:#dce7f1}

.floating-workspace .layout{
  position:fixed;
  z-index:1;
  inset:0;
  width:100%;
  height:100%;
  margin:0;
  padding:0;
  display:block;
}
.floating-workspace .canvas-panel{
  position:fixed;
  z-index:1;
  inset:0;
  display:block;
  width:100vw;
  height:100dvh;
  border:0;
  border-radius:0;
  background:#d9dee2;
  box-shadow:none;
  overflow:hidden;
}
.floating-workspace .canvas-panel::before{
  content:"";
  position:absolute;
  z-index:0;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 50% 44%,rgba(255,255,255,.7),transparent 55%),
    linear-gradient(90deg,rgba(10,29,47,.035) 1px,transparent 1px),
    linear-gradient(rgba(10,29,47,.035) 1px,transparent 1px);
  background-size:auto,24px 24px,24px 24px;
}
.floating-workspace .canvas-wrap{
  position:absolute;
  z-index:1;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  min-height:0;
  padding:0;
  overflow:hidden!important;
  background:transparent;
}
.floating-workspace .canvas-stage{
  position:absolute;
  top:0;
  left:0;
  width:1200px;
  height:840px;
  max-width:none;
  margin:0;
  border:1px solid #b9bdc1;
  border-radius:2px;
  background:#fff;
  box-shadow:0 7px 30px rgba(24,33,43,.18),0 0 0 1px rgba(255,255,255,.8);
}
.floating-workspace .canvas-message{
  right:10px;
  bottom:10px;
  padding:5px 8px;
  border-radius:5px;
  font-size:11px;
  opacity:.72;
}
.floating-workspace .canvas-panel>.ae-transformbar.show{
  position:fixed;
  z-index:64;
  top:130px;
  left:50%;
  width:max-content;
  max-width:calc(100vw - 640px);
  padding:5px 7px;
  border:1px solid #9b7b42;
  border-radius:7px;
  background:#fff3c9;
  box-shadow:0 6px 18px rgba(7,18,32,.18);
  transform:translateX(-50%);
}
.floating-workspace .canvas-panel>.ae-transformbar.show .ae-button{min-height:32px;padding:4px 8px;font-size:12px}

.fw-floating-panel,
.floating-workspace .ae-layer-panel{
  position:fixed;
  z-index:70;
  display:flex;
  flex-direction:column;
  min-width:170px;
  border:1px solid #7b6437;
  border-radius:10px;
  color:var(--fw-ink);
  background:linear-gradient(145deg,var(--fw-paper-2),var(--fw-paper));
  box-shadow:var(--fw-shadow),inset 0 0 0 2px rgba(255,255,255,.54);
  overflow:visible;
  transform:none;
  transition:box-shadow .16s ease,opacity .16s ease;
}
.fw-floating-panel::before,
.floating-workspace .ae-layer-panel::before{
  content:"";
  position:absolute;
  z-index:2;
  inset:3px;
  border:1px solid rgba(177,137,67,.32);
  border-radius:7px;
  pointer-events:none;
}
.fw-floating-panel.is-dragging,
.floating-workspace .ae-layer-panel.is-dragging{box-shadow:0 18px 42px rgba(7,18,32,.34);opacity:.96}
.fw-panel-head,
.floating-workspace .ae-panel-head{
  position:relative;
  z-index:3;
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:38px;
  padding:7px 8px 7px 12px;
  color:var(--fw-gold-bright);
  border:0;
  border-bottom:1px solid #8e713e;
  border-radius:9px 9px 0 0;
  background:
    linear-gradient(90deg,rgba(255,255,255,.055),transparent 42%),
    linear-gradient(150deg,var(--fw-navy-2),var(--fw-navy));
  cursor:grab;
  touch-action:none;
  user-select:none;
}
.fw-panel-head:active,.floating-workspace .ae-panel-head:active{cursor:grabbing}
.fw-panel-title{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:900;letter-spacing:.07em}
.fw-panel-title span:first-child{font-size:18px;color:#fff0b9}
.fw-panel-tools{display:flex;gap:4px}
.fw-panel-button,
.floating-workspace .ae-panel-head .ae-button{
  position:relative;
  z-index:4;
  display:grid;
  place-items:center;
  width:23px;
  min-width:23px;
  height:23px;
  min-height:23px;
  padding:0;
  border:1px solid #866c3d;
  border-radius:5px;
  color:#f4dda4;
  background:#09192a;
  font-size:14px;
  line-height:1;
}
.fw-panel-body{position:relative;z-index:3;padding:9px;font-size:13px}
.fw-floating-panel.is-collapsed .fw-panel-body{display:none}
.fw-floating-panel.is-collapsed{min-width:180px}

#fwQuestMini{top:82px;left:16px;width:260px}
#fwQuestMini .fw-panel-body{padding:10px 12px}
.fw-quest-kicker{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#977022;font-size:12px;font-weight:900;letter-spacing:.1em}
.fw-quest-name{margin:7px 0 0;font-size:18px;line-height:1.4;color:#122438}
.fw-hint-button{width:100%;margin-top:10px;padding:9px 10px;border:1px solid #9c793c;border-radius:6px;color:#fff1c2;background:linear-gradient(150deg,#12365f,#09213b);font-size:13px;font-weight:900}
.fw-quest-hint{display:none;margin:8px 0 0;padding-top:8px;border-top:1px solid rgba(142,113,62,.32);color:#675839;font-size:13px;line-height:1.6}
#fwQuestMini.show-hint .fw-quest-hint{display:block}

#fwQuestBanner{top:12px;left:50%;width:min(640px,48vw);transform:translateX(-50%)}
#fwQuestBanner.custom-position{transform:none}
#fwQuestBanner .fw-panel-head{justify-content:center;min-height:30px;padding:4px 42px}
#fwQuestBanner .fw-panel-title{font-size:19px;letter-spacing:.14em}
#fwQuestBanner .fw-panel-tools{position:absolute;right:7px}
#fwQuestBanner .fw-panel-body{padding:7px 22px 9px;text-align:center}
#fwQuestBanner .task-card{padding:0;border:0;border-radius:0;color:var(--fw-ink);background:transparent;box-shadow:none}
#fwQuestBanner .task-meta{justify-content:center;margin-bottom:4px}
#fwQuestBanner .pill{padding:3px 8px;color:#665224;border-color:#cab176;background:rgba(223,197,139,.28);font-size:10px}
#fwQuestBanner .task-title{font-size:24px;line-height:1.3;color:#14202b}
#fwQuestBanner .task-objective{margin:4px 0 0;color:#4d4b44;font-size:13px;line-height:1.5}
#fwQuestBanner .hint{display:none}

#fwToolPanel{top:220px;left:16px;width:214px}
#fwToolPanel .fw-panel-body{padding:6px}
#fwToolPanel .toolbar{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:3px!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:visible!important;
}
#fwToolPanel .tool-section{display:contents}
#fwToolPanel .tool-btn{
  display:flex!important;
  align-items:center;
  justify-content:flex-start;
  gap:7px;
  width:100%!important;
  min-width:0!important;
  height:41px!important;
  padding:6px 9px!important;
  border:1px solid rgba(120,101,65,.23);
  border-radius:6px;
  color:#172331;
  background:rgba(255,255,255,.28);
}
#fwToolPanel .tool-btn:hover{border-color:#b28a43;background:#fff9e9}
#fwToolPanel .tool-btn.active{border-color:#1b4e87;color:#fff;background:linear-gradient(145deg,#235fa4,#123967);box-shadow:inset 0 1px rgba(255,255,255,.2)}
#fwToolPanel .tool-icon{width:24px;font-size:20px;text-align:center}
#fwToolPanel .tool-name{max-width:none;font-size:13px!important;text-overflow:clip}
#fwToolPanel .tool-context{grid-column:1/-1}

#fwColorPanel{left:16px;bottom:160px;width:286px}
#fwColorPanel .fw-panel-body{display:grid;gap:8px}
#fwColorPanel .color-palette{display:grid;grid-template-columns:repeat(8,1fr);gap:5px;padding:0;border:0;background:transparent}
#fwColorPanel .color-swatch{width:100%;height:25px;border-radius:5px}
#fwColorPanel .compact-field{display:flex;gap:8px;color:#403a2e}
#fwColorPanel .compact-field{font-size:13px}
#fwColorPanel .compact-field input[type=color]{width:42px;height:34px}

#fwBrushPanel{top:145px;right:16px;width:286px}
#fwBrushPanel .fw-panel-body{display:grid;gap:9px}
#fwBrushPanel .ae-group{display:grid;gap:9px;padding:0;border:0;background:transparent}
#fwBrushPanel label{display:grid;grid-template-columns:82px 1fr auto;align-items:center;gap:7px;color:#39362f;font-size:13px;font-weight:900}
#fwBrushPanel input[type=range]{width:100%}
#fwBrushPanel .ae-value{min-width:40px;font-size:12px}
#fwBrushPanel .ae-help{display:none}
#fwBrushPanel .fw-size-control{display:grid;grid-template-columns:82px 1fr auto;align-items:center;gap:7px;font-size:13px;font-weight:900}

.floating-workspace .ae-layer-panel{
  top:376px;
  right:16px;
  width:300px;
  max-height:270px;
  border-radius:10px;
}
.floating-workspace .ae-layer-panel:not(.open){display:none}
.floating-workspace .ae-panel-head{flex:0 0 auto;border-radius:9px 9px 0 0}
.floating-workspace .ae-panel-head h3{font-size:15px;letter-spacing:.08em}
.floating-workspace .ae-opacity{padding:7px 10px;background:rgba(255,255,255,.24);font-size:13px}
.floating-workspace .ae-layer-list{gap:4px;padding:7px}
.floating-workspace .ae-layer{grid-template-columns:28px 43px 1fr 28px;padding:4px;border-radius:7px;background:rgba(255,255,255,.34)}
.floating-workspace .ae-layer.active{border-color:#225a94;background:#dce9f6}
.floating-workspace .ae-thumb{width:43px;height:30px}
.floating-workspace .ae-layer-name{font-size:14px}
.floating-workspace .ae-layer-meta{font-size:11px}
.floating-workspace .ae-layer-actions{padding:6px;gap:4px}
.floating-workspace .ae-layer-actions .ae-button{min-height:30px;padding:4px 7px;font-size:11px}

#fwNavigatorPanel{right:16px;bottom:160px;width:240px}
#fwNavigatorPanel .fw-panel-body{padding:8px}
.fw-navigator-preview{position:relative;height:112px;border:1px solid #b89a60;background:#e4e0d6;overflow:hidden}
.fw-navigator-preview canvas{width:100%;height:100%;object-fit:contain;background:#fff;cursor:default}
.fw-nav-frame{position:absolute;inset:8px 12px;border:1px solid #d64545;pointer-events:none}
.fw-nav-controls{display:flex;align-items:center;gap:5px;margin-top:7px}
.fw-nav-controls .ae-group{display:flex;width:100%;padding:0;border:0;background:transparent}
.fw-nav-controls .ae-button{min-width:32px;min-height:32px;padding:4px 7px;border-radius:5px;font-size:12px}
.fw-nav-controls .ae-value{flex:1;text-align:center;font-size:12px}

#fwTopControls{
  position:fixed;
  z-index:112;
  top:14px;
  right:16px;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:7px;
}
#fwUserSwitcher{
  display:grid;
  grid-template-columns:auto minmax(112px,1fr) auto auto;
  width:100%;
  padding:5px;
  border-color:#8f713d;
  border-radius:9px;
  background:linear-gradient(155deg,#122d4c,#071827);
  box-shadow:var(--fw-shadow),inset 0 0 0 2px rgba(232,201,129,.13);
}
#fwUserSwitcher select{min-width:112px;max-width:170px}
#fwUserSwitcher .btn{padding:7px 8px;white-space:nowrap}
#fwQuickActions{display:flex;gap:8px}
#fwQuickActions .fw-quick-button{
  display:grid;
  grid-template-rows:25px auto;
  place-items:center;
  width:64px;
  min-height:58px;
  padding:5px 4px 4px;
  border:1px solid #8f713d;
  border-radius:9px;
  color:#f4e4b6;
  background:linear-gradient(155deg,#122d4c,#071827);
  box-shadow:var(--fw-shadow),inset 0 0 0 2px rgba(232,201,129,.13);
  font-size:11px;
  font-weight:900;
}
#fwQuickActions .fw-quick-button:hover{filter:brightness(1.12);transform:translateY(-1px)}
#fwQuickActions .fw-quick-button:disabled{cursor:not-allowed;filter:grayscale(.35);opacity:.42;transform:none}
#fwQuickActions .fw-quick-icon{font-size:24px;line-height:1}

#fwBottomDock{
  z-index:65;
  left:16px;
  right:16px;
  bottom:14px;
  height:132px;
  flex-direction:row;
  align-items:stretch;
  overflow:hidden;
  color:#edf4f9;
  border-color:#8f713d;
  background:linear-gradient(150deg,#0b223b,#071827);
}
#fwBottomDock::before{border-color:rgba(235,205,135,.24)}
#fwBottomDock .fw-panel-head{display:none}
#fwBottomDock .fw-panel-body{display:flex;align-items:stretch;width:100%;padding:8px 11px;gap:12px}
#fwBottomDock .rpg-status-card{
  display:grid;
  grid-template-columns:150px minmax(180px,1fr) minmax(380px,2fr);
  grid-template-rows:auto auto;
  flex:1;
  gap:5px 14px;
  min-width:0;
  padding:4px 10px;
  border:0;
  background:transparent;
  box-shadow:none;
}
#fwBottomDock .rpg-status-head{grid-row:1/3;display:block;padding-right:12px;border-right:1px solid rgba(224,196,132,.26)}
#fwBottomDock .rpg-status-head select{max-width:135px;margin-top:7px}
#fwBottomDock .rpg-xp-row{grid-column:2;grid-row:1}
#fwBottomDock .rpg-xp-track{grid-column:2;grid-row:2;align-self:start}
#fwBottomDock .rpg-boss-route{display:none}
#fwBottomDock .rpg-skill-grid{grid-column:3;grid-row:1/3;grid-template-columns:repeat(3,minmax(0,1fr));align-content:center}
#fwBottomDock .rpg-guide,#fwBottomDock #rpgNextQuestBtn{display:none}
#fwBottomDock .rpg-status-head h3{font-size:18px}
#fwBottomDock .rpg-kicker{font-size:11px}
#fwBottomDock .rpg-xp-row,#fwBottomDock .rpg-boss-route{font-size:12px}
#fwBottomDock .rpg-skill-label,#fwBottomDock .rpg-skill-value{font-size:12px}
#fwBottomDock .footer-strip{
  display:flex!important;
  flex:0 0 310px;
  align-items:center;
  justify-content:center;
  padding:0 0 0 11px;
  border:0;
  border-left:1px solid rgba(224,196,132,.26);
  background:transparent;
}
#fwBottomDock .footer-strip>span{display:none}
#fwBottomDock .footer-strip>div{display:grid!important;grid-template-columns:1fr 1fr;width:100%;gap:6px!important}
#fwBottomDock .footer-strip .btn{min-height:38px;padding:7px 9px;border-radius:6px;font-size:12px}
#fwBottomDock #submitToAiBtn{grid-column:1/-1;color:#fff0b9;border-color:#ae8747;background:linear-gradient(145deg,#245d9c,#12365e);font-size:13px}
#fwBottomDock #copyPromptBtn{display:none}

.floating-workspace .left-panel{
  position:fixed;
  z-index:105;
  top:0;
  left:0;
  width:min(390px,calc(100vw - 24px));
  height:100dvh;
  border:0;
  border-radius:0 12px 12px 0;
  box-shadow:0 24px 70px rgba(7,18,32,.4);
  transform:translateX(-105%);
  transition:transform .22s ease;
  overflow:auto;
}
.floating-workspace .left-panel.open{transform:none}
.floating-workspace .left-panel>.panel-header{position:sticky;top:0;z-index:4;color:#f3d58e;border-color:#8f713d;background:linear-gradient(145deg,#12365e,#071827)}
.floating-workspace .left-panel>.panel-body{padding-bottom:40px}
.floating-workspace .left-panel>.panel-body,.floating-workspace .left-panel .field label,.floating-workspace .left-panel .subtle-note{font-size:13px}
.floating-workspace .left-panel input,.floating-workspace .left-panel select,.floating-workspace .left-panel textarea,.floating-workspace .left-panel button{font-size:13px}
.floating-workspace .left-panel .fw-drawer-actions{display:grid;gap:8px;margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid #ded2b7}
.floating-workspace .left-panel .fw-drawer-actions .user-switcher{display:grid;grid-template-columns:auto 1fr auto auto;padding:7px;border-color:#d6c9ab;background:#f5efdf}
.floating-workspace .left-panel .fw-drawer-actions .header-menu{width:100%}
.floating-workspace .left-panel .fw-drawer-actions .header-menu>summary{width:100%}
.floating-workspace .left-panel .fw-drawer-actions .header-submenu{position:static;margin-top:6px;box-shadow:none}
.fw-drawer-close{position:relative;z-index:6;display:grid;place-items:center;width:30px;height:30px;margin-left:auto;border:1px solid #9c7c45;border-radius:6px;color:#f8e7b6;background:#081b2f;font-size:19px;line-height:1}
.floating-workspace .left-panel>.panel-header,.floating-workspace .records-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.floating-workspace .left-panel .task-card,
.floating-workspace .left-panel .timer-box{display:none}
.floating-workspace .left-panel .manual-practice-settings{display:block!important}

.floating-workspace .records-section.fw-open{
  position:fixed;
  z-index:104;
  inset:76px 5vw 145px;
  display:block!important;
  overflow:auto;
  border:1px solid #8f713d;
  border-radius:12px;
  background:#f5efe2;
  box-shadow:0 22px 80px rgba(7,18,32,.42);
}
.floating-workspace .records-section.fw-open>.panel{border:0;border-radius:0;box-shadow:none}

.fw-menu-scrim{display:none;position:fixed;z-index:100;inset:0;background:rgba(4,13,23,.44);backdrop-filter:blur(2px)}
.fw-menu-scrim.open{display:block}
.fw-menu-card{
  position:fixed;
  z-index:114;
  top:82px;
  right:16px;
  display:none;
  width:230px;
  padding:8px;
  border:1px solid #8f713d;
  border-radius:9px;
  background:#f9f1df;
  box-shadow:var(--fw-shadow);
}
.fw-menu-card.open{display:grid;gap:6px}
.fw-menu-card button{padding:10px;border:1px solid #c7b17e;border-radius:6px;color:#18283a;background:#fffaf0;text-align:left;font-weight:900}
.fw-menu-card button:hover{background:#e9f1f8;border-color:#7594b3}

.floating-workspace .ae-settings-panel{z-index:116;border-color:#8f713d;border-radius:10px;background:#fbf4e6}
.floating-workspace .grading-settings-dialog{z-index:120}
.floating-workspace dialog::backdrop{z-index:119}

@media(max-width:1100px){
  #fwQuestBanner{width:54vw}
  #fwNavigatorPanel{display:none}
  #fwBottomDock .rpg-status-card{grid-template-columns:135px 1fr}
  #fwBottomDock .rpg-skill-grid{display:none}
  #fwBottomDock .footer-strip{flex-basis:280px}
}

@media(max-width:760px){
  .floating-workspace .app-header{top:8px;left:8px;padding:5px 8px}
  .floating-workspace .brand-mark{width:34px;height:34px}
  .floating-workspace .brand small{display:none}
  #fwTopControls{top:58px;right:8px;gap:5px}
  #fwUserSwitcher{grid-template-columns:minmax(92px,1fr) auto auto;width:192px;padding:3px;gap:3px}
  #fwUserSwitcher label{display:none}
  #fwUserSwitcher select{min-width:0;max-width:none;width:100%;padding:5px 20px 5px 6px;font-size:11px}
  #fwUserSwitcher .btn{min-width:31px;padding:5px 4px;font-size:0}
  #fwUserSwitcher #addUserBtn::after{content:'＋';font-size:15px}
  #fwUserSwitcher #deleteUserBtn::after{content:'−';font-size:15px}
  #fwQuickActions{gap:5px}
  #fwQuickActions .fw-quick-button{width:43px;min-height:42px;grid-template-rows:21px auto;padding:3px 2px;font-size:7px}
  #fwQuickActions .fw-quick-icon{font-size:18px}
  #fwQuestMini,#fwColorPanel,#fwBrushPanel,.floating-workspace .ae-layer-panel,#fwNavigatorPanel{display:none!important}
  #fwQuestBanner{top:154px;left:8px;right:8px;width:auto;transform:none}
  #fwQuestBanner .fw-panel-head{min-height:25px}
  #fwQuestBanner .fw-panel-body{padding:5px 10px 7px}
  #fwQuestBanner .task-meta,#fwQuestBanner .task-objective{display:none}
  #fwQuestBanner .task-title{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .floating-workspace .canvas-wrap{padding:0}
  .floating-workspace .canvas-stage{width:1200px;height:840px}
  .floating-workspace .canvas-panel>.ae-transformbar.show{top:201px;max-width:calc(100vw - 16px);overflow-x:auto}
  #fwToolPanel{left:8px;right:8px;top:auto;bottom:92px;width:auto}
  #fwToolPanel .fw-panel-head{display:none}
  #fwToolPanel .fw-panel-body{padding:4px;overflow-x:auto}
  #fwToolPanel .toolbar{display:flex!important;flex-wrap:nowrap!important;width:max-content}
  #fwToolPanel .tool-section{display:contents}
  #fwToolPanel .tool-btn{width:46px!important;min-width:46px!important;height:43px!important;justify-content:center;padding:2px!important}
  #fwToolPanel .tool-name{display:none}
  #fwBottomDock{left:8px;right:8px;bottom:8px;height:78px}
  #fwBottomDock .fw-panel-body{padding:6px;gap:6px}
  #fwBottomDock .rpg-status-card{display:none}
  #fwBottomDock .footer-strip{flex:1;border:0;padding:0}
  #fwBottomDock .footer-strip>div{grid-template-columns:1fr 1fr 1fr}
  #fwBottomDock .footer-strip .btn{min-height:29px;padding:4px;font-size:8px}
  #fwBottomDock #submitToAiBtn{grid-column:auto}
  #fwBottomDock #copyImageBtn{display:none}
  .fw-panel-head{cursor:default}
  .floating-workspace .records-section.fw-open{inset:58px 8px 92px}
}

@media(prefers-reduced-motion:reduce){
  .eumagia-splash,.eumagia-splash-start,.eumagia-prologue{transition:none}
  .fw-floating-panel,.floating-workspace .left-panel{transition:none}
}
