@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Press+Start+2P&family=VT323&display=swap');:root {--bg: #1a0d2b;--panel: #0e1627;--card: #2b1a47;--muted: #b8a4d2;--accent: #a100a1;--accent-2: #36d399;--accent-3: #facc15;--glass: rgba(161, 0, 161, 0.1);--glass-2: rgba(161, 0, 161, 0.05);--text: #e6d7f8;--button-text: #2b0047;--control-bg: #160f2a;--control-border: rgba(214, 188, 250, 0.34);--control-border-hover: rgba(54, 211, 153, 0.72);--control-shadow: rgba(0, 0, 0, 0.28);--radius: 12px;--mono: ui-monospace, SFMono-Regular, Menlo, Monaco, "Roboto Mono", "Courier New", monospace;--repeat-gradient: repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.05) 0 1px, transparent 1px 48px);--font-family: 'Inter', ui-sans-serif, system-ui, Segoe UI, Roboto, Helvetica, Arial;--tab-h: 58px;--shadow-card: 0 4px 20px var(--control-shadow);--shadow-card-hover: 0 6px 28px rgba(161,0,161,0.2);}[data-theme="light"] {--bg: #f0eff5;--surface: #ffffff;--card: #f9f8ff;--border: rgba(0,0,0,0.08);--text: #1a1030;--muted: #6b5f80;--accent: #7700b3;--accent2: #9900dd;--glow: rgba(119,0,179,0.15);--tile-bg: #ffffff;--tile-border-t: rgba(0,0,0,0.12);--tile-border-b: rgba(0,0,0,0.04);--tile-hover-bg: #f3f0ff;--tile-sel-bg: #ede5ff;--tile-sel-border: var(--accent);--text: #1a1030;--muted: #6b5f80;--accent: #7700b3;--accent2: #9900dd;}html {scrollbar-width: thin;scrollbar-color: var(--accent) var(--panel);}*::-webkit-scrollbar {width: 10px;height: 10px;}*::-webkit-scrollbar-track {background: var(--panel);}*::-webkit-scrollbar-thumb {background: var(--accent);border-radius: 8px;border: 2px solid var(--panel);}*::-webkit-scrollbar-thumb:hover {background: var(--accent-2);}*, *::before, *::after {box-sizing: border-box;margin: 0;padding: 0;}html, body {margin: 0;padding: 0;}body {background:var(--bg);color: var(--text);font-family: var(--font-family);font-size: 16px;min-height: 100vh;}.pixel-font {font-family: 'Press Start 2P', monospace;letter-spacing: 0.5px;}.panel {background: var(--card);border: 1px solid var(--control-border);box-shadow: var(--shadow-card);border-radius: var(--radius);padding: 16px;transition: box-shadow 0.2s;}.panel:hover {box-shadow: var(--shadow-card-hover);}.btn {font-family: 'Press Start 2P', monospace;font-size: 11px;color: var(--button-text);background: var(--accent);border: none;box-shadow: 0 2px 8px rgba(161,0,161,0.35);padding: 10px 14px;cursor: pointer;text-transform: uppercase;border-radius: 6px;transition: transform 0.08s ease, filter 0.15s ease;text-decoration: none;display: inline-block;}.btn:hover {filter: brightness(1.18);text-decoration: none;}.btn:active {transform: translateY(2px);}.btn.secondary {background: var(--accent-2);color: #0d1f1a;box-shadow: 0 2px 8px rgba(54,211,153,0.35);}.btn.ghost {background: var(--glass);color: var(--text);box-shadow: none;border: 1px solid var(--control-border);}.btn:disabled {opacity: 0.4;cursor: not-allowed;filter: none;}.breadcrumb {max-width: 1100px;margin: 12px auto 0;padding: 0 20px;}.breadcrumb ol {list-style: none;display: flex;flex-wrap: wrap;align-items: center;gap: 6px;margin: 0;padding: 0;font-size: 13px;}.breadcrumb li {display: flex;align-items: center;text-transform: lowercase;}.breadcrumb li:not(:last-child)::after {content: "\203a";margin-left: 6px;color: var(--muted);opacity: 0.55;}.breadcrumb a {color: var(--muted);text-decoration: none;}.breadcrumb a:hover {color: var(--accent-2);text-decoration: underline;}.breadcrumb [aria-current="page"] {color: var(--text);font-weight: 600;}div.hero {text-align: center;padding: 28px 16px 18px;background: linear-gradient(180deg, rgba(0,0,0,0.25), transparent);}div.hero h1 {font-family: 'Press Start 2P', monospace;font-size: 26px;margin: 6px 0 8px;text-shadow: 0 0 24px rgba(54,211,153,0.4);}div.hero p {color: var(--muted);font-size: 15px;max-width: 640px;margin: 0 auto;}.hero-cta {display: inline-flex;align-items: center;gap: 6px;margin-top: 14px;padding: 7px 15px;background: var(--glass-2);border: 1px solid var(--control-border);border-radius: 20px;font-size: 13px;font-weight: 600;color: var(--muted);text-decoration: none;transition: all 0.15s;}.hero-cta:hover {color: var(--text);border-color: var(--accent);background: var(--control-bg);text-decoration: none;}.tabbar {display: flex;justify-content: center;gap: 10px;margin: 22px 0;flex-wrap: wrap;}.tabbar .btn[aria-selected="true"] {background: var(--accent-3);color: #2b1a00;box-shadow: 0 2px 8px rgba(250,204,21,0.4);}.mobile-strip {display: none;position: sticky;top: 0;z-index: 120;background: rgba(14, 7, 28, 0.95);backdrop-filter: blur(12px);border-bottom: 1px solid var(--control-border);padding: 8px 14px;align-items: center;gap: 12px;}.ms-letter-badge {width: 36px;height: 36px;background: var(--accent);border-radius: 6px;display: flex;align-items: center;justify-content: center;font-family: 'Press Start 2P', monospace;font-size: 14px;color: #fff;flex: none;box-shadow: 0 0 10px rgba(161,0,161,0.4);}.ms-banner {width: 28px;flex: none;}.ms-banner svg {width: 100%;height: auto;display: block;}.ms-label {flex: 1;font-family: 'Press Start 2P', monospace;font-size: 9px;color: var(--accent-3);letter-spacing: 0.03em;min-width: 0;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;}.ms-rand-btn {background: var(--glass);border: 1px solid var(--control-border);color: var(--text);border-radius: 6px;padding: 6px 10px;font-size: 1rem;cursor: pointer;flex: none;transition: background 0.15s;-webkit-tap-highlight-color: transparent;}.ms-rand-btn:hover {background: var(--glass-2);}.mobile-tab-bar {display: none;position: fixed;bottom: 0;left: 0;right: 0;z-index: 160;background: rgba(14,7,28,0.97);backdrop-filter: blur(16px);border-top: 1px solid var(--control-border);height: var(--tab-h);align-items: stretch;padding-bottom: env(safe-area-inset-bottom, 0);}.m-tab {flex: 1;display: flex;flex-direction: column;align-items: center;justify-content: center;gap: 3px;background: transparent;border: none;color: var(--muted);cursor: pointer;font-family: var(--font-family);transition: color 0.15s;position: relative;padding: 0;-webkit-tap-highlight-color: transparent;}.m-tab.active {color: var(--accent-2);}.m-tab.active::before {content: '';position: absolute;top: 0;left: 25%;right: 25%;height: 2px;background: var(--accent-2);border-radius: 0 0 3px 3px;}.m-tab-icon {font-size: 1.15rem;line-height: 1;}.m-tab-label {font-size: 0.6rem;font-weight: 700;letter-spacing: 0.05em;text-transform: uppercase;}main {max-width: 1180px;margin: 0 auto;padding: 0 16px 60px;}.view {display: none;}.view.active {display: block;}.single-grid {display: grid;grid-template-columns: 280px 1fr 340px;gap: 18px;align-items: start;}@media (max-width: 980px) {.single-grid {grid-template-columns: 1fr;}}.letter-grid {display: grid;grid-template-columns: repeat(6, 1fr);gap: 6px;}.letter-grid button {font-family: 'Press Start 2P', monospace;font-size: 14px;aspect-ratio: 1;background: var(--glass-2);border: 1px solid var(--control-border);color: var(--text);cursor: pointer;border-radius: 6px;transition: background 0.1s, border-color 0.1s, transform 0.08s;}.letter-grid button:hover {background: var(--glass);border-color: var(--control-border-hover);transform: scale(1.05);}.letter-grid button.active {background: var(--accent);color: #fff;border-color: var(--accent);box-shadow: 0 0 10px rgba(161,0,161,0.5);}.preview-stage {display: flex;flex-direction: column;align-items: center;justify-content: flex-start;gap: 14px;padding-top: 6px;}.banner-wrap {width: 200px;filter: drop-shadow(0 10px 24px rgba(161,0,161,0.35));animation: wave 3.6s ease-in-out infinite;transform-origin: top center;}.banner-wrap svg {width: 100%;height: auto;display: block;}@keyframes wave {0%,100% {transform: rotate(0deg) scaleX(1);}25% {transform: rotate(0.8deg) scaleX(0.995);}50% {transform: rotate(0deg) scaleX(1.005);}75% {transform: rotate(-0.8deg) scaleX(0.995);}}.preview-actions {display: flex;gap: 8px;flex-wrap: wrap;justify-content: center;}.color-groups {display: flex;flex-direction: column;gap: 14px;width: 100%;margin-top: 8px;}.color-group h3 {font-family: 'Press Start 2P';font-size: 11px;margin: 0 0 8px;color: var(--accent-3);}.swatches {display: grid;grid-template-columns: repeat(8, 1fr);gap: 5px;}.swatch {width: 100%;aspect-ratio: 1;border: 2px solid rgba(255,255,255,0.3);cursor: pointer;border-radius: 4px;transition: transform 0.1s, outline 0.1s, box-shadow 0.1s, border-color 0.1s;}.swatch:hover {transform: scale(1.12);border-color: rgba(255,255,255,0.6);}.swatch.selected {outline: 2px solid var(--accent-2);outline-offset: 2px;box-shadow: 0 0 6px rgba(54,211,153,0.3);}.info-col {display: flex;flex-direction: column;gap: 14px;}.info-col h2 {font-family: 'Press Start 2P';font-size: 12px;color: var(--accent-3);margin: 0 0 10px;}.materials-list {list-style: none;margin: 0;padding: 0;display: flex;flex-direction: column;gap: 6px;}.materials-list li {display: flex;align-items: center;gap: 8px;font-size: 15px;}.mat-swatch {width: 18px;height: 18px;border: 2px solid rgba(0,0,0,0.3);flex: none;border-radius: 3px;}.steps-list {margin: 0;padding-left: 22px;display: flex;flex-direction: column;gap: 8px;font-size: 15px;}.steps-list li::marker {color: var(--accent-3);}.option-row {display: flex;align-items: center;gap: 10px;margin-bottom: 10px;flex-wrap: wrap;}.option-label {font-size: 13px;color: var(--muted);min-width: 54px;}.seg-toggle {display: flex;border: 1px solid var(--control-border);border-radius: 7px;overflow: hidden;}.seg-toggle button {font-family: 'Press Start 2P', monospace;font-size: 10px;color: var(--text);background: var(--glass-2);border: none;padding: 8px 10px;cursor: pointer;transition: background 0.1s;}.seg-toggle button + button {border-left: 1px solid var(--control-border);}.seg-toggle button[aria-selected="true"] {background: var(--accent);color: #fff;}.seg-toggle button:hover {filter: brightness(1.15);}.seg-toggle button:disabled {opacity: 0.35;cursor: not-allowed;filter: none;}.rotation-select {font-family: var(--font-family);font-size: 14px;color: var(--text);background: var(--control-bg);border: 1px solid var(--control-border);border-radius: 6px;padding: 6px 8px;}.note {font-size: 13px;color: var(--muted);}.note.warning {color: #ffb347;}.command-box {background: var(--panel);border: 1px solid var(--control-border);padding: 10px;font-family: var(--mono);font-size: 13px;word-break: break-all;color: var(--accent-2);max-height: 120px;overflow: auto;border-radius: var(--radius);user-select: text;}.steps-panel-header {display: flex;align-items: center;justify-content: space-between;margin-bottom: 12px;}.steps-panel-header h2 {margin: 0;}.loom-cards {display: flex;flex-direction: column;gap: 6px;}.loom-card {background: var(--glass-2);border: 1px solid var(--control-border);border-radius: 8px;padding: 8px 10px;transition: border-color 0.15s;}.loom-card:hover {border-color: rgba(161,0,161,0.4);}.loom-card-flow {display: flex;align-items: center;gap: 5px;}.loom-step-num {font-family: 'Press Start 2P', monospace;font-size: 8px;color: var(--accent-3);min-width: 18px;text-align: center;flex: none;}.loom-mini-banner {width: 30px;flex: none;}.loom-mini-banner svg {width: 100%;height: auto;display: block;border-radius: 2px;}.loom-sym {color: var(--muted);font-size: 13px;flex: none;text-align: center;width: 14px;}.loom-dye-badge {display: flex;align-items: center;gap: 4px;background: var(--glass);border: 1px solid var(--control-border);border-radius: 20px;padding: 3px 8px;font-size: 11px;color: var(--text);white-space: nowrap;flex: none;}.loom-dye-dot {width: 9px;height: 9px;border-radius: 50%;border: 1px solid rgba(255,255,255,0.2);flex: none;}.loom-pattern-icon {width: 26px;flex: none;border-radius: 3px;overflow: hidden;border: 1px solid rgba(255,255,255,0.1);}.loom-pattern-icon svg {width: 100%;height: auto;display: block;}.loom-card-label {font-size: 10px;color: var(--muted);margin-top: 4px;padding-left: 23px;font-style: italic;}.loom-done {font-size: 12px;color: var(--accent-2);text-align: center;padding: 8px 10px;margin-top: 4px;border: 1px dashed var(--accent-2);border-radius: 8px;}.composer-controls {display: flex;gap: 14px;flex-wrap: wrap;align-items: flex-end;margin-bottom: 18px;}.composer-controls .field {display: flex;flex-direction: column;gap: 6px;}.composer-controls label {font-size: 13px;color: var(--muted);}#wordInput {font-family: 'Press Start 2P', monospace;font-size: 16px;padding: 10px;background: var(--control-bg);border: 1px solid var(--control-border);color: var(--text);text-transform: uppercase;min-width: 260px;border-radius: 6px;}#wordInput:focus {outline: none;border-color: var(--control-border-hover);}.word-strip {display: flex;flex-wrap: wrap;gap: 10px;padding: 16px 0;min-height: 140px;}.word-strip .word-banner {width: 84px;flex: none;text-align: center;}.word-strip .word-banner svg {width: 100%;}.word-strip .word-banner .lbl {font-size: 12px;color: var(--muted);margin-top: 4px;}.composer-summary {display: flex;gap: 30px;flex-wrap: wrap;margin-top: 10px;}.composer-summary .panel {flex: 1;min-width: 220px;}.hidden {display: none !important;}.section-divider {border: none;border-top: 1px solid var(--control-border);margin: 60px 0 48px;}.content-sections {max-width: 1180px;margin: 0 auto;padding: 0 16px 80px;}.content-section {margin-bottom: 52px;}.content-section > h2 {font-family: 'Press Start 2P', monospace;font-size: 12px;color: var(--accent-2);margin: 0 0 18px;padding-bottom: 12px;border-bottom: 1px solid var(--control-border);}.content-section h3 {font-size: 15px;font-weight: 600;color: var(--text);margin: 18px 0 8px;}.content-section p {color: var(--muted);line-height: 1.78;margin: 0 0 14px;font-size: 15px;}.content-section ul, .content-section ol {color: var(--muted);line-height: 1.78;padding-left: 24px;font-size: 15px;margin: 0 0 14px;}.content-section li {margin-bottom: 6px;}.content-section strong {color: var(--text);font-weight: 600;}.content-section code {font-family: var(--mono);font-size: 13px;background: var(--glass);border: 1px solid var(--control-border);border-radius: 4px;padding: 1px 5px;}.tips-grid {display: grid;grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));gap: 12px;margin-top: 16px;}.tip-card {background: var(--card);border: 1px solid var(--control-border);border-radius: var(--radius);padding: 16px;}.tip-card h3 {color: var(--accent-3);font-size: 13px;margin: 0 0 8px;font-weight: 600;}.tip-card p {color: var(--muted);font-size: 13px;line-height: 1.65;margin: 0;}.cross-link-card {display: block;text-decoration: none;transition: border-color 0.15s, transform 0.15s;}.cross-link-card:hover {border-color: var(--accent);transform: translateY(-2px);text-decoration: none;}.layer-table {width: 100%;border-collapse: collapse;font-size: 14px;color: var(--muted);margin-top: 12px;}.layer-table th {text-align: left;color: var(--accent-3);font-weight: 600;padding: 8px 12px;border-bottom: 1px solid var(--control-border);font-family: 'Press Start 2P', monospace;font-size: 9px;}.layer-table td {padding: 10px 12px;border-bottom: 1px solid var(--control-border);vertical-align: middle;}.layer-table tr:last-child td {border-bottom: none;}.steps-badge {display: inline-block;background: var(--accent);color: #fff;border-radius: 20px;padding: 2px 10px;font-size: 12px;font-weight: 600;}.howto-steps {margin: 0 0 14px;padding-left: 24px;color: var(--muted);line-height: 1.7;font-size: 14px;display: flex;flex-direction: column;gap: 6px;}.howto-steps li::marker {color: var(--accent-2);font-weight: 700;}.howto-steps strong {color: var(--text);}.faq-list {display: flex;flex-direction: column;gap: 8px;}.faq-item {background: var(--glass-2);border: 1px solid var(--control-border);border-radius: var(--radius);padding: 16px 18px;}.faq-item h3 {color: var(--text);font-size: 14px;font-weight: 600;margin: 0 0 8px;}.faq-item p {color: var(--muted);font-size: 14px;margin: 0;line-height: 1.7;}@media (max-width: 640px) {.mobile-strip {display: flex;}.mobile-tab-bar {display: flex;}div.hero {padding: 16px 16px 10px;}div.hero h1 {font-size: 14px;margin-bottom: 4px;}div.hero p {display: none;}.tabbar {margin: 12px 0 0;gap: 8px;}.tabbar .btn {font-size: 9px;padding: 8px 10px;}#view-single.active {padding-bottom: calc(var(--tab-h) + 14px + env(safe-area-inset-bottom, 0px));}main {padding: 0 12px 60px;}#letterPickerPanel {display: none;}#singleGrid > .preview-stage {display: none;}#singleGrid > .info-col {display: none;}#materialsInfoPanel, #stepsInfoPanel, #cmdInfoPanel {display: none;}#singleGrid[data-panel="design"] #letterPickerPanel {display: block;}#singleGrid[data-panel="design"] > .preview-stage {display: flex;}#singleGrid[data-panel="steps"] > .info-col {display: flex;flex-direction: column;gap: 14px;}#singleGrid[data-panel="steps"] #materialsInfoPanel {display: block;}#singleGrid[data-panel="steps"] #stepsInfoPanel {display: block;}#singleGrid[data-panel="command"] > .info-col {display: flex;flex-direction: column;gap: 14px;}#singleGrid[data-panel="command"] #cmdInfoPanel {display: block;}.letter-grid {grid-template-columns: repeat(6, 1fr);gap: 5px;}.letter-grid button {font-size: 11px;border-radius: 5px;}.swatches {grid-template-columns: repeat(8, 1fr);gap: 6px;}.swatch {border-radius: 5px;}.banner-wrap {width: 140px;}}@media print {header, footer, .tabbar, .mobile-strip, .mobile-tab-bar, .hero-cta, .ads, .breadcrumb, #letterPickerPanel, .color-groups, .preview-actions, .option-row, #cmdInfoPanel > div[style*="margin-top"], .composer-controls, .note, .content-sections, .section-divider {display: none !important;}body {background: #fff !important;color: #000 !important;}.single-grid {display: block !important;}.panel {background: #fff !important;border: 1px solid #ccc !important;box-shadow: none !important;break-inside: avoid;margin-bottom: 16px;}#stepsInfoPanel::before {content: "Minecraft Loom Steps";display: block;font-weight: 700;font-size: 16px;margin-bottom: 10px;}#stepsList {display: block !important;}#stepsVisual {display: none !important;}.steps-panel-header .seg-toggle {display: none !important;}.steps-list li {color: #000 !important;}.step-num {background: #888 !important;}.command-box {background: #f4f4f4 !important;color: #000 !important;border: 1px solid #ccc !important;max-height: none !important;overflow: visible !important;}.materials-list li {color: #000 !important;}.mat-swatch {-webkit-print-color-adjust: exact !important;print-color-adjust: exact !important;color-adjust: exact !important;border: 2px solid #000 !important;}h2, h3 {color: #000 !important;}.word-strip .lbl {color: #000 !important;}}