:root{ --c-primary: #1f4d3a; --c-primary-hover: #163a2b;--c-primary-soft: #e3edda; --c-on-primary: #fffdf7;--c-accent: #e07a2e; --c-accent-strong: #b85a16;--c-accent-soft: #fbe7d4;--c-accent-ink: #8a3f0c; --c-bg: #f7f3e8; --c-surface: #fffdf7; --c-surface-2: #f1ecdd; --c-grass: #cfe3b0; --c-sand: #e9dfc7; --c-ink: #1b2e26;--c-ink-2: #5b6b62; --c-ink-3: #7a867e; --c-line: #dcd5c2; --c-line-strong: #8c8571; --c-danger: #b4462a;--c-danger-soft: #fbe3da; --c-focus: #b85a16; --r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-pill: 999px;--sh-1: 0 1px 2px rgb(27 46 38 / 8%);--sh-2: 0 6px 20px rgb(27 46 38 / 10%);--sh-3: 0 16px 40px rgb(27 46 38 / 14%); --sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px; --fs-xs: .75rem;--fs-sm: .875rem;--fs-md: 1rem;--fs-lg: 1.25rem;--fs-xl: 1.6rem;--fs-2xl: 2.2rem;--font: "IBM Plex Sans","Helvetica Neue",sans-serif;--mono: "IBM Plex Mono",ui-monospace,monospace;--tool-display: "Jersey 10","IBM Plex Sans",sans-serif; --bg: var(--c-bg);--bg-2: var(--c-surface-2);--ink: var(--c-ink);--muted: var(--c-ink-2);--line: var(--c-line);--control-line: var(--c-line-strong);--seal: var(--c-primary);--seal-hover: var(--c-primary-hover);--on-seal: var(--c-on-primary);--accent: var(--c-primary);--accent-hover: var(--c-primary-hover);--selected: var(--c-primary-soft);--stage: var(--c-surface-2);--danger: var(--c-danger); --danger-ink: color-mix(in srgb,var(--c-danger) 80%,var(--c-ink));--paper: var(--c-surface);--grass: var(--c-grass);--shadow: var(--sh-2)}*{box-sizing: border-box} html:lang(zh){--font: "IBM Plex Sans","PingFang SC","PingFang TC","Microsoft YaHei","Noto Sans CJK SC","Noto Sans CJK TC",sans-serif;--tool-display: var(--font);--mono: "IBM Plex Mono","PingFang SC","PingFang TC","Microsoft YaHei",monospace}html:lang(zh-Hant){--font: "IBM Plex Sans","PingFang TC","Microsoft JhengHei","Noto Sans CJK TC",sans-serif;--mono: "IBM Plex Mono","PingFang TC","Microsoft JhengHei",monospace}html:lang(ja){--font: "IBM Plex Sans","Hiragino Kaku Gothic ProN","Yu Gothic","Meiryo","Noto Sans CJK JP",sans-serif;--tool-display: var(--font);--mono: "IBM Plex Mono","Hiragino Kaku Gothic ProN","Yu Gothic","Noto Sans Mono CJK JP",monospace}html:lang(ko){--font: "IBM Plex Sans","Apple SD Gothic Neo","Malgun Gothic","Noto Sans CJK KR",sans-serif;--tool-display: var(--font);--mono: "IBM Plex Mono","Apple SD Gothic Neo","Malgun Gothic","Noto Sans Mono CJK KR",monospace;word-break: keep-all;overflow-wrap: anywhere} html:lang(ru){--tool-display: var(--font)}html:lang(ru) :is(h1,h2,h3){letter-spacing: 0}html:lang(ru) .tool-title{font-size: 26px;font-weight: 600}html:lang(de) :is(p,label,legend,h1,h2,h3),html:lang(ru) :is(p,label,legend,h1,h2,h3){overflow-wrap: anywhere;hyphens: auto}html:is(:lang(zh),:lang(ja),:lang(ko)) :is(h1,h2,h3){letter-spacing: 0}html:is(:lang(zh),:lang(ja),:lang(ko)) .tool-title{font-size: 26px;font-weight: 600}html{color-scheme: light} body{margin: 0;min-height: 100vh;background: var(--c-bg);color: var(--c-ink);font-family: var(--font);font-size: 16px;line-height: 1.5}a{color: var(--c-primary);text-underline-offset: 2px}a:hover{color: var(--c-primary-hover)}:where(code){padding: 1px 5px;border-radius: var(--r-sm);background: var(--c-surface-2);font-family: var(--mono);font-size: .92em}.skip{position: absolute;left: -999px;top: 0}.skip:focus{left: 12px;top: 12px;background: var(--c-surface);border-radius: var(--r-sm);box-shadow: var(--sh-2);padding: 8px 12px;z-index: 40}.wrap{width: min(1320px,calc(100% - 48px));margin: 0 auto}.circle-stats.is-stale{opacity: .45}.hero{display: grid;grid-template-columns: 1.15fr 0.85fr;gap: 32px;padding: 48px 0 28px} .hero:has(> :only-child){grid-template-columns: minmax(0,46rem)}.kicker{color: var(--c-primary);font-family: var(--mono);font-size: var(--fs-xs);letter-spacing: 0.12em;text-transform: uppercase} h1,h2,h3{font-family: var(--font);font-weight: 600;letter-spacing: -0.015em}h1{font-size: clamp(32px,5vw,48px);line-height: 1.08;margin: 8px 0 14px}.hero h1{font-family: var(--tool-display);font-weight: 400;letter-spacing: 0;font-size: clamp(40px,6vw,68px);line-height: 1}html:is(:lang(zh),:lang(ja),:lang(ko),:lang(ru)) .hero h1{font-weight: 600;font-size: clamp(30px,5vw,48px)}.panel h1{font-size: 28px;line-height: 1.08;overflow-wrap: anywhere;max-width: 100%}h2{font-size: 28px;margin: 0 0 10px}h3{font-size: 18px;margin: 0 0 8px}.tool-title{font-family: var(--tool-display);font-weight: 400;font-synthesis: none;letter-spacing: 0;line-height: 1.12;text-wrap: balance}.panel .tool-title{font-size: clamp(26px,4.2vw,34px);overflow-wrap: anywhere;max-width: 100%}.tool-card .tool-title{font-size: 32px} .tool-answer{margin: -4px 0 16px;max-width: 62ch;color: var(--c-ink-2);font-size: var(--fs-sm);line-height: 1.55}.hero .tool-card .tool-title{font-size: 36px}.lede{color: var(--c-ink-2);max-width: 46ch} .prose-page{max-width: 72ch;padding: 36px 28px;margin: 28px auto;color: var(--c-ink);background: var(--c-surface);border: 1px solid var(--c-line);border-radius: var(--r-lg);box-shadow: var(--sh-1);line-height: 1.7}.prose-page > :first-child{margin-top: 0}.prose-page > :last-child{margin-bottom: 0}.prose-page .kicker{margin: 0 0 12px}.prose-page h1{margin: 0 0 20px;font-size: clamp(28px,3.4vw,40px);line-height: 1.2;text-wrap: balance}.prose-page h2{margin: 32px 0 12px;padding-top: 24px;border-top: 1px solid var(--c-line);font-size: clamp(22px,2.4vw,26px);line-height: 1.3}.prose-page h3{margin: 24px 0 8px;font-size: 18px;line-height: 1.4}.prose-page :is(ul,ol){padding-inline-start: 1.4em}.prose-page li + li{margin-top: 6px} .prose-page.about-page{width: 100%;max-width: 920px;margin: 32px auto 48px;padding: clamp(24px,4vw,48px);line-height: 1.8;overflow-wrap: anywhere}.about-page .kicker{margin: 0 0 12px}.about-page h1{margin: 0 0 24px;font-size: clamp(28px,3.4vw,44px);line-height: 1.22;text-wrap: balance}.about-page p{margin: 0 0 18px}.about-page h2{margin: 36px 0 24px;padding-top: 28px;border-top: 1px solid var(--c-line);font-size: clamp(24px,2.4vw,28px);line-height: 1.35}.about-page h3{margin: 28px 0 12px;color: var(--c-ink);font-size: 20px;line-height: 1.45}.about-page h2 + h3{margin-top: 0}.about-page > :last-child{margin-bottom: 0} .tool-grid{display: grid;grid-template-columns: repeat(2,1fr);gap: 14px;padding-bottom: 48px}.tool-card{background: var(--c-surface);border: 1px solid var(--c-line);padding: 18px;text-decoration: none;color: inherit;min-height: 180px;display: flex;flex-direction: column;justify-content: space-between;border-radius: var(--r-lg)} a.tool-card:hover{border-color: var(--c-primary);color: var(--c-ink)}.tool-grid .tool-card{justify-content: flex-start;gap: 16px}.tool-card small{color: var(--c-ink-2);font-family: var(--mono);font-size: var(--fs-xs)}.tool-card p{margin: 10px 0 0;color: var(--c-ink-2)}.layout{position: relative;display: grid;grid-template-columns: 292px minmax(0,1fr);gap: 24px;padding: 22px; margin: 20px 0 40px;background: var(--c-surface);border: 1px solid var(--c-line);box-shadow: var(--sh-1);border-radius: var(--r-lg)} .layout::before,.layout::after{content: "";position: absolute;top: 6px;width: 7px;height: 7px;background: var(--c-line);pointer-events: none}.layout::before{left: 6px;box-shadow: 7px 0 var(--c-surface-2),0 7px var(--c-surface-2)}.layout::after{right: 6px;box-shadow: -7px 0 var(--c-surface-2),0 7px var(--c-surface-2)}.layout > *{min-width: 0} .panel{background: var(--c-surface);border: 1px solid var(--c-line);padding: 18px;position: sticky;top: 20px;align-self: start;border-radius: var(--r-lg)}label,.label-like{display: block;font-size: var(--fs-sm);color: var(--c-ink);margin: 12px 0 6px}textarea{width: 100%;background: var(--c-surface);border: 1px solid var(--c-line-strong);border-radius: var(--r-sm);padding: 8px 10px;font-family: var(--mono);font-size: var(--fs-xs);resize: vertical}input,select,button,textarea{font: inherit;color: var(--c-ink)}::placeholder{color: var(--c-ink-3);opacity: 1}.visually-hidden{position: absolute !important;width: 1px;height: 1px;margin: -1px;padding: 0;border: 0;overflow: hidden;clip: rect(0 0 0 0);white-space: nowrap} textarea:where([readonly]:not(.visually-hidden)){resize: none;border-color: transparent;background: var(--c-surface-2);font-family: var(--font);font-size: var(--fs-sm);line-height: 1.65;field-sizing: content;max-height: 60vh} .portal-pair-notes textarea{font-family: var(--mono);font-size: var(--fs-xs);line-height: 1.35} .result-coords{margin: 0 0 12px;padding: 14px 16px;border: 1px solid var(--c-line);border-radius: var(--r-md);background: var(--c-surface-2)}.result-coords-dimension{margin: 0 0 6px;color: var(--c-ink-2);font-size: var(--fs-sm)}.result-coords-values{display: grid;grid-template-columns: repeat(3,minmax(0,1fr));gap: 12px}.result-coords-values > span{display: flex;flex-direction: column;gap: 2px;min-width: 0}.result-coords-values b{color: var(--c-ink-2);font: 600 var(--fs-xs)/1 var(--mono)}.result-coords-values span span{font: 600 clamp(24px,6vw,32px)/1.1 var(--mono);color: var(--c-ink);overflow-wrap: anywhere} input[type="number"],input[type="text"],select{width: 100%;background: var(--c-surface);border: 1px solid var(--c-line-strong);padding: 8px 10px;border-radius: var(--r-sm);min-height: 44px}input[type="checkbox"]{accent-color: var(--c-primary)} .field-error{margin: 4px 0 0;color: var(--c-danger);font-size: var(--fs-sm)}.oval-toggle{display: flex;align-items: center;min-height: 44px;gap: 8px;margin: 4px 0}.oval-toggle input{width: 18px;height: 18px;margin: 0}.planner-group{min-width: 0;margin: 20px 0 0;padding: 0;border: 0}.planner-group .oval-toggle{margin: 4px 0 0}.planner-group .oval-toggle + .stepper-field{margin-top: 0}.world-coordinate-fields{display: grid;grid-template-columns: repeat(2,minmax(0,1fr));gap: 8px 10px}.world-coordinate-fields > div{min-width: 0}.world-coordinate-fields label{margin: 4px 0 6px}.world-coordinate-fields input{min-width: 0;font-family: var(--mono);font-size: 16px;font-variant-numeric: tabular-nums}.world-coordinate-fields input[aria-invalid="true"]{border-color: var(--c-danger)}.world-coordinate-fields .planner-help{grid-column: 1 / -1}.world-coordinate-fields[hidden],.world-coordinate-summary[hidden],.world-coordinate-warning[hidden],#world-coordinate-error[hidden]{display: none}.planner-help{margin: 0;color: var(--c-ink-2);font-size: var(--fs-sm);line-height: 1.5}.owned-materials{margin-top: 16px}.owned-materials label{margin: 0 0 6px}.owned-materials input{min-width: 0;font-family: var(--mono);font-size: 16px;font-variant-numeric: tabular-nums}.owned-materials input[aria-invalid="true"]{border-color: var(--c-danger)}.owned-materials .planner-help{margin-top: 6px} .material-balance{margin: 10px 0 0;padding: 10px 12px;border-left: 3px solid var(--c-primary);border-radius: 0 var(--r-sm) var(--r-sm) 0;background: var(--c-primary-soft);color: var(--c-ink);font-size: var(--fs-sm);overflow-wrap: anywhere}.material-balance:empty{display: none}.session-status{margin: 12px 0 0;font-size: var(--fs-sm);color: var(--c-ink-2);overflow-wrap: anywhere}.session-status:empty{display: none} a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:not([tabindex="-1"]):focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline: 3px solid var(--c-focus);outline-offset: 2px}.row-2{display: grid;grid-template-columns: 1fr 1fr;gap: 10px} .toggle{display: flex;gap: 2px;margin-top: 8px;padding: 2px;border: 1px solid var(--c-line-strong);border-radius: var(--r-md);background: var(--c-surface)}.toggle button{min-height: 44px;padding: 8px 10px;border: 0; border-radius: calc(var(--r-md) - 3px);background: transparent;color: var(--c-ink);cursor: pointer;transition: background-color 140ms ease,color 140ms ease}.toggle button:not(:disabled):hover{background: var(--c-primary-soft)}.toggle button[aria-pressed="true"]{background: var(--c-primary);color: var(--c-on-primary)}.toggle button[aria-pressed="true"]:hover{background: var(--c-primary-hover)} .toggle button:focus-visible{position: relative;z-index: 1}.toggle button:disabled{opacity: 0.45;cursor: not-allowed} .btn{background: var(--c-surface);color: var(--c-ink);border: 1px solid var(--c-line-strong);padding: 8px 10px;border-radius: var(--r-md);cursor: pointer;min-height: 44px;box-shadow: var(--sh-1);transition: background-color 140ms ease,border-color 140ms ease,color 140ms ease} a.btn{display: inline-flex;align-items: center;justify-content: center;text-decoration: none}.btn:not(:disabled):hover{border-color: var(--c-primary);color: var(--c-primary)}.btn:not(:disabled):active{background: var(--c-surface-2)}.btn.primary{background: var(--c-primary);color: var(--c-on-primary);border-color: var(--c-primary)}.btn.primary:not(:disabled):hover,.btn.primary:not(:disabled):active{background: var(--c-primary-hover);border-color: var(--c-primary-hover);color: var(--c-on-primary)}.btn.quiet{border-color: transparent;background: transparent;box-shadow: none;color: var(--c-primary);text-decoration: underline;text-underline-offset: 3px}.btn.quiet:not(:disabled):hover{border-color: transparent;background: var(--c-primary-soft);color: var(--c-primary-hover)}.btn.danger{border-color: var(--c-danger);color: var(--c-danger)} .btn.danger:not(:disabled):hover{border-color: var(--c-danger);background: var(--c-danger-soft);color: color-mix(in srgb,var(--c-danger) 80%,var(--c-ink))}.btn{margin-top: 12px}.btn:disabled{opacity: 0.45;cursor: not-allowed;box-shadow: none} .stats{display: grid;grid-template-columns: repeat(4,1fr);gap: 0;margin-bottom: 14px;background: var(--c-surface-2);border: 1px solid var(--c-line);border-radius: var(--r-md)}.stat{min-width: 0;position: relative;padding: 14px}.stat + .stat::before{content: "";position: absolute;left: 0;top: 18px;bottom: 18px;width: 1px;background: var(--c-line)}.stat b{display: block;font-family: var(--mono);font-weight: 600;font-size: clamp(15px,1.5vw,20px);overflow-wrap: break-word;text-wrap: balance}.stat span{color: var(--c-ink-2);font-size: var(--fs-xs)}.circle-stats{grid-template-columns: repeat(4,minmax(0,1fr))}.circle-stats .stat{ height: 100px;min-width: 0;display: flex;flex-direction: column;justify-content: space-between;gap: 4px}.circle-stats .stat b{line-height: 1.25;font-variant-numeric: tabular-nums}.blueprint-thickness{width: auto;margin: 0} .blueprint-hint{grid-column: 1 / -1;margin: 0;color: var(--c-ink-2);font-size: var(--fs-sm)}#thickness-adjustment{color: var(--c-primary)}.blueprint-view{display: flex;align-items: center;gap: 6px}.blueprint-view .btn{margin: 0;min-width: 44px;min-height: 44px} .blueprint-view .btn[aria-pressed="true"]{border-color: var(--c-primary);background: var(--c-primary-soft)}.zoom-help{margin: 0;color: var(--c-ink-2);font-size: var(--fs-sm)}.blueprint-notes{padding: 10px 12px;border: 1px solid var(--c-line);border-top: 0;background: var(--c-surface)}.blueprint-notes p{margin: 0;color: var(--c-ink-2);font-size: var(--fs-sm)}.blueprint-notes p + p{margin-top: 4px}.blueprint-notes .grid-number-help{padding: 0}.grid-number-help{margin: 0;padding: 8px 0;color: var(--c-ink-2);font-size: var(--fs-sm)}.blueprint-frame{position: relative;display: grid;grid-template-columns: 34px minmax(0,1fr);grid-template-rows: 28px auto}.blueprint-frame .stage{grid-area: 2 / 2;min-width: 0} .ruler-corner,.grid-ruler{background: var(--c-surface-2);color: var(--c-ink-2);font-family: var(--mono);font-size: 11px;font-variant-numeric: tabular-nums}.ruler-corner{display: grid;place-items: center;border: 1px solid var(--c-line);border-right: 0;border-bottom: 0;font-size: 10px}.grid-ruler{position: relative;overflow: hidden;pointer-events: none}.column-ruler{grid-area: 1 / 2;border: 1px solid var(--c-line);border-bottom: 0}.row-ruler{grid-area: 2 / 1;border: 1px solid var(--c-line);border-right: 0}.grid-ruler span{position: absolute;line-height: 16px;white-space: nowrap}.column-ruler span{top: 50%;transform: translate(-50%,-50%)}.row-ruler span{right: 5px;transform: translateY(-50%)} .row-ruler span[aria-current="true"]{color: var(--c-accent-ink);font-weight: 600}.cell-numbers{grid-area: 2 / 2;position: absolute;inset: 1px;overflow: hidden;pointer-events: none;font-family: var(--mono);font-size: 11px;font-weight: 600;font-variant-numeric: tabular-nums} .cell-numbers span{position: absolute;transform: translate(-50%,-50%);line-height: 14px;color: var(--c-ink);background: var(--c-accent);border-radius: 2px;white-space: nowrap}.cell-numbers[data-done="true"] span{color: var(--c-ink);background: color-mix(in srgb,var(--c-primary) 45%,var(--c-grass))}.stage{border: 1px solid var(--c-line);background: var(--c-surface-2);overflow: auto;padding: 12px;touch-action: manipulation}canvas{image-rendering: pixelated;display: block;margin: 0 auto;height: auto}.export-actions{display: flex;flex-wrap: wrap;gap: 8px}.export-actions .btn{min-height: 44px;margin-top: 0}.export-hint{margin: 10px 0 0;color: var(--c-ink-2);font-size: var(--fs-sm)}.export-open:not([hidden]){display: inline-flex;align-items: center;min-height: 44px;margin-top: 4px} .note,.faq{color: var(--c-ink-2);padding-bottom: 48px} .faq.wrap{width: 100%;margin: 0;padding: 24px 28px 28px}.faq h2,.prose h1,.prose h2{color: var(--c-ink)}.faq details{border-top: 1px solid var(--c-line);padding: 12px 0}.faq summary{cursor: pointer;color: var(--c-ink)} .faq details + h2{margin-top: 40px}.tool-card p + h3{margin-top: 22px} .btn:disabled:not(.primary){border-color: transparent;background: transparent}.faq h3{padding-top: 16px;border-top: 1px solid var(--c-line);color: var(--c-ink)} .reference-table-wrap{overflow-x: auto;margin: 20px 0;border: 1px solid var(--c-line);border-radius: var(--r-md)}.reference-table{width: 100%;min-width: 36rem;border-collapse: collapse;font-variant-numeric: tabular-nums}.reference-table caption{text-align: left;padding: 12px 12px 10px;color: var(--c-ink);font-weight: 600}.reference-table th,.reference-table td{text-align: left;padding: 10px 12px;border-bottom: 1px solid var(--c-line);vertical-align: top}.reference-table tbody tr:last-child > *{border-bottom: 0}.reference-table thead{background: var(--c-surface-2);color: var(--c-ink)}.reference-table thead th{font-weight: 600}.reference-table tbody th{color: var(--c-ink)} .alert{border: 1px solid var(--c-danger);border-left-width: 4px;border-radius: var(--r-sm);background: var(--c-danger-soft);color: var(--c-ink);padding: 10px 12px;margin: 8px 0;display: none}.alert.show{display: block}.copy-ok{color: var(--c-ink);font-size: var(--fs-sm);min-height: 1.2em}.tool-feedback{margin-top: 20px;padding: 0 0 12px;border-top: 1px solid var(--c-line);color: var(--c-ink-2);font-size: var(--fs-sm)} .tool-feedback summary{display: flex;align-items: center;gap: 8px;padding: 12px 0;min-height: 44px;cursor: pointer;list-style: none}.tool-feedback summary::-webkit-details-marker{display: none}.tool-feedback summary::before{content: "";flex: 0 0 auto;width: .45em;height: .45em;margin: 0 .3em 0 .2em;border-right: 2px solid var(--c-primary);border-bottom: 2px solid var(--c-primary);transform: rotate(-45deg);transition: transform 150ms ease-out}.tool-feedback[open] > summary::before{transform: rotate(45deg)}.tool-feedback summary:hover{color: var(--c-primary)}.tool-feedback p{margin: 4px 0 12px}.tool-feedback .btn{display: inline-flex;align-items: center;min-height: 44px;margin: 0 0 8px;color: var(--c-ink);text-decoration: none}.tool-feedback .feedback-help{font-size: var(--fs-sm);overflow-wrap: anywhere}.tool-feedback textarea{display: block;font-size: 16px;margin-bottom: 10px}.tool-feedback .feedback-status{min-height: 1.5em;color: var(--c-ink)}.site-footer{border-top: 1px solid var(--c-line);padding: 20px 0 32px;color: var(--c-ink-2);font-size: var(--fs-sm);display: flex;justify-content: space-between;gap: 16px;flex-wrap: wrap}.footer-links{display: flex;flex-wrap: wrap;align-items: center;gap: 4px 16px}.footer-links a{display: inline-flex;align-items: center;min-height: 44px}.footer-links a[aria-current="page"]{color: var(--c-ink);text-decoration-thickness: 2px;text-underline-offset: 4px} @media (max-width: 540px){.footer-links{display: grid;grid-template-columns: repeat(2,minmax(0,1fr));gap: 0 16px;flex-basis: 100%}.footer-links a{line-height: 1.3}}.footer-notices{flex-basis: 100%;min-width: 0;font-size: var(--fs-sm);line-height: 1.6}.footer-notices p{margin: 0} .footer-notices .translation-note{margin: 8px 0}.footer-notices .visual-credit{display: flex;flex-wrap: wrap;align-items: center;column-gap: 8px}.visual-credit a{display: inline-flex;align-items: center;min-height: 44px}.visual-credit a:focus-visible{outline-offset: 3px}.build-bar{margin-top: 12px;background: var(--c-surface);border: 1px solid var(--c-line);padding: 12px;border-radius: var(--r-lg)}.build-bar strong{font-family: var(--mono);font-weight: 600;font-size: 18px;display: block}.build-bar p{margin: 6px 0 10px;color: var(--c-ink-2)} .layer-controls > label{display: block;margin: 0 0 6px;font-weight: 600}.layer-selection{display: flex;align-items: center;flex-wrap: wrap;gap: 8px 10px;min-width: 0}.layer-controls[hidden]{display: none}#layer-total{color: var(--c-ink-2);font-size: var(--fs-sm);font-variant-numeric: tabular-nums}.build-bar .layer-progress-summary{margin: 10px 0 12px;padding-bottom: 12px;border-bottom: 1px solid var(--c-line);color: var(--c-ink);font-size: var(--fs-sm);line-height: 1.5;overflow-wrap: anywhere}.build-bar .layer-storage-note{margin: 0 0 12px;padding: 10px 12px;border-left: 3px solid var(--c-primary);border-radius: 0 var(--r-sm) var(--r-sm) 0;background: var(--c-primary-soft);color: var(--c-ink);font-size: var(--fs-sm);line-height: 1.5;overflow-wrap: anywhere}.layer-storage-note:empty{display: none}#continue-layer{min-height: 44px;touch-action: manipulation}#continue-layer[hidden],#owned-error[hidden]{display: none}.build-bar .world-coordinate-summary{margin: 8px 0;padding: 8px 10px;border: 1px solid var(--c-line);border-radius: var(--r-sm);background: var(--c-surface-2);color: var(--c-ink);font-family: var(--mono);font-size: var(--fs-sm);font-variant-numeric: tabular-nums;overflow-wrap: anywhere}.build-bar .world-coordinate-warning{margin: 8px 0;color: var(--c-danger);font-size: var(--fs-sm);overflow-wrap: anywhere}.build-bar .row-segments-note{margin: 12px 0 6px;font-size: var(--fs-sm)}.row-segments{display: flex;flex-wrap: wrap;gap: 8px;list-style: none;margin: 0;padding: 0}.row-segments[hidden]{display: none} .row-segments li{min-width: 0;max-width: 100%;padding: 8px 12px;border: 1px solid var(--c-line);border-left: 3px solid var(--c-accent-strong);border-radius: var(--r-sm);background: var(--c-surface)}.row-segments strong{font-size: 17px;font-variant-numeric: tabular-nums}.row-segments span{display: block;color: var(--c-ink-2);font-size: var(--fs-sm)}.row-segments .world-coordinate-range{margin-top: 6px;padding-top: 6px;border-top: 1px solid var(--c-line);color: var(--c-ink);font-family: var(--mono);font-variant-numeric: tabular-nums;overflow-wrap: anywhere}.build-actions,.progress-actions{display: flex;gap: 8px;flex-wrap: wrap}.build-actions .btn,.progress-actions .btn{min-height: 44px}#progress-status:empty{display: none}input:disabled{opacity: 0.45;cursor: not-allowed} .panel.portal-pair{position: static;margin: 0 0 32px;padding: 22px;border: 1px solid var(--c-line);background: var(--c-surface)}.portal-pair h2,.beacon-build h2{margin: 0 0 8px;font-size: 24px}.portal-pair .lede{max-width: 75ch}.portal-pair-grid{display: grid;grid-template-columns: repeat(2,minmax(0,1fr));gap: 14px;margin: 18px 0}.portal-pair-entrance{min-width: 0;padding: 16px;border: 1px solid var(--c-line);border-top: 3px solid var(--c-primary);border-radius: var(--r-md);background: var(--c-surface)}.portal-pair-entrance h3{margin: 0 0 10px;font-size: 17px}.portal-pair-entrance .btn{min-height: 44px;margin-bottom: 0}.portal-pair-coordinates{font-family: var(--mono);font-size: 16px;font-variant-numeric: tabular-nums;overflow-wrap: anywhere}.portal-pair-entrance .lede{font-size: var(--fs-sm);overflow-wrap: anywhere}.portal-pair-status{color: var(--c-ink);overflow-wrap: anywhere}.portal-pair-status:empty{display: none}.portal-pair-checklist{min-width: 0;padding: 16px;border: 1px solid var(--c-line);border-radius: var(--r-md)}.portal-pair-checklist legend{padding: 0 8px;font-weight: 600}.portal-pair-check{display: flex;align-items: flex-start;gap: 10px;min-height: 44px;margin: 0;padding: 10px 0;cursor: pointer}.portal-pair-check + .portal-pair-check{border-top: 1px solid var(--c-line)}.portal-pair-check input{flex: 0 0 18px;width: 18px;height: 18px;margin: 2px 0 0}.portal-pair-checklist:disabled .portal-pair-check{cursor: not-allowed;color: var(--c-ink-3)}.portal-pair-actions,.beacon-layer-actions{display: flex;flex-wrap: wrap;gap: 8px}.portal-pair-actions .btn,.beacon-layer-actions .btn{min-height: 44px}.portal-pair-notes{margin-top: 16px;border-top: 1px solid var(--c-line)}.portal-pair-notes summary{min-height: 44px;padding-block: 12px;cursor: pointer}.portal-pair-notes textarea{font-family: var(--mono);font-size: var(--fs-xs)}.beacon-session,.beacon-build,.beacon-inventory{min-width: 0;margin-top: 18px;padding: 16px;border: 1px solid var(--c-line);border-radius: var(--r-lg);background: var(--c-surface)}.beacon-session,.beacon-build,.beacon-inventory{display: block;min-height: 0}.beacon-layer-choice strong,.beacon-layer-choice span{display: block}.beacon-layer-choice span{font-size: var(--fs-sm)}.beacon-layer-choice strong{margin-bottom: 4px}.beacon-controls{position: static}.beacon-inventory .feedback-help,.beacon-build .feedback-help{font-size: var(--fs-sm);line-height: 1.5}.beacon-inventory{padding: 12px}.beacon-inventory h2{font-size: 18px;margin-top: 0}.beacon-layer-diagram{overflow: hidden} .beacon-session{border-left: 3px solid var(--c-accent-strong)}.beacon-session[hidden],.beacon-storage-note:empty{display: none}.beacon-layer-list{display: grid;grid-template-columns: repeat(2,minmax(0,1fr));gap: 8px;margin: 16px 0;padding: 0;list-style: none}.beacon-layer-list > *{min-width: 0}.beacon-layer-choice{width: 100%;min-height: 60px;padding: 10px 12px;border: 1px solid var(--c-line-strong);border-radius: var(--r-md);text-align: left;background: var(--c-surface);color: var(--c-ink);cursor: pointer;font-size: var(--fs-sm);line-height: 1.5}.beacon-layer-choice:not(:disabled):hover{border-color: var(--c-primary)} .beacon-blueprint{display: block;width: 100%;max-width: 400px;height: auto;margin: 16px auto;color: var(--c-primary);background: var(--c-surface-2)}.beacon-progress-summary{padding-block: 10px;border-bottom: 1px solid var(--c-line);color: var(--c-ink);font-variant-numeric: tabular-nums}.beacon-storage-note{color: var(--c-ink-2);font-size: var(--fs-sm);overflow-wrap: anywhere}.beacon-inventory input{font-family: var(--mono);font-size: 16px}.beacon-inventory input[aria-invalid="true"]{border-color: var(--c-danger)}@media (max-width: 540px){.panel.portal-pair{padding: 16px}.portal-pair-grid{grid-template-columns: minmax(0,1fr)}.portal-pair-checklist{padding: 10px}.beacon-layer-actions .btn{flex: 1 1 120px}.beacon-layer-choice{padding: 8px}}@media (max-height: 800px){.circle-controls{position: static}}@media (max-width: 540px){#continue-layer{width: 100%}.export-actions{display: grid;grid-template-columns: repeat(2,minmax(0,1fr))}.export-actions .btn{padding-inline: 6px;font-size: var(--fs-sm)}.blueprint-style{width: 100%}.blueprint-thickness{width: 100%;margin-left: 0}.circle-stats .stat{height: 90px;padding: 12px}.stat b{font-size: 18px}.stats .stat:nth-child(3)::before{display: none}.stats .stat:nth-child(n+3){border-top: 1px solid var(--c-line)}}@media (max-width: 360px){.world-coordinate-fields{grid-template-columns: minmax(0,1fr)} .circle-stats .stat{padding-inline: 10px}.circle-stats .stat b{font-size: 15px} .stage{padding-inline: 4px}}@media (min-width: 861px) and (max-width: 1100px){.circle-stats .stat b{font-size: 16px}}@media (max-width: 860px){.hero,.layout,.tool-grid{grid-template-columns: 1fr}.stats{grid-template-columns: 1fr 1fr}.panel{position: static}.layout{padding: 16px;gap: 20px}.panel{padding: 16px}}@media (max-width: 600px){.wrap{width: calc(100% - 24px)}.layout{padding: 12px;margin-block: 12px 24px}.panel{border: 0;padding: 6px;background: transparent}.panel .tool-title{font-size: 34px;text-wrap: auto}.panel .kicker{margin-top: 8px}.planner-group{margin-top: 16px}.faq.wrap{padding: 16px 16px 20px}.prose-page{padding: 24px 18px;margin-block: 16px 24px}.site-footer{padding-inline: 4px}.hero{padding-top: 28px;gap: 20px}}@media (min-width: 861px) and (max-width: 1120px){.layout{grid-template-columns: 250px minmax(0,1fr);padding: 16px;gap: 18px}.panel{padding: 14px}.circle-stats .stat{padding: 10px}}@media (prefers-reduced-motion: reduce){*,*::before,*::after{transition: none !important;scroll-behavior: auto !important}} .circle-size-chart{margin: 20px 0;overflow-x: auto}.circle-size-svg{display: block;max-width: 100%;height: auto;background: var(--c-surface)}.circle-size-stats{display: grid;grid-template-columns: repeat(auto-fit,minmax(150px,1fr));gap: 10px;margin: 0 0 18px}.circle-size-stats > div{padding: 10px 12px;border-radius: var(--r-md);background: var(--c-surface-2)}.circle-size-stats dt{font-size: var(--fs-sm);color: var(--c-ink-2)}.circle-size-stats dd{margin: 2px 0 0;font-family: var(--mono);font-size: 20px;font-variant-numeric: tabular-nums}.circle-size-stats > div:last-child dd{font-family: var(--font);font-size: var(--fs-sm)}.circle-size-actions{display: flex;flex-wrap: wrap;gap: 8px;margin: 18px 0 8px} .circle-size-actions .btn{display: inline-flex;align-items: center;justify-content: center;margin: 0;text-align: center}.circle-size-rows{min-width: 0}.circle-size-rows td{font-family: var(--mono);font-variant-numeric: tabular-nums;padding-block: 5px}.sphere-layer-rows td:last-child{font-family: var(--font)}.sphere-layer-jump a{display: inline-block;min-width: 2.2em;min-height: 32px;padding: 4px 0;text-align: center} .circle-size-list{display: flex;flex-wrap: wrap;gap: 8px;padding: 0;list-style: none}.circle-size-list a,.circle-size-list span{display: inline-flex;min-height: 40px;align-items: center;padding: 6px 14px;border: 1px solid var(--c-line-strong);border-radius: var(--r-pill);background: var(--c-surface);font-family: var(--mono);text-decoration: none}.circle-size-list a:hover{border-color: var(--c-primary);background: var(--c-primary-soft)}.circle-size-list span{background: var(--c-primary-soft);border-color: var(--c-primary);color: var(--c-ink);font-weight: 600} .size-breadcrumb{margin: 0 0 10px;color: var(--c-ink-2);font-size: var(--fs-sm);line-height: 24px}.size-breadcrumb ol{margin: 0;padding: 0;list-style: none}.size-breadcrumb li{display: inline-block;max-width: 100%}.size-breadcrumb li + li::before{content: "›";content: "›" / "";margin: 0 .45em}.size-breadcrumb a{padding-block: 4px;text-underline-offset: 2px}.size-breadcrumb [aria-current="page"]{color: var(--c-ink)} .stepper-field{margin-top: 12px}.stepper-field > label{margin: 0 0 6px}.stepper{display: grid;grid-template-columns: 44px minmax(64px,96px) 44px;align-items: center;gap: 6px;width: max-content;max-width: 100%}.stepper input[type="number"]{width: 100%;min-width: 0;min-height: 44px;padding: 8px 4px;text-align: center;font-family: var(--mono); font-size: 18px;font-weight: 600;font-variant-numeric: tabular-nums;appearance: textfield;-moz-appearance: textfield}.stepper input::-webkit-inner-spin-button,.stepper input::-webkit-outer-spin-button{-webkit-appearance: none;appearance: none;margin: 0}.stepper input[aria-invalid="true"]{border-color: var(--c-danger)}.step-button{display: inline-flex;align-items: center;justify-content: center;width: 44px;height: 44px;padding: 0;border: 1px solid var(--c-line-strong);border-radius: var(--r-sm);background: var(--c-surface);color: var(--c-ink);font-size: 22px;line-height: 1;cursor: pointer; touch-action: manipulation;user-select: none;-webkit-user-select: none;-webkit-touch-callout: none;-webkit-tap-highlight-color: transparent}.step-button:not(:disabled):hover{border-color: var(--c-primary);color: var(--c-primary)}.step-button:not(:disabled):active{background: var(--c-primary-soft);border-color: var(--c-primary)}.step-button:disabled{opacity: 0.45;cursor: not-allowed}.size-presets{display: flex;flex-wrap: wrap;align-items: center;gap: 6px;margin-top: 10px}.size-presets-label{flex-basis: 100%;color: var(--c-ink-2);font-size: var(--fs-sm)}.size-preset{min-width: 44px;min-height: 44px;padding: 0 10px;border: 1px solid var(--c-line-strong);border-radius: var(--r-pill);background: var(--c-surface);color: var(--c-ink);font-family: var(--mono);font-size: 15px;font-variant-numeric: tabular-nums;cursor: pointer;touch-action: manipulation}.size-preset:not(:disabled):hover{border-color: var(--c-primary)}.size-preset[aria-pressed="true"]{background: var(--c-primary-soft);border-color: var(--c-primary);color: var(--c-ink);font-weight: 600}.size-preset:disabled{opacity: 0.45;cursor: not-allowed}.ask{margin: 8px 0 0;border-top: 1px solid var(--c-line)}.ask > summary{position: relative;display: flex;flex-wrap: wrap;align-items: center;gap: 4px 10px;min-height: 48px;padding: 10px 30px 10px 0;list-style: none;cursor: pointer;color: var(--c-ink);font-size: 15px;font-weight: 400;line-height: 1.4}.ask > summary::-webkit-details-marker{display: none} .ask > summary::after{content: "";position: absolute;top: 50%;right: 8px;width: 8px;height: 8px;margin-top: -6px;border-right: 2px solid var(--c-primary);border-bottom: 2px solid var(--c-primary);transform: rotate(45deg);transition: transform 140ms ease}.ask[open] > summary::after{margin-top: -2px;transform: rotate(-135deg)}.ask-question{min-width: 0;overflow-wrap: anywhere;text-decoration: underline dotted var(--c-line-strong);text-underline-offset: 4px}.ask > summary:hover .ask-question{color: var(--c-primary);text-decoration-color: currentColor}.ask-state{min-width: 0;margin-left: auto;padding: 2px 8px;border-radius: var(--r-pill);color: var(--c-ink-2);font-size: var(--fs-sm);font-variant-numeric: tabular-nums;overflow-wrap: anywhere}.ask-state:empty,.ask[open] > summary .ask-state{display: none}.ask[data-changed="true"] .ask-state{background: var(--c-primary-soft);color: var(--c-ink)}.ask-body{padding: 0 0 12px}
