@charset "UTF-8";
/* Brand and status colours (--accent, --soft, --danger …) come from colors.css, shared with the admin pages. */
:root{font-family:"Pretendard","Noto Sans KR","Malgun Gothic",Arial,sans-serif;font-synthesis:none;color-scheme:light;--page:#fff;--surface:#fff;--ink:#252628;--muted:#6d7275;--line:#dce0e2;--art:#f2f3f3;--radius:4px;--space-1:4px;--space-2:8px;--space-3:16px;--space-4:24px;--space-5:32px;--space-6:48px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--page);color:var(--ink);font-size:16px;line-height:1.75;letter-spacing:-.02em}button,input{font:inherit;color:inherit}button,a,input{ -webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.4}button{border:0}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,.upload-zone:has(+input:focus-visible){outline:3px solid var(--accent);outline-offset:4px}h1,h2,h3,p,dl,dd{margin:0}h1,h2,h3{font-weight:750}h1{font-size:48px;line-height:1.1666667;letter-spacing:-.04em}h2{font-size:24px;line-height:1.1666667;letter-spacing:-.03em}h3{font-size:16px;line-height:1.75}p{max-width:40em}em{font-style:normal;color:var(--accent)}svg{display:block}button{letter-spacing:-.02em}.container{width:var(--container-width,calc(100% - 64px));max-width:1200px;margin-inline:auto}.small,.eyebrow{font-size:12px}.muted{color:var(--muted)}.eyebrow{font-family:Arial,sans-serif;line-height:16px;letter-spacing:.08em;font-weight:600}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;top:8px;left:8px;padding:8px 16px;background:var(--surface);z-index:20;transform:translateY(-200%)}.skip-link:focus{transform:none}[hidden]{display:none!important}
.concept-bar{background:#eeeee8;color:#303630;padding:16px 0;border-bottom:1px solid #d9dbd3}.concept-inner{display:flex;align-items:center;gap:24px}.concept-caption{display:flex;flex-direction:column;gap:8px;white-space:nowrap}.concept-caption>span:last-child{font-size:12px;line-height:16px}.theme-tabs{display:flex;gap:8px;margin-left:auto}.theme-tab{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:8px 16px;border-radius:8px;background:transparent;box-shadow:inset 0 0 0 1px #d3d8ce;font-size:12px;white-space:nowrap}.theme-tab.active{background:#fff;box-shadow:inset 0 0 0 2px #354f43;font-weight:700}.theme-dot{width:8px;height:8px;border-radius:50%;flex:none}.dot-a{background:#467b64}.dot-b{background:#d5f172}.dot-c{background:#c06e57}.choose-button{min-height:48px;padding:8px 16px;display:flex;align-items:center;justify-content:center;gap:16px;border-radius:8px;background:#303e35;color:#fff;white-space:nowrap;font-size:12px}.selection-status{margin:16px auto 0;padding:8px 16px;max-width:1200px;text-align:center;font-size:12px;background:#dce9d8}.site-header{display:flex;align-items:center;justify-content:space-between;gap:32px;height:112px}.brand{display:flex;align-items:center;gap:8px;min-height:48px;font-size:24px;font-weight:800;line-height:28px;letter-spacing:-.04em}.brand svg{width:40px;height:40px;fill:none;stroke:var(--accent);stroke-width:2.5;stroke-linejoin:round}.brand-period{color:var(--accent)}nav{display:flex;gap:32px}nav a{display:flex;align-items:center;min-height:48px;font-size:12px}.header-cta{display:flex;align-items:center;gap:24px;padding:8px 16px;min-height:48px;border-radius:8px;box-shadow:inset 0 0 0 1px var(--line);font-size:12px}.hero{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;padding:16px 0 48px}.hero-copy{display:flex;flex-direction:column;align-items:flex-start;gap:32px}.hero-kicker{display:flex;gap:8px;align-items:center;color:var(--accent)}.status-dot{width:8px;height:8px;background:var(--accent);border-radius:50%}.hero-copy>p{color:var(--muted);line-height:1.75;max-width:40em}.hero-actions{display:flex;align-items:center;gap:24px}.primary-button{display:inline-flex;align-items:center;justify-content:space-between;gap:24px;min-height:56px;padding:16px 24px;border-radius:8px;background:var(--accent);color:var(--on-accent);font-size:16px;line-height:24px;font-weight:650}.primary-button:hover{filter:brightness(1.08)}.text-link{display:flex;align-items:center;gap:16px;min-height:48px;font-size:12px}.hero-facts{display:flex;gap:16px;font-size:12px;line-height:16px;color:var(--muted)}.hero-facts span{display:flex;gap:8px;align-items:center}.hero-facts span:before{content:"✓";color:var(--accent)}.hero-art{height:448px;position:relative;isolation:isolate;overflow:hidden;border-radius:var(--radius);background:var(--art);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 10%,transparent)}.art-top{position:absolute;top:24px;left:24px;right:24px;display:flex;justify-content:space-between;align-items:center;gap:16px;z-index:2}.art-index{font:12px/16px monospace;letter-spacing:0;opacity:.6}.art-bottom{position:absolute;bottom:48px;left:24px;right:24px;display:flex;align-items:center;justify-content:space-between;gap:16px;z-index:2}.art-bottom>div{display:flex;flex-direction:column;gap:8px}.art-bottom strong{font-size:16px;line-height:24px}.round-arrow{width:48px;height:48px;display:grid;place-items:center;border-radius:50%;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ink) 20%,transparent);font-size:24px}.art-caption{position:absolute;bottom:16px;left:24px;color:var(--muted);font-size:12px;line-height:16px}#object-canvas{width:100%;height:100%;display:block}.feature-strip{display:grid;grid-template-columns:1fr 1.2fr 1.5fr;gap:32px;padding:24px 0;box-shadow:0 -1px var(--line),0 1px var(--line)}.feature-strip>span{display:flex;gap:16px;align-items:center;font-size:12px;line-height:16px}.feature-strip b{font-family:monospace;font-weight:400;color:var(--accent);letter-spacing:0}.quote-section{padding-top:48px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:24px}.heading-stack{display:flex;flex-direction:column;gap:16px}.heading-stack .eyebrow{color:var(--accent)}.demo-pill{border-radius:8px;background:var(--soft);padding:8px 16px;font-size:12px;line-height:16px;white-space:nowrap}.quote-layout{display:grid;grid-template-columns:minmax(0,1fr) 352px;gap:32px;align-items:start}.config-panel{background:var(--surface);border-radius:var(--radius);padding:32px;box-shadow:inset 0 0 0 1px var(--line)}.config-section{display:flex;flex-direction:column;gap:16px}.config-section+.config-section{padding-top:32px;margin-top:32px;box-shadow:0 -1px var(--line)}.step-heading{display:flex;align-items:center;gap:8px;min-height:32px}.step-heading>.small{margin-left:auto}.step-number{width:32px;height:32px;display:grid;place-items:center;background:var(--soft);color:var(--accent);font-size:12px;line-height:16px;font-weight:650;font-variant-numeric:tabular-nums;letter-spacing:0;border-radius:8px}.upload-zone{display:flex;align-items:center;gap:16px;padding:24px;background:var(--page);border-radius:8px;outline:1px dashed var(--line);outline-offset:-1px;cursor:pointer;min-height:104px}.upload-zone:hover,.upload-zone.dragover{outline-color:var(--accent);background:var(--soft)}.upload-icon{font-size:24px;line-height:32px;width:32px;flex:none;text-align:center;color:var(--accent)}.upload-zone>span:nth-child(2){min-width:0;display:flex;flex-direction:column;gap:8px}.upload-zone strong{font-size:16px;font-weight:600;line-height:24px;overflow-wrap:anywhere}.upload-help{font-size:12px;line-height:16px;color:var(--muted)}.upload-plus{margin-left:auto;font-size:24px;line-height:32px}.config-section>p.small{line-height:1.6666667;max-width:40em}.material-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.material-option{min-height:80px;padding:16px 8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:var(--surface);border-radius:8px;box-shadow:inset 0 0 0 1px var(--line);line-height:16px}.material-option>span:first-child{font-size:12px;font-family:Arial,sans-serif;letter-spacing:.02em;font-weight:700}.material-option .small{color:var(--muted);white-space:nowrap;line-height:16px}.selected{box-shadow:inset 0 0 0 2px var(--accent)!important;background:var(--soft)!important;color:var(--accent)}.color-row{display:flex;align-items:center;gap:16px}.color-options{display:flex;gap:8px}.color-choice{width:48px;height:48px;background:var(--surface);display:grid;place-items:center;border-radius:50%;padding:8px}.color-choice>span{width:32px;height:32px;background:var(--swatch);border-radius:50%;box-shadow:inset 0 0 0 1px #0000000d}.field-group{display:flex;flex-direction:column;gap:8px}.field-group+.field-group{margin-top:0}.field-label{font-size:12px;line-height:16px;color:var(--muted)}.segment-group{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.segment-group button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:16px 8px;min-height:80px;border-radius:8px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);font-size:16px;line-height:24px}.segment-group .small{line-height:16px;color:var(--muted)}.quantity-section{flex-direction:row;justify-content:space-between;align-items:center;gap:24px}.quantity-copy{display:flex;flex-direction:column;gap:8px}.stepper{display:flex;align-items:center;gap:8px}.stepper button,.stepper input{height:48px;width:48px;background:var(--page);text-align:center;border-radius:8px;border:0;box-shadow:inset 0 0 0 1px var(--line)}.stepper button{font-size:24px;line-height:28px}.stepper input{appearance:textfield;letter-spacing:0}.stepper input::-webkit-inner-spin-button,.stepper input::-webkit-outer-spin-button{appearance:none;margin:0}.quote-summary{background:var(--surface);border-radius:var(--radius);padding:24px;box-shadow:inset 0 0 0 1px var(--line);position:sticky;top:24px;display:flex;flex-direction:column;align-items:stretch;gap:16px}.summary-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.summary-heading .eyebrow{color:var(--muted)}.live-indicator{font-size:12px;line-height:16px;display:flex;gap:8px;align-items:center;color:var(--accent)}.live-indicator:before{content:"";width:4px;height:4px;background:var(--accent);border-radius:50%}.quote-summary>h3{margin-top:8px}.price{display:flex;align-items:baseline;gap:8px;font-size:48px;font-weight:750;line-height:56px;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.price-unit{font-size:16px;line-height:24px;font-weight:500}.quote-summary>p.small{line-height:20px;margin-top:-8px}.price-lines{display:flex;flex-direction:column;gap:16px;padding:8px 0;font-size:12px;line-height:16px}.price-lines>div{display:flex;justify-content:space-between;gap:16px}.price-lines dt{color:var(--muted)}.price-lines dd{font-variant-numeric:tabular-nums;letter-spacing:0}.discount-line,.discount-line dt{color:var(--accent)}.discount-note{padding:16px;background:var(--soft);font-size:12px;line-height:20px;border-radius:8px;color:var(--accent)}.demo-disclaimer{font-size:12px;line-height:20px;color:var(--muted)}.full-width{width:100%;font-size:12px;line-height:24px;min-height:56px;padding:16px}.pricing-details{display:flex;flex-direction:column;gap:16px;font-size:12px;line-height:20px;color:var(--muted);padding-top:16px;box-shadow:0 -1px var(--line)}.process-section{padding-top:48px}.process-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}.process-grid article{padding:24px 0;display:flex;flex-direction:column;gap:16px;box-shadow:0 -1px var(--line)}.process-index{font:600 12px/16px Arial,sans-serif;letter-spacing:.08em;color:var(--accent)}.process-grid p{font-size:16px;line-height:28px;color:var(--muted)}.concept-footer{margin-top:48px;padding:32px;display:flex;align-items:center;justify-content:space-between;gap:32px;background:var(--soft);border-radius:var(--radius)}.concept-footer>div{display:flex;flex-direction:column;gap:16px}.concept-footer p{color:var(--muted);font-size:16px;line-height:28px;max-width:36em}.site-footer{display:flex;justify-content:space-between;gap:24px;padding:24px 0;font-size:12px;line-height:20px;color:var(--muted)}
body[data-theme=b]{color-scheme:dark;--page:#131615;--surface:#1b1f1d;--ink:#f1f3ea;--muted:#a6afa6;--line:#363e36;--accent:#d5f172;--soft:#2b3520;--art:#242b22;--on-accent:#18210e;--radius:0px;--object:initial}body[data-theme=b] .hero-art{background-image:linear-gradient(#c2d9810b 1px,transparent 1px),linear-gradient(90deg,#c2d9810b 1px,transparent 1px);background-size:32px 32px}body[data-theme=b] .hero-kicker,body[data-theme=b] .brand{font-family:Arial,"Malgun Gothic",sans-serif}body[data-theme=b] .hero h1{letter-spacing:-.03em}body[data-theme=b] .primary-button,body[data-theme=b] .header-cta,body[data-theme=b] .material-option,body[data-theme=b] .segment-group button{border-radius:0}body[data-theme=b] .art-index{opacity:.8}
body[data-theme=c]{--page:#fcf6ef;--surface:#fffdf9;--ink:#473a33;--muted:#887264;--line:#e5d8c9;--accent:#a94f3b;--soft:#f5e9dd;--art:#eedbcc;--on-accent:#fff;--radius:32px;--object:initial}body[data-theme=c] .hero-art{border-radius:160px 160px 16px 16px}body[data-theme=c] .hero-art .art-top{top:32px;justify-content:center}body[data-theme=c] .art-index{display:none}body[data-theme=c] .primary-button,body[data-theme=c] .header-cta{border-radius:32px}body[data-theme=c] .brand svg{transform:rotate(-8deg)}body[data-theme=c] .hero h1{font-family:"Malgun Gothic",sans-serif;font-weight:500}body[data-theme=c] .hero h1 em{font-weight:750}
@media(min-width:1440px){.hero{gap:48px}.hero-copy{gap:32px}}
@media(max-width:1120px){.concept-caption{display:none}.theme-tabs{margin-left:0;margin-right:auto}.hero{gap:32px}.hero-facts{flex-wrap:wrap;max-width:352px}.hero-art{height:448px}.feature-strip{gap:16px}.quote-layout{grid-template-columns:minmax(0,1fr) 320px;gap:24px}.config-panel{padding:24px}.quote-summary{padding:24px}.material-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.hero-actions{gap:16px}.hero .primary-button{padding-inline:16px;gap:16px}}
@media(max-width:960px){.site-header{height:96px}.hero{grid-template-columns:1fr;padding-top:24px;gap:32px}.hero-copy{max-width:640px}.hero-art{height:416px}.hero-facts{max-width:none}.art-top,.art-bottom{left:32px;right:32px}.art-caption{left:32px}.feature-strip{grid-template-columns:1fr;gap:16px}.quote-layout{grid-template-columns:1fr;gap:24px}.quote-summary{position:static;padding:32px}.config-panel{padding:32px}.material-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.process-grid{grid-template-columns:1fr;gap:24px}.process-grid article{padding:24px 0 0}.process-grid p br{display:none}.process-grid p{max-width:36em}.process-grid article>h3{margin-top:0}.concept-footer{align-items:flex-start;flex-direction:column;gap:32px}.site-footer{flex-wrap:wrap}.site-header nav{gap:16px}}
@media(max-width:640px){.container{width:calc(100% - 32px)}.concept-bar{padding:16px 0}.concept-inner{flex-wrap:wrap;gap:16px}.theme-tabs{width:100%;gap:8px;margin:0}.theme-tab{flex:1;padding:8px;min-width:0;font-size:12px;gap:8px}.concept-inner>.choose-button{margin-left:auto;min-height:48px}.site-header{height:96px;gap:16px}.site-header nav{display:none}.header-cta{padding:8px 16px;gap:8px}.brand{font-size:24px}.brand svg{width:32px;height:32px}.hero{gap:32px;padding:8px 0 32px}.hero-copy{gap:24px}.hero h1{font-size:24px;line-height:28px;letter-spacing:-.03em}.hero-copy>p{font-size:16px;line-height:28px;max-width:24em}.hero-copy>p br{display:none}.hero-actions{flex-wrap:wrap;gap:8px 16px}.hero-actions .primary-button{min-height:56px}.hero-facts{gap:8px 16px;line-height:16px}.hero-art{height:352px}.art-top{left:24px;right:24px;top:24px}.art-top .art-index{display:none}.art-bottom{left:24px;right:24px;bottom:48px}.art-bottom strong{font-size:12px;line-height:16px}.art-caption{left:24px}.round-arrow{width:48px;height:48px}.feature-strip{padding:24px 0;gap:16px}.section-heading{align-items:flex-start;flex-direction:column;gap:24px}.quote-section,.process-section{padding-top:32px}.config-panel,.quote-summary{padding:24px;border-radius:16px}.config-section+.config-section{margin-top:32px;padding-top:32px}.upload-zone{padding:16px;gap:8px}.upload-zone strong{font-size:12px;line-height:20px}.upload-help{font-size:12px;line-height:20px}.upload-plus{display:none}.material-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.color-row{flex-wrap:wrap;gap:8px}.color-choice{width:48px;height:48px}.segment-group{grid-template-columns:1fr;gap:8px}.segment-group button{min-height:56px;flex-direction:row;justify-content:space-between;padding:16px;gap:8px}.segment-group .small{font-size:12px}.quantity-section{align-items:flex-start;flex-direction:column;gap:16px}.stepper{align-self:flex-end}.quote-summary .price{font-size:48px;line-height:56px}.concept-footer{padding:24px;margin-top:32px}.site-footer{flex-direction:column;gap:8px;padding:24px 0}.site-footer span{line-height:20px}body[data-theme=c] .hero-art{border-radius:128px 128px 16px 16px}.pricing-details p,.demo-disclaimer{max-width:32em}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Measured grid refinements: content widths and hit areas use the 4px grid. */
.small{line-height:20px}.round-arrow{line-height:28px}
nav a{min-width:64px;justify-content:center}
.theme-tab{width:124px}.choose-button{min-width:144px}
.header-cta{width:112px;justify-content:space-between}
.text-link{min-width:88px}
.material-grid{grid-template-columns:repeat(4,round(down,calc((100% - 24px)/4),4px))}
.segment-group{grid-template-columns:repeat(3,round(down,calc((100% - 16px)/3),4px))}
.process-grid{grid-template-columns:repeat(3,round(down,calc((100% - 64px)/3),4px))}
@media(max-width:1120px){.material-grid{grid-template-columns:repeat(2,round(down,calc((100% - 8px)/2),4px))}}
@media(max-width:960px){.material-grid{grid-template-columns:repeat(4,round(down,calc((100% - 24px)/4),4px))}.process-grid{grid-template-columns:1fr}}
@media(max-width:640px){.container{width:var(--container-width)}.theme-tabs{display:grid;grid-template-columns:repeat(3,round(down,calc((100% - 16px)/3),4px))}.theme-tab{width:100%;padding:8px 4px;gap:4px}.theme-dot{display:none}.header-cta{width:96px;min-width:96px;padding:8px;gap:8px}.brand{font-size:24px;gap:8px}.brand svg{width:24px;height:24px}.material-grid{grid-template-columns:repeat(2,round(down,calc((100% - 8px)/2),4px))}.segment-group{grid-template-columns:1fr}.segment-group button{font-size:12px}.segment-group button .small{font-size:12px}.color-row{gap:16px}.step-heading>.small{white-space:nowrap}.concept-footer h2{font-size:24px}.quote-summary .price{font-size:48px}}
.header-cta{gap:16px;white-space:nowrap}
@media(max-width:640px){.header-cta{gap:8px}}
.brand-lockup{display:flex;flex-direction:column;gap:4px}
.brand-descriptor{font-size:12px;line-height:16px;letter-spacing:-.02em;font-weight:400;color:var(--muted);white-space:nowrap}
@media(max-width:640px){.brand{font-size:16px;line-height:24px}.brand svg{display:none}}
.format-list{display:flex;flex-wrap:wrap;gap:8px}
.format-list span{display:grid;place-items:center;width:48px;height:32px;border-radius:4px;background:var(--soft);color:var(--accent);font:12px/16px Arial,sans-serif;letter-spacing:.06em}
.format-note{max-width:32em!important}
/* Modeling service: shares the existing type and spacing scales. */
.service-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:32px}
.service-choice{min-height:112px;padding:24px;display:flex;align-items:center;gap:16px;text-align:left;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);border-radius:var(--radius)}
.service-choice>span:nth-child(2){display:flex;flex-direction:column;gap:8px;min-width:0}
.service-choice strong{font-size:16px;line-height:24px}.service-choice>span:nth-child(2)>span{font-size:12px;line-height:20px;color:var(--muted)}
.service-symbol{display:grid;place-items:center;width:48px;height:48px;flex:none;font-size:24px;line-height:28px;background:var(--soft);border-radius:8px;color:var(--accent)}
.service-check{margin-left:auto;font-size:24px;line-height:28px}
.modeling-layout{display:grid;grid-template-columns:minmax(0,1fr) 352px;gap:32px;align-items:start}
.modeling-intro{font-size:16px;line-height:28px;max-width:32em}
.modeling-field{display:flex;flex-direction:column;gap:8px;min-width:0}.modeling-field>label,.modeling-field>span{font-size:16px;line-height:24px}
.modeling-form input:not([type=file]),.modeling-form select,.modeling-form textarea{width:100%;min-width:0;border:0;border-radius:8px;box-shadow:inset 0 0 0 1px var(--line);background:var(--page);font:inherit;font-size:16px;letter-spacing:-.02em;color:var(--ink)}
.modeling-form input:not([type=file]),.modeling-form select{height:48px;padding:8px 16px;line-height:24px}
.modeling-form input::placeholder,.modeling-form textarea::placeholder{color:var(--muted);opacity:1}
.modeling-form textarea{min-height:144px;line-height:28px;padding:16px;resize:vertical}
.modeling-form input:focus-visible,.modeling-form select:focus-visible,.modeling-form textarea:focus-visible,#sketch-dropzone:has(+input:focus-visible){outline:3px solid var(--accent);outline-offset:4px}
.modeling-input-grid{display:grid;grid-template-columns:repeat(2,round(down,calc((100% - 16px)/2),4px));gap:16px}
.dimension-grid{display:grid;grid-template-columns:repeat(4,round(down,calc((100% - 24px)/4),4px));gap:8px}
.dimension-grid label{display:flex;flex-direction:column;gap:8px;font-size:12px;line-height:16px;color:var(--muted)}
.dimension-grid input,.dimension-grid select{letter-spacing:0!important}
.modeling-submit-area{display:flex;flex-direction:column;align-items:stretch;gap:16px;margin-top:32px;padding-top:32px;box-shadow:0 -1px var(--line)}
.modeling-submit-area>.primary-button{align-self:flex-start}.modeling-submit-area>p{max-width:32em}
.form-error{font-size:16px;line-height:28px;color:var(--danger);padding:16px;background:var(--danger-soft);box-shadow:inset 4px 0 var(--danger)}
.modeling-guide{display:flex;flex-direction:column;gap:32px;padding:24px;background:var(--surface);border-radius:var(--radius);box-shadow:inset 0 0 0 1px var(--line)}
.sketch-guide{padding:16px;background:var(--soft);border-radius:8px;display:flex;flex-direction:column;gap:16px;color:var(--accent)}
.sketch-guide svg{width:100%;height:176px}.sketch-guide p{font-size:12px;line-height:20px}
.modeling-guide-section{display:flex;flex-direction:column;gap:16px}.modeling-guide-section ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px;font-size:12px;line-height:20px;color:var(--muted)}
.modeling-guide-section ul li::before{content:'✓';color:var(--accent);margin-right:8px}
.modeling-costs{display:flex;flex-direction:column;gap:16px;font-size:12px;line-height:20px}.modeling-costs>div{display:flex;justify-content:space-between;gap:16px}.modeling-costs dt{color:var(--muted)}.modeling-costs dd{font-weight:650}
.modeling-steps{display:flex;flex-direction:column;gap:8px;list-style:none;padding:0;margin:0;font-size:12px;line-height:20px}.modeling-steps li{display:flex;align-items:center;gap:8px;min-height:32px}.modeling-steps li>span{width:32px;height:32px;display:grid;place-items:center;background:var(--soft);font-size:12px;line-height:16px;font-weight:650;font-variant-numeric:tabular-nums;letter-spacing:0;color:var(--accent);border-radius:8px;flex:none}
.photo-list{display:grid;grid-template-columns:repeat(3,round(down,calc((100% - 32px)/3),4px));gap:16px}
.photo-card{display:flex;flex-direction:column;gap:8px;padding:8px;background:var(--page);border-radius:8px;box-shadow:inset 0 0 0 1px var(--line);min-width:0}
.photo-card img{display:block;width:100%;height:128px;object-fit:contain;border-radius:4px;background:var(--soft)}
.photo-card>span{font-size:12px;line-height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.photo-card button{height:48px;min-width:48px;padding:8px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);border-radius:8px;font-size:12px;line-height:20px}
.secondary-button{min-height:48px;min-width:48px;padding:8px 16px;font-size:16px;line-height:24px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);border-radius:8px}
.request-review{display:flex;flex-direction:column;gap:16px;margin-top:32px;padding:24px;background:var(--soft);border-radius:8px;scroll-margin-top:24px}.request-review h3{font-size:24px;line-height:28px}.request-review dl{display:flex;flex-direction:column;gap:16px}.request-review dl>div{display:flex;flex-direction:column;gap:8px}.request-review dt{font-size:12px;line-height:20px;color:var(--muted)}.request-review dd{font-size:16px;line-height:28px;white-space:pre-wrap;overflow-wrap:anywhere;max-width:32em}.request-review button{align-self:flex-start}
@media(max-width:1120px){.modeling-layout{grid-template-columns:minmax(0,1fr) 320px;gap:24px}.service-choice{padding:16px}.photo-list{grid-template-columns:repeat(2,round(down,calc((100% - 16px)/2),4px))}}
@media(max-width:960px){.modeling-layout{grid-template-columns:1fr;gap:24px}.modeling-guide{display:grid;grid-template-columns:repeat(2,round(down,calc((100% - 32px)/2),4px));gap:32px}.service-symbol{display:none}}
@media(max-width:640px){.service-choices{grid-template-columns:1fr;gap:16px}.service-choice{min-height:96px;padding:16px}.service-check{font-size:16px;line-height:24px}.modeling-input-grid{grid-template-columns:1fr}.dimension-grid{grid-template-columns:repeat(2,round(down,calc((100% - 8px)/2),4px));gap:16px 8px}.modeling-guide{display:flex;gap:32px}.modeling-submit-area>.primary-button{width:100%;padding:16px;gap:8px}.photo-list{grid-template-columns:1fr}.request-review{padding:16px}.sketch-guide{padding:8px}.modeling-guide-section p{max-width:32em}.modeling-form .upload-zone{padding:16px;gap:8px}}
.modeling-form textarea{max-width:32em}
.sketch-guide svg text{letter-spacing:0}
/* Direction A brand and header, shared by every customer page (home, order, policy). Keep them here, not in a page's
   own stylesheet, or the pages drift apart. */
.brand .moyang-symbol{fill:var(--ink);stroke:none}.brand .brand-period{display:none}
body[data-theme=a] .site-header{height:96px;box-shadow:0 1px var(--line)}
body[data-theme=a] .brand{font-weight:650;letter-spacing:-.04em}
body[data-theme=a] .header-cta{width:144px;min-height:48px;padding:8px;gap:8px;justify-content:center;border-radius:4px;box-shadow:none;background:var(--accent);color:var(--on-accent);font-size:16px;line-height:24px;letter-spacing:-.02em}
@media(max-width:760px){body[data-theme=a] .site-header{height:auto;padding:16px 0}}
@media(max-width:640px){body[data-theme=a] .brand .moyang-symbol{display:block;width:24px;height:24px}body[data-theme=a] .brand-descriptor{display:none}}
/* What the customer still has to do carries the main colour, and loses it once filled in. app.js syncSteps marks each
   numbered step todo (number in the main colour), done (grey tick) or free (nothing required: options with a default);
   required fields and consent boxes follow their own state. Shared with the order page's forms. */
[data-step-state=todo] .step-number{background:var(--accent);color:var(--on-accent)}
[data-step-state=done] .step-number{position:relative;background:var(--art);color:transparent}
[data-step-state=done] .step-number::after{content:"✓";content:"✓" / "완료";position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);font-size:16px}
[data-step-state=free] .step-number{background:transparent;color:var(--muted);box-shadow:inset 0 0 0 1px var(--line)}
[data-step-state=todo] .upload-zone{background:var(--soft);outline-color:var(--accent)}
#color-name[data-todo]{color:var(--accent);font-weight:650}
.modeling-form :is(input:not([type=checkbox]),select,textarea):required:invalid{background:var(--soft);box-shadow:inset 0 0 0 1px var(--accent)}
.consent-check{padding:16px;border-radius:8px;background:var(--page);box-shadow:inset 0 0 0 1px var(--line)}
.consent-check:has(input:not(:checked)){background:var(--soft);box-shadow:inset 0 0 0 1px var(--accent)}
.consent-check a{display:inline-block;padding:4px 0;margin:-4px 0} /* a 31 px tall target inside the sentence, lines unchanged */
/* Shared type details (2026-10-22): Korean breaks between words rather than inside them, and small type keeps its own
   -0.02em instead of inheriting the body's tracking in pixels (-0.027em at 12 px). */
body{word-break:keep-all;overflow-wrap:break-word}
.site-footer{letter-spacing:-.02em}
.price-unit{letter-spacing:0}
/* The header's quiet button (주문 조회 on the home and policy pages): the header button's size, outlined, so the page's
   own call to action stays the one in the main colour. */
body[data-theme=a] .header-cta.quiet{background:var(--surface);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}
