@@ -0,0 +1,98 @@
< h2 > Design — Cross-section (top view)< / h2 >
< p class = "subtitle" > How the piece sits in the corner. All measurements approximate — confirm before generating.< / p >
< div class = "mockup" >
< div class = "mockup-header" > Top-down cross section at any height< / div >
< div class = "mockup-body" style = "display:flex;justify-content:center;padding:24px 0;" >
< svg width = "340" height = "300" viewBox = "-20 -20 340 300" >
<!-- Walls -->
< line x1 = "0" y1 = "0" x2 = "0" y2 = "280" stroke = "#555" stroke-width = "8" stroke-linecap = "square" / >
< line x1 = "0" y1 = "0" x2 = "320" y2 = "0" stroke = "#555" stroke-width = "8" stroke-linecap = "square" / >
< text x = "8" y = "140" fill = "#777" font-size = "11" font-family = "monospace" > wall< / text >
< text x = "100" y = "14" fill = "#777" font-size = "11" font-family = "monospace" > wall< / text >
<!-- Flanges (glued to walls) -->
< rect x = "4" y = "4" width = "8" height = "38" fill = "#7c3aed" opacity = "0.7" / >
< rect x = "4" y = "4" width = "38" height = "8" fill = "#7c3aed" opacity = "0.7" / >
< text x = "14" y = "28" fill = "#e9d5ff" font-size = "9" font-family = "monospace" > flange< / text >
<!-- Hollow triangular spine -->
< polygon points = "4,42 42,4 42,42" fill = "#4c1d95" opacity = "0.85" stroke = "#a78bfa" stroke-width = "1.5" / >
<!-- Cable hole -->
< circle cx = "28" cy = "28" r = "5" fill = "#111" stroke = "#a78bfa" stroke-width = "1" stroke-dasharray = "2,1" / >
< text x = "35" y = "22" fill = "#a78bfa" font-size = "9" font-family = "monospace" > cable< / text >
< line x1 = "34" y1 = "21" x2 = "32" y2 = "26" stroke = "#a78bfa" stroke-width = "0.8" / >
<!-- Spine label -->
< text x = "7" y = "56" fill = "#c4b5fd" font-size = "9" font-family = "monospace" > spine< / text >
<!-- Ribbon blade — shown at 0° (flat, extending diagonally) -->
<!-- At 0° the blade lies in the XY plane along the 45° diagonal -->
< line x1 = "42" y1 = "42" x2 = "195" y2 = "195" stroke = "#e879f9" stroke-width = "10" stroke-linecap = "round" opacity = "0.9" / >
<!-- Ribbon label -->
< text x = "150" y = "175" fill = "#f0abfc" font-size = "11" font-family = "monospace" transform = "rotate(45 150 175)" > ribbon blade (10cm wide)< / text >
<!-- Protrusion depth arrow -->
< line x1 = "4" y1 = "260" x2 = "4" y2 = "270" stroke = "#38bdf8" stroke-width = "1" / >
< line x1 = "4" y1 = "265" x2 = "140" y2 = "265" stroke = "#38bdf8" stroke-width = "1.5" marker-end = "url(#arr)" / >
< text x = "50" y = "280" fill = "#38bdf8" font-size = "10" font-family = "monospace" > ~8cm from corner axis< / text >
<!-- Spine size annotation -->
< line x1 = "42" y1 = "50" x2 = "90" y2 = "50" stroke = "#6b7280" stroke-width = "1" stroke-dasharray = "2,2" / >
< text x = "46" y = "63" fill = "#9ca3af" font-size = "9" font-family = "monospace" > spine legs ~20mm< / text >
<!-- Ribbon thickness annotation -->
< line x1 = "200" y1 = "193" x2 = "215" y2 = "178" stroke = "#6b7280" stroke-width = "1" / >
< text x = "216" y = "176" fill = "#9ca3af" font-size = "9" font-family = "monospace" > 4mm thick< / text >
<!-- Room diagonal guide -->
< line x1 = "0" y1 = "0" x2 = "220" y2 = "220" stroke = "#333" stroke-width = "1" stroke-dasharray = "4,3" / >
< text x = "190" y = "240" fill = "#444" font-size = "9" font-family = "monospace" > 45° diagonal< / text >
<!-- Corner dot -->
< circle cx = "4" cy = "4" r = "4" fill = "#f59e0b" / >
< / svg >
< / div >
< / div >
< div class = "section" >
< h3 > Key dimensions< / h3 >
< table style = "width:100%;border-collapse:collapse;font-family:monospace;font-size:13px;" >
< tr style = "border-bottom:1px solid #333" >
< td style = "padding:6px 12px;color:#9ca3af" > Piece height< / td >
< td style = "padding:6px 12px;color:#e5e7eb" > 250mm< / td >
< / tr >
< tr style = "border-bottom:1px solid #333" >
< td style = "padding:6px 12px;color:#9ca3af" > Total stack< / td >
< td style = "padding:6px 12px;color:#e5e7eb" > 4 pieces × 250mm = 1000mm< / td >
< / tr >
< tr style = "border-bottom:1px solid #333" >
< td style = "padding:6px 12px;color:#9ca3af" > Ribbon width< / td >
< td style = "padding:6px 12px;color:#e5e7eb" > 100mm< / td >
< / tr >
< tr style = "border-bottom:1px solid #333" >
< td style = "padding:6px 12px;color:#9ca3af" > Ribbon thickness< / td >
< td style = "padding:6px 12px;color:#e5e7eb" > 4mm< / td >
< / tr >
< tr style = "border-bottom:1px solid #333" >
< td style = "padding:6px 12px;color:#9ca3af" > Protrusion from corner< / td >
< td style = "padding:6px 12px;color:#e5e7eb" > ~80mm (tip of ribbon at max extent)< / td >
< / tr >
< tr style = "border-bottom:1px solid #333" >
< td style = "padding:6px 12px;color:#9ca3af" > Twist per piece< / td >
< td style = "padding:6px 12px;color:#e5e7eb" > 360° — ribbon returns to same angle at top/bottom< / td >
< / tr >
< tr style = "border-bottom:1px solid #333" >
< td style = "padding:6px 12px;color:#9ca3af" > Spine triangle legs< / td >
< td style = "padding:6px 12px;color:#e5e7eb" > ~20mm × 20mm (right isosceles, sits in 90° corner)< / td >
< / tr >
< tr >
< td style = "padding:6px 12px;color:#9ca3af" > Cable channel< / td >
< td style = "padding:6px 12px;color:#e5e7eb" > ~8mm circular hole through centre of spine< / td >
< / tr >
< / table >
< / div >
< p class = "subtitle" style = "margin-top:16px;" > Does this cross-section look right? Let me know in terminal.< / p >