/* Self-contained atelier; pixels intentionally isolate it from Twenty Twenty's rem scale. */
.pl-actions[hidden], .pl[hidden], .pl [hidden] { display: none !important; }
.entry-content .pl-actions { width:calc(100% - 40px); max-width:960px; margin:42px auto; padding:28px; border:1px solid #e0dfd7; border-radius:18px; background:#fffefa; color:#243b30; box-shadow:0 16px 46px -38px rgba(28,45,35,.55); font-family:'Plus Jakarta Sans',system-ui,sans-serif; }
.entry-content .pl-actions .pl-eyebrow, .pl .pl-eyebrow, .pl-legal .pl-eyebrow { margin:0 0 7px; font:700 11px/1.5 'Plus Jakarta Sans',sans-serif; letter-spacing:1.5px; text-transform:uppercase; color:#617365; }
.entry-content .pl-actions h2 { margin:0; font:600 24px/1.3 'Lora',Georgia,serif; letter-spacing:-.4px; }
.pl-actions-heading { margin-bottom:20px; }
.pl-actions-primary { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.entry-content .pl-actions button.pl-action { display:flex; justify-content:flex-start; align-items:center; gap:10px; width:100%; min-height:74px; margin:0; padding:15px 14px; border:0; border-radius:12px; color:#fff; font:700 14px/1.2 'Plus Jakarta Sans',sans-serif; text-transform:none; letter-spacing:0; box-shadow:none; cursor:pointer; }
.entry-content .pl-actions button.pl-action:hover { filter:brightness(.93); transform:translateY(-1px); }
.pl-action-print { background:#4d7da9 !important; }
.pl-action-download { background:#557d42 !important; }
.pl-action-learn { background:#9d3b31 !important; }
.pl-actions svg { flex:0 0 26px; width:26px; height:26px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.pl-actions-primary small { display:block; margin-top:3px; color:rgba(255,255,255,.76); font-size:10px; font-weight:500; letter-spacing:.4px; text-transform:uppercase; }
.pl-actions-secondary { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-top:12px; }
.entry-content .pl-action-mail { display:inline-flex; align-items:center; gap:11px; min-height:50px; padding:10px 16px; border:1px solid #ccd2da; border-radius:10px; background:#f7f8fa; color:#465164; font:600 14px/1.3 'Plus Jakarta Sans',sans-serif; text-decoration:none; }
.entry-content .pl-action-mail:hover { border-color:#8e9bad; background:#eff2f5; color:#26364c; }
.pl-action-mail svg { width:24px; height:24px; }
.pl-action-meta { display:flex; align-items:center; gap:19px; color:#6c7582; font-size:13px; }
.pl-view-count { display:flex; align-items:center; gap:6px; white-space:nowrap; }
.pl-view-count svg { width:21px; height:21px; }
.pl-view-count strong { color:#3d4652; font-weight:700; }
.entry-content .pl-actions button.pl-legal-open { min-height:auto; margin:0; padding:4px 0; border:0; border-bottom:1px dotted currentColor; border-radius:0; background:transparent; color:#667080; font:600 12px/1.4 'Plus Jakarta Sans',sans-serif; text-transform:none; letter-spacing:0; }
.entry-content .pl-actions button.pl-legal-open:hover { color:#374455; background:transparent; }
.entry-content .pl-actions .pl-actions-note { margin:18px 0 0; color:#7a8178; font:11px/1.5 'Plus Jakarta Sans',sans-serif; text-align:center; }
.pl-legal { width:min(620px,calc(100% - 32px)); max-width:620px; padding:32px; border:1px solid #d7dcd4; border-radius:16px; background:#fffefa; color:#26372e; box-shadow:0 24px 80px rgba(20,35,27,.25); font:14px/1.65 'Plus Jakarta Sans',sans-serif; }
.pl-legal::backdrop { background:rgba(25,40,32,.62); }
.pl-legal h2 { margin:0 0 20px; color:#26372e; font:600 28px/1.25 'Lora',Georgia,serif; }
.pl-legal p { margin:0 0 15px; color:#445248; }
.pl-legal .pl-legal-small { padding-top:15px; border-top:1px solid #e0e4dd; color:#68746b; font-size:12px; }
.pl-legal button { min-height:42px; padding:9px 15px; border:1px solid #294b3c; border-radius:8px; background:#294b3c; color:#fff; font:600 13px/1.4 'Plus Jakarta Sans',sans-serif; text-transform:none; letter-spacing:0; cursor:pointer; }
.pl-legal button.pl-legal-close { position:absolute; top:12px; right:12px; min-width:38px; padding:4px; border-color:transparent; background:transparent; color:#56675d; font-size:24px; }
.entry-content .pl { box-sizing:border-box; width:calc(100% - 40px) !important; max-width:960px !important; margin:0 auto 56px; padding:0; border:1px solid #dfe1d7; border-radius:18px; color:#24342d; background:#f6f5ef; overflow:hidden; box-shadow:0 18px 52px -42px rgba(28,45,35,.65); font:14px/1.6 'Plus Jakarta Sans',system-ui,sans-serif; text-align:left; scroll-margin-top:24px; }
.pl *, .pl *::before, .pl *::after { box-sizing:border-box; }
.pl h2, .pl h3, .pl p, .pl ol { color:inherit; letter-spacing:normal; }
.pl h2 { font:500 36px/1.15 'Lora',Georgia,serif; margin:0 0 8px; letter-spacing:-1px; }
.pl h3 { font:600 19px/1.4 'Plus Jakarta Sans',sans-serif; margin:0 0 8px; }
.pl p { margin:0 0 12px; }
.pl button, .pl button:not(.toggle) { appearance:none; display:inline-flex; justify-content:center; align-items:center; gap:8px; min-height:44px; padding:10px 15px; margin:0; border:1px solid #d5dbd0; border-radius:8px; background:#fff; color:#294b3c; font:600 13px/1.5 'Plus Jakarta Sans',system-ui,sans-serif; letter-spacing:normal; text-transform:none; text-decoration:none; cursor:pointer; white-space:normal; box-shadow:none; }
.pl button:not(.toggle):hover { background:#eaf0e5; border-color:#84987e; color:#203b2d; }
.pl button:not(.toggle):focus { background:#eaf0e5; color:#203b2d; }
.pl button:focus-visible, .pl select:focus-visible, .pl input:focus-visible, .pl summary:focus-visible, .pl a:focus-visible, .pl-start:focus-visible { outline:3px solid #8a5900; outline-offset:4px; }
.pl button:disabled { opacity:.45; cursor:default; }
.pl button.pl-primary { background:#294b3c; border-color:#294b3c; color:white; }
.pl button.pl-primary:hover, .pl button.pl-primary:focus { background:#193627; color:white; }
.pl select { height:auto; min-height:44px; max-width:100%; border:1px solid #d5dbd0; border-radius:8px; padding:8px 28px 8px 12px; background:white; color:#294b3c; font:14px/1.5 'Plus Jakarta Sans',sans-serif; }
.pl label { display:inline-block; font:14px/1.6 'Plus Jakarta Sans',sans-serif; }
.pl-header { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:18px 24px; background:#fffefa; border-bottom:1px solid #dedfd5; }
.pl-header > div:first-child { min-width:0; }
.pl-header > div:first-child .pl-eyebrow { margin-bottom:1px; }
.pl-header > div:first-child strong { color:#294b3c; font:600 17px/1.35 'Lora',Georgia,serif; }
.pl-header-actions { display:flex; gap:8px; }
.pl-body { width:100%; margin:0; padding:28px 28px 12px; }
.pl-heading { display:flex; align-items:center; justify-content:space-between; gap:28px; margin-bottom:24px; }
.pl .pl-subtitle { color:#637066; font-size:14px; margin:0; }
.pl-progress { flex:0 0 220px; color:#526356; font-size:12px; }
.pl-progress progress { display:block; width:100%; height:7px; margin-top:10px; border:0; border-radius:10px; overflow:hidden; background:#dfe5d8; accent-color:#557744; }
.pl-progress progress::-webkit-progress-bar { background:#dfe5d8; }
.pl-progress progress::-webkit-progress-value { background:#557744; border-radius:10px; }
.pl-progress progress::-moz-progress-bar { background:#557744; }
.pl-modes { display:grid; grid-template-columns:repeat(4,1fr); gap:7px; padding:6px; border:1px solid #dedfd5; border-radius:12px; background:#eaece2; margin-bottom:28px; }
.pl .pl-modes button { background:transparent; border-color:transparent; padding:13px 8px; color:#566257; }
.pl .pl-modes button span { opacity:.65; font-size:11px; margin-right:4px; }
.pl .pl-modes button[aria-pressed=true] { background:#fffefa; border-color:#d7dccf; color:#243b30; box-shadow:0 2px 5px #2333220b; }
.pl-layout { display:grid; grid-template-columns:180px minmax(0,1fr); gap:24px; align-items:start; }
.pl-sidebar { padding-top:8px; }
.pl .pl-stanzas button { display:flex; justify-content:flex-start; width:100%; text-align:left; padding:13px 10px; margin-bottom:5px; border-color:transparent; background:transparent; color:#526356; }
.pl .pl-stanzas button[aria-pressed=true] { background:#e4eadb; color:#28432e; border-color:#cbd8bf; }
.pl-stanza-number { font:16px/1 Georgia,serif; padding:8px; }
.pl-stanzas small { display:block; font-size:11px; font-weight:400; color:#637066; }
.pl-sidebar > button { width:100%; margin-top:10px; }
.pl button[aria-pressed=true]:not([data-mode]):not(.pl-gap) { background:#e4eadb; border-color:#7e936f; }
.pl-tip { border-top:1px solid #dce0d4; margin-top:28px; padding:23px 10px 0; font-size:13px; color:#637066; }
.pl-tip p { margin-top:8px; }
.pl-workspace { min-width:0; }
.pl-sheet { background:#fffefa; border:1px solid #dfe1d6; border-radius:16px; padding:28px 34px 20px; box-shadow:0 12px 40px -25px #283a243b; min-height:350px; }
.pl-sheet-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:24px; color:#687565; font-size:11px; font-weight:700; letter-spacing:1px; }
.pl-audio { display:flex; gap:5px; letter-spacing:normal; }
.pl .pl-audio button { font-size:12px; padding:6px 10px; }
.pl .pl-audio select { font-size:12px; padding:6px; }
.pl .pl-voice-note { margin:-12px 0 22px; font-size:11px; color:#65715f; text-align:right; }
.pl-task:focus { outline:none; }
.pl .pl-instruction { font-size:13px; color:#65715f; max-width:620px; }
.pl-poem { margin:28px 0 22px; font:20px/2 'Lora',Georgia,serif; }
.pl-verse-group { margin:0 0 24px; }
.pl-verse-group:last-child { margin-bottom:0; }
.pl-line { padding:2px 0; overflow-wrap:break-word; transition:background .2s; }
.pl-speaking { background:#edf0d2; }
.pl .pl-verse-label { font:600 10px/1.6 'Plus Jakarta Sans',sans-serif; letter-spacing:1px; text-transform:uppercase; color:#637066; margin:0 0 8px; }
.pl-levels { display:flex; gap:6px; flex-wrap:wrap; margin-top:18px; }
.pl .pl-levels button { font-size:12px; padding:8px 12px; }
.pl button.pl-gap { display:inline; min-height:30px; border:0; border-bottom:2px solid #a8b997; border-radius:4px 4px 0 0; margin:0 1px; padding:2px 3px; background:#edf1e3; color:#537045; font:inherit; line-height:1.6; letter-spacing:1px; vertical-align:baseline; }
.pl .pl-gap[aria-pressed=true] { color:#294b3c; background:#e6eedb; letter-spacing:0; }
.pl-line-number { display:inline-block; flex:0 0 26px; margin-right:12px; color:#637066; font:12px/1.5 'Plus Jakarta Sans',sans-serif; }
.pl-covered { display:flex; align-items:baseline; border-bottom:1px dashed #d5dbd0; color:#7c846f; font-style:italic; min-height:48px; }
.pl-order-slots { margin-bottom:22px; }
.pl-order-slot { display:flex; align-items:baseline; border-bottom:1px dashed #d5dbd0; min-height:44px; padding:8px 0; font:14px/1.6 'Plus Jakarta Sans',sans-serif; color:#65715f; }
.pl-order-slot.is-filled { color:#294b3c; font-family:'Lora',Georgia,serif; font-size:18px; }
.pl-order-bank { display:grid; gap:8px; }
.pl .pl-order-bank button { justify-content:flex-start; text-align:left; font:17px/1.6 'Lora',Georgia,serif; padding:12px 16px; }
.pl .pl-order-bank button.pl-try-again { border-color:#ae8136; background:#fff4de; }
.pl-order-tools, .pl-recite-tools { display:flex; gap:8px; flex-wrap:wrap; }
.pl-early-lines { display:grid; gap:10px; margin:24px 0; }
.pl .pl-early-line { display:grid; grid-template-columns:42px minmax(0,1fr); justify-content:start; text-align:left; padding:13px 16px; font:18px/1.5 'Lora',Georgia,serif; }
.pl .pl-early-line span:first-child { display:flex; align-items:center; justify-content:center; width:32px; height:32px; border-radius:50%; background:#e7ecdf; color:#557d42; font:700 13px/1 'Plus Jakarta Sans',sans-serif; }
.pl .pl-early-line[aria-pressed=true] { border-color:#7e936f; background:#eaf0e5; }
.pl-early .pl-levels, .pl-early .pl-order-tools { display:none !important; }
.pl .pl-feedback { margin:18px 0 0; color:#49633d; font-size:13px; min-height:22px; }
.pl-bottom { display:flex; justify-content:space-between; gap:12px; padding:20px 0; }
.pl .pl-bottom button:first-child { background:transparent; border-color:transparent; padding-left:0; }
.pl-complete { padding:22px; border-radius:12px; border:1px solid #c7d5b8; background:#eaf0de; margin-bottom:20px; }
.pl-complete strong { display:block; font:24px/1.4 'Lora',Georgia,serif; margin-bottom:8px; }
.pl-teacher { border:1px solid #d5dbd0; border-radius:12px; background:#eeefe7; margin:26px 0 20px; }
.pl summary { padding:18px 22px; cursor:pointer; color:#294b3c; font-weight:700; }
.pl summary span { font-weight:400; color:#637066; margin-left:10px; font-size:12px; }
.pl-teacher-content { display:grid; grid-template-columns:1.3fr 1fr; gap:40px; padding:8px 24px 24px; }
.pl .pl-teacher h3 { font-size:16px; }
.pl .pl-teacher ol { margin:14px 0 18px; padding-left:19px; }
.pl .pl-teacher li { margin:0 0 10px; font-size:13px; }
.pl .pl-teacher p { font-size:13px; color:#637066; }
.pl-teacher select, .pl-teacher button { display:block; width:100%; margin:8px 0 !important; }
.pl-footer { display:flex; gap:12px 24px; align-items:center; flex-wrap:wrap; border-top:1px solid #dce0d4; padding:18px 0; }
.pl-footer label { display:flex; align-items:center; gap:8px; font-size:12px; }
.pl input[type=checkbox] { appearance:auto; width:18px; height:18px; margin:0; accent-color:#294b3c; }
.pl .pl-footer p { font-size:11px; color:#637066; margin:0; }
.pl .pl-footer > button { font-size:11px; background:transparent; border:0; margin-left:auto; }
.pl-reset { flex-basis:100%; }
.pl-reset button { margin:10px 8px 0 0 !important; }
.pl-sr { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.entry-content .pl.pl-class { max-width:1180px !important; }
.pl.pl-class .pl-body { width:100%; }
.pl.pl-class .pl-poem { font-size:clamp(22px,2.5vw,34px); }
.pl.pl-class .pl-order-bank button, .pl.pl-class .pl-order-slot.is-filled { font-size:clamp(20px,2vw,28px); }
.pl.pl-class .pl-tip, .pl.pl-class .pl-footer, .pl.pl-class .pl-progress { display:none; }
.pl-print-frame { position:fixed; inset:4%; width:92%; height:92%; border:2px solid #294b3c; background:white; z-index:5; }
@media (max-width:900px) {
  .pl-layout { grid-template-columns:155px minmax(0,1fr); gap:18px; }
  .pl-sheet { padding:24px; }
  .pl-poem { font-size:18px; }
  .pl h2 { font-size:32px; }
  .pl-progress { flex-basis:175px; }
}
@media (max-width:650px) {
	.entry-content .pl-actions { width:calc(100% - 28px); margin:28px auto; padding:20px 16px; }
	.entry-content .pl-actions h2 { font-size:21px; }
	.pl-actions-primary { grid-template-columns:1fr; gap:8px; }
	.entry-content .pl-actions button.pl-action { min-height:59px; padding:12px 16px; }
	.pl-actions-secondary { align-items:stretch; flex-direction:column; }
	.entry-content .pl-action-mail { justify-content:center; }
	.pl-action-meta { justify-content:space-between; }
	.pl-legal { padding:28px 20px 22px; }
  .entry-content .pl, .entry-content .pl.pl-class { width:calc(100% - 28px) !important; margin-bottom:36px; border-radius:14px; }
  .pl-header { align-items:flex-start; padding:14px 16px; }
  .pl-header > div:first-child strong { font-size:15px; }
  .pl-header-actions { gap:4px; }
  .pl .pl-header button { min-height:38px; padding:7px 9px; font-size:10px; }
  .pl-body, .pl.pl-class .pl-body { width:100%; margin:0; padding:20px 14px 8px; }
  .pl-heading { display:block; margin-bottom:20px; }
  .pl h2 { font-size:32px; }
  .pl .pl-subtitle { font-size:12px; }
  .pl-progress { margin-top:18px; width:100%; font-size:11px; }
  .pl-modes { gap:2px; padding:4px; margin-bottom:18px; }
  .pl .pl-modes button { flex-direction:column; gap:2px; font-size:10px; padding:8px 2px; }
  .pl-layout { display:block; }
  .pl-sidebar { display:flex; flex-wrap:wrap; gap:8px; align-items:center; padding:0; margin-bottom:16px; }
  .pl-sidebar > .pl-eyebrow, .pl-tip { display:none; }
  .pl-stanzas { display:grid; grid-template-columns:repeat(4,1fr); width:100%; gap:5px; }
  .pl .pl-stanzas button { display:block; padding:8px 3px; text-align:center; font-size:10px; margin:0; border-color:#d5dbd0; }
  .pl-stanzas small { display:none; }
  .pl-stanza-number { display:block; padding:0 0 5px; font-size:15px; }
  .pl-sidebar > button { width:auto; margin:0 0 0 auto; font-size:11px !important; padding:5px 10px !important; }
  .pl-sheet { padding:20px 16px 16px; border-radius:12px; }
  .pl-sheet-head { gap:8px; font-size:9px; letter-spacing:.5px; margin-bottom:20px; flex-wrap:wrap; }
  .pl h3 { font-size:17px; }
  .pl .pl-instruction { font-size:12px; }
  .pl-poem { font-size:17px; line-height:1.9; }
  .pl-line { padding:4px 0 4px 10px; text-indent:-10px; }
  .pl .pl-gap { text-indent:0; }
  .pl .pl-voice-note { text-align:left; }
  .pl .pl-levels button { flex:1; font-size:10px; padding:6px; }
  .pl-bottom { gap:6px; }
  .pl .pl-bottom button { font-size:11px; padding:10px; }
  .pl .pl-order-bank button { font-size:16px; padding:10px; }
  .pl-covered { font-size:15px; text-indent:0; }
  .pl-teacher-content { display:block; padding:4px 18px 18px; }
  .pl-teacher-content > div + div { margin-top:24px; }
  .pl summary { padding:16px; }
  .pl summary span { display:block; margin:4px 0 0 16px; }
  .pl-footer { display:block; }
  .pl .pl-footer p { margin-top:8px; }
  .pl .pl-footer > button { padding-left:0; margin-top:8px; }
}
@media (prefers-reduced-motion:reduce) { .pl * { transition:none !important; scroll-behavior:auto !important; } }
@media print { .pl-actions, .pl, dialog.pl-legal, #pl-data { display:none !important; } }
