/* FASTRC · LUMA. Readability preferences affect interface copy, not canvas geometry. */
.comfort-settings{min-inline-size:0;margin:24px 0 4px;padding:18px 0 0;border:0;border-top:1px solid var(--line)}
.comfort-settings legend{padding:0 12px 0 0;font-size:14px;line-height:1.5;color:var(--text);font-weight:600;max-inline-size:100%}
.dialog .comfort-help{font-size:11px;line-height:1.8;margin:6px 0 10px;color:#b1c4b4}
.comfort-option{display:flex;align-items:center;gap:18px;padding:14px 0;border-bottom:1px solid var(--line)}
.comfort-option label{display:flex;flex:1;min-width:0;flex-direction:column;justify-content:center;min-height:44px;cursor:pointer;font-size:12px;line-height:1.6}
.comfort-option small{display:block;margin-top:4px;color:#a4bba7;font-size:10px;line-height:1.7}
.comfort-option input{flex-shrink:0;inline-size:26px;block-size:26px;accent-color:#d3eac1;cursor:pointer;margin:0}

/* Keep the established layout; only compact controls need an explicit width. */
body :is(button,select){min-height:44px}
body :is(.round-button,.scene-favorite,.layer-switch,.layer-preview){min-width:44px;min-height:44px}
body :is(input[type="range"]){min-height:44px;cursor:pointer}
body :is(.setting-row>label,.studio-visual-toggle,.atelier-motion){min-height:44px;align-content:center;cursor:pointer}
body .layer-row{grid-template-columns:44px minmax(0,1fr) 28px}
body .layer-name-row{min-height:44px;gap:8px}
body :is(button,a,input,select,canvas,[tabindex]):focus-visible{outline:3px solid #f0e8a6;outline-offset:4px}
body :is(button,select,input){scroll-margin-block:100px}

/* A deliberate reading scale also replaces the app's existing pixel-based sizes. */
body.comfort-large-text{font-size:17px}
.comfort-large-text :is(p,button,select,input,label,output,small,kbd,.eyebrow,.stage-note,.brush-label,.harmony-label,.light-count,.mission-item,.mission-reward,.play-footer,.app-footer,.world-number,.level-tag,.studio-note-row,.studio-live,.atelier-stage-top,.atelier-stage-bottom,.atelier-foot,.atelier-keyboard,.atelier-menu-label,.atelier-mode-copy>span,.studio-intro-badge,.scene-card-badge,.mix-active-count,.preview-badge,.plan-period,.billing-status,.saved-card-main strong,.keepsake-row){font-size:16px!important;line-height:1.65;letter-spacing:normal}
.comfort-large-text :is(span[data-i],span[data-extra],.comfort-option label>span,.nav-item>span:not(.icon),.wordmark span,.version-mark,.studio-scene-number,.constellation-footer,.constellation-footer strong,.timer-readout small,.collection-total>span:last-child,.harmony-label strong,.mission-item strong,.mini-world strong,.soundscape-top strong,.atelier-entry strong,.mini-studio-link strong){font-size:16px!important;line-height:1.6;letter-spacing:normal}
.comfort-large-text h1{font-size:clamp(38px,4.5vw,54px)!important;line-height:1.2!important;overflow-wrap:anywhere}
.comfort-large-text h2{font-size:30px!important;line-height:1.35!important}
.comfort-large-text h3{font-size:23px!important;line-height:1.4!important}
.comfort-large-text :is(.game-top h2,.journey-heading h2,.scene-card-body h3,.plus-feature h3,.achievement h3,.help-step h3){font-size:19px!important}
.comfort-large-text .atelier-mode-copy strong{font-size:25px!important;line-height:1.4}
.comfort-large-text .settings-foot{font-size:14px!important}
.comfort-large-text .page-title,.comfort-large-text .topbar,.comfort-large-text .tools-row,.comfort-large-text .game-bottom,.comfort-large-text .atelier-toolbar,.comfort-large-text .atelier-controls,.comfort-large-text .atelier-effects,.comfort-large-text .studio-section-heading,.comfort-large-text .timer-controls,.comfort-large-text .play-footer,.comfort-large-text .app-footer{flex-wrap:wrap}
.comfort-large-text .topbar{height:auto;min-height:104px;padding-block:18px}
.comfort-large-text .top-actions{flex-wrap:wrap;gap:12px}
.comfort-large-text .global-language{max-width:130px}
.comfort-large-text :is(.studio-hero,.plus-hero){height:auto;min-height:400px}
.comfort-large-text .studio-hero-copy{max-width:100%;position:relative;padding-top:60px}
.comfort-large-text :is(.studio-hero-copy p,.moment-card p,.atelier-mode-copy>span,.atelier-sound-note p,.plus-hero p){max-width:none}
.comfort-large-text .start-hint{max-width:calc(100% - 30px);white-space:normal;text-align:start;line-height:1.6}
.comfort-large-text .flow-button{width:auto;height:auto;gap:8px;flex-wrap:wrap}
.comfort-large-text .flow-button .tiny-tag{display:none}
.comfort-large-text .tool-group{flex-wrap:wrap}
.comfort-large-text .tool{flex:1;min-width:95px}
.comfort-large-text :is(.scene-card-body p,.world-card p,.plan-period){min-height:0}
.comfort-large-text .studio-section-heading>span{flex-shrink:1}
.comfort-large-text .atelier-effects select{max-width:130px}
.comfort-large-text .atelier-mode{height:auto;min-height:160px}
.comfort-large-text .setting-row>label{flex-basis:60%}
.comfort-large-text .layer-list{max-height:none;overflow:visible}

/* Optional easier selection, without enlarging the drawing coordinate system. */
body.comfort-large-targets :is(button,select,input[type="range"],.comfort-option label,.setting-row>label,.studio-visual-toggle,.atelier-motion){min-height:52px}
body.comfort-large-targets :is(.round-button,.scene-favorite,.layer-switch,.layer-preview){min-width:52px;min-height:52px}
.comfort-large-targets .layer-row{grid-template-columns:52px minmax(0,1fr) 28px;gap:12px}
.comfort-large-targets .layer-name-row{min-height:52px}
.comfort-large-targets .comfort-option input{inline-size:32px;block-size:32px}
.comfort-large-targets :is(.setting-row input[type="checkbox"],.studio-visual-toggle input,.atelier-motion input){width:28px;height:28px}
.comfort-large-targets :is(.tools-row,.tool-group,.atelier-controls,.atelier-effects,.timer-controls,.studio-hero-actions){flex-wrap:wrap}
.comfort-large-targets .layer-list{grid-template-columns:1fr}

/* High contrast changes interface surfaces and copy; the nature artwork stays intact. */
body.comfort-high-contrast{--bg:#071211;--panel:#10201d;--line:#7f9e8a;--muted:#d3e3d7;--text:#f4fff2;--green:#e1ffd2;--sage:#d1efdc;background:var(--bg)}
.comfort-high-contrast :is(.rail,.dialog,.mix-panel,.mission-card,.soundscape-card,.mini-world,.keepsakes,.achievement,.moment-card,.timer-card,.saved-card,.plan-card,.plus-feature,.billing-status,.atelier-mode,.master-control,.scene-card-body,.keyboard-note){background:#10201d!important;border-color:#8aa991!important}
.comfort-high-contrast :is(p,small,label,output,kbd,.eyebrow,.stage-note,.brush-label,.harmony-label,.world-number,.level-tag,.local-status,.nav-item,.tool,.text-button,.subtle-button,.play-footer,.mission-item,.mission-reward,.mini-world,.app-footer,.world-card,.constellation-footer,.keepsake-row,.settings-foot,.studio-intro-badge,.studio-live,.studio-scene-number,.scene-card-badge,.mix-active-count,.studio-note-row,.healthy-note,.plan-price,.plan-period,.billing-fine-print,.billing-actions,.preview-badge,.membership-hint,.studio-visual-toggle,.mini-studio-link,.atelier-stage-top,.atelier-stage-bottom,.atelier-mode-copy,.atelier-mode-copy strong,.atelier-mode-copy small,.atelier-menu-label,.atelier-foot,.atelier-keyboard,.atelier-sound-note,.comfort-help,.comfort-settings legend,.comfort-option small){color:#e9f8e7!important;opacity:1}
.comfort-high-contrast :is(button,select,input:not([type="range"]):not([type="checkbox"])){background-color:#172e27;color:#f2ffe9;border-color:#a9c8a0}
.comfort-high-contrast :is(.primary-button,.studio-play,.timer-action,.mix-save-button,button.active,button.selected,button[aria-pressed="true"]){background:#e1ffd2!important;color:#102517!important;border-color:#e1ffd2!important}
.comfort-high-contrast :is(.primary-button,.studio-play,.timer-action,.mix-save-button,button.active,button.selected,button[aria-pressed="true"]) :is(span,small,strong,.icon){color:#102517!important}
.comfort-high-contrast .layer-row.zero{opacity:1}
.comfort-high-contrast .layer-row.zero .layer-switch{border-style:dashed}
.comfort-high-contrast :is(.studio-hero-copy,.world-card-content){background:linear-gradient(90deg,#071713f2,#071713bd)}
.comfort-high-contrast :is(.stage-note,.brush-label,.atelier-stage-top,.atelier-stage-bottom,.start-hint,.studio-scene-number){background:#0b2018eb;border-radius:6px;padding:6px}
.comfort-high-contrast :is(button,a,input,select,canvas,[tabindex]):focus-visible{outline-color:#fff39a}
.comfort-high-contrast button:disabled,.comfort-high-contrast input:disabled{opacity:.65}

@media(max-width:600px){
  .comfort-large-text .workspace{padding-inline:16px}
  .comfort-large-text .page-title{gap:18px}
  .comfort-large-text .page-title p{max-width:none}
  .comfort-large-text :is(.studio-scenes,.plus-features,.achievement-grid){grid-template-columns:1fr}
  .comfort-large-text .layer-list{grid-template-columns:1fr}
  .comfort-large-text .atelier-menu{grid-template-columns:1fr}
  .comfort-large-text .atelier-mode{min-height:125px;flex-direction:row}
  .comfort-large-text .atelier-mode-copy small{position:static}
  .comfort-large-text .atelier-mode-copy>span{font-size:16px!important}
  .comfort-large-text .game-top{align-items:start;gap:12px;flex-wrap:wrap}
  .comfort-large-text .game-top-right{margin-inline-start:auto}
  .comfort-large-text .studio-hero-copy{padding-inline:22px}
  .comfort-large-text .studio-hero-actions{flex-wrap:wrap}
  .comfort-large-text .studio-live{max-width:none}
  .comfort-large-targets .layer-list{grid-template-columns:1fr}
  .comfort-large-targets .game-top-right{gap:8px}
}
@media(forced-colors:active){
  .comfort-settings,.comfort-option{border-color:CanvasText}
  body :is(button,a,input,select,canvas,[tabindex]):focus-visible{outline-color:Highlight}
}
