@font-face{font-family:Archive;src:url('/sashiko/fonts/cormorant-display-regular-600.woff') format('woff');font-display:swap;font-weight:600;font-style:normal}
@font-face{font-family:Archive;src:url('/sashiko/fonts/cormorant-display-italic-600.woff') format('woff');font-display:swap;font-weight:600;font-style:italic}
:root{color-scheme:dark;--paper:#e9eadc;--muted:#a7b4a3;--line:#dce8cf26;--green:#b8c7a4;--bg:#17241c}*{box-sizing:border-box}html{background:var(--bg);scroll-behavior:smooth}body{margin:0;color:var(--paper);font:14px/1.7 system-ui,sans-serif;background:linear-gradient(#17241cf2,#17241cfa),url('/sashiko/nature/images/meadow.webp') center top/cover fixed}a{color:inherit;text-underline-offset:5px}button,input{font:inherit}button,a,label{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,.upload:focus-within{outline:2px dashed var(--green);outline-offset:5px}.skip{position:absolute;top:-100px}.skip:focus{top:12px;left:20px;z-index:20;background:var(--bg);padding:10px}header,main,footer{max-width:1440px;margin:auto;padding-inline:clamp(22px,5vw,80px)}header{display:flex;align-items:center;justify-content:space-between;padding-block:32px;border-bottom:1px solid var(--line)}.wordmark{font:600 36px/1 Archive,Georgia,serif;text-decoration:none}.wordmark .archive-label{display:block;font:8px/1.7 ui-monospace,monospace;letter-spacing:.22em;margin-top:9px}header nav{display:flex;align-items:center;gap:13px;font-size:11px}header nav a{text-decoration:none;color:var(--muted);padding-block:8px}header nav a[aria-current]{color:var(--paper);border-bottom:1px solid var(--green)}header .back{margin-left:28px}.studio{display:grid;grid-template-columns:1fr 1.12fr;gap:clamp(30px,5vw,76px);padding-block:60px 85px;align-items:center}.eyebrow{font:9px/1.9 ui-monospace,monospace;letter-spacing:.15em;color:var(--green);text-transform:uppercase;margin:0 0 20px}h1{font:600 clamp(42px,4.5vw,67px)/1.07 Archive,Georgia,serif;letter-spacing:-.035em;margin:0 0 22px}h1 em{font-weight:600;color:#c6d3b4}.intro{color:#c1cbbd;font-size:15px;max-width:29em;margin-bottom:26px}.steps{display:flex;gap:25px;border-block:1px solid var(--line);padding-block:15px;margin-block:28px}.steps a{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted);text-decoration:none}.steps span{font:9px ui-monospace,monospace;color:#829578}.steps a[aria-current]{color:var(--paper)}.steps a[aria-current] span{color:var(--green)}.detail .eyebrow{margin-bottom:8px}.detail>p:last-child{font-size:12px;color:var(--muted);max-width:32em}.actions{display:flex;gap:20px;align-items:center;margin-top:25px}button:not(.specimen-card){border:1px solid #c5d5b94d;background:#becdac;color:#1c2b20;padding:12px 18px}.actions button{min-width:175px;text-align:left}.actions button span{float:right;margin-left:20px}.upload{font-size:11px;cursor:pointer;border-bottom:1px solid #a8b99b80;padding-block:5px}.upload input{position:absolute;width:1px;height:1px;clip-path:inset(50%)}.small{font-size:10px;line-height:1.7;color:#8e9e88;max-width:38em}.next{display:inline-block;margin-top:22px;font:600 20px/1.4 Archive,Georgia,serif;text-decoration:none}.preview-note{margin-top:18px;font-size:9px}.specimen-stage{min-width:0;background:#09130ea8;border:1px solid var(--line);box-shadow:0 20px 70px #00000020}.stage-top,.stage-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 22px}.stage-top{font:8px/1.6 ui-monospace,monospace;letter-spacing:.11em;border-bottom:1px solid var(--line);color:#b9c7af}.stage-top #status{font-size:8px;text-align:right}.canvas-wrap{position:relative;aspect-ratio:1;margin:16px;background:#0b1711;overflow:hidden}.canvas-wrap img,.canvas-wrap canvas{display:block;width:100%;height:100%;object-fit:cover}.canvas-wrap canvas{position:absolute;inset:0;opacity:0}.canvas-wrap.ready canvas{opacity:1}.canvas-wrap.ready .photo-fallback{opacity:0}.scan-line{position:absolute;left:0;right:0;height:1px;background:#d4eec4;box-shadow:0 -15px 35px #c9e9a654;top:0;opacity:0}.scanning .scan-line{opacity:1;animation:scan 1.8s ease-in-out forwards}@keyframes scan{from{top:0}to{top:100%}}.corner{position:absolute;width:15px;height:15px;border-color:#c3d8ad88;border-style:solid}.tl{top:13%;left:13%;border-width:1px 0 0 1px}.tr{top:13%;right:13%;border-width:1px 1px 0 0}.bl{bottom:13%;left:13%;border-width:0 0 1px 1px}.br{bottom:13%;right:13%;border-width:0 1px 1px 0}.stage-bottom{border-top:1px solid var(--line);padding-top:14px}.stage-bottom p{font:600 28px/1 Archive,Georgia,serif;margin:0 0 5px}.stage-bottom em{font:italic 12px Georgia,serif;color:var(--muted)}.file-label{font:8px ui-monospace,monospace;letter-spacing:.13em;color:#91a287}.pattern-info{border-top:1px solid var(--line);padding:12px 22px;display:flex;gap:12px;justify-content:space-between;align-items:center;font:9px ui-monospace,monospace;color:var(--muted)}#palette{display:flex;gap:4px}#palette span{width:10px;height:10px;display:block;border:1px solid #ffffff26}.sliders{max-width:360px;margin-top:24px}.sliders label{display:flex;justify-content:space-between;color:var(--muted);font-size:11px;margin-top:14px}.sliders input{width:100%;accent-color:var(--green);margin:12px 0 0}.sliders output{color:var(--paper);font-family:ui-monospace,monospace}.cloth{border:0;padding:0;display:flex;gap:18px;margin-block:24px}.cloth legend{font-size:11px;color:var(--muted);margin-bottom:10px}.cloth label{position:relative;display:flex;gap:7px;align-items:center;font-size:11px;cursor:pointer}.cloth input{position:absolute;left:0;top:50%;transform:translateY(-50%);margin:0;width:16px;height:16px;opacity:0;cursor:pointer}.swatch{display:block;width:16px;height:16px;border:1px solid #ffffff44;border-radius:50%}.green{background:#182b20}.indigo{background:#1b304b}.cream{background:#dfd8bd}.cloth input:checked+.swatch{outline:1px solid var(--green);outline-offset:3px}.downloads{display:flex;flex-wrap:wrap;gap:10px}.downloads button{font-size:11px}.downloads .secondary{background:transparent;color:var(--paper)}.library{border-top:1px solid var(--line);padding-block:50px 65px}.section-head{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:27px}h2{font:600 42px/1.1 Archive,Georgia,serif;margin:0}.section-head .eyebrow{margin-bottom:12px}.section-head>p{max-width:29em;color:var(--muted);font-size:12px;margin:0}.specimens{display:grid;grid-template-columns:1fr 1fr;gap:26px}.specimen-card{background:transparent;border:1px solid var(--line);padding:0;text-align:left;color:var(--paper);min-width:0}.specimen-card[aria-pressed=true]{border-color:#c1d3af8c}.card-image{height:260px;overflow:hidden;position:relative}.card-image img{width:100%;height:100%;object-fit:cover;object-position:center 37%;transition:transform .5s}.specimen-card:hover img{transform:scale(1.03)}.card-image>span{position:absolute;bottom:17px;left:20px;font:8px ui-monospace,monospace;letter-spacing:.13em;color:#b7c7ac}.card-caption{display:flex;gap:15px;align-items:center;padding:19px 20px;border-top:1px solid var(--line)}.card-caption>span:first-child{font:600 26px Archive,Georgia,serif}.card-caption em{color:var(--muted);font:italic 11px Georgia,serif}.card-caption>span:last-child{margin-left:auto}.process{padding-block:40px 60px;border-top:1px solid var(--line)}.process>div{display:grid;grid-template-columns:repeat(3,1fr);gap:36px;margin-block:25px 36px}.process h3{font:600 24px Archive,Georgia,serif;margin:0}.process p{font-size:12px;color:var(--muted);max-width:25em}.process a{font-size:11px}footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-block:25px;font:9px/1.8 ui-monospace,monospace;color:var(--muted)}footer a{text-decoration:none}html[lang=ja] h1{font:400 clamp(28px,3.5vw,46px)/1.5 'Yu Mincho','Hiragino Mincho ProN',serif;letter-spacing:.01em}html[lang=ja] h1 em{font-weight:400;font-style:normal}html[lang=ja] h2{font:400 30px/1.6 'Yu Mincho',serif}html[lang=ja] .intro{line-height:1.9}html[lang=ja] .next{font-family:'Yu Mincho',serif;font-size:18px}button:disabled{opacity:.6;cursor:wait}@media(max-width:760px){header{padding-block:22px}.wordmark{font-size:31px}header .back{display:none}.studio{grid-template-columns:1fr;padding-block:35px 45px;gap:30px}.eyebrow{font-size:8px}h1{font-size:clamp(42px,10vw,60px)}.steps{gap:25px}.intro{font-size:14px}.specimen-stage{max-width:540px;width:100%;margin:auto}.section-head{display:block}.section-head>p{margin-top:15px}.specimens{gap:14px}.card-image{height:200px}.card-caption{flex-wrap:wrap;gap:6px;padding:13px}.card-caption>span:first-child{font-size:23px}.card-caption em{width:100%;order:3;font-size:10px}.process>div{grid-template-columns:1fr;gap:23px}.process p{max-width:34em}.actions{gap:16px}.actions button{min-width:160px}.pattern-info{padding-inline:12px;font-size:8px}footer{font-size:8px}html[lang=ja] h1{font-size:clamp(27px,7.5vw,38px)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.scan-line{animation:none!important}.specimen-card img{transition:none}}

.cloth input:focus-visible+.swatch{outline:2px dashed var(--paper);outline-offset:5px}

.app-store-cta{display:inline-flex;align-items:center;justify-content:center;gap:24px;min-height:48px;padding:12px 20px;border:1px solid var(--green);background:var(--green);color:var(--bg);font:500 12px/1.7 system-ui,sans-serif;text-decoration:none}
.app-store-cta:hover{background:var(--paper);border-color:var(--paper)}
.app-store-cta span{font-size:18px}
.app-invitation{display:flex;align-items:center;justify-content:space-between;gap:28px;padding-block:40px 50px;border-top:1px solid var(--line)}
.app-invitation .eyebrow{margin-bottom:12px}
.app-invitation .app-store-cta{flex-shrink:0}
@media(max-width:760px){.app-invitation{flex-direction:column;align-items:flex-start;gap:24px}.app-invitation h2{font-size:36px}html[lang=ja] .app-invitation h2{font-size:28px}}

/* The text remains in the heading; the decorative canvas adds cotton stitches. */
.thread-title{position:relative;display:inline-block;max-width:100%;vertical-align:bottom}
.thread-title canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.thread-title.is-threaded>.thread-text{color:transparent;text-shadow:none}
.thread-text::selection{color:var(--bg);background:var(--paper)}
html[lang=ja] h2,html[lang=ja] h3,html[lang=ja] .stage-bottom p,html[lang=ja] .card-caption>span:first-child,html[lang=ja] .next{font-family:'Hiragino Mincho ProN','Yu Mincho','Noto Serif JP',serif;font-weight:400;font-style:normal}
html[lang=ja] h1{font-family:'Hiragino Mincho ProN','Yu Mincho','Noto Serif JP',serif}
@media(forced-colors:active){.thread-title canvas{display:none}.thread-title.is-threaded>.thread-text{color:CanvasText}}
@media print{.thread-title canvas{display:none}.thread-title.is-threaded>.thread-text{color:inherit}}

/* Botanical plates keep the complete stem and the airy meadow composition. */
.specimens{gap:24px}
.card-image{height:auto;aspect-ratio:1;isolation:isolate}
.card-image img{object-position:center;object-fit:cover}
.card-image>span{background:#18291abf;padding:5px 8px;bottom:14px;left:14px}
body[data-step="1"] .canvas-wrap,body[data-step="0"] .canvas-wrap.scanning{background:#33452b}
body[data-step="1"] .corner,body[data-step="2"] .corner{display:none}
@media(max-width:560px){.specimens{grid-template-columns:1fr;gap:22px}.card-image{height:auto}.card-caption{gap:14px;padding:17px}.card-caption em{width:auto;order:initial}}
