:root{--bg: #f8f7ef;--bg-2: #efeee3;--ink: #173f34;--muted: #536158;--line: #d5d8c9;--control-line: #83917d;--seal: #397529;--seal-hover: #2b6020;--on-seal: #ffffff;--accent: #316b2a;--accent-hover: #204e1c;--selected: #e2ecd3;--stage: #f0efe6;--danger: #a85128;--danger-ink: #873c1c;--paper: #fffef8;--grass: #79a946;--shadow: 0 12px 40px rgb(34 64 36 / 8%);--font: "IBM Plex Sans","Helvetica Neue",sans-serif;--mono: "IBM Plex Mono",ui-monospace,monospace;--tool-display: "Jersey 10","IBM Plex Sans",sans-serif}*{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) :is(.tool-title,.build-mode-heading h2){font-size: 26px;font-weight: 600}html:lang(ru) .nav{font-size: 18px;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(de),:lang(ru),:lang(ja),:lang(ko),:lang(es),:lang(pt),:lang(fr)) .world-banner{height: auto;min-height: 150px}html:is(:lang(de),:lang(ru),:lang(ja),:lang(ko),:lang(es),:lang(pt),:lang(fr)) .world-banner-copy{min-height: inherit}html:lang(ru) .world-banner-title{font-size: clamp(26px,3vw,40px);line-height: 1.1;font-weight: 600}html:is(:lang(zh),:lang(ja),:lang(ko)) .nav{font-size: 18px;font-weight: 600}html:is(:lang(zh),:lang(ja),:lang(ko)) :is(h1,h2,h3){letter-spacing: 0}html:is(:lang(zh),:lang(ja),:lang(ko)) :is(.tool-title,.build-mode-heading h2){font-size: 26px;font-weight: 600}html:is(:lang(zh),:lang(ja),:lang(ko)) .world-banner-title{font-size: clamp(26px,3vw,40px);font-weight: 600}@media (max-width: 540px){html:is(:lang(zh),:lang(ja),:lang(ko)) .nav{font-size: 16px}html:lang(ru) .nav{font-size: 15px}html:is(:lang(de),:lang(ru)) .nav a{overflow-wrap: anywhere;hyphens: auto}}html{color-scheme: light}body{container-type: inline-size;margin: 0;min-height: 100vh;background: #eaeedf;color: var(--ink);font-family: var(--font);font-size: 16px;line-height: 1.5}a{color: var(--accent)}a:hover{color: var(--accent-hover)}.skip{position: absolute;left: -999px;top: 0}.skip:focus{left: 12px;top: 12px;background: var(--bg-2);padding: 8px 12px;z-index: 40}.wrap{width: min(1320px,calc(100% - 48px));margin: 0 auto}.world-banner{position: relative;height: 164px}.world-banner-copy{position: relative;z-index: 2;display: flex;height: 100%;justify-content: center;flex-direction: column;width: 100%;margin: auto;padding: 10px 28px 24px}.world-banner-title{margin: 0;max-width: 18ch;color: #173f34;font: 400 clamp(34px,3.6vw,48px)/0.94 var(--tool-display);font-synthesis: none;letter-spacing: 0}.world-banner-note{margin: 9px 0 0;max-width: 42ch;color: var(--ink);font-size: 14px} .world-banner-title,.world-banner-note{text-shadow: 0 0 2px rgb(248 247 239 / 95%),0 0 8px rgb(248 247 239 / 90%)}.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(--accent);font-family: var(--mono);font-size: 12px;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(--muted);font-size: 14px;line-height: 1.55}.hero .tool-card .tool-title{font-size: 36px}.lede{color: var(--muted);max-width: 46ch}.prose-page{max-width: 72ch;padding: 36px 28px;margin: 28px 0;background: var(--paper);border: 1px solid var(--line)} .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(--line);font-size: clamp(24px,2.4vw,28px);line-height: 1.35}.about-page h3{margin: 28px 0 12px;color: var(--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(3,1fr);gap: 14px;padding-bottom: 48px}.tool-card{background: var(--paper);border: 1px solid var(--line);padding: 18px;text-decoration: none;color: inherit;min-height: 180px;display: flex;flex-direction: column;justify-content: space-between;border-radius: 4px}.tool-card:hover{border-color: var(--seal);color: var(--ink)}.tool-grid .tool-card{justify-content: flex-start;gap: 16px}.tool-card small{color: var(--muted);font-family: var(--mono);font-size: 12px}.tool-card p{margin: 10px 0 0;color: var(--muted)}.layout{position: relative;display: grid;grid-template-columns: 292px minmax(0,1fr);gap: 24px;padding: 22px;margin: -14px 0 40px;background: var(--paper);border: 1px solid #fff;box-shadow: var(--shadow);border-radius: 5px}.layout::before,.layout::after{content: "";position: absolute;top: 6px;width: 7px;height: 7px;background: #e0e3d4;pointer-events: none}.layout::before{left: 6px;box-shadow: 7px 0 #eceee3,0 7px #eceee3}.layout::after{right: 6px;box-shadow: -7px 0 #eceee3,0 7px #eceee3}.layout > *{min-width: 0}.has-world .layout{background: rgb(255 254 248 / 95%)}.panel{background: var(--bg);border: 1px solid var(--line);padding: 18px;position: sticky;top: 20px;align-self: start;border-radius: 3px}label,.label-like{display: block;font-size: 14px;color: var(--ink);margin: 12px 0 6px}textarea{width: 100%;background: var(--bg);border: 1px solid var(--line);padding: 8px 10px;font-family: var(--mono);font-size: 12px;resize: vertical}input,select,button,textarea{font: inherit;color: var(--ink)}.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(--bg-2);font-family: var(--font);font-size: 14px;line-height: 1.65;field-sizing: content;max-height: 60vh} #ascii,.portal-pair-notes textarea{font-family: var(--mono);font-size: 12px;line-height: 1.35} .result-coords{margin: 0 0 12px;padding: 14px 16px;border: 1px solid var(--line);border-radius: 4px;background: var(--bg-2)}.result-coords-dimension{margin: 0 0 6px;color: var(--muted);font-size: 13px}.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(--muted);font: 600 12px/1 var(--mono)}.result-coords-values span span{font: 600 clamp(24px,6vw,32px)/1.1 var(--mono);color: var(--ink);overflow-wrap: anywhere}input[type="number"],input[type="text"],select{width: 100%;background: var(--bg);border: 1px solid var(--control-line);padding: 8px 10px;border-radius: 3px;min-height: 44px}input[type="checkbox"]{accent-color: var(--seal)}.range-control{margin-top: 12px}.range-heading{display: flex;align-items: center;justify-content: space-between;gap: 12px}.range-heading label{margin: 0}.range-heading input[type="number"]{flex: 0 0 76px;width: 76px;min-height: 44px;text-align: center;font-family: var(--mono);appearance: textfield}.range-heading input::-webkit-inner-spin-button,.range-heading input::-webkit-outer-spin-button{appearance: none;margin: 0}.range-adjust{display: grid;grid-template-columns: 44px minmax(0,1fr) 44px;align-items: center;gap: 10px;margin-top: 4px}.step-button{width: 44px;height: 44px;border: 1px solid var(--control-line);border-radius: 3px;background: var(--paper);font-size: 22px;line-height: 1;cursor: pointer;touch-action: manipulation}.step-button:not(:disabled):hover{border-color: var(--accent)}.step-button:disabled{opacity: 0.45;cursor: not-allowed}.range-adjust input[type="range"]{appearance: none;width: 100%;min-width: 0;height: 44px;margin: 0;background: transparent;cursor: pointer}.range-adjust input[type="range"]::-webkit-slider-runnable-track{height: 6px;background: #c9d0bc;border-radius: 3px}.range-adjust input[type="range"]::-webkit-slider-thumb{appearance: none;width: 26px;height: 26px;margin-top: -10px;border: 2px solid var(--on-seal);border-radius: 50%;background: var(--seal)}.range-adjust input[type="range"]::-moz-range-track{height: 6px;background: #c9d0bc;border-radius: 3px}.range-adjust input[type="range"]::-moz-range-thumb{width: 22px;height: 22px;border: 2px solid var(--on-seal);border-radius: 50%;background: var(--seal)}.range-adjust input[type="range"]:disabled{cursor: not-allowed}.range-heading input[aria-invalid="true"]{border-color: var(--danger)}.field-error{margin: 4px 0 0;color: var(--danger-ink);font-size: 12px}.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 legend{padding: 0;font-size: 15px;font-weight: 600}.planner-group legend span{margin-left: 8px;color: var(--muted);font-size: 12px;font-weight: 400}.planner-group .oval-toggle{margin: 4px 0 0}.planner-group .oval-toggle + .range-control{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(--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-materials{margin-top: 24px;padding-top: 12px;border-top: 1px solid var(--line)}.planner-materials legend{padding-right: 10px}.planner-help{margin: 0;color: var(--muted);font-size: 13px;line-height: 1.5}.planner-materials .lede{margin-bottom: 0}#layer-need{padding: 12px;border: 1px solid var(--line);border-radius: 3px;background: var(--bg-2);font-size: 14px}.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(--danger)}.owned-materials .planner-help{margin-top: 6px}.material-balance{margin: 10px 0 0;padding: 10px 12px;border-left: 3px solid var(--seal);background: var(--selected);color: var(--ink);font-size: 14px;overflow-wrap: anywhere}.material-balance:empty{display: none}.blueprint-jump{display: none}.resume-plan{margin: 16px 0;padding: 12px;border: 1px solid var(--control-line);border-left: 3px solid var(--seal);border-radius: 3px;background: var(--selected)}.resume-plan[hidden]{display: none}.resume-plan > strong{font-size: 15px}.resume-plan p{margin: 6px 0 10px;font-size: 14px;overflow-wrap: anywhere}.resume-actions{display: flex;flex-wrap: wrap;gap: 8px}.resume-actions .btn{margin: 0;font-size: 14px}.session-status{margin: 12px 0 0;font-size: 13px;color: var(--muted);overflow-wrap: anywhere}.session-status:empty{display: none}.build-mode-entry{width: 100%}.build-mode-bar{margin-bottom: 12px;padding-bottom: 12px;border-bottom: 1px solid var(--line)}.build-mode-bar[hidden]{display: none}.build-mode-heading{display: flex;justify-content: space-between;align-items: flex-start;gap: 16px}.build-mode-heading > div{min-width: 0}.build-mode-heading h2{margin: 0;font-family: var(--tool-display);font-size: 32px;font-weight: 400;font-synthesis: none;letter-spacing: 0;line-height: 1.1}.build-mode-heading p{margin: 6px 0 0;font-size: 14px;color: var(--muted);overflow-wrap: anywhere}.build-mode-heading .btn{flex-shrink: 0;margin: 0}a:focus-visible,input:focus,select:focus,textarea:focus,button:focus-visible{outline: 2px solid var(--accent);outline-offset: 2px}.row-2{display: grid;grid-template-columns: 1fr 1fr;gap: 10px}.toggle{display: flex;gap: 8px;margin-top: 8px}.toggle button,.btn{background: var(--paper);border: 1px solid var(--control-line);padding: 8px 10px;border-radius: 3px;cursor: pointer;min-height: 44px;box-shadow: 0 2px 0 rgb(38 65 37 / 7%);transition: background-color 140ms ease,border-color 140ms ease}.toggle button:not(:disabled):hover,.btn:not(:disabled):hover{border-color: var(--accent)}.toggle button[aria-pressed="true"],.btn.primary{background: var(--seal);color: var(--on-seal);border-color: var(--seal)}.toggle button[aria-pressed="true"]:hover,.btn.primary:not(:disabled):hover{background: var(--seal-hover);border-color: var(--seal-hover)}.btn{margin-top: 12px}.btn:disabled{opacity: 0.45;cursor: not-allowed}.stats{display: grid;grid-template-columns: repeat(4,1fr);gap: 0;margin-bottom: 14px;background: var(--bg-2);border: 1px solid var(--line);border-radius: 4px}.stat{min-width: 0;position: relative;padding: 14px}.stat + .stat::before{content: "";position: absolute;left: 0;top: 18px;bottom: 18px;width: 1px;background: var(--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(--muted);font-size: 12px}.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-tools{display: grid;grid-template-columns: 224px minmax(240px,1fr) auto;align-items: flex-start;gap: 8px 16px;padding: 4px 0 12px}.blueprint-tools label,.blueprint-tools .label-like{margin: 0 0 6px}.blueprint-tools .toggle{margin: 0}.blueprint-tools .toggle button{min-height: 44px;padding: 9px 14px}.blueprint-thickness{width: auto;margin: 0;display: grid;grid-template-columns: minmax(0,1fr) 64px;gap: 6px 8px}.blueprint-thickness .range-heading{display: contents}.blueprint-thickness .range-heading label{grid-column: 1 / -1}.blueprint-thickness .range-heading input{grid-column: 2;grid-row: 2;width: 64px}.blueprint-thickness .range-adjust{grid-column: 1;grid-row: 2;margin: 0;gap: 6px}.blueprint-thickness .field-error{grid-column: 1 / -1}.blueprint-thickness .range-heading label{margin: 0}.blueprint-thickness input{min-height: 44px}.blueprint-hint{grid-column: 1 / -1;margin: 0;color: var(--muted);font-size: 12px}#thickness-adjustment{color: var(--accent)}.blueprint-tools .alert{grid-column: 1 / -1;margin: 0}.blueprint-options{display: contents}.blueprint-guides{grid-column: 1 / -1;display: flex;align-items: center;flex-wrap: wrap;gap: 0 16px;min-width: 0}.blueprint-guides label{display: flex;align-items: center;gap: 8px;min-height: 44px;margin: 0;color: var(--ink);cursor: pointer}.blueprint-guides input{width: 18px;height: 18px;margin: 0}.blueprint-guides p{margin: 0;max-width: 36ch;font-size: 12px;color: var(--muted)}.blueprint-view{grid-column: 3;grid-row: 1;align-self: end;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(--accent)}.zoom-help{margin: 0;color: var(--muted);font-size: 12px}.blueprint-notes{padding: 10px 12px;border: 1px solid var(--line);border-top: 0;background: var(--bg)}.blueprint-notes p{margin: 0;color: var(--muted);font-size: 12px}.blueprint-notes p + p{margin-top: 4px}.blueprint-notes .grid-number-help{padding: 0}.stage:focus-visible{outline: 2px solid var(--accent);outline-offset: 2px}.grid-number-help{margin: 0;padding: 8px 0;color: var(--muted);font-size: 12px}.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(--bg-2);color: var(--muted);font-family: var(--mono);font-size: 11px;font-variant-numeric: tabular-nums}.ruler-corner{display: grid;place-items: center;border: 1px solid var(--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(--line);border-bottom: 0}.row-ruler{grid-area: 2 / 1;border: 1px solid var(--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(--accent);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: #153f32;background: #83b34e;border-radius: 2px;white-space: nowrap}.cell-numbers[data-done="true"] span{color: #153f32;background: #9eaf90}#blueprint{scroll-margin-top: 16px}.stage{border: 1px solid var(--line);background: var(--stage);overflow: auto;padding: 12px;touch-action: manipulation}canvas{image-rendering: pixelated;display: block;margin: 0 auto;height: auto}.export-bar{border: 1px solid var(--line);border-top: 0;padding: 12px;background: var(--bg)}.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(--muted);font-size: 12px}.export-bar .copy-ok{margin: 8px 0 0}.export-bar .copy-ok:empty{display: none}.export-open:not([hidden]){display: inline-flex;align-items: center;min-height: 44px;margin-top: 4px}.rows{margin-top: 16px;font-family: var(--mono);font-size: 13px;overflow: auto}.rows table{width: 100%;border-collapse: collapse}.rows th,.rows td{text-align: left;padding: 6px 8px;border-bottom: 1px solid var(--line);white-space: nowrap}.note,.faq,.prose{color: var(--muted);padding-bottom: 48px}.faq.wrap{width: 100%;margin: 0 0 32px;padding: 28px;border: 1px solid var(--line);background: var(--bg);border-radius: 4px}.faq h2,.prose h1,.prose h2{color: var(--ink)}.faq details{border-top: 1px solid var(--line);padding: 12px 0}.faq summary{cursor: pointer;color: var(--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(--line);color: var(--ink)}.reference-table-wrap{overflow-x: auto;margin: 20px 0}.reference-table{width: 100%;min-width: 36rem;border-collapse: collapse;font-variant-numeric: tabular-nums}.reference-table caption{text-align: left;margin-bottom: 10px;color: var(--ink);font-weight: 600}.reference-table th,.reference-table td{text-align: left;padding: 10px 12px;border-bottom: 1px solid var(--line);vertical-align: top}.reference-table thead{background: var(--bg-2);color: var(--ink)}.reference-table tbody th{color: var(--ink)}.alert{border: 1px solid var(--danger);color: var(--danger-ink);padding: 10px 12px;margin: 8px 0;display: none}.alert.show{display: block}.copy-ok{color: var(--ink);font-size: 13px;min-height: 1.2em}.tool-feedback{margin-top: 20px;padding: 0 0 12px;border-top: 1px solid var(--line);color: var(--muted);font-size: 14px}.tool-feedback summary{padding: 12px 0;min-height: 44px;cursor: pointer}.tool-feedback summary:hover{color: var(--accent)}.tool-feedback summary:focus-visible{outline: 2px solid var(--accent);outline-offset: 2px}.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(--ink);text-decoration: none}.tool-feedback .feedback-help{font-size: 13px;overflow-wrap: anywhere}.tool-feedback textarea{display: block;font-size: 16px;margin-bottom: 10px}.tool-feedback .feedback-status{min-height: 1.5em;color: var(--ink)}.site-footer{border-top: 1px solid var(--line);padding: 20px 0 32px;color: var(--muted);font-size: 13px;display: flex;justify-content: space-between;gap: 16px;flex-wrap: wrap}.has-world .site-footer{padding: 20px 24px 24px;margin-bottom: 20px;background: rgb(255 254 248 / 96%);border: 1px solid var(--line);border-radius: 4px}.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(--ink);text-decoration-thickness: 2px;text-underline-offset: 4px}.footer-notices{flex-basis: 100%;min-width: 0;font-size: 14px;line-height: 1.6}.footer-notices p{margin: 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: 2px solid var(--accent);outline-offset: 3px}.build-bar{margin-top: 12px;background: var(--bg);border: 1px solid var(--line);padding: 12px;border-radius: 3px}.build-bar strong{font-family: var(--mono);font-weight: 600;font-size: 18px;display: block}.build-bar p{margin: 6px 0 10px;color: var(--muted)}.layer-controls{display: flex;align-items: center;justify-content: space-between;flex-wrap: wrap;gap: 8px 16px}.layer-selection{display: flex;align-items: center;flex-wrap: wrap;gap: 8px;min-width: 0}.layer-selection label{margin: 0;font-weight: 600}.layer-selection input{width: 76px;min-width: 0;text-align: center;font-family: var(--mono);font-size: 16px;font-variant-numeric: tabular-nums}.layer-selection input[aria-invalid="true"]{border-color: var(--danger)}#layer-total{color: var(--muted);font-size: 14px;font-variant-numeric: tabular-nums}.layer-navigation{display: grid;grid-template-columns: repeat(2,minmax(0,1fr));gap: 8px;min-width: 0}.layer-navigation .btn{min-width: 0;min-height: 44px;margin: 0;font-size: 14px;line-height: 1.35;touch-action: manipulation}.build-bar #layer-error{margin: 6px 0 0;color: var(--danger-ink)}.build-bar .layer-progress-summary{margin: 10px 0 12px;padding-bottom: 12px;border-bottom: 1px solid var(--line);color: var(--ink);font-size: 14px;line-height: 1.5;overflow-wrap: anywhere}.build-bar .layer-storage-note{margin: 0 0 12px;padding: 10px 12px;border-left: 3px solid var(--seal);background: var(--selected);color: var(--ink);font-size: 13px;line-height: 1.5;overflow-wrap: anywhere}.layer-storage-note:empty{display: none}#continue-layer{min-height: 44px;touch-action: manipulation}#continue-layer[hidden],#layer-error[hidden],#owned-error[hidden]{display: none}.build-bar .world-coordinate-summary{margin: 8px 0;padding: 8px 10px;border: 1px solid var(--line);border-radius: 3px;background: var(--bg-2);color: var(--ink);font-family: var(--mono);font-size: 13px;font-variant-numeric: tabular-nums;overflow-wrap: anywhere}.build-bar .world-coordinate-warning{margin: 8px 0;color: var(--danger-ink);font-size: 13px;overflow-wrap: anywhere}.build-bar .row-segments-note{margin: 12px 0 6px;font-size: 12px}.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(--control-line);border-left: 3px solid var(--accent);background: var(--stage)}.row-segments strong{font-size: 17px;font-variant-numeric: tabular-nums}.row-segments span{display: block;color: var(--muted);font-size: 13px}.row-segments .world-coordinate-range{margin-top: 6px;padding-top: 6px;border-top: 1px solid var(--line);color: var(--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}.rows caption{text-align: left;color: var(--muted);font-family: var(--font);padding-bottom: 8px}.rows tr{cursor: pointer}.rows tr:focus-visible{outline: 2px solid var(--accent);outline-offset: -2px}.rows tr.current td{background: var(--selected)}.rows tr.done td{color: var(--muted);text-decoration: line-through}input:disabled{opacity: 0.45;cursor: not-allowed} .panel.portal-pair{position: static;margin: 0 0 32px;padding: 22px;border: 1px solid var(--line);background: var(--paper)}.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(--line);border-top: 3px solid var(--seal);background: var(--paper)}.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: 14px;overflow-wrap: anywhere}.portal-pair-status{color: var(--ink);overflow-wrap: anywhere}.portal-pair-status:empty{display: none}.portal-pair-checklist{min-width: 0;padding: 16px;border: 1px solid var(--line)}.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(--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(--muted)}.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(--line)}.portal-pair-notes summary{min-height: 44px;padding-block: 12px;cursor: pointer}.portal-pair-notes textarea{font-family: var(--mono);font-size: 13px}.beacon-session,.beacon-build,.beacon-inventory{min-width: 0;margin-top: 18px;padding: 16px;border: 1px solid var(--line);border-radius: 3px;background: var(--bg)}.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: 13px}.beacon-layer-choice strong{margin-bottom: 4px}.beacon-controls{position: static}.beacon-inventory .feedback-help,.beacon-build .feedback-help{font-size: 13px;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(--seal)}.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(--control-line);border-radius: 3px;text-align: left;background: var(--paper);cursor: pointer;font-size: 14px;line-height: 1.5}.beacon-layer-choice[aria-pressed="true"]{border-color: var(--seal);background: var(--selected);box-shadow: inset 3px 0 var(--seal)}.beacon-blueprint{display: block;width: 100%;max-width: 400px;height: auto;margin: 16px auto;color: var(--seal);background: var(--stage)}.beacon-progress-summary{padding-block: 10px;border-bottom: 1px solid var(--line);color: var(--ink);font-variant-numeric: tabular-nums}.beacon-storage-note{color: var(--muted);font-size: 14px;overflow-wrap: anywhere}.beacon-inventory input{font-family: var(--mono);font-size: 16px}.beacon-inventory input[aria-invalid="true"]{border-color: var(--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}.world-banner{height: 126px}.world-banner-title{font-size: 36px}.world-banner-copy{padding-block: 8px 16px}}@media (max-width: 540px){.layer-controls{align-items: stretch}.layer-selection,.layer-navigation{width: 100%}.layer-selection input{flex: 0 0 76px}#continue-layer{width: 100%}.export-actions{display: grid;grid-template-columns: repeat(2,minmax(0,1fr))}.export-actions .btn{padding-inline: 6px;font-size: 14px}.blueprint-style{width: 100%}.blueprint-tools .toggle button{flex: 1}.blueprint-thickness{width: 100%;margin-left: 0}.blueprint-tools{grid-template-columns: minmax(0,1fr);gap: 12px}.blueprint-thickness{grid-template-columns: minmax(0,1fr) 64px}.blueprint-options{align-items: flex-start;flex-direction: column;gap: 8px}.blueprint-view{grid-column: 1;grid-row: auto}.blueprint-guides{gap: 0}.blueprint-guides p{max-width: none;flex-basis: 100%}.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(--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}.blueprint-jump{display: flex;align-items: center;justify-content: space-between;gap: 12px;width: 100%;min-height: 48px;margin: 4px 0 0;padding: 8px 14px;border: 1px solid var(--line);border-radius: 4px;background: var(--bg-2);color: var(--ink);text-decoration: none}.blueprint-jump-summary{font: 600 16px/1.2 var(--mono)}.blueprint-jump-summary.is-stale{opacity: .45}.blueprint-jump > span:last-child{color: var(--accent);font-size: 14px;text-decoration: underline;text-underline-offset: 3px}.layout{padding: 16px;gap: 20px}.panel{padding: 16px}.world-banner{height: 118px}.world-banner-title{font-size: 34px;max-width: 17ch}.world-banner-copy{padding: 8px 18px 20px}.world-banner-note{font-size: 13px;max-width: 32ch}}@media (max-height: 600px) and (orientation: landscape){ .world-banner-copy::before{content: "";position: absolute;z-index: -1;inset: -12px auto -12px -8px;width: min(540px,100%);pointer-events: none;background: linear-gradient(90deg,rgb(248 247 239 / 94%) 65%,rgb(248 247 239 / 70%) 80%,transparent);mask-image: linear-gradient(180deg,transparent,#000 12%,#000 92%,transparent)}}@media (max-width: 600px){.wrap{width: calc(100% - 24px)}.world-banner-copy{padding-left: 18px}.world-banner-title{font-size: 31px}.world-banner-note{max-width: 29ch;margin-top: 6px}.layout{padding: 12px;margin-bottom: 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}.planner-materials{margin-top: 20px}.faq.wrap{padding: 20px 16px}.prose-page{padding: 24px 18px}.site-footer{padding-inline: 4px}.has-world .site-footer{padding-inline: 16px}.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 (min-width: 541px) and (max-width: 1120px){.blueprint-tools{grid-template-columns: minmax(0,1fr) minmax(220px,1fr)}.blueprint-guides{grid-column: 1;grid-row: 2}.blueprint-view{grid-column: 2;grid-row: 2;justify-self: end}} .circle-build-mode{--build-actions-height: 92px}.circle-build-mode > .wrap{width: min(960px,calc(100% - 32px))}.circle-build-mode .site-header,.circle-build-mode .world-banner,.circle-build-mode .circle-controls,.circle-build-mode .faq,.circle-build-mode .site-footer,.circle-build-mode .stats,.circle-build-mode .export-bar,.circle-build-mode .tool-feedback,.circle-build-mode .rows,.circle-build-mode label[for="ascii"],.circle-build-mode #ascii,.circle-build-mode .blueprint-style,.circle-build-mode .blueprint-thickness,.circle-build-mode #thickness-adjustment,.circle-build-mode #thickness-help,.circle-build-mode #center-note{display: none}.circle-build-mode .layout{display: block;margin: 16px 0;padding: 20px}.circle-build-mode .blueprint-tools{grid-template-columns: minmax(0,1fr) auto;align-items: center;gap: 8px;padding: 0 0 12px}.circle-build-mode .blueprint-guides{grid-column: 1;grid-row: 1}.circle-build-mode .blueprint-view{grid-column: 2;grid-row: 1;justify-self: end;align-self: center}.circle-build-mode .build-bar{padding: 16px}.circle-build-mode #build-title{font-size: clamp(20px,3vw,26px);line-height: 1.35}.circle-build-mode #build-runs{font-size: 17px;line-height: 1.55}.circle-build-mode .row-segments{display: grid;grid-template-columns: repeat(auto-fit,minmax(min(100%,220px),1fr))}.circle-build-mode .row-segments[hidden]{display: none}.circle-build-mode .row-segments strong{font-size: 20px}.circle-build-mode .row-segments span{font-size: 15px}.circle-build-mode .build-actions{display: grid;grid-template-columns: minmax(0,1fr) minmax(0,1.25fr) minmax(0,1fr)}.circle-build-mode .build-actions .btn{min-height: 52px;font-weight: 600;touch-action: manipulation}.circle-build-mode .progress-actions{margin-top: 8px}.circle-build-mode .progress-actions .btn{font-size: 14px}.circle-build-mode #progress-note{margin-bottom: 0;font-size: 13px}.circle-build-mode #progress-status{font-size: 14px}@media (max-width: 600px){.circle-build-mode > .wrap{width: calc(100% - 16px);padding-bottom: calc(var(--build-actions-height) + env(safe-area-inset-bottom))}.circle-build-mode .layout{margin: 8px 0;padding: 12px 8px}.circle-build-mode .build-mode-heading{gap: 8px}.circle-build-mode .build-mode-heading h2{font-size: 30px}.circle-build-mode .build-mode-heading p{font-size: 13px}.circle-build-mode .build-mode-heading .btn{font-size: 14px}.circle-build-mode .blueprint-tools{padding-bottom: 8px}.circle-build-mode .blueprint-guides label{font-size: 14px}.circle-build-mode .blueprint-notes{padding: 8px}.circle-build-mode .build-bar{padding: 12px}.circle-build-mode .row-segments li{padding: 10px}.circle-build-mode .build-actions{position: fixed;z-index: 10;inset: auto 0 0;gap: 6px;padding: 12px max(12px,env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));border-top: 1px solid var(--line);background: var(--paper);box-shadow: 0 -4px 16px rgb(34 64 36 / 8%)}.circle-build-mode .build-actions .btn{margin: 0;min-height: 56px;padding-inline: 6px;font-size: 14px;line-height: 1.35}}@media (max-width: 360px){.circle-build-mode .blueprint-tools{grid-template-columns: minmax(0,1fr)}.circle-build-mode .blueprint-guides{grid-row: 2}.circle-build-mode .blueprint-view{grid-column: 1;grid-row: 1;justify-self: start}}@media (prefers-reduced-motion: reduce){*,*::before,*::after{transition: none !important;scroll-behavior: auto !important}}@supports not (width: 1cqw){.world-banner{width: 100%;margin-left: 0}.site-header::before{inset: 0}} .beacon-builder-details > summary,.portal-planner-paste > summary{min-height: 44px;padding-block: 10px} @media (max-width: 600px){.world-banner{height: auto;min-height: 0}.world-banner-copy{padding-block: 10px 12px}.world-banner-title{font-size: 24px;max-width: none}.world-banner-title br{display: none}.world-banner-note{display: none}} .site-header + .layout{margin-top: 20px}@media (max-width: 600px){.site-header + .layout{margin-top: 12px}} .circle-size-chart{margin: 20px 0;overflow-x: auto}.circle-size-svg{display: block;max-width: 100%;height: auto;background: var(--paper)}.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: 8px;background: var(--bg-2)}.circle-size-stats dt{font-size: 13px;color: var(--muted)}.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: 14px}.circle-size-actions{margin: 18px 0 8px}.circle-size-rows{min-width: 0}.circle-size-rows td{font-family: var(--mono);font-variant-numeric: tabular-nums;padding-block: 5px}.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 12px;border: 1px solid var(--line);border-radius: 6px;font-family: var(--mono);text-decoration: none}.circle-size-list span{background: var(--selected);border-color: var(--seal)}
