/* Local font lookup only: no font files or third-party CDN are distributed. */
.legal-language[hidden]{display:none!important}
html:lang(ja) body #shareModal #btnCopyShareLink,html:lang(ko) body #shareModal #btnCopyShareLink{color:#fff!important}
#narrationDialog .narration-file-picker{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:8px 12px;border:1px solid var(--line,#d1d5db);border-radius:8px;flex-shrink:0}
#narrationDialog .narration-file-picker input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
#narrationDialog .narration-file-picker:focus-within{outline:2px solid var(--focus-ring);outline-offset:2px}
@font-face{font-family:"Noto Sans JP Local";src:local("Noto Sans JP");font-display:swap}
@font-face{font-family:"Noto Sans KR Local";src:local("Noto Sans KR");font-display:swap}
html:lang(ja) body,html:lang(ja) button,html:lang(ja) input,html:lang(ja) select{font-family:"Noto Sans JP Local","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif}
html:lang(ko) body,html:lang(ko) button,html:lang(ko) input,html:lang(ko) select{font-family:"Noto Sans KR Local","Apple SD Gothic Neo","Malgun Gothic",sans-serif;word-break:keep-all;overflow-wrap:anywhere}
.board-legal-links{display:flex;flex-wrap:wrap;gap:12px;padding:8px 0;min-height:36px}
.board-legal-links a,.board-legal-links button{display:inline-flex;align-items:center;min-height:32px;min-width:48px;font-size:12px;text-decoration:underline}
html:lang(en) .plot-live-series-colors::before{content:"Curve"}
html:lang(ja) .plot-live-series-colors::before{content:"曲線"}
html:lang(ko) .plot-live-series-colors::before{content:"곡선"}

/* Copy-only wrapping. Keep mobile placement/sizing owned by the mobile layout workstream. */
html:is(:lang(ja),:lang(ko)) :is(#panel3DTools,#geometry-model-dialog,#formulaModal,#narrationDialog,#accountMenu,.pricing-page,.viewer-ux-bar,.viewer-ux-dock,.viewer-settings-popover,.viewer-ux-guide) :is(button,label,summary,strong,h2,h3,p,small){white-space:normal;overflow-wrap:anywhere;word-break:normal;min-width:0}
html:is(:lang(ja),:lang(ko)) :is(.u3d-model-open,.gl-model,.formula-card-main,.ap-use,.ap-name){white-space:normal;overflow-wrap:anywhere;min-width:0;text-overflow:clip;-webkit-line-clamp:unset}
html:is(:lang(ja),:lang(ko)) #objectToolbar button{white-space:normal;font-size:10px;line-height:1.2}
html:is(:lang(ja),:lang(ko)) #objectToolbar button span{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;text-wrap:balance}
html:is(:lang(ja),:lang(ko)) body :is(#objectToolbar,#arcAiMenu)>.arc-action .arc-label,
html:is(:lang(ja),:lang(ko)) body #gbBottomTools.arc-disc #gbAiRing>.arc-action .arc-label{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;word-break:normal;font-size:8px;line-height:10px}
html:is(:lang(ja),:lang(ko)) #objectToolbarPanel :is(button,label,strong,p){white-space:normal;overflow-wrap:anywhere;min-width:0}
html:is(:lang(ja),:lang(ko)) #sceneTimeline :is(button,label,select){white-space:normal;overflow-wrap:anywhere;min-width:0}
html:is(:lang(ja),:lang(ko)) #narrationDialog :is(.pro-field-row,label){flex-wrap:wrap;min-width:0;max-width:100%}
html:is(:lang(ja),:lang(ko)) #narrationDialog :is(select,textarea,input:not([type=checkbox]):not([type=range])){max-width:100%;min-width:0}
html:is(:lang(ja),:lang(ko)) .asset-picker :is(.ap-name,.ap-caption,.ap-status,button){white-space:normal;overflow-wrap:anywhere;text-overflow:clip;-webkit-line-clamp:unset}
html:is(:lang(ja),:lang(ko)) .asset-picker .ap-search{grid-template-columns:minmax(0,1fr)}
