:root{
  --page:#F5F3EF;
  --surface:#FFFFFF;
  --primary:#2F6B4F;
  --selected:#2F6B4F;
  --accent:#D9A441;
  --text:#1F2A24;
  --muted:#66716A;
  --line:#DFE2DB;
  color:var(--text);
  background:var(--page);
  font-weight:500;
}
.brand small{letter-spacing:.07em;font-weight:600}
.eyebrow{letter-spacing:.06em;font-weight:700}
.section-label span,.inspector-section{letter-spacing:.04em;font-weight:600}
.code-title{letter-spacing:.03em;font-weight:600}
body{color:var(--text);background:var(--page)}
.topbar,.sidebar,.stage-toolbar,.stage-footer{background:var(--surface);border-color:var(--line)}
.left-panel,.right-panel,.properties-head,.panel-tabs{border-color:var(--line)}
.brand strong,.sidebar h2,.stage-toolbar strong,.section-label{color:var(--text)}
.brand small,.muted,.sidebar p,.component-card small,.hint,.stage-footer{color:var(--muted)}
.status-dot{background:var(--selected)}
.top-actions button,.component-card,.lesson-card,.asset-item,.upload-zone,.element-actions button{background:var(--surface);border-color:var(--line);color:var(--text)}
.top-actions .primary,.component-icon.button-demo{background:var(--primary);border-color:var(--primary);color:var(--surface)}
.eyebrow{color:var(--selected)}
.tip>span{color:var(--accent)}.upload-zone>span{color:var(--primary)}
.tab.active{color:var(--selected);border-color:var(--selected)}
.component-card:hover,.asset-item:hover,.element-actions button:hover{border-color:var(--selected)}
.tip,.concept{background:var(--surface);border-color:var(--line)}
.lesson-tag{background:var(--page);color:var(--selected)}
.lesson-card li.done,.lesson-card li.done:before{color:var(--selected)}
.progress-bar{background:var(--line)}
.progress-bar span{background:var(--selected)}
.stage-controls button:hover,.stage-controls button.active{background:var(--page);color:var(--selected)}
.stage-controls .preview-btn{color:var(--text);border-color:var(--line)}
.canvas-area{background-color:var(--page);background-image:radial-gradient(var(--line) 1px,transparent 1px)}
.canvas-frame,.canvas-frame.mobile .canvas-page{background:var(--surface)}
.canvas-element:hover{border-color:var(--selected)}
.canvas-element.selected{border-color:var(--selected)}
.canvas-element.selected:before{background:var(--selected);color:var(--surface)}
.canvas-element .card-content{border-color:var(--line)}
.canvas-element hr{border-top-color:var(--line)}
.field input,.field select,.field textarea{border-color:var(--line);color:var(--text);background:var(--surface)}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--selected)}
.code-pane,#toast{background:var(--text);color:var(--surface)}
.code-title button{color:var(--primary)}
.canvas-placeholder{background:var(--page);color:var(--muted)}
:root{font-family:"Segoe UI","Microsoft YaHei",system-ui,sans-serif}
.topbar{height:64px;background:#FCFCFA;border-bottom:1px solid var(--line)}
.workspace{height:calc(100vh - 64px)}
.brand-mark{background:var(--text);border-radius:5px}
.brand strong{letter-spacing:0;font-weight:800}.brand small{letter-spacing:.04em}
.sidebar{background:#FCFCFA}.sidebar-head{padding-top:22px}.sidebar h2{letter-spacing:0;font-weight:800}
.component-card,.variant-option,.template-option,.asset-item,.guide-card{border-radius:5px;box-shadow:none}
.component-card:hover,.variant-option:hover,.template-option:hover{box-shadow:0 2px 0 #2F6B4F24;transform:none}
.tab{font-size:11px;white-space:nowrap}.tab.active{background:#E7F0E9}
.top-actions button,.field input,.field select,.field textarea,.library-search{border-radius:5px}
.stage-toolbar{background:#FCFCFA}.canvas-area{background-color:#F1F0EA;background-image:linear-gradient(#D9DED380 1px,transparent 1px),linear-gradient(90deg,#D9DED380 1px,transparent 1px);background-size:24px 24px}
.code-pane{background:#1F2A24}
.status-dot{box-shadow:0 0 0 3px #2F6B4F22}
.component-icon{color:var(--primary)}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.variant-option.button-preset{display:block;padding:10px}
.variant-option.button-preset .mini{width:100%;height:68px;margin-bottom:8px;background:#F5F3EF;border:1px solid var(--line);border-radius:4px;overflow:visible}
.variant-option.button-preset .preview-button{max-width:calc(100% - 14px);font-size:13px;white-space:nowrap;overflow:visible;text-overflow:clip;box-shadow:none}
.variant-option.button-preset .preview-button.variant-button-wide{width:calc(100% - 16px)}
.variant-option.button-preset .preview-button.variant-button-circle{width:49px;height:49px;font-size:22px}
.variant-option.button-preset .preview-button.variant-button-floating{width:53px;height:53px;font-size:23px}
.variant-option.button-preset strong{font-size:12px}.variant-option.button-preset small{line-height:1.4}
@media(max-width:760px){.workspace{height:auto}.topbar{height:auto}}
/* Keep the editor columns aligned to the viewport while the phone scrolls internally. */
:root{font-family:"Microsoft YaHei UI","Microsoft YaHei","Segoe UI",sans-serif;letter-spacing:-.015em}
.brand strong,.sidebar h2,.phone-app-header strong{letter-spacing:-.035em}
.brand small,.eyebrow,.section-label,.tab,.field label{letter-spacing:0}
.eyebrow{font-size:11px;font-weight:800;font-variant-numeric:tabular-nums}
.workspace{height:calc(100dvh - 64px);min-height:620px;align-items:stretch}
.sidebar{height:100%;min-height:0;overflow-y:auto}
.right-panel{min-height:0;overflow:hidden}.right-panel .inspector{min-height:0;overflow-y:auto}
.stage{height:100%;min-height:0;overflow:hidden}
.canvas-area{flex:1;min-height:0;overflow:auto;align-items:flex-start;justify-content:center;padding:22px 18px}
.canvas-frame.mobile{width:min(440px,100%);height:min(780px,calc(100dvh - 168px));min-height:560px;aspect-ratio:auto}
.canvas-frame.mobile .canvas-page{min-height:0;overflow-y:auto}
@media(max-width:760px){.workspace{height:auto;min-height:0}.sidebar,.stage{height:auto;overflow:visible}.right-panel{overflow:visible}.right-panel .inspector{max-height:360px}.canvas-area{overflow:auto}.canvas-frame.mobile{height:720px;min-height:560px}}
.phone-nav{height:72px;padding:4px 12px 0;border-top:1px solid #E7EAE4;background:#FFF;box-shadow:0 -6px 18px #1F2A2408}
.nav-pages{width:100%;display:flex;align-items:stretch;gap:1px;overflow-x:auto}
.nav-pages button{flex:1 0 76px;min-width:76px;gap:3px;padding:5px 4px 3px;border-radius:10px;color:var(--nav-inactive,var(--muted));font-size:10px;font-weight:550;letter-spacing:-.025em}
.nav-pages button.active{color:var(--nav-active,var(--text));font-weight:750}
.nav-pages button:hover{background:#F5F7F2}
.nav-pages button .nav-icon{width:26px;height:26px;display:grid;place-items:center;line-height:1}
.nav-icon svg,.nav-icon img{width:var(--icon-size,23px);height:var(--icon-size,23px);display:block;object-fit:contain}
.nav-icon svg{stroke-width:var(--icon-stroke,1.9);stroke-linecap:round;stroke-linejoin:round;fill:none;stroke:currentColor}
.nav-icon svg .icon-filled{display:none;fill:currentColor;stroke:none}
.nav-pages button.active .nav-icon svg.has-fill .icon-outline{display:none}
.nav-pages button.active .nav-icon svg.has-fill .icon-filled{display:block}
.nav-icon img{border-radius:3px}.nav-pages button:not(.active) .nav-icon img{opacity:.58}
.nav-icon-picker{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin:8px 0 13px}
.nav-icon-picker button{height:42px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--muted);display:grid;place-items:center}
.nav-icon-picker button:hover,.nav-icon-picker button.active{border-color:var(--primary);color:var(--primary);background:#EFF5EF}
.nav-icon-picker svg,.nav-icon-picker img{width:23px;height:23px;stroke:currentColor;stroke-width:1.9;fill:none;stroke-linecap:round;stroke-linejoin:round;object-fit:contain}
.nav-icon-upload{display:flex;gap:7px;align-items:center;margin-bottom:13px}.nav-icon-upload button{flex:1;border:1px solid var(--line);background:#fff;border-radius:7px;padding:9px 7px;color:var(--text);font-size:11px;font-weight:700}
.nav-icon-upload>.nav-icon{width:38px;height:36px;display:grid;place-items:center;border:1px solid var(--line);border-radius:7px;color:var(--text)}
.nav-icon-upload button:hover{border-color:var(--primary)}
.nav-icon-hint{font-size:10px;line-height:1.5;color:var(--muted);margin:0 0 12px}
.sidebar-head{padding:20px 18px 16px}.sidebar h2{margin-top:8px}
.component-card{height:92px;padding:11px 12px}.component-icon{font-size:22px;height:24px}.component-card strong{margin-top:7px}
.tab-body{padding:17px 16px}
/* Learning-first workbench: phone and generated code stay visible together. */
.workspace{grid-template-columns:258px minmax(640px,1fr) 292px}
.learning-workbench{display:grid;grid-template-columns:minmax(340px,.88fr) minmax(330px,1.12fr);flex:1;min-height:0;overflow:hidden;background:#ECEDE8}
.learning-workbench .canvas-area{min-width:0;padding:22px 18px;overflow:auto;align-items:flex-start}
.learning-workbench .canvas-frame.mobile{width:350px;height:min(650px,calc(100dvh - 164px));min-height:530px;border-radius:38px;border-width:7px}
.code-workbench{max-height:none;min-height:0;height:100%;border-left:1px solid #3A463F;overflow:auto;display:flex;flex-direction:column;background:#17201B}
.code-workbench .code-title{padding:20px 20px 12px;align-items:flex-start;border-bottom:1px solid #FFFFFF14}
.code-title>div{display:grid;grid-template-columns:auto 1fr;column-gap:8px;align-items:center}
.code-title strong{font-size:13px;color:#F4F2EC}.code-title small{grid-column:2;display:block;margin-top:4px;color:#93A098;font-size:10px;font-weight:500}
.code-live-dot{width:7px;height:7px;border-radius:50%;background:#79C99E;box-shadow:0 0 0 4px #79C99E16}
.code-workbench .code-tabs{padding:13px 20px 0}.code-workbench .code-tabs button{font-size:11px;padding:6px 13px}
.code-map-hint{margin:13px 20px 4px;padding:10px 12px;display:flex;align-items:center;gap:8px;border:1px solid #FFFFFF18;background:#FFFFFF08;color:#E5E9E4;font-size:10px}
.code-map-hint span{padding:3px 7px;background:#FFFFFF10}.code-map-hint b{color:#D9A441}.code-map-hint em{margin-left:auto;color:#96A099;font-style:normal}
.code-workbench pre{flex:1;max-height:none;margin:8px 0 0;padding:4px 0 18px;font-size:11px;line-height:1.75;white-space:pre-wrap;overflow:auto;counter-reset:code-line}
.code-line{display:block;position:relative;min-height:19px;padding:0 22px 0 54px;color:#E7E9E5;border-left:2px solid transparent;counter-increment:code-line}
.code-line:before{content:counter(code-line);position:absolute;left:17px;width:22px;text-align:right;color:#607067}
.code-line:hover{background:#FFFFFF0B;border-left-color:#D9A441;color:#FFF}
.code-line.is-key{color:#A8D8B9}.code-line.is-value{color:#E7C873}
.code-workbench .code-explain{margin:0;padding:12px 20px;border-top:1px solid #FFFFFF14;color:#CFD5D0;font-size:11px}
.code-learning-note{margin:0 20px 18px;padding:11px 12px;border-left:2px solid #D9A441;background:#D9A44112;color:#CAD2CC;font-size:10px;line-height:1.6}
@media(max-width:1180px){.workspace{grid-template-columns:220px minmax(570px,1fr) 260px}.learning-workbench{grid-template-columns:minmax(310px,.9fr) minmax(260px,1.1fr)}.learning-workbench .canvas-frame.mobile{width:320px}.code-map-hint em{display:none}}
@media(max-width:900px){.workspace{display:flex;height:auto;min-height:0;flex-direction:column}.left-panel{order:1}.stage{order:2;height:auto}.right-panel{order:3}.learning-workbench{grid-template-columns:1fr;overflow:visible}.learning-workbench .canvas-area{min-height:700px}.code-workbench{height:480px;border-left:0;border-top:1px solid #3A463F}.sidebar{height:auto;overflow:visible}}

/* Scratch-inspired visual system: bright, direct and friendly for learning. */
:root{--page:#F2F2F2;--surface:#FFFFFF;--primary:#4C97FF;--selected:#4C97FF;--accent:#FFAB19;--text:#575E75;--muted:#7B8292;--line:#D9D9D9;--soft:#E5F0FF;font-family:"Helvetica Neue",Helvetica,Arial,"Microsoft YaHei UI",sans-serif}
body{background:#F2F2F2;color:var(--text)}
.topbar{height:64px;background:#4C97FF;border-bottom:0;color:#FFF;padding:0 20px;box-shadow:0 2px 7px #2B6FC033}
.brand{min-width:230px}.brand-mark{width:42px;height:42px;border-radius:10px;background:#111318}.brand strong{color:#FFF;font-size:19px;font-weight:700;letter-spacing:-.02em}.brand small{color:#FFFFFFCC;font-size:10px;letter-spacing:.04em;margin-top:3px}
.top-center,.top-center .muted{color:#FFF}.top-center{background:#FFFFFF1C;border:1px solid #FFFFFF30;border-radius:9px;padding:8px 13px}.top-center .status-dot{background:#FFBF3F}
.top-actions button{border:1px solid #FFFFFF66;background:#FFFFFF12;color:#FFF;border-radius:8px}.top-actions button:hover{background:#FFFFFF25}.top-actions .primary{background:#FFF;border-color:#FFF;color:#4C97FF}
.workspace{background:#F2F2F2;gap:8px;padding:8px;height:calc(100dvh - 64px)}
.sidebar,.stage{background:#FFF;border:1px solid #D9D9D9;border-radius:10px;box-shadow:none;overflow:hidden}.sidebar{overflow-y:auto}.left-panel,.right-panel{border:1px solid #D9D9D9}
.sidebar-head{padding:21px 18px 16px}.eyebrow{color:#4C97FF;font-weight:800}.sidebar h2{color:#575E75;font-size:20px}.sidebar p{color:#7B8292}
.panel-tabs{background:#F7F7F7;padding:0 8px}.tab{color:#575E75;border-bottom-width:3px}.tab.active{color:#4C97FF;border-color:#4C97FF;background:#FFF}
.component-card,.variant-option,.template-card,.effect-option,.asset-item,.guide-card{border:1px solid #D9D9D9;border-radius:8px;box-shadow:0 1px 0 #0000000C}.component-card:hover,.variant-option:hover,.template-card:hover,.effect-option:hover{border-color:#4C97FF;box-shadow:0 0 0 2px #4C97FF20;transform:none}
.component-card:nth-child(1) .component-icon{color:#9966FF}.component-card:nth-child(2) .component-icon{color:#FF6680}.component-card:nth-child(3) .component-icon{background:#4C97FF}.component-card:nth-child(4) .component-icon{color:#0FBD8C}.component-card:nth-child(5) .component-icon{color:#FFAB19}.component-card:nth-child(6) .component-icon{color:#9966FF}.component-card:nth-child(7) .component-icon{color:#59C059}.component-card:nth-child(8) .component-icon{color:#5CB1D6}.component-card:nth-child(9) .component-icon{color:#FF8C1A}
.page-manager{background:#F7F7F7}.page-row.active{border-color:#4C97FF;background:#E5F0FF}.new-page-btn{color:#4C97FF}
.stage-toolbar{height:54px;background:#FFF;border-bottom:1px solid #D9D9D9}.stage-controls button{color:#575E75}.stage-controls button:hover,.stage-controls button.active{background:#E5F0FF;color:#4C97FF}.stage-controls .preview-btn{border-color:#4C97FF;color:#4C97FF}
.learning-workbench{background:#E9EEF2;gap:12px;padding:12px}.learning-workbench .canvas-area{background:#E9EEF2;background-image:none;padding:10px}
.learning-workbench .canvas-frame.mobile{box-shadow:0 2px 8px #0002;border-color:#30343B}
.code-workbench{height:calc(100% - 4px);margin:2px 2px 2px 0;border:1px solid #2D3741;border-radius:14px;background:#1C222B;box-shadow:0 3px 10px #26323F28;overflow:hidden}
.code-workbench .code-title{background:#242C37;border-bottom-color:#FFFFFF18;border-radius:13px 13px 0 0}.code-live-dot{background:#4C97FF;box-shadow:0 0 0 4px #4C97FF20}.code-title button{color:#78B3FF}.code-workbench .code-tabs button.active{background:#4C97FF;border-color:#4C97FF}.code-map-hint b{color:#FFBF3F}.code-line:hover{border-left-color:#FFBF3F}.code-learning-note{border-left-color:#FFBF3F;background:#FFBF3F12}
.properties-head{background:#F7F7F7}.field input,.field select,.field textarea{border-color:#C7CBD1;border-radius:7px}.field input:focus,.field textarea:focus,.field select:focus{border-color:#4C97FF;box-shadow:0 0 0 2px #4C97FF20}.inspector-section{color:#4C97FF}
.nav-icon-option.active{border-color:#4C97FF!important;background:#E5F0FF!important}.upload-icon-btn{color:#4C97FF!important;border-color:#4C97FF!important}
.stage-footer{background:#FFF;color:#7B8292}.stage-footer .status-dot{background:#59C059}
#toast{background:#575E75;border-radius:8px}
@media(max-width:900px){.workspace{padding:6px;gap:6px}.sidebar,.stage{border-radius:8px}.learning-workbench{padding:8px}.code-workbench{margin:0;border-radius:12px}}

/* Real component thumbnails and drill-in library navigation */
.component-card{height:118px;padding:10px;gap:0;overflow:hidden}.component-card>strong{margin-top:8px}.component-card>small{margin-top:1px}
.component-preview{width:100%;height:55px;display:block;position:relative;overflow:hidden;background:#F7F8FA;border:1px solid #DDE2EA;border-radius:5px;color:#31394A;font-style:normal}
.preview-heading{padding:9px 10px}.preview-heading b,.preview-heading i{display:block;font-style:normal;text-align:left}.preview-heading b{font-size:12px;line-height:1.2}.preview-heading i{font-size:7px;color:#788195;margin-top:4px}
.preview-copy{padding:9px 10px;font-size:7px;line-height:1.55;text-align:left}.preview-action{width:auto;max-width:75px;height:27px;margin:13px auto;padding:6px 13px;background:#4C97FF;border:0;border-radius:5px;color:#fff;font-size:9px;font-weight:700;text-align:center}
.preview-picture{background:#DFF1FF}.preview-picture:before{content:'';position:absolute;width:11px;height:11px;right:8px;top:7px;border-radius:50%;background:#FFAB19}.preview-picture i,.preview-picture b{position:absolute;bottom:-2px;width:48px;height:35px;background:#59C059;clip-path:polygon(0 100%,45% 20%,100% 100%)}.preview-picture i{left:-3px}.preview-picture b{right:-8px;background:#4C97FF;transform:scale(.85)}
.preview-rule{display:grid;place-items:center}.preview-rule i{display:block;width:75%;border-top:2px solid #8C94A3}.preview-content-card{padding:9px 10px;background:#fff;box-shadow:inset 4px 0 #9966FF}.preview-content-card b,.preview-content-card i{display:block;font-style:normal;text-align:left}.preview-content-card b{font-size:9px}.preview-content-card i{font-size:7px;color:#788195;margin-top:5px}
.preview-columns{display:flex;gap:4px;padding:7px}.preview-columns i{flex:1;border:1px dashed #59C059;background:#59C05920;border-radius:2px}.preview-field{height:28px;margin:13px 0 0;padding:7px 8px;text-align:left;background:#fff;font-size:7px;color:#8C94A3}.preview-toggle{width:42px;height:23px;margin:15px auto;background:#0FBD8C;border:0;border-radius:20px}.preview-toggle i{position:absolute;width:17px;height:17px;right:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003}
#componentsTab.category-open>.component-home-label,#componentsTab.category-open>.component-grid,#componentsTab.category-open>.tip{display:none}.variant-panel:empty{display:none}.category-open .variant-panel{margin-top:0}.variant-header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;margin-bottom:13px}.variant-header strong{text-align:center;font-size:13px}.variant-header span{font-size:9px;color:#7C8496}.variant-back{border:1px solid #C9D0DC;background:#fff;color:#4C67A1;border-radius:6px;padding:6px 8px;font-size:10px;font-weight:700}.variant-back:hover{border-color:#4C97FF;background:#F1F7FF}

/* Balanced learning canvas and readable effect cards */
.learning-workbench{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.learning-workbench>.canvas-area,.learning-workbench>.code-workbench{min-width:0;width:100%;height:100%}
.effect-option>span:last-child{min-width:0;flex:1;overflow:hidden}.effect-option strong{white-space:normal;line-height:1.25;overflow-wrap:anywhere}.effect-option small{white-space:normal;line-height:1.35;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere}.effect-option{min-height:58px;overflow:hidden}

/* Click a code line to lift it forward and reveal a Chinese explanation. */
.code-line{cursor:pointer;transition:background .16s,transform .16s,box-shadow .16s,padding .16s}
.code-line.is-focused{z-index:2;margin:5px 12px 8px;padding:8px 12px 10px 42px;border:1px solid #4C97FF88;border-left:4px solid #FFBF3F;border-radius:8px;background:#303A49;color:#FFF;box-shadow:0 10px 24px #0006;transform:translateY(-2px)}
.code-line.is-focused:before{left:8px;top:8px;color:#AFC7E9}
.code-line-comment{display:block;margin:8px 0 0;padding:9px 10px;border-top:1px solid #FFFFFF24;background:#151B24;color:#DDE8F5;font-family:"Helvetica Neue",Helvetica,Arial,"Microsoft YaHei UI",sans-serif;font-size:10px;font-weight:400;line-height:1.65;white-space:normal;border-radius:5px}
.stage-guide-btn{margin-left:7px;padding:5px 9px;border:1px solid #4C97FF;border-radius:5px;background:#E5F0FF;color:#3373CC;font-size:10px;font-weight:700}.stage-guide-btn:hover{background:#D7E9FF}
.guide-dialog{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:24px;background:#17233C66;backdrop-filter:blur(2px)}.guide-dialog-card{width:min(620px,92vw);max-height:82vh;overflow:auto;border:1px solid #C7D0DF;border-radius:12px;background:#fff;box-shadow:0 24px 70px #17233C45}.guide-dialog-head{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;padding:17px 20px;border-bottom:1px solid #DEE3EA;background:#fff}.guide-dialog-head strong{font-size:17px}.guide-dialog-head button{width:30px;height:30px;border:0;border-radius:5px;background:#EEF3F9;color:#43546D;font-size:21px}.guide-dialog-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:18px}.guide-dialog .guide-card{min-height:126px;padding:16px;background:#F8FAFC}.guide-dialog .guide-card strong{font-size:13px}.guide-dialog .guide-card p{margin-top:7px;font-size:11px;line-height:1.7}
.upload-zone .upload-cutout-note{margin-top:7px;padding:4px 8px;border-radius:4px;background:#E5F0FF;color:#3373CC;font-weight:700}
@media(max-width:760px){.guide-dialog-grid{grid-template-columns:1fr}.guide-dialog-card{max-height:88vh}}
@media(max-width:1180px) and (min-width:901px){.learning-workbench{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.effect-list{grid-template-columns:1fr}.effect-option small{-webkit-line-clamp:2}}

/* Scale the whole phone proportionally to fill its half of the workbench. */
.learning-workbench .canvas-area{align-items:center;justify-content:center}
.learning-workbench .canvas-frame.mobile{width:min(100%,calc((100dvh - 138px) * 13 / 24));height:auto;max-height:calc(100dvh - 138px);aspect-ratio:13/24}
